diff --git a/.github/workflows/discord_discussions.yml b/.github/workflows/discord_discussions.yml
new file mode 100644
index 0000000000000..439315cbb9546
--- /dev/null
+++ b/.github/workflows/discord_discussions.yml
@@ -0,0 +1,52 @@
+name: Discord Discussions
+
+on:
+ pull_request_target:
+ types:
+ - opened
+ - reopened
+ - edited
+ - labeled
+ - closed
+ branches:
+ - master
+
+concurrency:
+ group: "discord-discussions-${{ github.head_ref }}"
+ cancel-in-progress: true
+
+jobs:
+ manage-discord-discussion:
+ name: Manage Discord Discussion
+ runs-on: ubuntu-latest
+ if: contains(github.event.pull_request.labels.*.name, 'Discord Discussion')
+ steps:
+ - name: Fail if vars.DISCORD_DISCUSSIONS_CHANNEL_ID is unset
+ if: ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID == '' }}
+ run: |
+ echo "vars.DISCORD_DISCUSSIONS_CHANNEL_ID (${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }}) must be set to use this label!"
+ exit 1
+
+ - name: Setup dotnet
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 8.0.x
+ dotnet-quality: ga
+
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Build Tgstation.DiscordDiscussions
+ run: dotnet publish -c Release -o discord_discussions_bins tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj
+
+ - name: Generate App Token
+ id: app-token-generation
+ uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc
+ with:
+ app_id: ${{ secrets.APP_ID }}
+ private_key: ${{ secrets.APP_PRIVATE_KEY }}
+
+ - name: Run Tgstation.DiscordDiscussions
+ run: dotnet discord_discussions_bins/Tgstation.DiscordDiscussions.dll ${{ steps.app-token-generation.outputs.token }} ${{ github.repository_owner }} ${{ github.event.repository.name }} ${{ github.event.pull_request.number }} ${{ github.event.pull_request.merged && 'merged' || github.event.pull_request.state }} ${{ secrets.DISCORD_DISCUSSIONS_TOKEN }} ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }} ${{ github.event.action == 'reopened' && 'true' || 'false' }} ${{ vars.DISCORD_JOIN_LINK }}
+ env:
+ GITHUB_PULL_REQUEST_TITLE: ${{ github.event.pull_request.title }}
diff --git a/.gitignore b/.gitignore
index 8ef9946abc935..28e074442df9c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -180,6 +180,10 @@ Temporary Items
/tools/MapAtmosFixer/MapAtmosFixer/bin/*
/tools/CreditsTool/bin/*
/tools/CreditsTool/obj/*
+/tools/Tgstation.DiscordDiscussions/.vs/*
+/tools/Tgstation.DiscordDiscussions/bin/*
+/tools/Tgstation.DiscordDiscussions/obj/*
+/tools/Tgstation.DiscordDiscussions/Properties/launchSettings.json
#GitHub Atom
.atom-build.json
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm
index 7b7cec2c72a05..35492d9e9f2e0 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm
@@ -63,12 +63,7 @@
/obj/item/cult_shift,
/obj/effect/decal/remains/human,
/obj/item/melee/cultblade/dagger,
-/obj/effect/step_trigger/sound_effect{
- happens_once = 1;
- name = "\proper a grave mistake";
- sound = 'sound/effects/hallucinations/i_see_you1.ogg';
- triggerer_only = 1
- },
+/obj/effect/step_trigger/sound_effect/lavaland_cult_altar,
/obj/effect/step_trigger/message{
message = "You've made a grave mistake, haven't you?";
name = "ohfuck"
diff --git a/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm b/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm
index df3c3ca64277e..9efa8cd365454 100644
--- a/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm
+++ b/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm
@@ -5468,11 +5468,9 @@
/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom)
"Vl" = (
/obj/structure/table/wood,
-/obj/item/toy/figure/wizard{
+/obj/item/toy/figure/wizard/special{
pixel_y = 9;
pixel_x = -4;
- toysay = "CLANG!";
- toysound = 'sound/effects/clang.ogg'
},
/obj/item/toy/figure/warden{
name = "\improper Knight action figure";
diff --git a/_maps/map_files/biodome/biodome.dmm b/_maps/map_files/biodome/biodome.dmm
index af482870377b7..9f4e9989c0fb2 100644
--- a/_maps/map_files/biodome/biodome.dmm
+++ b/_maps/map_files/biodome/biodome.dmm
@@ -33,6 +33,13 @@
},
/turf/open/floor/iron,
/area/station/security/prison)
+"aaG" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Cold Loop to Gas"
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"aaH" = (
/obj/effect/turf_decal/trimline/red/warning{
dir = 8
@@ -40,13 +47,6 @@
/obj/structure/table,
/turf/open/floor/iron/dark/smooth_half,
/area/station/security/brig)
-"aaI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/spawner/random/trash/garbage,
-/turf/open/floor/wood/large,
-/area/station/biodome/fore)
"aaP" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/door/window/left/directional/north{
@@ -188,24 +188,6 @@
/mob/living/basic/cockroach,
/turf/open/floor/plating,
/area/station/service/abandoned_gambling_den)
-"adG" = (
-/obj/machinery/recharge_station,
-/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
- dir = 1
- },
-/obj/machinery/incident_display/delam/directional/north,
-/turf/open/floor/iron,
-/area/station/engineering/lobby)
-"adI" = (
-/obj/effect/turf_decal/siding/green{
- dir = 10
- },
-/obj/structure/table/glass,
-/obj/item/storage/bag/plants/portaseeder,
-/obj/item/plant_analyzer,
-/obj/item/secateurs,
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"adK" = (
/obj/machinery/duct,
/obj/effect/spawner/random/trash/hobo_squat,
@@ -300,10 +282,6 @@
},
/turf/open/floor/plating,
/area/station/engineering/atmos/project)
-"afo" = (
-/obj/machinery/door/airlock/public/glass,
-/turf/open/floor/plating,
-/area/station/biodome/fore)
"afs" = (
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 10
@@ -360,20 +338,6 @@
/obj/effect/spawner/random/trash/box,
/turf/open/floor/plating,
/area/station/maintenance/department/science)
-"agt" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/elevator_control_panel/directional/east{
- linked_elevator_id = "biodome_medbay_lift";
- name = "Medbay Lift Control Panel";
- preset_destination_names = list("2"="LowerMedbay","3"="UpperMedbay")
- },
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/mirror/directional/south,
-/obj/structure/transport/linear/public,
-/turf/open/floor/plating/elevatorshaft,
-/area/station/medical/medbay/central)
"agy" = (
/obj/effect/spawner/random/structure/table_or_rack,
/obj/effect/spawner/random/engineering/vending_restock,
@@ -462,6 +426,13 @@
},
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/engineering/atmos/mix)
+"aic" = (
+/obj/structure/table,
+/obj/machinery/recharger,
+/obj/structure/reagent_dispensers/wall/peppertank/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"aip" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -511,6 +482,24 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"ajm" = (
+/obj/structure/table,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/tank/internals/emergency_oxygen/engi{
+ pixel_x = 5
+ },
+/obj/item/clothing/mask/breath{
+ pixel_x = 4
+ },
+/obj/item/clothing/mask/breath{
+ pixel_x = 2;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/siding/thinplating_new/terracotta/corner,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden,
+/turf/open/floor/iron/dark,
+/area/station/engineering/storage)
"ajs" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -683,6 +672,10 @@
/obj/structure/cable,
/turf/open/floor/iron/herringbone,
/area/station/hallway/primary/central)
+"alA" = (
+/obj/effect/turf_decal/trimline/red/filled/corner,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/brig)
"alG" = (
/turf/open/floor/iron,
/area/station/engineering/main)
@@ -923,6 +916,12 @@
},
/turf/open/floor/wood,
/area/station/cargo/office)
+"apn" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"apt" = (
/obj/structure/chair/stool/directional/west,
/obj/effect/turf_decal/tile/yellow/diagonal_edge,
@@ -1102,6 +1101,17 @@
/obj/machinery/holopad,
/turf/open/floor/iron,
/area/station/security/office)
+"asO" = (
+/obj/structure/flora/rock/pile/jungle/style_random,
+/obj/item/food/grown/potato/sweet{
+ desc = "Ooooooooough.";
+ name = "Yam"
+ },
+/obj/effect/turf_decal/weather/dirt{
+ dir = 1
+ },
+/turf/open/water/jungle/biodome,
+/area/station/biodome/aft)
"asP" = (
/obj/machinery/light/directional/west,
/obj/structure/cable,
@@ -1181,6 +1191,12 @@
/obj/machinery/status_display/evac/directional/south,
/turf/open/floor/iron,
/area/station/science/research)
+"atI" = (
+/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/command/bridge)
"atJ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/decal/cleanable/blood/footprints,
@@ -1329,25 +1345,6 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"awl" = (
-/obj/structure/sign/directions/supply/directional/south{
- pixel_y = -42
- },
-/obj/structure/sign/directions/security/directional/south{
- pixel_y = -35
- },
-/obj/structure/sign/directions/medical/directional/south{
- pixel_y = -28
- },
-/obj/structure/sign/directions/engineering{
- pixel_y = -21
- },
-/obj/effect/turf_decal/trimline/blue/arrow_ccw,
-/obj/effect/turf_decal/trimline/red/real_red/arrow_cw{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/service/chapel)
"awm" = (
/obj/machinery/computer/communications{
dir = 4
@@ -1369,11 +1366,18 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/command/bridge)
-"awT" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/station/medical/chemistry)
+"awq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
+"awR" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/tile/red/half/contrasted,
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"axh" = (
/obj/structure/cable,
/obj/structure/falsewall,
@@ -1468,6 +1472,16 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"ayv" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8
+ },
+/obj/effect/landmark/navigate_destination/atmos,
+/turf/open/floor/iron/terracotta,
+/area/station/hallway/primary/aft)
"ayy" = (
/obj/effect/decal/cleanable/food/egg_smudge,
/turf/open/misc/asteroid/airless,
@@ -1502,12 +1516,29 @@
"aza" = (
/turf/open/floor/wood/large,
/area/station/hallway/secondary/service)
+"azu" = (
+/obj/machinery/camera/directional/east{
+ c_tag = "Service - Museum Lounge"
+ },
+/turf/open/floor/wood/large,
+/area/station/service/library/lounge)
"azH" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/carpet/red,
/area/station/hallway/secondary/exit/departure_lounge)
+"azI" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/door/firedoor,
+/obj/structure/mineral_door/paperframe{
+ name = "Bar"
+ },
+/obj/structure/cable,
+/turf/open/floor/bamboo/tatami{
+ dir = 4
+ },
+/area/station/commons/lounge)
"azL" = (
/obj/machinery/modular_computer/preset/id{
dir = 8
@@ -1538,6 +1569,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/misc/asteroid,
/area/station/cargo/miningdock)
+"azS" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/components/unary/passive_vent{
+ dir = 1
+ },
+/turf/open/space/openspace,
+/area/space/nearstation)
"aAb" = (
/obj/structure/table,
/obj/item/clothing/gloves/latex,
@@ -1548,16 +1586,6 @@
},
/turf/open/floor/iron/white,
/area/station/security/medical)
-"aAj" = (
-/obj/effect/turf_decal/weather/dirt{
- dir = 8
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/dark_green{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"aAt" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -1596,6 +1624,14 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/pumproom)
+"aBl" = (
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/red/box,
+/turf/open/floor/iron,
+/area/station/engineering/main)
"aBm" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/ash,
@@ -1848,6 +1884,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"aFD" = (
+/obj/structure/cable,
+/obj/structure/cable/layer1,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"aFI" = (
/obj/effect/landmark/start/assistant,
/obj/structure/chair/sofa/bench/solo,
@@ -1931,6 +1973,13 @@
},
/turf/open/floor/iron/smooth_half,
/area/station/security/brig)
+"aGK" = (
+/obj/structure/table,
+/obj/item/analyzer,
+/obj/item/pipe_dispenser,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/iron/dark,
+/area/station/engineering/supermatter/room)
"aHu" = (
/obj/effect/landmark/start/medical_doctor,
/obj/effect/turf_decal/trimline/blue/line{
@@ -1953,15 +2002,6 @@
/obj/structure/cable/layer1,
/turf/open/floor/grass/fairy,
/area/station/ai_monitored/turret_protected/ai)
-"aHK" = (
-/obj/structure/chair/office,
-/turf/open/floor/wood,
-/area/station/security/brig)
-"aHS" = (
-/obj/structure/flora/bush/flowers_yw/style_random,
-/obj/effect/landmark/start/hangover,
-/turf/open/floor/grass,
-/area/station/biodome/fore)
"aHZ" = (
/obj/machinery/power/apc/auto_name/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -1973,6 +2013,12 @@
/obj/structure/ladder,
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
+"aIi" = (
+/obj/machinery/duct,
+/obj/machinery/light/small/directional/south,
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron/freezer,
+/area/station/commons/toilet)
"aIy" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -2007,6 +2053,20 @@
/obj/structure/flora/bush/flowers_yw/style_random,
/turf/open/floor/grass,
/area/station/service/hydroponics)
+"aJb" = (
+/obj/machinery/airalarm/directional/east,
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_x = -5;
+ pixel_y = -3
+ },
+/obj/item/hand_labeler{
+ pixel_x = 8;
+ pixel_y = 10
+ },
+/obj/item/storage/box/evidence,
+/turf/open/floor/iron,
+/area/station/security/processing)
"aJm" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 4
@@ -2044,6 +2104,30 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"aJK" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/structure/table,
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
+/obj/item/inspector{
+ pixel_x = -5;
+ pixel_y = 12
+ },
+/obj/item/inspector{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/poster/random_official{
+ pixel_y = 10
+ },
+/obj/item/poster/random_official{
+ pixel_y = 6
+ },
+/obj/item/poster/random_official{
+ pixel_y = 1
+ },
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"aJL" = (
/obj/structure/disposaloutlet{
dir = 8
@@ -2059,6 +2143,16 @@
},
/turf/open/floor/engine/n2o,
/area/station/engineering/atmos)
+"aJR" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner{
+ dir = 1
+ },
+/obj/machinery/computer/security/telescreen/interrogation/directional/north,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"aKd" = (
/turf/closed/wall/r_wall,
/area/station/science/ordnance/office)
@@ -2159,17 +2253,6 @@
dir = 8
},
/area/station/biodome/aft)
-"aLA" = (
-/obj/machinery/door/airlock/hydroponics{
- name = "Hydroponics"
- },
-/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics,
-/obj/effect/landmark/navigate_destination/hydro,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/turf/open/floor/stone,
-/area/station/service/hydroponics)
"aLG" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
@@ -2263,6 +2346,12 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
+"aMR" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"aMV" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -2329,12 +2418,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/iron/dark,
/area/station/command/gateway)
-"aNX" = (
-/obj/machinery/light/dim/directional/south,
-/obj/machinery/duct,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/freezer,
-/area/station/commons/toilet)
"aOh" = (
/obj/effect/spawner/random/trash/garbage,
/obj/effect/turf_decal/siding/wood,
@@ -2381,6 +2464,14 @@
/obj/structure/window/spawner/directional/north,
/turf/open/floor/carpet,
/area/station/commons/vacant_room/office)
+"aOU" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/wood/parquet,
+/area/station/command/heads_quarters/blueshield)
"aOX" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -2578,6 +2669,14 @@
/obj/machinery/air_sensor/plasma_tank,
/turf/open/floor/engine/plasma,
/area/station/engineering/atmos)
+"aRG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/conveyor_switch/oneway{
+ id = "mining";
+ dir = 1
+ },
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"aRL" = (
/obj/machinery/door/airlock/public/glass{
name = "Funeral Parlour"
@@ -2834,9 +2933,6 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"aWy" = (
-/turf/open/floor/wood,
-/area/station/security/brig)
"aWC" = (
/obj/machinery/plumbing/receiver{
dir = 1
@@ -2942,13 +3038,6 @@
"aYz" = (
/turf/closed/wall,
/area/station/medical/cryo)
-"aYB" = (
-/obj/structure/bed/dogbed/mcgriff{
- name = "Beepsky's bed"
- },
-/obj/item/pillow,
-/turf/open/floor/carpet/blue,
-/area/station/security/brig)
"aYJ" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -3004,18 +3093,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"aZR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/structure/railing/wooden_fencing{
- dir = 8
- },
-/obj/structure/railing/wooden_fencing{
- dir = 1
- },
-/turf/open/floor/wood/large,
-/area/station/biodome/aft)
"aZZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/obj/machinery/rnd/server/master,
@@ -3197,6 +3274,12 @@
},
/turf/open/floor/iron/white/diagonal,
/area/station/science/robotics/lab)
+"bcS" = (
+/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/fakewood,
+/area/station/command/gateway)
"bdd" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -3336,6 +3419,19 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/dark,
/area/station/engineering/main)
+"bfM" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 8
+ },
+/obj/machinery/camera/directional/west{
+ c_tag = "Service - Diner"
+ },
+/obj/effect/turf_decal/siding/dark_green/corner{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"bgm" = (
/turf/closed/wall,
/area/station/engineering/storage/tech)
@@ -3361,6 +3457,14 @@
},
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"bhe" = (
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/obj/structure/cable,
+/mob/living/basic/pet/dog/corgi/borgi,
+/turf/open/floor/iron/white/diagonal,
+/area/station/science/robotics/lab)
"bhk" = (
/obj/machinery/door/airlock/public/glass,
/obj/machinery/door/firedoor,
@@ -3382,11 +3486,6 @@
/obj/effect/turf_decal/stripes/asteroid/line,
/turf/open/floor/engine/hull,
/area/station/asteroid)
-"bhN" = (
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/space/basic,
-/area/space/nearstation)
"bhV" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -3411,6 +3510,15 @@
dir = 1
},
/area/station/science/lab)
+"bik" = (
+/obj/effect/spawner/random/trash/garbage{
+ spawn_scatter_radius = 1
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"bim" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment{
@@ -3580,6 +3688,14 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth_large,
/area/station/security/lockers)
+"bkA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plating,
+/area/station/hallway/primary/central)
"bkB" = (
/obj/machinery/door/airlock/atmos/glass{
name = "Distribution Loop"
@@ -3592,6 +3708,11 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/station/engineering/atmos/pumproom)
+"bkG" = (
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/power/shieldwallgen,
+/turf/open/floor/iron/dark,
+/area/station/command/gateway)
"bkL" = (
/obj/structure/chair/office/light{
dir = 4
@@ -3714,6 +3835,12 @@
"bmc" = (
/turf/open/floor/wood/tile,
/area/station/command/heads_quarters/captain)
+"bme" = (
+/obj/structure/easel,
+/obj/item/canvas/twentythree_twentythree,
+/obj/item/canvas/twentythree_nineteen,
+/turf/open/floor/plating,
+/area/station/service/library/lounge)
"bmm" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -3741,14 +3868,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"bnd" = (
-/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/donkpockets{
- pixel_y = 8
- },
-/obj/effect/turf_decal/weather/dirt,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"bnk" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/effect/spawner/random/structure/tank_holder,
@@ -3817,14 +3936,14 @@
/obj/item/clothing/head/utility/radiation,
/turf/open/floor/plating,
/area/station/maintenance/aft/upper)
-"bpz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
+"bps" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
},
-/obj/structure/transit_tube/curved,
-/turf/open/floor/wood/large,
-/area/station/hallway/secondary/service)
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
+/obj/effect/turf_decal/trimline/red/filled/line,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"bpD" = (
/obj/machinery/power/apc/auto_name/directional/north,
/obj/effect/turf_decal/siding/wood{
@@ -3880,6 +3999,9 @@
/obj/effect/turf_decal/tile/green/full,
/turf/open/floor/iron/smooth_large,
/area/station/medical/virology)
+"bqb" = (
+/turf/open/openspace,
+/area/station/service/kitchen/coldroom)
"bqd" = (
/turf/closed/wall,
/area/station/commons/fitness)
@@ -3902,6 +4024,25 @@
/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/plating,
/area/station/engineering/atmos)
+"bqJ" = (
+/obj/structure/table,
+/obj/item/book/manual/hydroponics_pod_people,
+/obj/item/clothing/accessory/armband/hydro,
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/item/paper/guides/jobs/hydroponics,
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron/terracotta/small,
+/area/station/service/hydroponics)
"bqQ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -3916,13 +4057,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/dark/smooth_half,
/area/station/security/prison)
-"brl" = (
-/obj/structure/sign/departments/lawyer/directional/east,
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/floor/stone,
-/area/station/hallway/primary/starboard)
"brn" = (
/obj/effect/spawner/random/trash/caution_sign,
/turf/open/floor/plating,
@@ -4290,6 +4424,14 @@
},
/turf/open/water/jungle/biodome,
/area/station/biodome/fore)
+"bye" = (
+/obj/structure/chair/sofa/bench/solo{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/dirt,
+/obj/structure/cable,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"byj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/disposalpipe/junction/yjunction{
@@ -4337,10 +4479,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/stone,
/area/station/maintenance/department/security/brig)
-"byV" = (
-/obj/effect/decal/cleanable/garbage,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"bzb" = (
/obj/structure/table,
/obj/machinery/computer/security/telescreen/research/directional/north,
@@ -4352,6 +4490,12 @@
/obj/structure/cable,
/turf/closed/wall/r_wall,
/area/station/security/brig)
+"bzf" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"bzj" = (
/obj/machinery/duct,
/turf/open/floor/plating,
@@ -4436,6 +4580,13 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
+"bAe" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 9
+ },
+/obj/structure/flora/bush/reed/style_random,
+/turf/open/water/jungle/biodome,
+/area/station/biodome/aft)
"bAp" = (
/obj/effect/decal/cleanable/blood/footprints{
dir = 4
@@ -4572,14 +4723,16 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark/smooth_large,
/area/station/ai_monitored/security/armory)
+"bDk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"bDy" = (
/obj/structure/closet/crate/grave,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
-"bDH" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"bDR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -4617,6 +4770,10 @@
/obj/machinery/light/small/blacklight/directional/east,
/turf/closed/wall,
/area/station/command/heads_quarters/qm)
+"bEJ" = (
+/obj/machinery/vending/boozeomat,
+/turf/closed/wall,
+/area/station/command/heads_quarters/nt_rep)
"bES" = (
/obj/item/plate,
/obj/item/food/meat/slab,
@@ -4647,6 +4804,16 @@
},
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
+"bFL" = (
+/obj/structure/chair/sofa/corp/left{
+ dir = 8;
+ pixel_x = -2;
+ pixel_y = 1
+ },
+/obj/structure/cable,
+/obj/effect/landmark/start/bouncer,
+/turf/open/floor/bamboo/tatami,
+/area/station/hallway/secondary/service)
"bGc" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -4801,6 +4968,13 @@
/obj/effect/turf_decal/trimline/purple/line,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"bJd" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/nanotrasen_consultant,
+/turf/open/floor/wood,
+/area/station/command/bridge)
"bJf" = (
/turf/closed/mineral/random/stationside/asteroid/porus,
/area/station/maintenance/port/central)
@@ -4818,15 +4992,6 @@
/obj/structure/ladder,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai)
-"bJy" = (
-/obj/effect/landmark/secequipment,
-/obj/effect/turf_decal/bot,
-/obj/structure/sign/poster/official/random/directional/west,
-/obj/effect/turf_decal/tile/red/anticorner/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"bJK" = (
/obj/structure/sign/departments/medbay/alt,
/turf/closed/wall/r_wall,
@@ -5003,15 +5168,6 @@
/obj/effect/turf_decal/tile/red/half/contrasted,
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
-"bNa" = (
-/obj/structure/chair/sofa/bench/solo{
- dir = 8
- },
-/obj/effect/turf_decal/weather/dirt,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"bNk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/grass/fairy,
@@ -5142,6 +5298,16 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"bOV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 1
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"bPb" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
@@ -5222,13 +5388,6 @@
},
/turf/open/floor/iron/white,
/area/station/security/medical)
-"bPZ" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Gas to Chamber"
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter)
"bQd" = (
/obj/structure/sign/warning/radiation/rad_area/directional/north,
/obj/effect/turf_decal/bot_white,
@@ -5376,14 +5535,11 @@
},
/turf/open/floor/iron/dark,
/area/station/science/ordnance/testlab)
-"bSG" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/landmark/start/botanist,
-/obj/effect/turf_decal/siding/brown{
- dir = 9
- },
-/turf/open/floor/iron/terracotta/small,
-/area/station/service/hydroponics)
+"bSt" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"bSQ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -5427,13 +5583,6 @@
/obj/machinery/duct,
/turf/open/floor/iron/dark,
/area/station/science/research)
-"bTF" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"bTJ" = (
/obj/item/emptysandbag,
/turf/open/misc/sandy_dirt,
@@ -5442,12 +5591,6 @@
/obj/structure/grille,
/turf/closed/wall/r_wall,
/area/station/engineering/atmos)
-"bTP" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/openspace,
-/area/station/biodome/fore)
"bTR" = (
/obj/machinery/vending/coffee,
/turf/open/floor/wood/large,
@@ -5500,10 +5643,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/disposal)
-"bUw" = (
-/obj/structure/sign/poster/random/directional/east,
-/turf/open/floor/plating,
-/area/station/biodome/aft)
"bUG" = (
/obj/structure/rack,
/obj/item/clothing/suit/hooded/wintercoat,
@@ -5857,13 +5996,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"cbU" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood/large,
-/area/station/biodome/fore)
"cbX" = (
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/smooth,
@@ -5909,6 +6041,13 @@
/obj/machinery/vending/wallmed/directional/south,
/turf/open/floor/iron/white,
/area/station/medical/surgery/aft)
+"cdl" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 4
+ },
+/area/station/engineering/transit_tube)
"cdp" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -5920,12 +6059,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
-"cdD" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/security/processing)
"cdF" = (
/obj/machinery/button/door/directional/north{
id = "Dorm3";
@@ -5958,11 +6091,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/storage)
-"cdX" = (
-/obj/structure/table,
-/obj/machinery/coffeemaker,
-/turf/open/floor/wood,
-/area/station/security/brig)
"cel" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -5971,6 +6099,13 @@
/obj/item/food/oven_baked_corn,
/turf/open/floor/plating/airless,
/area/station/science/ordnance/bomb)
+"ceo" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/turf/open/floor/wood/parquet,
+/area/station/command/heads_quarters/blueshield)
"ceA" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -6027,6 +6162,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/surgery/aft)
+"ceR" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 4
+ },
+/obj/machinery/light/dim/directional/south,
+/turf/open/water/jungle/biodome,
+/area/station/biodome/aft)
"cfe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
@@ -6038,15 +6180,6 @@
/obj/effect/turf_decal/tile/neutral/diagonal_centre,
/turf/open/floor/iron,
/area/station/commons/locker)
-"cfo" = (
-/obj/structure/railing,
-/obj/machinery/elevator_control_panel/directional/north{
- linked_elevator_id = "biodome_engie_lift";
- name = "Engineering's Lifts Control Panel";
- preset_destination_names = list("2"="EngineeringAccess","3"="StorageZone")
- },
-/turf/open/openspace,
-/area/station/hallway/primary/aft)
"cfF" = (
/obj/machinery/newscaster/directional/south,
/obj/structure/chair/sofa/middle/brown{
@@ -6108,6 +6241,12 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/solars/starboard/fore)
+"cgE" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/sign/departments/restroom/directional/east,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"cgH" = (
/obj/structure/ladder,
/turf/open/floor/iron/smooth,
@@ -6178,19 +6317,14 @@
/obj/structure/curtain/cloth/prison,
/turf/open/floor/carpet/blue,
/area/station/security/prison)
-"chB" = (
-/obj/effect/turf_decal/trimline/dark_blue/arrow_cw{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/dark_blue/corner{
- dir = 4
- },
-/obj/effect/spawner/random/engineering/tracking_beacon,
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"chE" = (
/turf/open/water/jungle/biodome,
/area/station/biodome/fore)
+"chI" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/obj/machinery/meter,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"chZ" = (
/obj/machinery/light/directional/south,
/obj/effect/turf_decal/tile/blue{
@@ -6199,14 +6333,6 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
-"cin" = (
-/obj/machinery/pdapainter/research,
-/obj/machinery/newscaster/directional/north,
-/obj/effect/turf_decal/tile/purple/anticorner{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/station/command/heads_quarters/rd)
"cip" = (
/obj/machinery/door/poddoor/preopen{
id = "bridge blast";
@@ -6369,13 +6495,6 @@
},
/turf/open/floor/iron,
/area/station/cargo/sorting)
-"ckM" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/station/medical/chemistry)
"clm" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 8
@@ -6468,6 +6587,15 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/engineering/atmos/storage/gas)
+"cnI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"cnW" = (
/obj/machinery/shower/directional/east,
/turf/open/floor/iron/freezer,
@@ -6495,6 +6623,13 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"coI" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/orderly,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/medical)
"coK" = (
/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible,
/obj/effect/spawner/structure/window,
@@ -6587,14 +6722,6 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
-"cqh" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/structure/cable,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"cqj" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -6735,6 +6862,10 @@
/obj/structure/fluff/clockwork/clockgolem_remains,
/turf/open/misc/ashplanet/wateryrock/biodome,
/area/station/maintenance/central/greater)
+"cse" = (
+/obj/effect/turf_decal/tile/dark_green/opposingcorners,
+/turf/open/floor/iron/white,
+/area/station/service/kitchen/coldroom)
"csm" = (
/obj/structure/window/spawner/directional/north,
/obj/effect/turf_decal/siding/dark{
@@ -6780,6 +6911,14 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"csW" = (
+/obj/machinery/firealarm/directional/west,
+/obj/vehicle/sealed/mecha/ripley/paddy/preset,
+/obj/machinery/camera/directional/west{
+ c_tag = "Security - Office - Port"
+ },
+/turf/open/floor/iron/recharge_floor,
+/area/station/security/mechbay)
"ctd" = (
/obj/machinery/atmospherics/components/tank/air{
dir = 1
@@ -6798,25 +6937,12 @@
},
/turf/open/floor/wood/large,
/area/station/service/library)
-"ctt" = (
-/obj/effect/turf_decal/delivery/red,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/station/service/library/lounge)
"ctv" = (
/obj/structure/railing,
/turf/open/floor/iron/stairs/right{
dir = 8
},
/area/station/hallway/secondary/construction/engineering)
-"ctI" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/sign/warning/electric_shock{
- pixel_y = -32
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/catwalk_floor/iron_smooth,
-/area/station/maintenance/department/crew_quarters/bar)
"ctJ" = (
/obj/structure/transit_tube/horizontal,
/turf/open/openspace,
@@ -6846,6 +6972,15 @@
},
/turf/open/floor/iron/smooth_half,
/area/station/security/brig)
+"cun" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Engine Room"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/obj/machinery/door/firedoor,
+/obj/structure/cable/layer1,
+/turf/open/floor/iron,
+/area/station/engineering/engine_smes)
"cus" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/plumbing/synthesizer/beer{
@@ -6865,14 +7000,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/herringbone,
/area/station/service/chapel)
-"cuw" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/primary/central)
"cuy" = (
/turf/open/floor/iron/smooth_half,
/area/station/security/warden)
@@ -6932,6 +7059,14 @@
/obj/structure/cable,
/turf/open/floor/iron/herringbone,
/area/station/hallway/primary/central)
+"cvu" = (
+/obj/structure/lattice/catwalk,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"cvz" = (
/obj/item/relic,
/obj/item/bedsheet/black{
@@ -6959,16 +7094,6 @@
/obj/item/flashlight/lamp,
/turf/open/floor/carpet/neon/simple/blue,
/area/station/commons/dorms)
-"cvV" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 1
- },
-/obj/structure/cable/layer3,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"cvW" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -7044,6 +7169,18 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating,
/area/station/hallway/primary/aft)
+"cwE" = (
+/obj/structure/table,
+/obj/item/assembly/timer,
+/obj/item/restraints/handcuffs,
+/obj/effect/turf_decal/tile/red/opposingcorners,
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/turf/open/floor/iron/checker{
+ dir = 1
+ },
+/area/station/security/office)
"cwL" = (
/obj/effect/turf_decal/siding/wood{
dir = 9
@@ -7151,6 +7288,17 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/glass,
/area/station/hallway/secondary/service)
+"cxQ" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "experilab";
+ name = "Experimentation Chamber Lockdown"
+ },
+/obj/machinery/door/window/left/directional/east{
+ name = "Maximum Security Test Chamber";
+ req_access = list("science")
+ },
+/turf/open/floor/iron/dark,
+/area/station/science/circuits)
"cxT" = (
/obj/machinery/ai_slipper{
uses = 10
@@ -7399,11 +7547,6 @@
},
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
-"cBP" = (
-/obj/effect/turf_decal/delivery/red,
-/obj/structure/bookcase/random/adult,
-/turf/open/floor/bronze,
-/area/station/service/library/lounge)
"cBQ" = (
/obj/structure/chair/sofa/bench/left,
/turf/open/floor/iron/dark,
@@ -7532,6 +7675,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood/large,
/area/station/commons/storage/primary)
+"cEz" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/service/hydroponics/garden)
"cEC" = (
/obj/structure/table,
/obj/item/exodrone{
@@ -7624,6 +7774,10 @@
/obj/effect/mapping_helpers/mail_sorting/supply/qm_office,
/turf/open/floor/wood,
/area/station/cargo/office)
+"cFk" = (
+/obj/structure/cable,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"cFs" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/structure/cable,
@@ -7696,12 +7850,17 @@
},
/turf/open/floor/iron/dark,
/area/station/command/bridge)
-"cGX" = (
-/obj/structure/table,
-/obj/machinery/recharger,
-/obj/structure/reagent_dispensers/wall/peppertank/directional/north,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
+"cHd" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/bed/dogbed/mcgriff{
+ name = "Beepsky's bed";
+ desc = "Beepsky's bed, because even crimefighters sometimes need a nap."
+ },
+/obj/item/pillow,
+/turf/open/floor/iron/dark/small,
+/area/station/security/mechbay)
"cHh" = (
/obj/effect/turf_decal/tile/dark_green/full,
/obj/machinery/holopad,
@@ -7712,6 +7871,10 @@
/obj/effect/spawner/random/trash/moisture_trap,
/turf/open/water/jungle/biodome,
/area/station/maintenance/fore/greater)
+"cHn" = (
+/obj/structure/sign/departments/botany/directional/north,
+/turf/open/floor/grass,
+/area/station/biodome/fore)
"cHp" = (
/obj/structure/disposalpipe/trunk/multiz/down{
dir = 8
@@ -7742,13 +7905,6 @@
/obj/effect/spawner/random/structure/chair_maintenance,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"cHN" = (
-/obj/machinery/restaurant_portal/bar,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
"cHU" = (
/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
dir = 4
@@ -7854,6 +8010,14 @@
/obj/effect/turf_decal/siding/dark,
/turf/open/floor/iron,
/area/station/security/prison)
+"cJG" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"cJN" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
@@ -7879,11 +8043,6 @@
/obj/effect/turf_decal/tile/green/half/contrasted,
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"cJX" = (
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"cJZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -7909,10 +8068,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"cKp" = (
-/obj/effect/spawner/random/structure/grille,
-/turf/open/floor/grass,
-/area/station/biodome/aft)
"cKv" = (
/obj/structure/stairs/wood,
/obj/structure/railing{
@@ -7935,6 +8090,13 @@
},
/turf/open/floor/iron/smooth_half,
/area/station/security/brig)
+"cKX" = (
+/obj/effect/turf_decal/trimline/dark_blue/arrow_cw{
+ dir = 10
+ },
+/obj/effect/spawner/random/engineering/tracking_beacon,
+/turf/open/floor/iron/dark,
+/area/station/command/gateway)
"cLd" = (
/obj/structure/chair/office/light{
dir = 8
@@ -8194,6 +8356,10 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/commons/fitness)
+"cPM" = (
+/obj/structure/sign/directions/dorms/directional/north,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"cPP" = (
/obj/effect/turf_decal/siding/dark{
dir = 8
@@ -8237,17 +8403,30 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark,
/area/station/science/research)
-"cQY" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron/smooth_large,
-/area/station/security/brig)
"cRc" = (
/obj/structure/sign/calendar/directional/south,
/obj/machinery/vending/wardrobe/det_wardrobe,
/turf/open/floor/carpet,
/area/station/security/detectives_office)
+"cRp" = (
+/obj/machinery/smartfridge,
+/obj/machinery/door/firedoor,
+/turf/open/floor/stone,
+/area/station/service/hydroponics)
+"cRs" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/service/hydroponics/garden)
+"cRA" = (
+/obj/structure/closet/emcloset/anchored,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/iron/dark,
+/area/station/engineering/supermatter/room)
"cRL" = (
/obj/machinery/status_display/evac/directional/south,
/obj/machinery/holopad,
@@ -8317,6 +8496,12 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"cSI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"cTq" = (
/obj/machinery/door/firedoor/border_only{
dir = 4
@@ -8332,15 +8517,6 @@
"cTA" = (
/turf/open/floor/wood/large,
/area/station/commons/lounge)
-"cTB" = (
-/obj/structure/table,
-/obj/item/assembly/timer,
-/obj/item/restraints/handcuffs,
-/obj/effect/turf_decal/tile/red/opposingcorners,
-/turf/open/floor/iron/checker{
- dir = 1
- },
-/area/station/security/office)
"cTF" = (
/obj/machinery/firealarm/directional/north,
/turf/open/floor/plating,
@@ -8435,6 +8611,10 @@
/obj/structure/stone_tile/cracked,
/turf/open/floor/plating,
/area/station/cargo/miningdock)
+"cVo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"cVq" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/binary/pump{
@@ -8618,17 +8798,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/grass,
/area/station/service/hydroponics/garden)
-"cZo" = (
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/tile/red/half/contrasted,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
-"cZt" = (
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/openspace,
-/area/station/hallway/primary/aft)
"cZA" = (
/obj/structure/destructible/cult/item_dispenser/archives/library,
/obj/item/book/codex_gigas,
@@ -8656,9 +8825,13 @@
/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"dae" = (
-/obj/machinery/smartfridge,
-/turf/open/floor/stone,
+"dad" = (
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/structure/railing,
+/obj/structure/closet/secure_closet/hydroponics,
+/turf/open/floor/iron/white/smooth_large,
/area/station/service/hydroponics)
"dah" = (
/obj/structure/cable,
@@ -8789,6 +8962,17 @@
/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"dcj" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"dct" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
@@ -8960,10 +9144,6 @@
},
/turf/open/floor/iron,
/area/station/commons/locker)
-"dfu" = (
-/obj/structure/sign/poster/official/moth_hardhat,
-/turf/closed/wall/mineral/wood,
-/area/station/biodome)
"dfx" = (
/obj/machinery/smartfridge/extract/preloaded,
/turf/open/floor/iron,
@@ -8997,16 +9177,6 @@
/obj/effect/spawner/random/trash/mopbucket,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
-"dfO" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/plating,
-/area/station/engineering/transit_tube)
-"dgb" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark/smooth_edge{
- dir = 4
- },
-/area/station/engineering/transit_tube)
"dgf" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -9017,13 +9187,6 @@
},
/turf/open/floor/iron/dark/smooth_half,
/area/station/security/office)
-"dgl" = (
-/obj/machinery/light/floor,
-/obj/machinery/camera/directional/east{
- c_tag = "Cargo - Warehouse"
- },
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"dgz" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 1;
@@ -9073,15 +9236,6 @@
dir = 4
},
/area/station/biodome)
-"dhs" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/light/directional/west,
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/transport/linear/public,
-/turf/open/floor/plating/elevatorshaft,
-/area/station/security/brig)
"dht" = (
/obj/machinery/atmospherics/pipe/smart/simple/green/visible,
/turf/open/floor/iron,
@@ -9179,6 +9333,19 @@
/obj/structure/bookcase/random,
/turf/open/floor/iron,
/area/station/security/prison)
+"dje" = (
+/obj/machinery/door/airlock/hydroponics{
+ name = "Hydroponics"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics,
+/obj/effect/landmark/navigate_destination/hydro,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/stone,
+/area/station/service/hydroponics)
"djt" = (
/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable,
@@ -9186,12 +9353,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/commons/storage/emergency/starboard)
-"dju" = (
-/obj/machinery/holopad,
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"djE" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -9220,16 +9381,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"djQ" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/duct,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/secondary/service)
"dka" = (
/obj/effect/turf_decal/tile/yellow/diagonal_edge,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -9328,13 +9479,6 @@
/obj/structure/chair/sofa/bench/solo,
/turf/open/floor/iron/dark,
/area/station/hallway/primary/starboard)
-"dmh" = (
-/obj/item/bouquet/sunflower,
-/obj/effect/turf_decal/trimline/dark_green/filled/line,
-/obj/effect/turf_decal/trimline/green/line,
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"dmn" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/tile/purple/half/contrasted{
@@ -9378,6 +9522,12 @@
/obj/structure/transit_tube/crossing,
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"dnd" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/aft)
"dng" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
@@ -9414,9 +9564,6 @@
/obj/structure/railing,
/turf/open/openspace,
/area/station/biodome/fore)
-"dnJ" = (
-/turf/open/floor/carpet/executive,
-/area/station/commons/locker)
"dnM" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -9429,13 +9576,6 @@
/obj/effect/landmark/start/security_officer,
/turf/open/floor/glass/reinforced,
/area/station/security/lockers)
-"dod" = (
-/obj/structure/cable,
-/obj/effect/landmark/start/depsec/supply,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/security/checkpoint/supply)
"doi" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -9470,6 +9610,19 @@
"doz" = (
/turf/closed/wall/r_wall,
/area/station/science/breakroom)
+"doA" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Gas to Chamber"
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/effect/mapping_helpers/airalarm/tlv_no_checks,
+/obj/effect/mapping_helpers/airalarm/engine_access,
+/obj/effect/mapping_helpers/airalarm/link{
+ chamber_id = "engine"
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter)
"doI" = (
/obj/machinery/status_display/evac/directional/north,
/obj/machinery/light/directional/north,
@@ -9492,6 +9645,23 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
+"dpt" = (
+/obj/machinery/status_display/evac/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
+"dpD" = (
+/obj/structure/closet/bombcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/iron/white,
+/area/station/science/ordnance)
"dpE" = (
/obj/structure/window/reinforced/spawner/directional/south,
/obj/structure/flora/bush/lavendergrass/style_random,
@@ -9554,13 +9724,6 @@
},
/turf/open/floor/wood/large,
/area/station/cargo/miningdock)
-"dqI" = (
-/obj/structure/railing{
- dir = 6
- },
-/obj/machinery/light/small/directional/north,
-/turf/open/openspace,
-/area/station/maintenance/port/greater)
"dqM" = (
/obj/effect/turf_decal/bot,
/obj/effect/landmark/event_spawn,
@@ -9653,17 +9816,6 @@
/obj/item/clothing/suit/leatherapron,
/turf/open/floor/stone,
/area/station/maintenance/department/cargo)
-"dss" = (
-/obj/structure/table,
-/obj/item/radio/off,
-/obj/item/screwdriver{
- pixel_y = 10
- },
-/obj/effect/turf_decal/tile/red/opposingcorners,
-/turf/open/floor/iron/checker{
- dir = 1
- },
-/area/station/security/office)
"dsy" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -9855,6 +10007,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/station/science/ordnance)
+"dvy" = (
+/obj/machinery/gulag_item_reclaimer{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/security/processing)
"dvD" = (
/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
dir = 4
@@ -9886,10 +10046,6 @@
},
/turf/open/floor/grass,
/area/station/biodome/fore)
-"dwf" = (
-/obj/structure/railing,
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"dwk" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 8
@@ -9937,6 +10093,18 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
/area/station/commons/dorms)
+"dxc" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/table/wood/fancy/cyan,
+/obj/machinery/recharger{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/obj/item/storage/fancy/donut_box{
+ pixel_y = 16
+ },
+/turf/open/floor/carpet/executive,
+/area/station/command/heads_quarters/blueshield)
"dxp" = (
/obj/effect/spawner/random/trash/moisture_trap,
/turf/open/floor/plating,
@@ -10008,6 +10176,18 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/tcommsat/computer)
+"dyA" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/right/directional/north{
+ name = "Kitchen Desk";
+ req_access = list("hydroponics")
+ },
+/obj/machinery/door/window/right/directional/south{
+ name = "Kitchen Desk";
+ req_access = list("kitchen")
+ },
+/turf/open/floor/wood/large,
+/area/station/service/kitchen/coldroom)
"dyL" = (
/obj/machinery/firealarm/directional/east,
/turf/open/floor/wood/large,
@@ -10142,6 +10322,12 @@
},
/turf/open/floor/wood,
/area/station/command/heads_quarters/hos)
+"dAX" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood/large,
+/area/station/service/library/lounge)
"dBh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -10175,15 +10361,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
-"dBz" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/table,
-/obj/item/analyzer,
-/obj/item/pipe_dispenser,
-/turf/open/floor/iron/dark,
-/area/station/engineering/supermatter/room)
"dBC" = (
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating,
@@ -10323,6 +10500,24 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron/smooth_half,
/area/station/security/warden)
+"dEC" = (
+/obj/machinery/camera/directional/north{
+ c_tag = "Civilian - Mining Base and Garden Junction"
+ },
+/obj/structure/sign/directions/science/directional/north{
+ dir = 4;
+ pixel_y = 35
+ },
+/obj/structure/sign/directions/evac/directional/north{
+ dir = 4;
+ pixel_y = 28
+ },
+/obj/structure/sign/directions/supply/directional/north{
+ dir = 4;
+ pixel_y = 21
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"dEH" = (
/obj/effect/spawner/random/bureaucracy/paper,
/turf/open/misc/asteroid/airless,
@@ -10361,13 +10556,6 @@
/obj/structure/cable,
/turf/open/space/basic,
/area/station/solars/port/aft)
-"dFm" = (
-/obj/item/toy/plush/beeplushie,
-/obj/effect/turf_decal/trimline/dark_green/filled/line,
-/obj/effect/turf_decal/trimline/green/line,
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"dFr" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/dark_green/full,
@@ -10422,6 +10610,18 @@
/obj/machinery/door/firedoor,
/turf/open/floor/wood/large,
/area/station/commons/storage/primary)
+"dGk" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/machinery/camera/directional/west{
+ c_tag = "Engineering - Supermatter Starboard";
+ network = list("ss13","engine")
+ },
+/obj/structure/sign/warning/fire/directional/west,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"dGl" = (
/obj/effect/turf_decal/trimline/red/real_red/line{
dir = 4
@@ -10451,13 +10651,6 @@
/obj/effect/turf_decal/stripes/asteroid/line,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
-"dGy" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- name = "Gas to Cold Loop"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"dGD" = (
/obj/structure/table,
/obj/item/stamp{
@@ -10470,19 +10663,6 @@
},
/turf/open/floor/carpet,
/area/station/cargo/office)
-"dGE" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/machinery/camera/directional/west{
- c_tag = "Engineering - Supermatter Starboard";
- network = list("ss13","engine")
- },
-/obj/structure/sign/warning/fire/directional/west,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"dGI" = (
/obj/structure/chair/wood/wings{
dir = 1
@@ -10750,6 +10930,13 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"dLP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/iron,
+/area/station/engineering/engine_smes)
"dMg" = (
/obj/machinery/ore_silo,
/turf/open/floor/circuit/green{
@@ -10832,6 +11019,10 @@
/obj/machinery/deepfryer,
/turf/open/floor/iron/white,
/area/station/service/kitchen)
+"dNv" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/station/cargo/miningdock)
"dNw" = (
/obj/item/stack/rods/fifty,
/obj/structure/rack,
@@ -10908,6 +11099,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood/large,
/area/station/service/barber)
+"dOX" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/iron/dark,
+/area/station/engineering/supermatter/room)
"dPe" = (
/obj/structure/toilet{
dir = 4
@@ -10966,14 +11162,10 @@
},
/turf/open/floor/iron,
/area/station/engineering/lobby)
-"dQi" = (
-/obj/effect/turf_decal/weather/dirt{
- dir = 8
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/dark_green/corner,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
+"dQq" = (
+/obj/machinery/rnd/experimentor,
+/turf/open/floor/engine,
+/area/station/science/circuits)
"dQs" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -10985,6 +11177,31 @@
/obj/effect/decal/cleanable/vomit/old,
/turf/open/floor/plating,
/area/station/service/janitor)
+"dQx" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner{
+ dir = 8
+ },
+/turf/open/floor/iron/smooth_large,
+/area/station/security/brig)
+"dQE" = (
+/obj/structure/sign/directions/command/directional/south{
+ dir = 4;
+ pixel_y = -28
+ },
+/turf/open/water/jungle/biodome,
+/area/station/biodome/aft)
"dQH" = (
/turf/closed/wall/r_wall,
/area/station/engineering/transit_tube)
@@ -11132,6 +11349,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"dSr" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/table/wood,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"dSG" = (
/obj/structure/sign/poster/random/directional/east,
/obj/effect/spawner/structure/window,
@@ -11160,12 +11384,6 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/reinforced,
/area/station/maintenance/central/greater)
-"dTc" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/fore)
"dTo" = (
/obj/structure/railing{
dir = 4
@@ -11665,19 +11883,6 @@
/obj/structure/closet/secure_closet/freezer/kitchen,
/turf/open/floor/iron/white,
/area/station/service/kitchen)
-"ebO" = (
-/obj/structure/table,
-/obj/item/storage/box/hug{
- pixel_x = 4;
- pixel_y = 3
- },
-/obj/item/razor{
- pixel_x = -8;
- pixel_y = 3
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/iron,
-/area/station/security/processing)
"ebT" = (
/obj/item/stack/sheet/iron/five,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -11719,6 +11924,13 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
+"ecs" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"ecB" = (
/obj/effect/turf_decal/weather/dirt{
dir = 10
@@ -11735,11 +11947,6 @@
},
/turf/open/water/jungle/biodome,
/area/station/biodome)
-"ecV" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"edg" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -11770,6 +11977,13 @@
/obj/structure/hedge,
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
+"edu" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/event_spawn,
+/obj/effect/landmark/start/customs_agent,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/supply)
"edA" = (
/obj/structure/closet/boxinggloves,
/obj/effect/landmark/start/hangover/closet,
@@ -11882,17 +12096,20 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/cryo)
-"efu" = (
-/obj/machinery/door/airlock{
- name = "Unisex Restrooms"
- },
-/turf/open/floor/iron/freezer,
-/area/station/commons/toilet)
"efI" = (
/obj/effect/spawner/random/structure/table,
/obj/machinery/microwave,
/turf/open/floor/plating,
/area/station/asteroid)
+"ege" = (
+/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/smooth_large,
+/area/station/security/brig)
"egm" = (
/turf/closed/wall,
/area/station/security/office)
@@ -11914,13 +12131,6 @@
/obj/effect/turf_decal/tile/blue,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"egz" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/lattice,
-/turf/open/openspace,
-/area/station/service/hydroponics)
"egJ" = (
/obj/machinery/door/airlock/mining/glass{
name = "Cargo Bay"
@@ -11949,6 +12159,12 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"ehE" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"ehR" = (
/obj/machinery/airalarm/directional/west,
/turf/open/floor/plating,
@@ -12006,13 +12222,6 @@
"eiw" = (
/turf/open/floor/bamboo/tatami,
/area/station/hallway/secondary/service)
-"eiO" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 9
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"ejf" = (
/turf/open/floor/iron/white,
/area/station/medical/virology)
@@ -12140,17 +12349,15 @@
/obj/machinery/duct,
/turf/open/floor/iron/dark,
/area/station/science/research)
-"emt" = (
-/obj/machinery/gulag_item_reclaimer{
- pixel_y = 32
- },
-/turf/open/floor/iron,
-/area/station/security/processing)
"emA" = (
/obj/machinery/light/directional/south,
/obj/machinery/airalarm/directional/south,
/turf/open/floor/carpet/donk,
/area/station/security/prison/mess)
+"emG" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"end" = (
/obj/structure/railing,
/obj/structure/table,
@@ -12210,11 +12417,11 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"enR" = (
-/obj/structure/chair/sofa/bamboo/right{
- dir = 1
- },
-/turf/open/floor/grass,
+"enu" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/wood/large,
/area/station/biodome/aft)
"enS" = (
/obj/structure/table,
@@ -12302,6 +12509,16 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/locker)
+"epa" = (
+/obj/effect/turf_decal/tile/red/opposingcorners,
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/iron/checker{
+ dir = 1
+ },
+/area/station/security/office)
"epk" = (
/obj/effect/spawner/random/engineering/material_cheap,
/turf/open/floor/stone,
@@ -12400,18 +12617,6 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
/area/station/tcommsat/computer)
-"erU" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/sorting/mail/flip{
- dir = 4;
- name = "sorting disposal pipe (Hydroponics)"
- },
-/obj/effect/mapping_helpers/mail_sorting/service/hydroponics,
-/obj/machinery/duct,
-/turf/open/floor/stone,
-/area/station/biodome/fore)
"esq" = (
/obj/structure/table,
/obj/item/training_toolbox,
@@ -12540,12 +12745,6 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron/freezer,
/area/station/commons/toilet/auxiliary)
-"etY" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/computer/security/telescreen/entertainment/directional/south,
-/obj/effect/landmark/start/hangover,
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
"eud" = (
/obj/effect/turf_decal/siding/wideplating_new{
dir = 10
@@ -12596,6 +12795,12 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/dark,
/area/station/command/gateway)
+"evb" = (
+/obj/effect/decal/cleanable/blood/gibs/torso,
+/turf/open/misc/asteroid/dug{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/station/asteroid)
"eve" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -12725,6 +12930,15 @@
/obj/effect/spawner/random/vending/snackvend,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"exy" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"exH" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/bot{
@@ -12815,11 +13029,6 @@
/obj/structure/flora/bush/large/style_random,
/turf/open/floor/grass,
/area/station/biodome/fore)
-"eyK" = (
-/obj/machinery/atmospherics/components/unary/passive_vent/layer2,
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"eyX" = (
/obj/machinery/mineral/ore_redemption{
input_dir = 2;
@@ -12837,6 +13046,21 @@
/obj/structure/chair/stool/bar/directional/north,
/turf/open/floor/iron,
/area/station/security/prison)
+"ezl" = (
+/obj/structure/reflector/single/anchored{
+ dir = 9
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
+"ezo" = (
+/obj/effect/landmark/navigate_destination/library,
+/obj/machinery/door/airlock/wood{
+ name = "Library"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"ezD" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -12893,26 +13117,11 @@
/obj/item/food/grown/ash_flora/mushroom_cap,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
-"eAH" = (
-/obj/machinery/computer/warrant{
- dir = 1
- },
-/obj/machinery/computer/security/telescreen/interrogation,
-/turf/open/floor/wood,
-/area/station/security/brig)
"eAT" = (
/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/science/ordnance)
-"eAU" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/structure/cable/layer3,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"eBf" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -13079,28 +13288,10 @@
},
/turf/open/floor/iron,
/area/station/science/research)
-"eEl" = (
-/obj/machinery/modular_computer/preset/cargochat/security{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red/half/contrasted,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"eEI" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/bamboo,
/area/station/maintenance/starboard/central)
-"eEK" = (
-/obj/machinery/camera/directional/south{
- c_tag = "Service - Service Hall"
- },
-/obj/machinery/light_switch/directional/south,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/secondary/service)
"eEL" = (
/obj/structure/flora/rock/pile,
/obj/machinery/light/small/directional/south,
@@ -13239,6 +13430,10 @@
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/open/floor/plating,
/area/station/service/theater)
+"eGv" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"eGw" = (
/obj/structure/table/reinforced,
/obj/item/paper_bin{
@@ -13279,21 +13474,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"eHg" = (
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/loading_area/white,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/science/research)
-"eHk" = (
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden,
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
"eHm" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -13531,14 +13711,6 @@
},
/turf/open/floor/iron,
/area/station/science/research)
-"eKw" = (
-/obj/effect/landmark/start/depsec/medical,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/security/checkpoint/medical)
"eKy" = (
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
dir = 5
@@ -13574,6 +13746,10 @@
/obj/item/circular_saw,
/turf/open/floor/iron/dark,
/area/station/science/robotics/lab)
+"eLb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"eLn" = (
/obj/machinery/atmospherics/pipe/multiz/violet/visible{
dir = 8
@@ -13714,6 +13890,17 @@
"eNd" = (
/turf/closed/wall/r_wall/fakewood,
/area/station/tcommsat/server)
+"eNg" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wideplating_new/terracotta,
+/obj/effect/landmark/navigate_destination/engineering,
+/turf/open/floor/iron/terracotta,
+/area/station/hallway/primary/aft)
"eNi" = (
/obj/structure/table/glass,
/obj/machinery/fax{
@@ -13745,11 +13932,6 @@
},
/turf/open/floor/wood,
/area/station/cargo/lobby)
-"eNE" = (
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"eNO" = (
/obj/effect/turf_decal/trimline/blue/line{
dir = 5
@@ -13786,6 +13968,10 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
+"eOA" = (
+/obj/machinery/vending/autodrobe,
+/turf/open/floor/plating,
+/area/station/maintenance/aft/upper)
"eOC" = (
/obj/item/soulstone/anybody/chaplain,
/obj/item/book/granter/action/spell/smoke/lesser{
@@ -13899,6 +14085,11 @@
},
/turf/open/floor/iron/herringbone,
/area/station/service/chapel)
+"ePO" = (
+/obj/structure/closet/radiation,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/iron/dark,
+/area/station/engineering/supermatter/room)
"ePP" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -13959,13 +14150,14 @@
/obj/structure/marker_beacon/purple,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
-"eQy" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 5
+"eQF" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/sign/poster/contraband/blood_geometer/directional/west,
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 8
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"eQG" = (
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
dir = 6
@@ -13983,13 +14175,6 @@
/obj/structure/chair/plastic,
/turf/open/floor/carpet/green,
/area/station/command/heads_quarters/nt_rep)
-"eRd" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 10
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"eRj" = (
/obj/item/taperecorder,
/obj/structure/table/wood,
@@ -14042,6 +14227,12 @@
/obj/structure/ladder,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/crew_quarters/bar)
+"eRt" = (
+/obj/structure/table,
+/obj/item/electropack,
+/obj/item/assembly/signaler,
+/turf/open/floor/iron,
+/area/station/security/processing)
"eRw" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
@@ -14075,6 +14266,13 @@
/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2,
/turf/open/floor/plating,
/area/station/hallway/primary/central/fore)
+"eRW" = (
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/structure/window/reinforced/spawner/directional/south,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"eSd" = (
/obj/structure/flora/bush/jungle/b/style_random,
/obj/machinery/camera/directional/north{
@@ -14160,11 +14358,6 @@
/obj/machinery/light/directional/east,
/turf/open/floor/wood,
/area/station/command/heads_quarters/nt_rep)
-"eTO" = (
-/obj/machinery/smartfridge,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating/rust,
-/area/station/hallway/secondary/service)
"eTQ" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
@@ -14234,10 +14427,10 @@
/obj/effect/spawner/random/food_or_drink/seed_rare,
/turf/open/misc/asteroid,
/area/station/maintenance/central/greater)
-"eVG" = (
-/obj/machinery/status_display/evac/directional/north,
-/turf/open/floor/grass,
-/area/station/biodome/fore)
+"eWf" = (
+/obj/structure/cable,
+/turf/closed/wall/r_wall,
+/area/station/engineering/supermatter/room)
"eWk" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
@@ -14429,6 +14622,15 @@
/obj/effect/turf_decal/tile/purple/opposingcorners,
/turf/open/floor/iron,
/area/station/science/genetics)
+"eZn" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/landmark/start/customs_agent,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/supply)
"eZx" = (
/obj/structure/chair/office/light{
dir = 4
@@ -14473,10 +14675,6 @@
},
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
-"eZQ" = (
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
"eZU" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -14550,16 +14748,6 @@
/obj/effect/landmark/navigate_destination/autoname,
/turf/open/floor/stone,
/area/station/cargo/blacksmith)
-"faL" = (
-/obj/effect/turf_decal/weather/dirt{
- dir = 8
- },
-/obj/structure/sign/directions/command/directional/south{
- dir = 4;
- pixel_y = -28
- },
-/turf/open/water/jungle/biodome,
-/area/station/biodome/aft)
"faO" = (
/obj/machinery/light/directional/north,
/obj/structure/chair/sofa/bamboo/right,
@@ -14749,6 +14937,11 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
+"fen" = (
+/obj/machinery/computer/order_console/mining,
+/obj/machinery/light/directional/south,
+/turf/open/floor/wood/large,
+/area/station/cargo/miningdock)
"fev" = (
/obj/structure/railing/corner{
dir = 4
@@ -14823,12 +15016,6 @@
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating/foam,
/area/station/maintenance/aft/upper)
-"ffO" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/aft)
"fgk" = (
/obj/effect/turf_decal/siding/wood{
dir = 9
@@ -14842,17 +15029,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"fgL" = (
-/obj/machinery/door/airlock/external{
- name = "External Access"
- },
-/obj/effect/mapping_helpers/airlock/access/all/command/minisat,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/plating,
-/area/station/engineering/transit_tube)
"fgO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -14896,11 +15072,17 @@
/obj/item/kirbyplants/random,
/turf/open/floor/carpet/purple,
/area/station/security/prison/work)
-"fhN" = (
-/obj/machinery/vending/autodrobe,
-/obj/effect/turf_decal/tile/neutral/half,
-/turf/open/floor/iron,
-/area/station/commons/locker)
+"fhH" = (
+/obj/machinery/light/directional/south,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/computer/warrant{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/red/filled/line,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"fhR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -14996,12 +15178,6 @@
},
/turf/open/floor/carpet/neon/simple/red,
/area/station/commons/dorms)
-"fjh" = (
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"fjm" = (
/obj/structure/chair/office{
dir = 1
@@ -15018,6 +15194,11 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"fjD" = (
+/obj/structure/closet/secure_closet/freezer/meat,
+/obj/structure/window/spawner/directional/north,
+/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
+/area/station/service/kitchen/coldroom)
"fjN" = (
/obj/item/radio/intercom/directional/east,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
@@ -15209,6 +15390,13 @@
/obj/structure/marker_beacon/burgundy,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
+"fnY" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/spawner/random/maintenance,
+/obj/item/screwdriver,
+/obj/item/crowbar,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"fnZ" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/turf/open/space,
@@ -15446,13 +15634,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
-"frT" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/transit_tube,
-/turf/open/floor/wood/large,
-/area/station/hallway/secondary/service)
"frU" = (
/obj/structure/bookcase/random/fiction,
/obj/effect/turf_decal/siding/wood{
@@ -15567,6 +15748,11 @@
},
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/break_room)
+"ftA" = (
+/obj/effect/turf_decal/weather/dirt,
+/obj/structure/cable,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"ftG" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -15683,6 +15869,11 @@
},
/turf/open/floor/iron,
/area/station/science/circuits)
+"fvl" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/light/floor,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"fvp" = (
/obj/effect/spawner/random/trash/grime,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -15761,23 +15952,21 @@
"fwM" = (
/turf/closed/wall/r_wall,
/area/station/ai_monitored/security/armory)
-"fwY" = (
-/obj/structure/railing{
+"fwT" = (
+/obj/structure/closet/secure_closet/security/sec,
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/light/directional/north,
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
},
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"fxf" = (
/obj/structure/lattice/catwalk,
/turf/open/space/openspace,
/area/space/nearstation)
-"fxi" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/closet/radiation,
-/turf/open/floor/iron/dark,
-/area/station/engineering/supermatter/room)
"fxn" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
@@ -15818,6 +16007,14 @@
},
/turf/open/floor/wood/large,
/area/station/commons/storage/primary)
+"fyB" = (
+/obj/structure/lattice/catwalk,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"fyH" = (
/obj/machinery/camera/directional/east{
c_tag = "Biodome - Aft Lake"
@@ -15977,6 +16174,14 @@
},
/turf/open/floor/iron/terracotta,
/area/station/hallway/secondary/construction/engineering)
+"fAQ" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"fAY" = (
/turf/closed/wall/r_wall/fakewood,
/area/station/command/heads_quarters/hop)
@@ -16025,6 +16230,14 @@
/obj/item/kirbyplants/random,
/turf/open/floor/wood/large,
/area/station/hallway/primary/aft)
+"fBt" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/duct,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"fBz" = (
/obj/machinery/vending/wardrobe/sec_wardrobe/red,
/turf/open/floor/iron/smooth_half,
@@ -16070,6 +16283,26 @@
},
/turf/open/floor/iron,
/area/station/commons/dorms)
+"fCH" = (
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = -8;
+ pixel_y = 6
+ },
+/obj/item/grenade/chem_grenade{
+ pixel_x = -8
+ },
+/obj/item/grenade/chem_grenade{
+ pixel_x = -8
+ },
+/obj/machinery/light/directional/north,
+/obj/machinery/button/door{
+ id = "experilab";
+ name = "Chamber Shutters";
+ pixel_x = 7
+ },
+/turf/open/floor/iron,
+/area/station/science/circuits)
"fCL" = (
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
@@ -16151,6 +16384,17 @@
},
/turf/open/floor/iron/white/smooth_large,
/area/station/service/hydroponics)
+"fEO" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ name = "sorting disposal pipe (Hydroponics)"
+ },
+/obj/machinery/duct,
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"fEU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -16237,11 +16481,6 @@
/obj/item/chair/stool,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
-"fGr" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/smooth_large,
-/area/station/cargo/warehouse)
"fGu" = (
/obj/machinery/holopad,
/obj/structure/cable,
@@ -16309,17 +16548,6 @@
},
/turf/open/floor/iron/white/smooth_corner,
/area/station/science/robotics/lab)
-"fIL" = (
-/obj/effect/turf_decal/weather/dirt{
- dir = 9
- },
-/obj/structure/flora/rock/pile/jungle/style_random,
-/obj/item/food/grown/potato/sweet{
- desc = "Ooooooooough.";
- name = "Yam"
- },
-/turf/open/water/jungle/biodome,
-/area/station/biodome/aft)
"fIP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply,
/turf/open/floor/plating,
@@ -16362,23 +16590,10 @@
"fJC" = (
/turf/open/floor/plating,
/area/station/maintenance/aft/upper)
-"fJF" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/fore)
"fJL" = (
/obj/machinery/light_switch/directional/east,
/turf/open/floor/plating,
/area/station/engineering/storage/tech)
-"fJO" = (
-/obj/structure/table,
-/obj/item/shovel,
-/obj/item/storage/box/emptysandbags,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"fJZ" = (
/obj/structure/railing{
dir = 4
@@ -16436,15 +16651,6 @@
},
/turf/closed/wall/r_wall,
/area/station/science/ordnance/burnchamber)
-"fLq" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/dark_green/filled/line,
-/obj/effect/turf_decal/trimline/green/line,
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"fLr" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/structure/disposalpipe/trunk{
@@ -16458,6 +16664,13 @@
},
/turf/open/floor/plating,
/area/station/maintenance/disposal)
+"fLA" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance,
+/turf/open/floor/plating,
+/area/station/biodome/fore)
"fLO" = (
/obj/structure/closet/athletic_mixed,
/obj/effect/landmark/start/hangover/closet,
@@ -16487,10 +16700,6 @@
/obj/structure/chair/sofa/bench/left,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
-"fLX" = (
-/obj/structure/closet/secure_closet/freezer/meat,
-/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
-/area/station/service/kitchen/coldroom)
"fMa" = (
/obj/structure/chair/plastic{
dir = 4
@@ -16649,6 +16858,17 @@
/obj/machinery/vending/wardrobe/sec_wardrobe,
/turf/open/floor/iron,
/area/station/security/checkpoint/customs)
+"fOl" = (
+/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/mail_sorting/service/hydroponics,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ name = "sorting disposal pipe (Hydroponics)"
+ },
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"fOn" = (
/obj/effect/turf_decal/siding/dark{
dir = 1
@@ -16806,6 +17026,16 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos)
+"fQi" = (
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "secmechbay";
+ name = "Security Mech Bay Shutters"
+ },
+/obj/effect/turf_decal/caution/stand_clear,
+/obj/effect/turf_decal/box,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/security/mechbay)
"fQl" = (
/obj/machinery/camera/directional/north{
c_tag = "Hallway - Zoo Starboard"
@@ -16887,11 +17117,6 @@
/obj/item/wirecutters,
/turf/open/floor/plating,
/area/station/construction)
-"fRK" = (
-/obj/structure/beebox,
-/obj/structure/window/reinforced/spawner/directional/south,
-/turf/open/floor/grass,
-/area/station/service/hydroponics)
"fRR" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -16944,6 +17169,15 @@
},
/turf/open/floor/stone,
/area/station/biodome/fore)
+"fSh" = (
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
+"fSp" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/stone,
+/area/station/biodome)
"fSu" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
@@ -17064,6 +17298,13 @@
},
/turf/open/floor/wood,
/area/station/commons/vacant_room/office)
+"fUh" = (
+/obj/machinery/airalarm/directional/east,
+/obj/effect/landmark/start/bouncer,
+/turf/open/floor/bamboo/tatami/black{
+ dir = 4
+ },
+/area/station/service/bar)
"fUq" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -17133,18 +17374,20 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/glass,
/area/station/maintenance/port/greater)
+"fVn" = (
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"fVv" = (
/obj/machinery/recharge_station,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat/foyer)
-"fVB" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/wood,
-/area/station/service/lawoffice)
"fVD" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -17185,16 +17428,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/engine_smes)
-"fVU" = (
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/delivery,
-/obj/structure/mirror/directional/west,
-/obj/structure/railing{
- dir = 9
- },
-/obj/structure/transport/linear/public,
-/turf/open/floor/plating/elevatorshaft,
-/area/station/security/brig)
"fWa" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/segment{
@@ -17246,10 +17479,13 @@
},
/turf/open/floor/iron,
/area/station/command/bridge)
-"fWD" = (
-/obj/machinery/power/floodlight,
-/turf/open/floor/grass,
-/area/station/biodome/aft)
+"fWA" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 1
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plating,
+/area/station/security/mechbay)
"fWF" = (
/obj/structure/table/wood,
/obj/effect/turf_decal/siding/wood{
@@ -17348,6 +17584,14 @@
},
/turf/open/floor/iron/dark,
/area/station/command/teleporter)
+"fYp" = (
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter)
"fYr" = (
/obj/structure/railing{
dir = 9
@@ -17441,6 +17685,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/medical/storage)
+"fZB" = (
+/obj/machinery/firealarm/directional/west,
+/obj/effect/turf_decal/siding/green{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/service/hydroponics/garden)
"fZS" = (
/obj/effect/spawner/random/structure/table_or_rack,
/obj/item/food/hotdog,
@@ -17549,11 +17800,6 @@
},
/turf/open/floor/carpet/blue,
/area/station/security/prison)
-"gbK" = (
-/obj/machinery/photocopier,
-/obj/effect/turf_decal/tile/red/half/contrasted,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"gbY" = (
/obj/structure/railing/corner{
dir = 1
@@ -17561,10 +17807,29 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/department/science)
+"gch" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/closet/secure_closet/security/sec,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/lockers)
"gcl" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/iron/smooth,
/area/station/cargo/warehouse)
+"gcs" = (
+/obj/machinery/door/airlock/command{
+ name = "Captain's Quarters and Consultant's Office"
+ },
+/obj/effect/turf_decal/siding/yellow{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/access/all/command/captain,
+/turf/open/floor/wood,
+/area/station/command/bridge)
"gct" = (
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 9
@@ -17727,16 +17992,15 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/medbay/lobby)
-"gfL" = (
-/obj/effect/turf_decal/trimline/red/filled/line,
-/obj/structure/table,
-/obj/machinery/recharger{
- pixel_y = 4
+"gfN" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 8
},
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/brig)
+/obj/effect/turf_decal/siding/dark_green{
+ dir = 4
+ },
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"gfQ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
@@ -17750,6 +18014,12 @@
/obj/structure/sign/clock/directional/west,
/turf/open/floor/grass,
/area/station/security/courtroom)
+"gfW" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/table,
+/obj/machinery/coffeemaker,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/brig)
"gfX" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{
dir = 8
@@ -17757,6 +18027,10 @@
/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
/turf/open/floor/iron/white,
/area/station/science/ordnance)
+"gfY" = (
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/iron/white,
+/area/station/medical/chemistry)
"gga" = (
/obj/structure/showcase/machinery/tv/broken,
/turf/open/misc/asteroid/airless,
@@ -17859,15 +18133,6 @@
},
/turf/open/floor/plating,
/area/station/command/heads_quarters/nt_rep)
-"gif" = (
-/obj/structure/cable/layer3,
-/obj/machinery/door/airlock/engineering/glass{
- name = "Supermatter Engine Room"
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/engineering/engine_smes)
"gig" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -17882,10 +18147,6 @@
/obj/machinery/vending/wallmed/directional/west,
/turf/open/openspace,
/area/station/medical/medbay/central)
-"giG" = (
-/obj/item/stack/rods/twentyfive,
-/turf/open/floor/grass,
-/area/station/biodome/aft)
"giK" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -17944,6 +18205,12 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/cargo)
+"gjN" = (
+/obj/structure/chair/sofa/bamboo/left{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/station/biodome/aft)
"gjU" = (
/obj/machinery/duct,
/turf/open/floor/plating,
@@ -17959,6 +18226,22 @@
/obj/structure/floodlight_frame,
/turf/open/floor/engine/hull,
/area/station/asteroid)
+"gkr" = (
+/obj/structure/sign/directions/security/directional/south{
+ pixel_y = -35
+ },
+/obj/structure/sign/directions/medical/directional/south{
+ pixel_y = -28
+ },
+/obj/structure/sign/directions/engineering{
+ pixel_y = -21
+ },
+/obj/effect/turf_decal/trimline/blue/arrow_ccw,
+/obj/effect/turf_decal/trimline/red/real_red/arrow_cw{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/service/chapel)
"gkC" = (
/obj/structure/table,
/obj/item/surgical_drapes,
@@ -18189,6 +18472,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/stone,
/area/station/maintenance/department/security/brig)
+"goY" = (
+/obj/machinery/light/directional/east,
+/turf/open/floor/grass,
+/area/station/biodome/aft)
"gpa" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -18204,6 +18491,12 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/carpet,
/area/station/hallway/primary/aft)
+"gpk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/plating,
+/area/station/engineering/storage)
"gpp" = (
/obj/machinery/door/window/left/directional/south{
name = "Gateway Chamber";
@@ -18219,6 +18512,18 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/carpet,
/area/station/commons/vacant_room/office)
+"gpA" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
+"gpD" = (
+/obj/structure/cable,
+/obj/machinery/holopad,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/lockers)
"gpL" = (
/obj/machinery/duct,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -18259,6 +18564,10 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"gqx" = (
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"gqA" = (
/obj/structure/broken_flooring/singular/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -18286,16 +18595,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/white,
/area/station/science/cytology)
-"gqX" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
- },
-/obj/effect/landmark/start/depsec/engineering,
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/trimline/red/filled/line,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/engineering)
"gqY" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -18404,13 +18703,17 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"gsG" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 1
+"gsH" = (
+/obj/docking_port/stationary{
+ dir = 2;
+ dwidth = 11;
+ height = 24;
+ name = "SS13: Auxiliary Dock, Station-Port";
+ shuttle_id = "whiteship_home";
+ width = 35
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
+/turf/open/space/openspace,
+/area/space)
"gsS" = (
/obj/effect/turf_decal/trimline/purple/arrow_ccw,
/obj/effect/turf_decal/trimline/red/arrow_cw{
@@ -18461,14 +18764,6 @@
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"gtH" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Mix Bypass"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"gtN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/duct,
@@ -18552,6 +18847,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/herringbone,
/area/station/hallway/primary/central)
+"guD" = (
+/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/duct,
+/obj/machinery/light/directional/south,
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"guG" = (
/obj/machinery/door/airlock/hatch{
name = "Morgue"
@@ -18676,12 +18982,11 @@
/obj/structure/flora/bush/jungle/c/style_random,
/turf/open/floor/grass,
/area/station/biodome/fore)
-"gwP" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome)
+"gxa" = (
+/obj/item/radio/intercom/directional/east,
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/station/command/gateway)
"gxh" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -18699,12 +19004,6 @@
},
/turf/open/floor/iron,
/area/station/command/bridge)
-"gxn" = (
-/obj/structure/railing{
- dir = 9
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"gxo" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -18742,6 +19041,13 @@
/obj/vehicle/sealed/mecha/ripley/cargo,
/turf/open/floor/iron/smooth,
/area/station/cargo/warehouse)
+"gxW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/security/processing)
"gyb" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -18751,14 +19057,6 @@
"gyj" = (
/turf/open/floor/iron,
/area/station/security/office)
-"gym" = (
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"gyq" = (
/obj/structure/closet/firecloset,
/turf/open/floor/iron/terracotta,
@@ -19058,6 +19356,18 @@
/obj/effect/turf_decal/tile/brown/half/contrasted,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"gDO" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/command/minisat,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/station/engineering/transit_tube)
"gDP" = (
/obj/structure/table,
/obj/item/aicard,
@@ -19141,6 +19451,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood/large,
/area/station/commons/lounge)
+"gEZ" = (
+/obj/machinery/door/firedoor,
+/obj/effect/landmark/navigate_destination/autoname,
+/turf/open/floor/iron,
+/area/station/commons/locker)
"gFa" = (
/obj/structure/chair/pew/left,
/obj/effect/turf_decal/siding/dark{
@@ -19150,6 +19465,13 @@
dir = 1
},
/area/station/service/chapel)
+"gFj" = (
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/weather/dirt{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/station/service/hydroponics/garden)
"gFC" = (
/obj/structure/railing{
dir = 1
@@ -19337,6 +19659,11 @@
/obj/effect/turf_decal/tile/dark_green/opposingcorners,
/turf/open/floor/iron/white,
/area/station/service/kitchen)
+"gIP" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/marker_beacon/burgundy,
+/turf/open/space/openspace,
+/area/space/nearstation)
"gIS" = (
/obj/effect/turf_decal/sand/plating,
/turf/closed/wall,
@@ -19419,10 +19746,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
-"gKH" = (
-/obj/machinery/vending/boozeomat,
-/turf/open/floor/wood,
-/area/station/maintenance/fore/greater)
"gKL" = (
/obj/machinery/door/poddoor/shutters/preopen{
dir = 4;
@@ -19514,6 +19837,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"gMz" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"gMF" = (
/obj/machinery/computer/records/medical,
/turf/open/floor/iron/white/smooth_large,
@@ -19534,13 +19864,6 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"gNo" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
"gNu" = (
/obj/structure/table/reinforced,
/obj/item/storage/medkit/brute{
@@ -19661,6 +19984,10 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"gPQ" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/openspace,
+/area/station/maintenance/port/greater)
"gPT" = (
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{
dir = 10
@@ -19740,6 +20067,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood/large,
/area/station/cargo/miningdock)
+"gQK" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/station/biodome/fore)
"gQU" = (
/obj/machinery/modular_computer/preset/id,
/obj/effect/turf_decal/tile/purple/half/contrasted{
@@ -19751,11 +20084,13 @@
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
/area/station/security/prison/safe)
-"gQY" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/railing/corner,
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
+"gRd" = (
+/obj/structure/closet/secure_closet/tac{
+ req_access = list("captain")
+ },
+/obj/structure/window/reinforced/spawner/directional/south,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/command/heads_quarters/blueshield)
"gRe" = (
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating/reinforced,
@@ -19783,6 +20118,12 @@
"gRq" = (
/turf/closed/wall/r_wall,
/area/station/engineering/atmos/mix)
+"gRz" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/newscaster/directional/south,
+/obj/structure/cable,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"gRD" = (
/turf/open/floor/iron/dark,
/area/station/command/bridge)
@@ -19843,6 +20184,10 @@
/obj/effect/spawner/random/trash/mess,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"gSk" = (
+/obj/structure/chair/stool/directional/west,
+/turf/open/floor/iron/dark/small,
+/area/station/security/mechbay)
"gSn" = (
/obj/effect/spawner/random/engineering/tracking_beacon,
/obj/effect/turf_decal/siding/dark{
@@ -19946,6 +20291,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"gUE" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 8
+ },
+/obj/structure/flora/rock/pile/jungle/style_random,
+/turf/open/water/jungle/biodome,
+/area/station/biodome/aft)
"gVj" = (
/obj/item/storage/toolbox/mechanical{
pixel_x = -2;
@@ -20005,6 +20357,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/carpet/red,
/area/station/service/theater)
+"gVV" = (
+/obj/effect/turf_decal/tile/red/anticorner/contrasted,
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"gWm" = (
/obj/structure/transit_tube/horizontal,
/obj/structure/lattice,
@@ -20024,6 +20381,15 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"gWJ" = (
+/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
+ },
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"gXk" = (
/obj/effect/turf_decal/sand/plating,
/obj/item/clothing/gloves/color/plasmaman/radio,
@@ -20286,6 +20652,12 @@
/obj/machinery/light/warm/directional/west,
/turf/open/floor/grass,
/area/station/biodome/aft)
+"hbG" = (
+/obj/effect/turf_decal/siding/dark,
+/obj/machinery/recharge_station,
+/obj/machinery/computer/cryopod/directional/north,
+/turf/open/floor/iron,
+/area/station/security/prison)
"hbH" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/blue/opposingcorners,
@@ -20324,6 +20696,23 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"hcD" = (
+/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,
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/radio/off,
+/obj/item/pen,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"hcN" = (
/obj/machinery/camera/motion/directional/south{
c_tag = "Vault";
@@ -20430,6 +20819,18 @@
/obj/effect/spawner/random/structure/steam_vent,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"hee" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/science_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/science)
+"heh" = (
+/obj/machinery/vending/boozeomat,
+/turf/open/floor/wood,
+/area/station/maintenance/fore/greater)
"hei" = (
/obj/machinery/duct,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -20448,6 +20849,14 @@
/obj/structure/lattice,
/turf/open/openspace,
/area/station/biodome/fore)
+"heG" = (
+/obj/machinery/vending/wardrobe/chem_wardrobe,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/light/directional/north,
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/medical/chemistry)
"heJ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -20469,18 +20878,19 @@
/obj/effect/mapping_helpers/requests_console/assistance,
/turf/open/floor/circuit,
/area/station/ai_monitored/turret_protected/ai)
+"heP" = (
+/obj/effect/turf_decal/siding/dark{
+ dir = 6
+ },
+/obj/machinery/vending/dorms/prison,
+/turf/open/floor/iron,
+/area/station/security/prison)
"heY" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/wood,
/area/station/cargo/office)
-"hfm" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/security/processing)
"hfI" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -20523,6 +20933,18 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"hgy" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/command/minisat,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/station/engineering/transit_tube)
"hgN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -20574,17 +20996,6 @@
/obj/structure/window/reinforced/spawner/directional/west,
/turf/open/floor/grass,
/area/station/science/genetics)
-"hhx" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wideplating_new/terracotta,
-/obj/effect/landmark/navigate_destination/atmos,
-/turf/open/floor/iron/terracotta,
-/area/station/hallway/primary/aft)
"hhy" = (
/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible{
dir = 8
@@ -20656,6 +21067,14 @@
/obj/structure/chair/sofa/bamboo/right,
/turf/open/floor/grass,
/area/station/biodome/fore)
+"hjn" = (
+/obj/machinery/airalarm/directional/north,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/gbp_redemption,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"hjr" = (
/turf/open/floor/bamboo/tatami/black{
dir = 8
@@ -20679,6 +21098,10 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"hjE" = (
+/obj/structure/sign/directions/cryo/directional/north,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"hjH" = (
/obj/structure/railing{
dir = 9
@@ -20755,15 +21178,6 @@
/obj/structure/filingcabinet,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/qm)
-"hlb" = (
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable,
-/obj/structure/rack,
-/obj/item/storage/box/evidence,
-/obj/item/storage/box/evidence,
-/obj/item/storage/box/evidence,
-/turf/open/floor/iron,
-/area/station/security/processing)
"hle" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
dir = 8
@@ -20780,12 +21194,17 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
-"hlp" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
+"hlo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
},
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/small,
+/area/station/security/mechbay)
"hlu" = (
/obj/machinery/door/poddoor/shutters{
id = "mechbay";
@@ -20797,14 +21216,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/circuit,
/area/station/science/robotics/mechbay)
-"hlw" = (
-/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,
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/stone,
-/area/station/biodome/aft)
"hlC" = (
/obj/structure/railing{
dir = 6
@@ -20832,10 +21243,6 @@
},
/turf/open/floor/iron/dark,
/area/station/command/bridge)
-"hmh" = (
-/obj/effect/turf_decal/tile/red/full,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"hml" = (
/obj/structure/disposalpipe/segment,
/obj/effect/decal/cleanable/dirt,
@@ -20875,6 +21282,14 @@
"hmV" = (
/turf/open/floor/wood,
/area/station/service/abandoned_gambling_den)
+"hnb" = (
+/obj/structure/filingcabinet/security,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 10
+ },
+/obj/machinery/computer/security/telescreen/interrogation/directional/south,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"hnc" = (
/obj/machinery/light/directional/south,
/obj/item/kirbyplants/random,
@@ -20924,6 +21339,12 @@
/obj/structure/flora/rock/style_random,
/turf/open/floor/grass,
/area/station/biodome/aft)
+"hnD" = (
+/obj/machinery/camera/directional/east{
+ c_tag = "Cargo - Warehouse"
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"hoa" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -20948,13 +21369,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
-"hoE" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{
- dir = 10
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"hoH" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -21061,14 +21475,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/science/research)
-"hqK" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/wood{
- name = "Library"
- },
-/obj/effect/landmark/navigate_destination/library,
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"hqZ" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/dark_blue/anticorner{
@@ -21160,19 +21566,13 @@
dir = 8
},
/area/station/science/robotics/lab)
-"htc" = (
-/obj/structure/table/reinforced,
-/obj/item/stack/sheet/iron/fifty,
-/obj/item/stack/sheet/iron/fifty,
-/obj/item/construction/plumbing,
-/obj/item/construction/plumbing{
- pixel_y = -5
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron/dark/textured_half{
- dir = 1
+"hsG" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 4
},
-/area/station/medical/chemistry)
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/iron/dark/side,
+/area/station/security/mechbay)
"htx" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
@@ -21261,6 +21661,14 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/grass,
/area/station/biodome)
+"hvz" = (
+/obj/structure/table/glass,
+/obj/item/storage/bag/plants/portaseeder,
+/obj/item/plant_analyzer,
+/obj/item/secateurs,
+/obj/effect/turf_decal/siding/green,
+/turf/open/floor/iron,
+/area/station/service/hydroponics/garden)
"hvF" = (
/obj/structure/transit_tube/curved/flipped{
dir = 1
@@ -21278,6 +21686,10 @@
},
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/engineering/atmos/mix)
+"hvP" = (
+/obj/structure/bookcase/random/adult,
+/turf/open/floor/plating,
+/area/station/service/library/lounge)
"hvX" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -21300,11 +21712,6 @@
/obj/machinery/light/directional/east,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"hwu" = (
-/obj/structure/flora/bush/jungle/a/style_random,
-/obj/item/stack/rods/twentyfive,
-/turf/open/floor/grass,
-/area/station/biodome/fore)
"hwI" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -21382,12 +21789,6 @@
/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
/turf/open/floor/iron/smooth_half,
/area/station/security/brig)
-"hyg" = (
-/obj/structure/railing{
- dir = 9
- },
-/turf/open/openspace,
-/area/station/hallway/primary/aft)
"hyx" = (
/obj/item/shovel/spade,
/turf/open/misc/asteroid/dug,
@@ -21561,6 +21962,14 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
+"hCf" = (
+/obj/structure/transit_tube,
+/obj/structure/lattice,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"hCI" = (
/obj/structure/flora/bush/lavendergrass/style_random,
/mob/living/basic/butterfly,
@@ -21579,6 +21988,13 @@
},
/turf/open/floor/plating,
/area/station/engineering/engine_smes)
+"hDa" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/mineral/wood,
+/area/station/biodome/fore)
"hDi" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -21684,21 +22100,6 @@
},
/turf/open/floor/iron/herringbone,
/area/station/service/chapel/office)
-"hEN" = (
-/obj/machinery/button/elevator/directional/north{
- id = "biodome_engie_lift"
- },
-/obj/machinery/lift_indicator/directional/north{
- linked_elevator_id = "biodome_engie_lift"
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/iron/terracotta,
-/area/station/hallway/primary/aft)
"hER" = (
/turf/open/misc/beach/coast/corner{
dir = 1
@@ -21794,14 +22195,6 @@
},
/turf/open/floor/carpet/black,
/area/station/service/chapel/funeral)
-"hGF" = (
-/obj/machinery/computer/order_console/mining,
-/obj/effect/turf_decal/weather/dirt{
- dir = 5
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating,
-/area/station/cargo/miningdock)
"hGL" = (
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 10
@@ -21937,6 +22330,12 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/carpet,
/area/station/service/chapel/funeral)
+"hJd" = (
+/obj/structure/lattice/catwalk,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/space/basic,
+/area/space/nearstation)
"hJi" = (
/obj/machinery/status_display/evac/directional/south,
/turf/open/floor/iron,
@@ -22032,12 +22431,6 @@
dir = 4
},
/area/station/hallway/secondary/service)
-"hLn" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome)
"hLq" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/decal/cleanable/dirt,
@@ -22089,6 +22482,14 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/security)
+"hMn" = (
+/obj/machinery/door/airlock/hydroponics{
+ name = "Hydroponics"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics,
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"hMo" = (
/obj/structure/chair/comfy/black,
/obj/machinery/light_switch/directional/north,
@@ -22223,6 +22624,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"hPS" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/computer/security/telescreen/entertainment/directional/south,
+/obj/effect/landmark/start/hangover,
+/obj/structure/cable,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"hPX" = (
/obj/effect/spawner/random/vending/snackvend,
/turf/open/floor/iron/dark,
@@ -22327,6 +22735,15 @@
},
/turf/open/floor/iron/white,
/area/station/medical/chemistry)
+"hSo" = (
+/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/landmark/event_spawn,
+/obj/effect/landmark/start/orderly,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/medical)
"hSy" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/trimline/red/real_red/line,
@@ -22388,6 +22805,10 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
+"hTY" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"hUa" = (
/obj/structure/table,
/obj/effect/spawner/random/food_or_drink/donkpockets,
@@ -22471,15 +22892,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"hUJ" = (
-/obj/machinery/door/airlock/security/glass{
- name = "Equipment Room"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/security/brig,
-/obj/structure/cable,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"hUL" = (
/turf/open/floor/wood/large,
/area/station/hallway/primary/aft)
@@ -22554,6 +22966,14 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
+"hWe" = (
+/obj/machinery/door/window/left/directional/south{
+ name = "Apiary";
+ req_access = list("hydroponics")
+ },
+/mob/living/basic/pet/bumbles,
+/turf/open/floor/grass,
+/area/station/service/hydroponics)
"hWk" = (
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 4
@@ -22709,6 +23129,16 @@
/obj/structure/railing,
/turf/open/openspace,
/area/station/biodome)
+"hYD" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden,
+/turf/open/floor/iron,
+/area/station/engineering/storage)
"hYE" = (
/obj/effect/landmark/start/assistant,
/obj/effect/turf_decal/siding/wood,
@@ -22777,6 +23207,23 @@
/obj/item/storage/fancy/cigarettes/dromedaryco,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
+"hZJ" = (
+/obj/structure/table,
+/obj/item/storage/box/lights/mixed,
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/flashlight{
+ pixel_x = -1
+ },
+/obj/effect/turf_decal/siding/thinplating_new/terracotta{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden,
+/turf/open/floor/iron/dark,
+/area/station/engineering/storage)
"hZU" = (
/obj/machinery/computer/robotics{
dir = 1
@@ -22797,17 +23244,31 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
-"iav" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/primary/central)
"iaB" = (
/obj/item/pillow,
/turf/open/floor/bamboo,
/area/station/maintenance/starboard/central)
+"iaF" = (
+/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,
+/turf/open/floor/stone,
+/area/station/biodome/aft)
+"iaH" = (
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"iaK" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
@@ -22862,10 +23323,6 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron/white,
/area/station/medical/surgery/aft)
-"ibv" = (
-/obj/effect/landmark/start/hangover,
-/turf/open/water/jungle/biodome,
-/area/station/biodome/aft)
"ibC" = (
/obj/machinery/door/airlock{
name = "Janitor's Closet"
@@ -23131,10 +23588,6 @@
/obj/machinery/light/directional/east,
/turf/open/floor/circuit,
/area/station/ai_monitored/turret_protected/ai_upload)
-"igj" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden,
-/turf/closed/wall/r_wall,
-/area/station/engineering/supermatter/room)
"ign" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -23213,12 +23666,6 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/virology,
/turf/open/floor/iron/dark,
/area/station/medical/virology)
-"ihh" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"ihk" = (
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
dir = 4
@@ -23295,6 +23742,19 @@
},
/turf/open/floor/plating,
/area/station/engineering/atmos)
+"iis" = (
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 10
+ },
+/obj/effect/landmark/start/engineering_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/engineering)
"iiH" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -23385,12 +23845,6 @@
},
/turf/open/floor/wood/large,
/area/station/service/theater)
-"ikE" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/turf/open/floor/stone,
-/area/station/biodome/fore)
"ikH" = (
/obj/structure/closet/crate/solarpanel_small,
/obj/effect/turf_decal/bot{
@@ -23459,6 +23913,19 @@
},
/turf/open/floor/iron/dark,
/area/station/security/checkpoint/engineering)
+"imD" = (
+/obj/effect/turf_decal/trimline/dark_green/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/green/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"imJ" = (
/obj/effect/decal/cleanable/insectguts,
/obj/effect/decal/cleanable/blood/gibs/limb,
@@ -23530,6 +23997,10 @@
},
/turf/open/floor/plating,
/area/station/science/xenobiology)
+"ioi" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"ioj" = (
/obj/structure/railing/corner{
dir = 1
@@ -23701,12 +24172,6 @@
/obj/machinery/portable_atmospherics/canister,
/turf/open/floor/iron,
/area/station/science/ordnance)
-"iqy" = (
-/obj/structure/railing{
- dir = 6
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"iqE" = (
/obj/effect/spawner/random/structure/girder,
/turf/open/floor/plating,
@@ -23817,29 +24282,16 @@
},
/turf/open/floor/plating,
/area/station/maintenance/disposal)
-"isp" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Cooling Loop Bypass"
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/obj/structure/cable,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
-"isx" = (
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"isA" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
/turf/open/floor/plating,
/area/station/maintenance/department/science)
+"isE" = (
+/obj/structure/window/reinforced/spawner/directional/north,
+/turf/open/floor/iron/dark,
+/area/station/science/circuits)
"isM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
@@ -23999,6 +24451,10 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/carpet/neon/simple/cyan/nodots,
/area/station/science/server)
+"ivL" = (
+/obj/machinery/computer/order_console/mining,
+/turf/open/floor/wood/large,
+/area/station/cargo/miningdock)
"ivO" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -24060,6 +24516,10 @@
},
/turf/open/floor/iron/dark/airless,
/area/station/science/ordnance/freezerchamber)
+"iwE" = (
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/wood,
+/area/station/command/bridge)
"iwR" = (
/obj/machinery/computer/upload/ai,
/obj/machinery/airalarm/directional/north,
@@ -24111,12 +24571,6 @@
},
/turf/open/misc/asteroid,
/area/station/cargo/miningdock)
-"ixY" = (
-/obj/structure/railing{
- dir = 8
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"iyl" = (
/obj/item/food/grown/moonflower,
/obj/structure/flora/bush/flowers_yw,
@@ -24194,13 +24648,6 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
-"izR" = (
-/obj/structure/cable,
-/obj/effect/landmark/start/depsec/supply,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/security/checkpoint/supply)
"iAd" = (
/obj/structure/transit_tube/curved{
dir = 4
@@ -24249,17 +24696,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"iAY" = (
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/loading_area/white,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/science/research)
"iBf" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -24362,6 +24798,12 @@
"iCJ" = (
/turf/closed/wall/r_wall/fakewood,
/area/station/biodome/aft)
+"iCP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/station/medical/chemistry)
"iCX" = (
/obj/effect/spawner/random/structure/table,
/obj/item/paper/pamphlet/radstorm,
@@ -24577,6 +25019,35 @@
/obj/effect/decal/cleanable/oil/streak,
/turf/open/misc/asteroid,
/area/station/maintenance/central/greater)
+"iGW" = (
+/obj/structure/table,
+/obj/effect/spawner/random/engineering/tool{
+ pixel_x = -11
+ },
+/obj/effect/spawner/random/engineering/tool{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/item/paper/fluff/jobs/security/beepsky_mom{
+ pixel_y = 6
+ },
+/obj/item/stock_parts/power_store/cell/potato{
+ name = "\improper Beepsky's emergency battery"
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/iron/dark/small,
+/area/station/security/mechbay)
+"iHk" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 1
+ },
+/obj/machinery/incident_display/delam/directional/north,
+/obj/structure/table/glass,
+/obj/item/modular_computer/laptop/preset/civilian{
+ pixel_y = 3
+ },
+/turf/open/floor/iron,
+/area/station/engineering/lobby)
"iHt" = (
/obj/machinery/camera/directional/east{
c_tag = "Service - Chapel Office"
@@ -24616,6 +25087,15 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/surgery/aft)
+"iHQ" = (
+/obj/structure/table,
+/obj/item/trash/can/food/pine_nuts,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/turf_decal/weather/dirt,
+/obj/structure/stone_tile/block,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plating,
+/area/station/cargo/miningdock)
"iHV" = (
/obj/machinery/photocopier,
/obj/machinery/light/directional/east,
@@ -24657,10 +25137,6 @@
},
/turf/open/misc/asteroid,
/area/station/cargo/miningdock)
-"iIL" = (
-/obj/effect/decal/cleanable/blood/gibs/torso,
-/turf/open/misc/asteroid/dug,
-/area/station/asteroid)
"iIV" = (
/obj/effect/landmark/navigate_destination/bar,
/turf/open/floor/bamboo/tatami{
@@ -24755,20 +25231,6 @@
/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/glass/reinforced,
/area/station/maintenance/starboard/lesser)
-"iKE" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{
- dir = 5
- },
-/turf/open/space/basic,
-/area/space/nearstation)
-"iKJ" = (
-/obj/machinery/duct,
-/obj/machinery/light/small/directional/south,
-/obj/effect/landmark/start/hangover,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/freezer,
-/area/station/commons/toilet)
"iKP" = (
/obj/structure/table,
/obj/item/hemostat{
@@ -24787,6 +25249,12 @@
/obj/machinery/vending/games,
/turf/open/floor/wood/large,
/area/station/service/library/lounge)
+"iKW" = (
+/obj/structure/flora/bush/flowers_yw/style_random,
+/obj/effect/landmark/start/hangover,
+/obj/machinery/light/directional/north,
+/turf/open/floor/grass,
+/area/station/biodome/fore)
"iLd" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -24897,6 +25365,14 @@
"iMD" = (
/turf/closed/wall/mineral/wood,
/area/station/service/bar)
+"iMN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"iMV" = (
/obj/machinery/door/airlock/maintenance,
/turf/open/floor/plating,
@@ -24953,6 +25429,12 @@
/obj/machinery/light/directional/east,
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"iOB" = (
+/obj/effect/decal/cleanable/ants/fire,
+/turf/open/misc/asteroid/dug{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/station/asteroid)
"iOH" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -24992,6 +25474,13 @@
/obj/effect/decal/cleanable/oil,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
+"iPX" = (
+/obj/machinery/door/window/left/directional/south{
+ name = "Plant Isolation";
+ req_access = list("hydroponics")
+ },
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"iPY" = (
/obj/machinery/door/poddoor/shutters{
id = "teleportershutters";
@@ -25088,6 +25577,21 @@
},
/turf/open/floor/iron,
/area/station/commons/fitness)
+"iRg" = (
+/obj/machinery/requests_console/directional/north{
+ department = "Security";
+ name = "Security Requests Console"
+ },
+/obj/effect/mapping_helpers/requests_console/supplies,
+/obj/effect/mapping_helpers/requests_console/assistance,
+/obj/structure/cable,
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/effect/landmark/start/customs_agent,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/supply)
"iRw" = (
/obj/machinery/door/airlock/mining{
name = "Mining Maintenance"
@@ -25128,6 +25632,10 @@
/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
/turf/open/floor/catwalk_floor,
/area/station/maintenance/department/crew_quarters/bar)
+"iRI" = (
+/obj/effect/turf_decal/tile/dark_red/half,
+/turf/open/floor/iron/white,
+/area/station/medical/chemistry)
"iRL" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/landmark/event_spawn,
@@ -25140,6 +25648,9 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/main)
+"iSv" = (
+/turf/open/floor/iron/smooth_large,
+/area/station/security/lockers)
"iSK" = (
/obj/machinery/conveyor/auto{
dir = 9;
@@ -25163,6 +25674,14 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"iTw" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/conveyor/inverted{
+ dir = 6;
+ id = "mining"
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"iTy" = (
/obj/effect/spawner/random/trash/moisture,
/turf/open/floor/plating,
@@ -25186,6 +25705,18 @@
/obj/machinery/light/directional/west,
/turf/open/openspace,
/area/station/biodome)
+"iTM" = (
+/obj/structure/table,
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3
+ },
+/obj/effect/turf_decal/weather/dirt,
+/obj/structure/cable,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"iTN" = (
/obj/effect/mapping_helpers/airlock/access/all/science/general,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -25325,12 +25856,6 @@
/obj/effect/turf_decal/tile/green/full,
/turf/open/floor/iron/smooth_large,
/area/station/medical/virology)
-"iXd" = (
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"iXi" = (
/obj/machinery/door/window/right/directional/north,
/obj/machinery/door/window/right/directional/south,
@@ -25475,6 +26000,13 @@
/obj/effect/turf_decal/tile/dark_green/full,
/turf/open/floor/iron/dark/small,
/area/station/service/hydroponics)
+"iZv" = (
+/obj/machinery/camera/directional/north{
+ c_tag = "Biodome - Library Back Alley"
+ },
+/obj/item/stack/rods/twentyfive,
+/turf/open/floor/grass,
+/area/station/biodome/aft)
"iZy" = (
/obj/machinery/newscaster/directional/north,
/obj/machinery/light_switch/directional/west,
@@ -25487,6 +26019,24 @@
},
/turf/open/floor/wood,
/area/station/commons/vacant_room/office)
+"iZE" = (
+/obj/structure/table,
+/obj/item/food/donut/plain{
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/item/storage/fancy/coffee_cart_rack{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner{
+ dir = 8
+ },
+/turf/open/floor/iron/smooth_large,
+/area/station/security/brig)
"iZK" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -25532,6 +26082,14 @@
/obj/machinery/light/directional/east,
/turf/open/floor/grass,
/area/station/security/courtroom)
+"jam" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/science_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/science)
"jau" = (
/obj/effect/landmark/start/hangover,
/obj/effect/turf_decal/siding/wood{
@@ -25589,6 +26147,11 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"jbA" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/space/basic,
+/area/space/nearstation)
"jbB" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -25647,13 +26210,6 @@
/obj/structure/table/reinforced,
/turf/open/floor/plating,
/area/station/cargo/blacksmith)
-"jcq" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/transit_tube/crossing,
-/turf/open/floor/wood/large,
-/area/station/hallway/secondary/service)
"jct" = (
/obj/effect/turf_decal/siding/dark{
dir = 4
@@ -25668,13 +26224,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
-"jcG" = (
-/obj/structure/table,
-/obj/item/electropack,
-/obj/item/assembly/signaler,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/iron,
-/area/station/security/processing)
"jcM" = (
/obj/machinery/power/solar{
id = "aicore";
@@ -25800,11 +26349,6 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"jeH" = (
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"jeJ" = (
/obj/effect/turf_decal/trimline/blue/line{
dir = 9
@@ -25915,10 +26459,6 @@
/obj/machinery/light/directional/east,
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
-"jgn" = (
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/grass,
-/area/station/biodome/fore)
"jgr" = (
/turf/open/floor/plating,
/area/station/cargo/drone_bay)
@@ -26028,6 +26568,13 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/medbay/lobby)
+"jiE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"jiG" = (
/turf/open/floor/iron/chapel{
dir = 1
@@ -26111,12 +26658,21 @@
},
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"jjW" = (
-/obj/structure/reflector/single/anchored{
- dir = 10
+"jkn" = (
+/obj/structure/sign/directions/engineering/directional/north{
+ pixel_y = 35;
+ dir = 4
},
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
+/obj/structure/sign/directions/medical/directional/north{
+ pixel_y = 28;
+ dir = 4
+ },
+/obj/structure/sign/directions/security/directional/north{
+ pixel_y = 21;
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"jko" = (
/turf/open/floor/iron/dark/smooth_large,
/area/station/security/brig)
@@ -26201,6 +26757,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"jmB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/dirt,
+/obj/structure/railing/wooden_fencing{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/wood/large,
+/area/station/biodome/aft)
"jmI" = (
/obj/machinery/door/airlock/command/glass{
name = "Bridge"
@@ -26273,6 +26842,13 @@
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/station/maintenance/aft/upper)
+"joK" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/iron/dark,
+/area/station/science/research)
"joP" = (
/obj/machinery/airalarm/directional/south,
/obj/machinery/computer/order_console/mining,
@@ -26345,11 +26921,6 @@
/obj/structure/table/wood/poker,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"jpW" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"jqn" = (
/obj/structure/table,
/obj/item/computer_disk{
@@ -26485,16 +27056,6 @@
},
/turf/open/floor/iron/dark,
/area/station/security/brig/entrance)
-"jrI" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 6
- },
-/turf/open/floor/iron/smooth_half,
-/area/station/security/brig)
"jrK" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -26541,11 +27102,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/department/science)
-"jsF" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
+"jsJ" = (
+/obj/effect/spawner/random/trash/garbage{
+ spawn_scatter_radius = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"jsO" = (
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
@@ -26634,12 +27199,6 @@
},
/turf/open/floor/wood,
/area/station/cargo/office)
-"juR" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"juY" = (
/obj/machinery/door/airlock{
id_tag = "Dorm8";
@@ -26904,6 +27463,18 @@
},
/turf/open/floor/iron/terracotta/small,
/area/station/service/barber)
+"jzL" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/right/directional/north{
+ name = "Hydroponics Desk";
+ req_access = list("hydroponics")
+ },
+/obj/structure/desk_bell{
+ pixel_x = 7
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/stone,
+/area/station/service/hydroponics)
"jzR" = (
/obj/structure/closet,
/obj/effect/spawner/random/maintenance,
@@ -27038,6 +27609,13 @@
},
/turf/open/openspace,
/area/station/ai_monitored/turret_protected/ai)
+"jCm" = (
+/obj/structure/transit_tube,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"jCu" = (
/turf/open/floor/stone,
/area/station/maintenance/department/security/brig)
@@ -27084,10 +27662,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white/diagonal,
/area/station/science/robotics/lab)
-"jDs" = (
-/obj/effect/decal/cleanable/ash/large,
-/turf/open/floor/grass,
-/area/station/biodome/aft)
"jDt" = (
/obj/machinery/door/airlock{
name = "Cleaning Closet"
@@ -27253,10 +27827,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/cargo/storage)
-"jGx" = (
-/obj/machinery/light/directional/north,
-/turf/open/floor/stone,
-/area/station/hallway/primary/starboard)
"jGz" = (
/obj/structure/table/wood,
/obj/item/bouquet/rose,
@@ -27369,12 +27939,6 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
-"jIl" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/cable,
-/turf/open/floor/plating,
-/area/station/engineering/storage)
"jIp" = (
/obj/machinery/door/airlock/security/glass{
name = "Permabrig Visitation"
@@ -27463,15 +28027,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/white/small,
/area/station/maintenance/central/greater)
-"jKG" = (
-/obj/effect/turf_decal/trimline/red/filled/line,
-/obj/structure/table,
-/obj/machinery/recharger{
- pixel_y = 4
- },
-/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/brig)
"jKM" = (
/turf/closed/wall,
/area/station/commons/vacant_room/commissary)
@@ -27756,6 +28311,21 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"jPb" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/loading_area/white,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/door/window/elevator/left/directional/north{
+ elevator_mode = 1;
+ transport_linked_id = "biodome_science_lift"
+ },
+/turf/open/floor/iron/dark,
+/area/station/science/research)
"jPg" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -27864,6 +28434,13 @@
},
/turf/open/floor/iron/white/smooth_large,
/area/station/service/hydroponics)
+"jRC" = (
+/obj/effect/turf_decal/siding/dark_green/corner,
+/obj/effect/turf_decal/siding/dark_green/corner{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"jRX" = (
/turf/open/floor/iron/terracotta,
/area/station/hallway/primary/aft)
@@ -27933,18 +28510,6 @@
dir = 1
},
/area/station/science/lab)
-"jSF" = (
-/obj/structure/sign/painting/library{
- pixel_x = 32
- },
-/obj/machinery/camera/directional/east{
- c_tag = "Service - Museum Lounge"
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"jSN" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/smooth_large,
@@ -28056,12 +28621,6 @@
},
/turf/open/floor/iron/terracotta,
/area/station/hallway/secondary/construction/engineering)
-"jUO" = (
-/obj/machinery/camera/directional/south{
- c_tag = "Hallway - Checkpoint"
- },
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"jUR" = (
/obj/effect/turf_decal/tile/purple/anticorner/contrasted{
dir = 4
@@ -28081,16 +28640,6 @@
/obj/effect/turf_decal/tile/yellow/half/contrasted,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"jVe" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/door/firedoor,
-/obj/structure/cable,
-/obj/machinery/door/airlock/wood{
- name = "Library"
- },
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"jVi" = (
/obj/structure/rack,
/obj/item/storage/box/lights/tubes,
@@ -28133,12 +28682,6 @@
dir = 4
},
/area/station/commons/fitness)
-"jVT" = (
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/openspace,
-/area/station/hallway/primary/aft)
"jVW" = (
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/poddoor/shutters/window/preopen{
@@ -28229,14 +28772,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
-"jXA" = (
-/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{
- dir = 4
- },
-/obj/machinery/firealarm/directional/east,
-/obj/machinery/power/shieldwallgen,
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"jXI" = (
/obj/machinery/door/window/left/directional/south{
name = "Incoming Mail";
@@ -28296,6 +28831,11 @@
/obj/effect/turf_decal/box/corners,
/turf/open/floor/engine,
/area/station/engineering/atmos/hfr_room)
+"jYg" = (
+/obj/structure/sign/warning/cold_temp/directional/north,
+/obj/machinery/chem_master/condimaster,
+/turf/open/floor/iron/white,
+/area/station/service/kitchen/coldroom)
"jYi" = (
/obj/effect/spawner/random/structure/crate,
/turf/open/floor/plating,
@@ -28434,6 +28974,14 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/pumproom)
+"kaz" = (
+/obj/structure/sign/departments/lawyer/directional/east,
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/stone,
+/area/station/hallway/primary/starboard)
"kaG" = (
/obj/structure/closet/secure_closet/hydroponics,
/obj/machinery/light/small/directional/west,
@@ -28459,17 +29007,21 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"kaT" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"kaV" = (
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/commons/toilet)
+"kbb" = (
+/obj/machinery/duct,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"kbd" = (
/obj/structure/cable,
/obj/effect/spawner/random/trash/garbage{
@@ -28485,6 +29037,15 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"kbs" = (
+/obj/structure/transit_tube/curved/flipped{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"kbF" = (
/turf/open/floor/bamboo/tatami,
/area/station/commons/lounge)
@@ -28500,13 +29061,6 @@
/obj/item/stack/sheet/animalhide/lizard,
/turf/open/floor/plating,
/area/station/maintenance/department/cargo)
-"kcb" = (
-/obj/effect/turf_decal/bot,
-/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/smooth_large,
-/area/station/cargo/warehouse)
"kcg" = (
/turf/open/floor/plating/airless,
/area/station/asteroid)
@@ -28650,17 +29204,6 @@
},
/turf/open/floor/plating/rust,
/area/station/cargo/miningdock)
-"keR" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/window/right/directional/north{
- name = "Hydroponics Desk";
- req_access = list("hydroponics")
- },
-/obj/structure/desk_bell{
- pixel_x = 7
- },
-/turf/open/floor/stone,
-/area/station/service/hydroponics)
"keU" = (
/obj/machinery/camera/directional/south{
c_tag = "Engineering - Equipment"
@@ -28671,6 +29214,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/engineering/storage)
+"keY" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"kfd" = (
/obj/structure/lattice,
/obj/structure/transit_tube/horizontal,
@@ -28765,6 +29315,10 @@
/obj/machinery/light/directional/east,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai)
+"kgq" = (
+/obj/effect/landmark/start/bouncer,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"kgx" = (
/obj/machinery/rnd/experimentor,
/turf/open/floor/engine,
@@ -28938,11 +29492,6 @@
/obj/machinery/vending/coffee,
/turf/open/floor/iron/checker,
/area/station/service/bar/backroom)
-"kjC" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/station/medical/chemistry)
"kjE" = (
/obj/structure/table/wood,
/mob/living/carbon/human/species/monkey/punpun,
@@ -29026,11 +29575,6 @@
/obj/machinery/duct,
/turf/open/floor/iron/dark,
/area/station/science/research)
-"kkB" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/railing,
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"kkE" = (
/obj/machinery/duct,
/obj/effect/landmark/start/botanist,
@@ -29200,6 +29744,11 @@
luminosity = 2
},
/area/station/ai_monitored/command/nuke_storage)
+"kmw" = (
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/grass,
+/area/station/service/hydroponics)
"kmB" = (
/obj/item/toy/plush/lizard_plushie{
name = "Crows-the-nest"
@@ -29252,6 +29801,11 @@
},
/turf/open/openspace,
/area/station/science/xenobiology)
+"knt" = (
+/obj/machinery/light/small/directional/south,
+/obj/structure/sign/warning/gas_mask/directional/south,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"knC" = (
/obj/effect/spawner/random/trash/moisture_trap,
/obj/effect/decal/cleanable/glitter/white,
@@ -29430,6 +29984,13 @@
},
/turf/open/floor/iron/smooth_half,
/area/station/security/brig)
+"kqa" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/structure/chair_maintenance{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"kqp" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -29453,6 +30014,18 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron/white,
/area/station/medical/surgery/aft)
+"kqH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/railing/wooden_fencing{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/wood/large,
+/area/station/biodome/aft)
"kqP" = (
/obj/structure/rack,
/obj/item/crowbar/red,
@@ -29460,15 +30033,15 @@
/obj/item/wrench,
/turf/open/floor/plating,
/area/station/medical/virology)
-"kqS" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
+"kqQ" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark/smooth_edge{
- dir = 8
- },
-/area/station/engineering/transit_tube)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/random/structure/closet_empty/crate,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"kqT" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/bot_red,
@@ -29519,12 +30092,6 @@
},
/turf/open/floor/grass,
/area/station/hallway/primary/central/aft)
-"krW" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/fore)
"krZ" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/left/directional/east{
@@ -29554,6 +30121,19 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/iron/white,
/area/station/medical/chemistry)
+"ksA" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/elevator_control_panel/directional/east{
+ linked_elevator_id = "biodome_medbay_lift";
+ name = "Medbay Lift Control Panel";
+ preset_destination_names = list("2"="LowerMedbay","3"="UpperMedbay")
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/transport/linear/public,
+/turf/open/floor/plating/elevatorshaft,
+/area/station/medical/medbay/central)
"ksO" = (
/obj/structure/barricade/wooden,
/turf/open/misc/asteroid,
@@ -29591,26 +30171,6 @@
},
/turf/open/misc/asteroid,
/area/station/cargo/miningdock)
-"kty" = (
-/obj/effect/turf_decal/delivery,
-/obj/structure/railing{
- dir = 8
- },
-/obj/machinery/light/cold/directional/south,
-/obj/structure/transport/linear/public,
-/turf/open/floor/plating/elevatorshaft,
-/area/station/medical/medbay/central)
-"ktI" = (
-/obj/structure/ladder{
- name = "Cold Room Access"
- },
-/obj/machinery/door/window/right/directional/south{
- name = "Freezer";
- req_access = list("kitchen")
- },
-/obj/structure/sign/warning/cold_temp/directional/north,
-/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
-/area/station/service/kitchen/coldroom)
"ktL" = (
/obj/machinery/holopad,
/obj/machinery/keycard_auth{
@@ -29724,6 +30284,12 @@
/obj/structure/transport/linear/public,
/turf/open/floor/plating/elevatorshaft,
/area/station/hallway/secondary/construction/engineering)
+"kvv" = (
+/obj/effect/turf_decal/siding/green{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/station/service/hydroponics/garden)
"kvz" = (
/obj/machinery/requests_console/auto_name/directional/north,
/turf/open/floor/wood/large,
@@ -29804,13 +30370,6 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
-"kwB" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/openspace,
-/area/station/service/hydroponics)
"kwM" = (
/obj/effect/decal/cleanable/oil/slippery,
/turf/open/floor/plating,
@@ -29838,19 +30397,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/service/abandoned_gambling_den)
-"kxg" = (
-/obj/structure/ladder,
-/obj/effect/turf_decal/trimline/dark_green/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/green/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner{
- dir = 1
- },
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"kxj" = (
/obj/structure/transit_tube/diagonal{
dir = 8
@@ -29875,6 +30421,13 @@
/obj/effect/spawner/random/food_or_drink/booze,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/maintenance/department/cargo)
+"kxP" = (
+/obj/effect/turf_decal/tile/neutral/half{
+ dir = 4
+ },
+/obj/machinery/vending/dorms,
+/turf/open/floor/iron,
+/area/station/commons/locker)
"kxR" = (
/obj/item/radio/intercom/directional/west,
/obj/effect/turf_decal/tile/yellow/half/contrasted{
@@ -29909,6 +30462,14 @@
},
/turf/open/floor/iron/dark,
/area/station/science/ordnance)
+"kyj" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/effect/landmark/start/engineering_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/engineering)
"kym" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -29951,6 +30512,13 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
+"kyP" = (
+/obj/machinery/door/airlock/external{
+ name = "Common Mining Dock"
+ },
+/obj/effect/landmark/navigate_destination/dockpublicmining,
+/turf/open/floor/plating,
+/area/station/hallway/secondary/exit/departure_lounge)
"kze" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 4
@@ -29958,18 +30526,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/aisat/foyer)
-"kzz" = (
-/obj/structure/closet/radiation,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/iron/dark,
-/area/station/engineering/supermatter/room)
-"kzF" = (
-/obj/machinery/duct,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/freezer,
-/area/station/commons/toilet)
"kzM" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -29982,10 +30538,6 @@
/obj/structure/chair/sofa/bench/left,
/turf/open/floor/iron/white/smooth_large,
/area/station/service/kitchen/diner)
-"kzZ" = (
-/obj/machinery/light/directional/north,
-/turf/open/floor/iron,
-/area/station/security/processing)
"kAb" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -30062,14 +30614,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"kBa" = (
-/obj/machinery/firealarm/directional/east,
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"kBd" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -30174,6 +30718,13 @@
},
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
+"kDa" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/closet/crate{
+ icon_state = "crateopen"
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"kDe" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -30194,6 +30745,11 @@
},
/turf/open/floor/iron,
/area/station/science/research)
+"kDk" = (
+/obj/structure/sign/warning/gas_mask/directional/south,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/iron/dark,
+/area/station/engineering/supermatter/room)
"kDp" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/segment{
@@ -30212,12 +30768,6 @@
/mob/living/basic/mining/hivelord,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
-"kDJ" = (
-/obj/effect/turf_decal/bot,
-/obj/item/crowbar,
-/obj/item/screwdriver,
-/turf/open/floor/iron/smooth_large,
-/area/station/cargo/warehouse)
"kDK" = (
/obj/structure/sign/warning/directional/east,
/turf/open/openspace,
@@ -30232,13 +30782,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/lobby)
-"kDP" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"kDV" = (
/obj/machinery/portable_atmospherics/canister/plasma,
/turf/open/floor/iron/white,
@@ -30260,14 +30803,6 @@
/obj/effect/spawner/random/engineering/tracking_beacon,
/turf/open/floor/iron,
/area/station/commons/dorms)
-"kEE" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/landmark/start/depsec/science,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/science)
"kEG" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -30340,6 +30875,12 @@
"kFW" = (
/turf/closed/wall/r_wall,
/area/station/science/server)
+"kGn" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"kGp" = (
/obj/effect/mapping_helpers/airlock/access/all/command/general,
/obj/machinery/door/airlock/command{
@@ -30351,6 +30892,29 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/command/meeting_room)
+"kGu" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/closet{
+ name = "Beekeeper Uniform"
+ },
+/obj/item/melee/flyswatter,
+/obj/item/clothing/head/utility/beekeeper_head,
+/obj/item/clothing/suit/utility/beekeeper_suit,
+/obj/effect/turf_decal/trimline/dark_green/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/green/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/item/bee_smoker,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"kGO" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -30526,15 +31090,6 @@
/obj/item/binoculars,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"kIW" = (
-/obj/structure/chair/sofa/corp/left{
- dir = 8;
- pixel_x = -2;
- pixel_y = 1
- },
-/obj/structure/cable,
-/turf/open/floor/bamboo/tatami,
-/area/station/hallway/secondary/service)
"kJc" = (
/obj/machinery/door/airlock/public/glass{
name = "Courtroom"
@@ -30557,14 +31112,6 @@
/obj/effect/spawner/random/engineering/tracking_beacon,
/turf/open/floor/iron,
/area/station/cargo/storage)
-"kJu" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Atmos to Loop"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"kJF" = (
/obj/structure/sign/gym/mirrored/right,
/turf/closed/wall,
@@ -30587,6 +31134,19 @@
/obj/item/paper_bin/bundlenatural,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
+"kJV" = (
+/obj/effect/turf_decal/trimline/dark_green/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/green/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner{
+ dir = 1
+ },
+/obj/structure/railing,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"kJY" = (
/obj/effect/turf_decal/weather/dirt{
dir = 8
@@ -30723,6 +31283,10 @@
/obj/structure/cable,
/turf/open/floor/stone,
/area/station/biodome/aft)
+"kMk" = (
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/station/biodome/aft)
"kMo" = (
/obj/machinery/camera/directional/east{
c_tag = "Service - Cold Room"
@@ -30790,13 +31354,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"kNc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/station/hallway/primary/central)
"kNf" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -30804,6 +31361,14 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/medical/chemistry)
+"kNg" = (
+/obj/structure/table,
+/obj/item/shovel,
+/obj/item/storage/box/emptysandbags,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/sign/warning/secure_area/directional/north,
+/turf/open/floor/iron/dark,
+/area/station/command/gateway)
"kNm" = (
/obj/machinery/button/door/directional/south{
id = "nsminingdorm2";
@@ -30891,6 +31456,12 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron/white,
/area/station/medical/surgery/aft)
+"kOA" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"kOE" = (
/obj/item/stack/tile/carpet/stellar,
/turf/open/floor/plating,
@@ -30929,14 +31500,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/carpet/black,
/area/station/security/prison)
-"kPl" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"kPB" = (
/obj/structure/closet/firecloset,
/turf/open/floor/iron,
@@ -31277,6 +31840,14 @@
},
/turf/open/floor/carpet,
/area/station/command/heads_quarters/qm)
+"kUp" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"kUt" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -31312,6 +31883,15 @@
},
/turf/open/floor/wood/large,
/area/station/hallway/secondary/service)
+"kUX" = (
+/obj/structure/table,
+/obj/effect/spawner/random/food_or_drink/donkpockets{
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/weather/dirt,
+/obj/structure/cable,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"kUY" = (
/turf/open/floor/wood/large,
/area/station/maintenance/starboard/central)
@@ -31367,11 +31947,6 @@
/obj/machinery/telecomms/bus/preset_four,
/turf/open/floor/iron/dark/telecomms,
/area/station/tcommsat/server)
-"kXb" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
"kXn" = (
/obj/machinery/airalarm/directional/east,
/obj/structure/table,
@@ -31406,6 +31981,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/stone,
/area/station/biodome/fore)
+"kXY" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/small,
+/area/station/security/mechbay)
"kYa" = (
/obj/machinery/conveyor_switch/oneway{
dir = 8;
@@ -31475,11 +32056,6 @@
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
-"kZi" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
"kZk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
@@ -31517,6 +32093,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"kZH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/barricade/wooden,
+/turf/open/floor/wood/large,
+/area/station/hallway/secondary/service)
"kZL" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -31571,6 +32154,12 @@
},
/turf/open/floor/iron/dark,
/area/station/science/ordnance/testlab)
+"laI" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/station/biodome)
"lbc" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -31591,6 +32180,15 @@
},
/turf/open/floor/grass,
/area/station/biodome/fore)
+"lbH" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/sign/warning/electric_shock{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/bouncer,
+/turf/open/floor/catwalk_floor/iron_smooth,
+/area/station/maintenance/department/crew_quarters/bar)
"lbL" = (
/obj/structure/window/reinforced/spawner/directional/south,
/obj/machinery/camera/motion/directional/west{
@@ -31598,6 +32196,15 @@
},
/turf/open/floor/iron/stairs/medium,
/area/station/command/gateway)
+"lbQ" = (
+/obj/structure/railing,
+/obj/machinery/conveyor{
+ id = "mining";
+ dir = 1
+ },
+/obj/machinery/brm,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"lbS" = (
/obj/effect/spawner/structure/window,
/obj/structure/railing,
@@ -31693,6 +32300,11 @@
/obj/structure/tank_holder/oxygen,
/turf/open/floor/iron,
/area/station/tcommsat/computer)
+"ldB" = (
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/structure/window/spawner/directional/north,
+/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
+/area/station/service/kitchen/coldroom)
"ldC" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -31718,6 +32330,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/disposal)
+"ldQ" = (
+/obj/structure/closet/secure_closet/security/sec,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"ldW" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/trimline/green/line,
@@ -31742,6 +32361,12 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/smooth_large,
/area/station/maintenance/radshelter/civil)
+"lei" = (
+/obj/structure/sign/painting/library{
+ pixel_x = 32
+ },
+/turf/open/floor/wood/large,
+/area/station/service/library/lounge)
"lek" = (
/obj/structure/bonfire/dense,
/turf/open/misc/asteroid/airless,
@@ -31769,36 +32394,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/carpet/black,
/area/station/service/chapel/funeral)
-"lex" = (
-/obj/structure/table,
-/obj/item/book/manual/wiki/robotics_cyborgs{
- pixel_x = 2;
- pixel_y = 5
- },
-/obj/item/reagent_containers/cup/beaker/large,
-/obj/item/storage/medkit{
- pixel_x = 7;
- pixel_y = -3
- },
-/obj/item/storage/medkit{
- pixel_x = 7;
- pixel_y = -3
- },
-/obj/item/healthanalyzer{
- pixel_x = -3;
- pixel_y = -4
- },
-/obj/item/healthanalyzer{
- pixel_x = -3;
- pixel_y = -4
- },
-/obj/effect/turf_decal/tile/dark_red/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/white/smooth_edge{
- dir = 4
- },
-/area/station/science/robotics/lab)
"ley" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -31840,6 +32435,28 @@
},
/turf/open/floor/wood/large,
/area/station/commons/lounge)
+"lfc" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/wood/large,
+/area/station/biodome/aft)
+"lfd" = (
+/obj/effect/turf_decal/loading_area/white,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/window/elevator/left/directional/north{
+ elevator_mode = 1;
+ transport_linked_id = "biodome_science_lift"
+ },
+/turf/open/floor/iron/dark,
+/area/station/science/research)
"lfp" = (
/obj/structure/closet/secure_closet/medical2,
/turf/open/floor/iron/white,
@@ -31992,6 +32609,13 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
/area/station/science/ordnance/office)
+"lip" = (
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/security_medic,
+/turf/open/floor/iron/white,
+/area/station/security/medical)
"liq" = (
/obj/structure/cable,
/obj/machinery/firealarm/directional/north,
@@ -32004,6 +32628,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/station/maintenance/department/chapel)
+"liQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/conveyor{
+ id = "mining";
+ dir = 8
+ },
+/obj/machinery/bouldertech/refinery,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"liW" = (
/obj/machinery/atmospherics/components/binary/tank_compressor,
/obj/effect/turf_decal/delivery,
@@ -32095,6 +32728,12 @@
/obj/effect/landmark/start/hangover/closet,
/turf/open/floor/grass,
/area/station/biodome/fore)
+"lkf" = (
+/obj/structure/closet/secure_closet/blueshield,
+/obj/item/storage/medkit/tactical/blueshield,
+/obj/structure/window/reinforced/spawner/directional/south,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/command/heads_quarters/blueshield)
"lkg" = (
/obj/structure/table,
/obj/item/paper_bin{
@@ -32142,17 +32781,6 @@
},
/turf/open/floor/iron/dark/smooth_edge,
/area/station/engineering/transit_tube)
-"lkY" = (
-/obj/machinery/door/airlock/external{
- name = "External Access"
- },
-/obj/effect/mapping_helpers/airlock/access/all/command/minisat,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/plating,
-/area/station/engineering/transit_tube)
"lla" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 1
@@ -32174,16 +32802,6 @@
/obj/structure/cable,
/turf/open/floor/grass,
/area/station/biodome/fore)
-"lli" = (
-/obj/machinery/door/airlock/command{
- name = "Captain's Quarters"
- },
-/obj/effect/mapping_helpers/airlock/access/all/command/captain,
-/obj/effect/turf_decal/siding/yellow{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/station/command/bridge)
"llr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -32315,9 +32933,6 @@
"loB" = (
/turf/closed/wall/r_wall/fakewood,
/area/station/security/brig/entrance)
-"loD" = (
-/turf/open/floor/carpet/blue,
-/area/station/security/processing)
"loH" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -32628,11 +33243,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"lsD" = (
-/obj/machinery/chem_master/condimaster,
-/obj/effect/turf_decal/tile/dark_green/opposingcorners,
-/turf/open/floor/iron/white,
-/area/station/service/kitchen)
"lsE" = (
/obj/effect/spawner/random/structure/crate,
/turf/open/floor/plating,
@@ -32652,12 +33262,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/security/brig)
-"ltx" = (
-/obj/effect/spawner/random/trash/garbage,
-/obj/effect/turf_decal/delivery/red,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"lty" = (
/turf/open/floor/plating/plasma,
/area/station/maintenance/space_hut/plasmaman)
@@ -32672,23 +33276,12 @@
},
/turf/open/floor/iron/white,
/area/station/science/ordnance)
-"lua" = (
-/obj/structure/ladder{
- name = "Cold Room Access"
- },
-/obj/effect/turf_decal/tile/dark_green/opposingcorners,
-/turf/open/floor/iron/white,
-/area/station/service/kitchen)
"lue" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 5
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"lul" = (
-/obj/structure/sign/poster/official/obey/directional/north,
-/turf/open/floor/iron,
-/area/station/security/processing)
"lun" = (
/turf/open/floor/glass/reinforced,
/area/station/maintenance/aft/upper)
@@ -32897,11 +33490,6 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating,
/area/station/maintenance/department/science)
-"lxV" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/red/filled/corner,
-/turf/open/floor/iron/smooth_large,
-/area/station/security/brig)
"lxZ" = (
/obj/machinery/camera/directional/west{
c_tag = "AI Minisat - Upper Chamber Port";
@@ -32923,6 +33511,11 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"lyh" = (
+/obj/machinery/photocopier,
+/obj/machinery/light/directional/east,
+/turf/open/floor/wood,
+/area/station/service/lawoffice)
"lyi" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/turf/open/floor/circuit/telecomms/server,
@@ -32974,6 +33567,12 @@
dir = 4
},
/area/station/medical/medbay/central)
+"lyA" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/railing/corner,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"lyC" = (
/obj/effect/landmark/start/hangover,
/turf/open/floor/grass,
@@ -33032,12 +33631,15 @@
},
/turf/open/floor/iron/smooth_large,
/area/station/security/brig)
-"lzr" = (
-/obj/effect/turf_decal/siding/dark{
- dir = 6
+"lzl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/machinery/camera/directional/south{
+ c_tag = "Hallway - Checkpoint"
},
/turf/open/floor/iron,
-/area/station/security/prison)
+/area/station/hallway/primary/port)
"lzw" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/closed/wall/r_wall,
@@ -33061,19 +33663,6 @@
/obj/item/shovel/spade,
/turf/open/misc/asteroid,
/area/station/security/prison/garden)
-"lzQ" = (
-/obj/machinery/airalarm/directional/east,
-/obj/structure/table,
-/obj/machinery/recharger{
- pixel_x = -5;
- pixel_y = -3
- },
-/obj/item/hand_labeler{
- pixel_x = 8;
- pixel_y = 10
- },
-/turf/open/floor/iron,
-/area/station/security/processing)
"lzU" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -33091,6 +33680,15 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"lAb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/siding/dark_green/corner{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"lAe" = (
/obj/structure/marker_beacon/jade,
/turf/open/floor/plating/airless,
@@ -33107,6 +33705,18 @@
/obj/machinery/status_display/evac/directional/north,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"lAC" = (
+/obj/machinery/camera/directional/north{
+ c_tag = "Security Post - Medbay"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 1
+ },
+/obj/effect/landmark/start/orderly,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/medical)
"lAD" = (
/obj/effect/turf_decal/siding/dark{
dir = 9
@@ -33114,6 +33724,10 @@
/obj/machinery/light/floor,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
+"lAH" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"lAL" = (
/obj/machinery/door/airlock/medical/glass{
name = "Break Room"
@@ -33177,6 +33791,17 @@
/obj/structure/extinguisher_cabinet/directional/south,
/turf/open/floor/grass,
/area/station/biodome)
+"lBS" = (
+/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/duct,
+/obj/machinery/status_display/evac/directional/south,
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"lBW" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
@@ -33322,13 +33947,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"lDV" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/fore)
"lDW" = (
/obj/structure/spider/stickyweb,
/turf/open/openspace,
@@ -33393,13 +34011,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
-"lEZ" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 5
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"lFj" = (
/obj/structure/railing{
dir = 8
@@ -33507,15 +34118,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/freezer,
/area/station/security/prison/shower)
-"lGt" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/sofa/bench/right{
- dir = 1
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/primary/central)
"lGA" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -33534,14 +34136,6 @@
},
/turf/open/floor/iron/grimy,
/area/station/service/chapel/office)
-"lGQ" = (
-/obj/structure/extinguisher_cabinet/directional/east,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/item/banner/command/mundane,
-/turf/open/floor/wood,
-/area/station/command/bridge)
"lGR" = (
/obj/machinery/light/small/directional/east,
/obj/effect/spawner/random/trash/janitor_supplies,
@@ -33609,11 +34203,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/dark,
/area/station/command/teleporter)
-"lHu" = (
-/obj/structure/flora/bush/flowers_pp/style_random,
-/obj/structure/sign/departments/botany/directional/north,
-/turf/open/floor/grass,
-/area/station/biodome/fore)
"lHw" = (
/obj/item/trash/champagne_cork/sabrage,
/turf/open/water/jungle/biodome,
@@ -33683,6 +34272,14 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/terracotta,
/area/station/hallway/secondary/construction/engineering)
+"lJs" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/transport/linear/public,
+/turf/open/floor/plating/elevatorshaft,
+/area/station/security/brig)
"lJu" = (
/obj/structure/chair/office/light{
dir = 4
@@ -33714,6 +34311,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2,
/turf/open/floor/plating/airless,
/area/station/asteroid)
+"lJF" = (
+/obj/effect/landmark/start/security_medic,
+/turf/open/floor/iron/white,
+/area/station/security/medical)
"lJT" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -33727,21 +34328,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
-"lKb" = (
-/obj/machinery/requests_console/directional/north{
- department = "Security";
- name = "Security Requests Console"
- },
-/obj/effect/mapping_helpers/requests_console/supplies,
-/obj/effect/mapping_helpers/requests_console/assistance,
-/obj/structure/cable,
-/obj/effect/landmark/start/depsec/supply,
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/security/checkpoint/supply)
"lKo" = (
/obj/structure/plasticflaps,
/obj/machinery/conveyor{
@@ -33750,15 +34336,6 @@
},
/turf/open/floor/plating,
/area/station/cargo/storage)
-"lKy" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/light/directional/east,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/structure/cable/layer3,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"lKG" = (
/obj/structure/marker_beacon/indigo,
/turf/open/floor/engine/hull/reinforced,
@@ -33842,6 +34419,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/wood/large,
/area/station/hallway/primary/aft)
+"lNp" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plating,
+/area/station/service/library/lounge)
"lNr" = (
/obj/structure/chair/sofa/bench/left{
dir = 8
@@ -34072,12 +34657,6 @@
/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/open/floor/plating,
/area/station/maintenance/solars/starboard/fore)
-"lQH" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/aft)
"lQM" = (
/obj/structure/table,
/obj/item/storage/toolbox/mechanical{
@@ -34187,6 +34766,15 @@
/obj/structure/marker_beacon/olive,
/turf/open/space/openspace,
/area/space/nearstation)
+"lSS" = (
+/obj/effect/turf_decal/trimline/dark/line{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/station/hallway/primary/aft)
"lTm" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/firedoor/heavy,
@@ -34224,13 +34812,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos)
-"lTT" = (
-/obj/machinery/door/airlock/external{
- name = "Common Mining Dock"
- },
-/obj/effect/landmark/navigate_destination,
-/turf/open/floor/plating,
-/area/station/hallway/secondary/exit/departure_lounge)
"lTW" = (
/obj/item/bedsheet/medical{
dir = 8
@@ -34244,6 +34825,16 @@
/obj/effect/turf_decal/tile/green/full,
/turf/open/floor/iron/smooth_large,
/area/station/medical/virology)
+"lUd" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Cooling Loop Bypass"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"lUf" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -34366,18 +34957,18 @@
},
/turf/open/floor/plating,
/area/station/cargo/storage)
-"lWj" = (
-/obj/effect/turf_decal/siding/dark{
- dir = 1
- },
-/obj/structure/cable,
-/turf/open/floor/iron/white/diagonal,
-/area/station/science/robotics/lab)
"lWl" = (
/obj/effect/spawner/random/engineering/vending_restock,
/obj/effect/spawner/random/engineering/vending_restock,
/turf/open/floor/plating,
/area/station/maintenance/department/science)
+"lWy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/floor/catwalk_floor/iron,
+/area/station/biodome/aft)
"lWz" = (
/obj/structure/table,
/obj/item/stack/medical/mesh,
@@ -34429,12 +35020,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai)
-"lXe" = (
-/obj/structure/extinguisher_cabinet/directional/south,
-/obj/effect/turf_decal/trimline/red/filled/line,
-/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
-/turf/open/floor/iron/smooth_large,
-/area/station/security/brig)
"lXk" = (
/obj/structure/broken_flooring/corner/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -34458,11 +35043,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/medbay/lobby)
-"lXt" = (
-/obj/structure/closet/secure_closet/security/sec,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
"lXz" = (
/obj/docking_port/stationary{
dheight = 1;
@@ -34521,14 +35101,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"lYf" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/obj/effect/landmark/start/depsec/engineering,
-/obj/effect/turf_decal/trimline/red/filled/line,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/engineering)
"lYh" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -34576,26 +35148,20 @@
},
/turf/open/floor/iron,
/area/station/science/research)
-"lZs" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/camera/directional/east{
- c_tag = "Engineering - Supermatter Port";
- network = list("ss13","engine")
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/machinery/airalarm/directional/east,
-/obj/effect/mapping_helpers/airalarm/engine_access,
-/obj/structure/cable/layer3,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter)
"lZD" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/turf/open/floor/iron,
/area/station/engineering/lobby)
+"lZP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/landmark/start/orderly,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/medical)
"lZQ" = (
/obj/structure/table/glass,
/obj/item/stack/medical/gauze{
@@ -34781,10 +35347,12 @@
/obj/effect/turf_decal/tile/red/anticorner/contrasted,
/turf/open/floor/iron/dark/textured,
/area/station/security/interrogation)
-"mbI" = (
-/obj/docking_port/stationary/escape_pod,
-/turf/open/space/basic,
-/area/space)
+"mbM" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/station/biodome/fore)
"mbY" = (
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 4
@@ -34798,6 +35366,12 @@
},
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/engineering/atmos/mix)
+"mcy" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/bot,
+/obj/structure/lattice/catwalk,
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"mcE" = (
/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{
dir = 8
@@ -34966,15 +35540,6 @@
/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner,
/turf/open/floor/engine,
/area/station/science/xenobiology)
-"meW" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable,
-/obj/machinery/light/directional/west,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"meX" = (
/obj/item/shard,
/obj/item/shard,
@@ -34997,23 +35562,10 @@
/obj/effect/turf_decal/weather/sand,
/turf/open/floor/wood/large,
/area/station/biodome/fore)
-"mfv" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/turf/open/floor/iron/white,
-/area/station/science/ordnance)
"mfx" = (
/obj/machinery/monkey_recycler,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"mfE" = (
-/obj/effect/turf_decal/trimline/dark_blue/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"mfK" = (
/obj/structure/sign/poster/official/safety_eye_protection/directional/north,
/obj/item/kirbyplants/random,
@@ -35079,6 +35631,15 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"mgO" = (
+/obj/machinery/pdapainter/research,
+/obj/machinery/newscaster/directional/north,
+/obj/effect/turf_decal/tile/purple/anticorner{
+ dir = 1
+ },
+/obj/machinery/posialert/directional/west,
+/turf/open/floor/iron/dark,
+/area/station/command/heads_quarters/rd)
"mgZ" = (
/mob/living/basic/pig,
/obj/structure/cable,
@@ -35184,6 +35745,16 @@
dir = 4
},
/area/station/commons/lounge)
+"miR" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/effect/landmark/start/engineering_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/engineering)
"mjk" = (
/obj/machinery/button/door/directional/east{
id = "maintwarehouse";
@@ -35254,20 +35825,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"mjF" = (
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/engineering/main)
-"mjV" = (
-/obj/machinery/door/firedoor/border_only,
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/openspace,
-/area/station/hallway/primary/aft)
"mkb" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 8
@@ -35334,12 +35891,6 @@
/obj/effect/spawner/random/food_or_drink/condiment,
/turf/open/floor/stone,
/area/station/maintenance/fore/greater)
-"mlo" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/spawner/random/structure/closet_empty/crate,
-/obj/effect/spawner/random/maintenance/five,
-/turf/open/floor/iron/smooth_large,
-/area/station/cargo/warehouse)
"mlP" = (
/obj/structure/rack,
/obj/item/clothing/gloves/color/fyellow,
@@ -35405,10 +35956,6 @@
},
/turf/open/floor/plating,
/area/station/construction/mining/aux_base)
-"mmP" = (
-/obj/effect/landmark/start/security_officer,
-/turf/open/floor/iron/smooth_large,
-/area/station/security/lockers)
"mmT" = (
/obj/structure/table,
/turf/open/floor/iron/dark,
@@ -35583,12 +36130,6 @@
dir = 1
},
/area/station/science/lab)
-"mqf" = (
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/biodome/aft)
"mqk" = (
/obj/item/trash/can/food/pine_nuts,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -35623,11 +36164,6 @@
/obj/structure/window/spawner/directional/south,
/turf/open/floor/wood,
/area/station/commons/vacant_room/office)
-"mqy" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/dark_green,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"mqA" = (
/obj/machinery/camera/directional/west{
c_tag = "Civilian - Disposals"
@@ -35695,17 +36231,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/main)
-"mrL" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/dark_green/filled/line,
-/obj/effect/turf_decal/trimline/green/line,
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"msd" = (
/obj/effect/turf_decal/trimline/red/real_red/line{
dir = 4
@@ -35858,19 +36383,6 @@
/obj/effect/turf_decal/tile/purple/half/contrasted,
/turf/open/floor/iron/dark,
/area/station/command/heads_quarters/rd)
-"mvc" = (
-/obj/structure/table,
-/obj/item/poster/random_official{
- pixel_y = 1
- },
-/obj/item/poster/random_official{
- pixel_y = 6
- },
-/obj/item/poster/random_official{
- pixel_y = 10
- },
-/turf/open/floor/wood,
-/area/station/security/brig)
"mvg" = (
/obj/docking_port/stationary{
dir = 8;
@@ -35891,6 +36403,13 @@
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
+"mvB" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/curtain/cloth{
+ color = "#404040"
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"mvF" = (
/obj/item/shovel,
/turf/open/misc/beach/sand,
@@ -36054,22 +36573,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"myU" = (
-/obj/structure/table,
-/obj/item/storage/toolbox/electrical{
- pixel_y = 5
- },
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -1;
- pixel_y = -1
- },
-/obj/item/clothing/glasses/meson/engine,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/obj/effect/turf_decal/siding/thinplating_new/terracotta{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/engineering/storage)
"mzh" = (
/obj/structure/sign/warning/electric_shock/directional/south,
/obj/structure/hedge,
@@ -36118,6 +36621,15 @@
/obj/machinery/vending/engivend,
/turf/open/floor/iron,
/area/station/engineering/main)
+"mzx" = (
+/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/stone,
+/area/station/biodome/aft)
"mzW" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/stone,
@@ -36190,9 +36702,32 @@
"mBc" = (
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
+"mBd" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/delivery,
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/structure/transport/linear/public,
+/turf/open/floor/plating/elevatorshaft,
+/area/station/security/brig)
"mBf" = (
/turf/closed/wall/r_wall,
/area/station/maintenance/department/security/brig)
+"mBm" = (
+/obj/structure/table/reinforced,
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/construction/plumbing,
+/obj/item/construction/plumbing{
+ pixel_y = -5
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/light/directional/north,
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/medical/chemistry)
"mBn" = (
/obj/effect/spawner/random/trash/moisture,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -36200,6 +36735,12 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"mBy" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"mBE" = (
/obj/structure/table,
/obj/item/aicard{
@@ -36229,11 +36770,6 @@
/obj/effect/spawner/random/structure/girder,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"mBX" = (
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/space/basic,
-/area/space/nearstation)
"mCj" = (
/obj/item/paper/natural,
/turf/open/misc/asteroid/airless,
@@ -36262,6 +36798,16 @@
},
/turf/open/floor/engine/hull/reinforced,
/area/space/nearstation)
+"mCT" = (
+/obj/structure/sign/directions/vault/directional/north{
+ dir = 4
+ },
+/obj/structure/sign/directions/command/directional/north{
+ pixel_y = 25;
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"mDd" = (
/obj/machinery/door/airlock/atmos/glass{
name = "Atmospherics Testing Room"
@@ -36282,11 +36828,18 @@
/obj/effect/spawner/structure/window/hollow/reinforced/middle,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"mDE" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/structure/cable,
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
+"mDB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/camera/directional/east{
+ c_tag = "Engineering - Supermatter Port";
+ network = list("ss13","engine")
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"mDF" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -36319,6 +36872,14 @@
luminosity = 2
},
/area/station/ai_monitored/command/nuke_storage)
+"mEe" = (
+/obj/structure/chair/sofa/corp/left{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/mob/living/basic/pet/poppy,
+/turf/open/floor/iron,
+/area/station/engineering/lobby)
"mEp" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -36383,6 +36944,10 @@
/obj/effect/turf_decal/weather/dirt,
/turf/open/water/jungle/biodome,
/area/station/biodome)
+"mGd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"mGf" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/trimline/green/filled/warning{
@@ -36424,16 +36989,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
-"mGA" = (
-/obj/machinery/power/floodlight,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured_half{
- dir = 1
- },
-/area/station/medical/chemistry)
"mGK" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -36567,18 +37122,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/ai_monitored/turret_protected/ai_upload)
-"mIQ" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
-"mJi" = (
-/obj/structure/stairs/wood,
-/obj/structure/railing{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/station/service/hydroponics/garden)
"mJo" = (
/obj/item/fishing_rod,
/obj/machinery/camera/directional/north{
@@ -36807,6 +37350,14 @@
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"mNa" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/lattice/catwalk,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"mNl" = (
/turf/open/floor/plating/airless,
/area/space/nearstation)
@@ -36881,6 +37432,15 @@
/obj/effect/turf_decal/tile/dark_blue/full,
/turf/open/floor/iron/white/small,
/area/station/command/heads_quarters/cmo)
+"mOo" = (
+/obj/machinery/camera/directional/south{
+ c_tag = "Engineering - Supermatter Aft";
+ network = list("ss13","engine")
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"mOx" = (
/obj/effect/turf_decal/siding/wideplating_new{
dir = 8
@@ -37023,6 +37583,11 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"mRb" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"mRe" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -37254,6 +37819,14 @@
/obj/structure/flora/bush/sunny/style_random,
/turf/open/floor/grass,
/area/station/asteroid)
+"mVe" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"mVu" = (
/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{
dir = 1
@@ -37322,6 +37895,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
+"mWV" = (
+/obj/structure/flora/bush/jungle/a/style_random,
+/obj/item/stack/rods/twentyfive,
+/obj/machinery/light/directional/east,
+/turf/open/floor/grass,
+/area/station/biodome/fore)
"mXf" = (
/obj/machinery/door/airlock/research{
name = "Research Division Access"
@@ -37351,10 +37930,26 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"mXk" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"mXn" = (
/obj/machinery/firealarm/directional/south,
/turf/open/floor/glass/reinforced,
/area/station/service/chapel)
+"mXt" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/lattice/catwalk,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"mXu" = (
/obj/item/paperplane{
dir = 4
@@ -37457,15 +38052,6 @@
/obj/machinery/duct,
/turf/open/floor/plating,
/area/station/commons/toilet)
-"mZn" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/railing/wooden_fencing{
- dir = 8
- },
-/turf/open/floor/wood/large,
-/area/station/biodome/aft)
"mZo" = (
/obj/machinery/requests_console/directional/east,
/obj/effect/turf_decal/tile/neutral/full,
@@ -37493,12 +38079,6 @@
/obj/effect/turf_decal/tile/green/half/contrasted,
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"mZS" = (
-/obj/machinery/camera/directional/north{
- c_tag = "Biodome - Library Back Alley"
- },
-/turf/open/floor/grass,
-/area/station/biodome/aft)
"mZX" = (
/obj/machinery/computer/rdconsole{
dir = 4
@@ -37513,6 +38093,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/department/science)
+"naq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/service/hydroponics/garden)
"naC" = (
/obj/machinery/camera/motion/directional/north{
network = list("minisat")
@@ -37616,13 +38205,6 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
-"ncp" = (
-/obj/machinery/newscaster/directional/east,
-/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/command/bridge)
"nct" = (
/obj/effect/decal/cleanable/cobweb,
/obj/effect/spawner/random/bureaucracy,
@@ -37663,11 +38245,6 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/science/xenobiology/hallway)
-"ncM" = (
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"ncS" = (
/obj/structure/chair{
dir = 8
@@ -37809,6 +38386,14 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"neq" = (
+/obj/item/bouquet/sunflower,
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/structure/railing,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"ner" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/brown/half/contrasted{
@@ -37882,15 +38467,6 @@
},
/turf/open/floor/plating,
/area/station/cargo/storage)
-"nft" = (
-/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{
- dir = 5
- },
-/obj/machinery/light_switch/directional/east,
-/obj/structure/sign/warning/secure_area/directional/north,
-/obj/machinery/power/shieldwallgen,
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"nfx" = (
/obj/structure/table,
/obj/item/stack/sheet/plasteel{
@@ -37991,10 +38567,6 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/morgue)
-"ngQ" = (
-/obj/machinery/vending/boozeomat,
-/turf/closed/wall,
-/area/station/command/heads_quarters/nt_rep)
"nha" = (
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 4
@@ -38124,11 +38696,6 @@
/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden,
/turf/closed/wall/r_wall,
/area/station/maintenance/disposal/incinerator)
-"niY" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
"nja" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -38144,6 +38711,11 @@
},
/turf/open/floor/engine/vacuum,
/area/station/engineering/atmos)
+"njG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"njP" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/blue/half/contrasted{
@@ -38241,6 +38813,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"nlS" = (
+/obj/effect/turf_decal/tile/red/half/contrasted,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"nme" = (
/obj/structure/cable,
/turf/open/floor/stone,
@@ -38252,6 +38828,23 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/engine_smes)
+"nmo" = (
+/obj/machinery/requests_console/directional/west{
+ department = "Engineering";
+ name = "Engineering Requests Console"
+ },
+/obj/effect/mapping_helpers/requests_console/supplies,
+/obj/effect/mapping_helpers/requests_console/assistance,
+/obj/effect/turf_decal/tile/yellow/half/contrasted{
+ dir = 8
+ },
+/obj/item/flatpack{
+ board = /obj/item/circuitboard/machine/flatpacker
+ },
+/obj/structure/flatpack_cart,
+/obj/item/multitool,
+/turf/open/floor/iron,
+/area/station/engineering/lobby)
"nmy" = (
/obj/structure/lattice,
/obj/machinery/door/poddoor/massdriver_trash,
@@ -38286,22 +38879,25 @@
/obj/effect/decal/cleanable/fuel_pool,
/turf/open/floor/iron/terracotta,
/area/station/hallway/secondary/construction/engineering)
-"nnC" = (
-/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{
- dir = 5
- },
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"nnO" = (
/obj/item/storage/bag/trash,
/turf/open/floor/plating,
/area/station/security/prison/safe)
+"nnW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/station/biodome)
+"nog" = (
+/obj/structure/bookcase/random/religion,
+/obj/structure/sign/painting/library{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/wood/large,
+/area/station/service/library)
"noi" = (
/obj/machinery/airalarm/directional/east,
/obj/effect/turf_decal/tile/yellow/fourcorners,
@@ -38410,14 +39006,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/ordnance)
-"noZ" = (
-/obj/machinery/airalarm/directional/north,
-/obj/item/chair,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/lobby)
"npe" = (
/obj/effect/turf_decal/sand/plating,
/obj/item/food/grown/ash_flora/mushroom_cap,
@@ -38437,19 +39025,10 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
-"npt" = (
-/obj/docking_port/stationary/random{
- name = "lavaland";
- shuttle_id = "pod_lavaland"
- },
-/turf/open/space,
-/area/space)
-"npL" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome)
+"npD" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/openspace,
+/area/station/maintenance/port/greater)
"npP" = (
/obj/effect/turf_decal/box/white{
color = "#9FED58"
@@ -38489,6 +39068,13 @@
},
/turf/open/floor/stone,
/area/station/security/courtroom)
+"nqp" = (
+/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/stone,
+/area/station/biodome/aft)
"nqu" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -38518,6 +39104,17 @@
/obj/machinery/light/directional/west,
/turf/open/floor/grass,
/area/station/service/kitchen/diner)
+"nqJ" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/clothing/head/utility/welding,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/medical/chemistry)
"nqN" = (
/obj/structure/window/reinforced/spawner/directional/north,
/turf/open/floor/plating,
@@ -38539,15 +39136,6 @@
/obj/machinery/meter,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter)
-"nrf" = (
-/obj/machinery/door/airlock/hydroponics{
- name = "Hydroponics Storage"
- },
-/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics,
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/dark_green/full,
-/turf/open/floor/iron/dark/small,
-/area/station/service/hydroponics)
"nrm" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -38608,15 +39196,6 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/biodome)
-"nsm" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/transit_tube/curved/flipped{
- dir = 1
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/secondary/service)
"nso" = (
/obj/item/radio/intercom/directional/west,
/turf/open/floor/circuit,
@@ -38636,12 +39215,6 @@
/obj/structure/chair/sofa/right/brown,
/turf/open/floor/iron/grimy,
/area/station/hallway/secondary/entry)
-"nsD" = (
-/obj/structure/closet/secure_closet/security/sec,
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
"nsF" = (
/obj/machinery/light/small/directional/east,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
@@ -38658,6 +39231,15 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/project)
+"ntq" = (
+/obj/machinery/suit_storage_unit/security,
+/obj/machinery/light/directional/north,
+/obj/machinery/door/window/brigdoor/right/directional/south{
+ req_access = list("captain");
+ name = "Blueshield's Armory"
+ },
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/command/heads_quarters/blueshield)
"ntx" = (
/obj/machinery/camera/motion/directional/north{
c_tag = "AI - Upload"
@@ -38755,6 +39337,11 @@
},
/turf/open/floor/iron/solarpanel/airless,
/area/station/solars/starboard/fore)
+"nvO" = (
+/obj/machinery/light/dim/directional/south,
+/obj/machinery/duct,
+/turf/open/floor/iron/freezer,
+/area/station/commons/toilet)
"nvP" = (
/obj/machinery/disposal/delivery_chute{
dir = 1
@@ -38917,16 +39504,6 @@
/obj/structure/cable,
/turf/open/floor/stone,
/area/station/biodome)
-"nxZ" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/obj/machinery/power/floodlight,
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured_half{
- dir = 1
- },
-/area/station/medical/chemistry)
"nyo" = (
/obj/structure/broken_flooring/corner/directional/south,
/turf/open/floor/plating,
@@ -39030,12 +39607,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"nAj" = (
-/obj/effect/turf_decal/trimline/red/filled/corner{
- dir = 8
- },
-/turf/open/floor/iron/smooth_half,
-/area/station/security/brig)
"nAm" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -39063,6 +39634,37 @@
/obj/structure/cable,
/turf/open/floor/grass,
/area/station/service/kitchen/diner)
+"nAu" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/robotics_cyborgs{
+ pixel_x = 2;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/cup/beaker/large,
+/obj/item/storage/medkit{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/obj/item/storage/medkit{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/obj/item/healthanalyzer{
+ pixel_x = -3;
+ pixel_y = -4
+ },
+/obj/item/healthanalyzer{
+ pixel_x = -3;
+ pixel_y = -4
+ },
+/obj/effect/turf_decal/tile/dark_red/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/posialert/directional/east,
+/turf/open/floor/iron/white/smooth_edge{
+ dir = 4
+ },
+/area/station/science/robotics/lab)
"nAH" = (
/obj/machinery/light/directional/north,
/turf/open/floor/carpet/red,
@@ -39108,14 +39710,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/carpet/red,
/area/station/service/theater)
-"nBy" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 9
- },
-/obj/machinery/light/small/directional/south,
-/obj/structure/sign/warning/gas_mask/directional/south,
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
"nBE" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -39295,12 +39889,6 @@
},
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
-"nEU" = (
-/obj/machinery/computer/shuttle/labor{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/security/processing)
"nEZ" = (
/obj/machinery/duct,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -39330,15 +39918,6 @@
},
/turf/open/floor/iron,
/area/station/security/checkpoint/escape)
-"nFw" = (
-/obj/machinery/door/airlock/maintenance,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
-/obj/effect/mapping_helpers/airlock/unres,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron,
-/area/station/maintenance/port/greater)
"nFB" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/north,
@@ -39370,13 +39949,12 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
-"nGd" = (
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/status_display/evac/directional/south,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
+"nGb" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/light/directional/east,
+/turf/open/floor/stone,
+/area/station/biodome)
"nGl" = (
/obj/machinery/rnd/production/circuit_imprinter,
/obj/machinery/airalarm/directional/west,
@@ -39440,15 +40018,6 @@
/obj/effect/turf_decal/tile/blue/half/contrasted,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
-"nHj" = (
-/obj/effect/landmark/secequipment,
-/obj/effect/turf_decal/bot,
-/obj/structure/sign/poster/contraband/blood_geometer/directional/west,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"nHo" = (
/obj/structure/closet/masks,
/obj/effect/turf_decal/trimline/yellow/line{
@@ -39721,6 +40290,11 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
+"nLr" = (
+/obj/item/radio/intercom/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"nLz" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/landmark/start/prisoner,
@@ -39810,20 +40384,6 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/stone,
/area/station/hallway/primary/starboard)
-"nNe" = (
-/obj/machinery/door/firedoor/border_only,
-/turf/closed/wall/mineral/wood,
-/area/station/service/library)
-"nNh" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/landmark/navigate_destination/engineering,
-/turf/open/floor/iron/terracotta,
-/area/station/hallway/primary/aft)
"nNk" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
@@ -40190,18 +40750,19 @@
/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/engineering/atmos)
-"nSK" = (
-/obj/effect/turf_decal/siding/dark{
- dir = 10
- },
-/turf/open/floor/iron,
-/area/station/security/prison)
"nSU" = (
/obj/structure/sign/flag/pride/pan{
pixel_x = 32
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"nSV" = (
+/obj/docking_port/stationary/random{
+ name = "lavaland";
+ shuttle_id = "pod_lavaland"
+ },
+/turf/open/space/openspace,
+/area/space)
"nSZ" = (
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 1
@@ -40263,6 +40824,12 @@
},
/turf/open/floor/wood/large,
/area/station/biodome)
+"nTZ" = (
+/obj/structure/chair/sofa/bench/right{
+ dir = 1
+ },
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"nUb" = (
/obj/machinery/disposal/bin,
/obj/effect/turf_decal/siding/blue{
@@ -40531,18 +41098,19 @@
/obj/effect/spawner/random/engineering/tracking_beacon,
/turf/open/floor/engine,
/area/station/science/xenobiology)
-"nZd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/primary/central)
"nZf" = (
/obj/structure/table/wood/fancy/green,
/obj/effect/spawner/random/aimodule/harmless,
/obj/machinery/flasher/directional/north,
/turf/open/floor/circuit/green,
/area/station/ai_monitored/turret_protected/ai_upload)
+"nZi" = (
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/structure/railing,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"nZn" = (
/obj/effect/mapping_helpers/burnt_floor,
/obj/effect/turf_decal/tile/blue/fourcorners,
@@ -40561,6 +41129,19 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/medical/break_room)
+"nZA" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/button/door/directional/east{
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ req_access = list("engineering")
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"nZD" = (
/obj/structure/table,
/obj/item/storage/belt/utility,
@@ -40678,12 +41259,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
-"obq" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
"obz" = (
/obj/structure/cable,
/obj/machinery/door/firedoor,
@@ -40750,22 +41325,6 @@
"ocz" = (
/turf/closed/wall,
/area/station/service/chapel/office)
-"ocP" = (
-/obj/machinery/light/directional/south,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/pen{
- pixel_x = 4;
- pixel_y = 4
- },
-/turf/open/floor/wood,
-/area/station/security/brig)
"ocT" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -40933,18 +41492,6 @@
/obj/structure/cable/layer1,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai)
-"oeZ" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 10
- },
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/engineering)
"ofa" = (
/obj/machinery/door/airlock/maintenance{
name = "Vacant Office Maintenance"
@@ -41303,6 +41850,11 @@
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/iron/dark,
/area/station/medical/cryo)
+"olp" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/recharge_station,
+/turf/open/floor/iron,
+/area/station/engineering/lobby)
"olt" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
@@ -41311,13 +41863,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
-"olz" = (
-/obj/effect/turf_decal/siding/green/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"olA" = (
/obj/structure/table/wood,
/obj/item/radio/intercom/command,
@@ -41419,6 +41964,10 @@
},
/turf/open/floor/iron/checker,
/area/station/security/office)
+"onu" = (
+/obj/structure/sign/poster/random/directional/west,
+/turf/open/floor/grass,
+/area/station/biodome/aft)
"onx" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -41444,13 +41993,6 @@
},
/turf/open/floor/iron,
/area/station/tcommsat/computer)
-"onM" = (
-/obj/structure/chair/sofa/bench/solo{
- dir = 4
- },
-/obj/effect/turf_decal/weather/dirt,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"onV" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -41461,6 +42003,37 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood/large,
/area/station/hallway/primary/central)
+"oos" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
+"oov" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
+"ooI" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/button/door/directional/east{
+ id = "secmechbay";
+ name = "Security Mech Garage Door Controls";
+ req_access = list("security")
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "secmechbay";
+ name = "Security Mech Bay Shutters"
+ },
+/obj/effect/turf_decal/caution/stand_clear,
+/obj/effect/turf_decal/box,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/security/mechbay)
"ooL" = (
/obj/machinery/camera/directional/west{
c_tag = "Engineering - Atmos Starboard"
@@ -41520,14 +42093,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"opJ" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/filingcabinet,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"opV" = (
/obj/machinery/light/directional/east,
/turf/open/floor/iron,
@@ -41568,6 +42133,20 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/cargo/drone_bay)
+"oqC" = (
+/obj/effect/turf_decal/loading_area/white,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/door/window/elevator/left/directional/north{
+ elevator_mode = 1;
+ transport_linked_id = "biodome_science_lift"
+ },
+/turf/open/floor/iron/dark,
+/area/station/science/research)
"oqE" = (
/obj/item/kirbyplants/random,
/turf/open/floor/wood,
@@ -41864,11 +42443,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmos/hfr_room)
-"owj" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable/layer3,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"owk" = (
/obj/effect/spawner/random/structure/steam_vent,
/turf/open/floor/plating,
@@ -41929,6 +42503,15 @@
/obj/effect/turf_decal/siding/yellow,
/turf/open/floor/wood/tile,
/area/station/command/heads_quarters/captain)
+"oxT" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing/corner,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"oya" = (
/obj/machinery/air_sensor/carbon_tank,
/turf/open/floor/engine/co2,
@@ -42143,6 +42726,12 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/engineering/atmos/pumproom)
+"oAI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/closed/wall/r_wall,
+/area/station/engineering/supermatter/room)
"oAS" = (
/obj/effect/turf_decal/tile/dark_green/diagonal_centre,
/obj/structure/chair/sofa/bench/left{
@@ -42263,13 +42852,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/pharmacy)
-"oCD" = (
-/obj/structure/cable/layer3,
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/iron,
-/area/station/engineering/engine_smes)
"oCK" = (
/obj/machinery/light/warm/directional/east,
/turf/open/floor/iron/herringbone,
@@ -42297,6 +42879,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/grass,
/area/station/medical/virology)
+"oDB" = (
+/obj/item/toy/plush/beeplushie,
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/structure/railing,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"oDR" = (
/obj/machinery/air_sensor/ordnance_burn_chamber,
/turf/open/floor/engine/vacuum,
@@ -42412,6 +43002,20 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/science/circuits)
+"oFw" = (
+/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,
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/light_switch/directional/east,
+/obj/machinery/modular_computer/preset/cargochat/security{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"oFA" = (
/obj/structure/cable,
/obj/effect/turf_decal/siding/wood,
@@ -42477,13 +43081,6 @@
},
/turf/open/floor/iron,
/area/station/commons/dorms)
-"oGJ" = (
-/obj/machinery/computer/security/telescreen/entertainment/directional/west,
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
"oGU" = (
/turf/open/floor/wood/tile,
/area/station/maintenance/fore/greater)
@@ -42549,17 +43146,22 @@
/obj/structure/sign/flag/nanotrasen,
/turf/closed/wall,
/area/station/command/heads_quarters/nt_rep)
+"oHJ" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood/parquet,
+/area/station/command/heads_quarters/blueshield)
"oHW" = (
/obj/machinery/door/airlock/public/glass,
/turf/open/floor/iron/herringbone,
/area/station/hallway/primary/central)
-"oHY" = (
+"oHZ" = (
/obj/structure/cable,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/station/medical/chemistry)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/secequipment,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/lockers)
"oIc" = (
/obj/structure/closet{
name = "Evidence Closet 7"
@@ -42596,12 +43198,6 @@
},
/turf/open/floor/iron/dark,
/area/station/command/heads_quarters/rd)
-"oIr" = (
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/bamboo/tatami/black{
- dir = 4
- },
-/area/station/service/bar)
"oIv" = (
/turf/open/floor/plating/airless,
/area/station/solars/port/fore)
@@ -42645,15 +43241,6 @@
},
/turf/open/floor/wood/large,
/area/station/service/library/lounge)
-"oJQ" = (
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/machinery/meter,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"oJV" = (
/obj/structure/chair/stool/directional/north,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -42689,6 +43276,13 @@
/obj/structure/sign/flag/nanotrasen/directional/east,
/turf/open/floor/catwalk_floor/iron,
/area/station/hallway/primary/central/aft)
+"oKM" = (
+/obj/machinery/door/window/right/directional/north{
+ name = "Freezer";
+ req_access = list("kitchen")
+ },
+/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
+/area/station/service/kitchen/coldroom)
"oKN" = (
/turf/open/floor/carpet,
/area/station/cargo/lobby)
@@ -42736,21 +43330,14 @@
},
/turf/open/floor/iron/smooth_large,
/area/station/cargo/warehouse)
-"oLl" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"oLp" = (
/turf/open/floor/plating/elevatorshaft,
/area/station/maintenance/department/science)
-"oLx" = (
+"oLr" = (
+/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
+/turf/open/floor/iron/dark,
+/area/station/command/gateway)
"oLK" = (
/obj/structure/table,
/obj/structure/bedsheetbin,
@@ -42908,6 +43495,16 @@
/obj/effect/spawner/random/food_or_drink/booze,
/turf/open/floor/glass/reinforced,
/area/station/hallway/primary/starboard)
+"oOf" = (
+/obj/structure/chair/sofa/bench/solo{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/dirt,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"oOj" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -42966,6 +43563,16 @@
},
/turf/open/floor/iron,
/area/station/engineering/main)
+"oPk" = (
+/obj/machinery/door/airlock/corporate{
+ name = "Blueshield's Quarters"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/landmark/navigate_destination/autoname,
+/turf/open/floor/wood/parquet,
+/area/station/command/heads_quarters/blueshield)
"oPo" = (
/turf/open/openspace,
/area/station/command/heads_quarters/captain)
@@ -42988,10 +43595,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron/white,
/area/station/science/ordnance)
-"oPI" = (
-/obj/structure/cable,
-/turf/open/floor/carpet/blue,
-/area/station/security/processing)
"oPR" = (
/obj/structure/table,
/obj/effect/turf_decal/siding/wood{
@@ -43077,6 +43680,14 @@
},
/turf/open/floor/iron/white,
/area/station/science/ordnance)
+"oRG" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"oRS" = (
/obj/structure/punching_bag,
/obj/effect/turf_decal/delivery,
@@ -43284,14 +43895,15 @@
/obj/structure/lattice/catwalk,
/turf/open/openspace,
/area/station/maintenance/port/central)
-"oWn" = (
-/obj/effect/decal/cleanable/ants/fire,
-/turf/open/misc/asteroid/dug,
-/area/station/asteroid)
"oWu" = (
/obj/effect/turf_decal/tile/dark/diagonal_centre,
/turf/open/floor/iron,
/area/station/science/robotics/mechbay)
+"oWv" = (
+/obj/machinery/airalarm/directional/east,
+/obj/item/banner/command/mundane,
+/turf/open/floor/wood,
+/area/station/command/bridge)
"oWS" = (
/obj/machinery/light/directional/west,
/obj/structure/sign/poster/official/help_others/directional/west,
@@ -43354,6 +43966,11 @@
/obj/effect/spawner/random/structure/closet_private,
/turf/open/floor/carpet/neon/simple/blue,
/area/station/commons/dorms)
+"oXI" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"oXK" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -43380,6 +43997,13 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/station/commons/toilet)
+"oYF" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/secequipment,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"oYV" = (
/obj/effect/turf_decal/weather/dirt{
dir = 1
@@ -43442,11 +44066,6 @@
},
/turf/open/floor/grass,
/area/station/ai_monitored/turret_protected/aisat/foyer)
-"oZB" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"oZC" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/generic_maintenance_landmark,
@@ -43525,16 +44144,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating/reinforced,
/area/station/maintenance/radshelter/civil)
-"pbn" = (
-/obj/structure/table,
-/obj/item/storage/box/beakers{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/grenade/chem_grenade,
-/obj/item/grenade/chem_grenade,
-/turf/open/floor/iron,
-/area/station/science/circuits)
"pbo" = (
/obj/effect/turf_decal/bot,
/obj/machinery/flasher/directional/south{
@@ -43592,6 +44201,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/dorms)
+"pcB" = (
+/obj/machinery/camera/directional/west{
+ c_tag = "Civilian - Garden Overlook Port"
+ },
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
+"pcI" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/item/banner/command/mundane,
+/turf/open/floor/wood,
+/area/station/command/bridge)
"pcK" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 4
@@ -43991,15 +44611,6 @@
/obj/structure/railing/corner,
/turf/open/floor/plating,
/area/station/maintenance/department/science)
-"phY" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "External Gas to Loop"
- },
-/obj/effect/turf_decal/delivery,
-/obj/machinery/incident_display/delam/directional/south,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"pil" = (
/obj/machinery/newscaster/directional/south,
/obj/structure/hedge,
@@ -44008,6 +44619,18 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
+"piO" = (
+/obj/machinery/holopad,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/camera/directional/south{
+ c_tag = "Security Post - Engineering"
+ },
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/effect/landmark/start/engineering_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/engineering)
"piS" = (
/obj/machinery/computer/camera_advanced/xenobio{
dir = 4
@@ -44066,6 +44689,12 @@
/obj/item/storage/crayons,
/turf/open/floor/iron,
/area/station/commons/dorms)
+"pjU" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/station/medical/chemistry)
"pka" = (
/mob/living/simple_animal/bot/secbot/beepsky/armsky,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -44357,10 +44986,6 @@
/obj/machinery/status_display/evac/directional/north,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"pom" = (
-/obj/machinery/light/cold/directional/north,
-/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
-/area/station/service/kitchen/coldroom)
"pon" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -44370,6 +44995,22 @@
"pov" = (
/turf/closed/wall,
/area/station/medical/break_room)
+"poL" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 5
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -1;
+ pixel_y = -1
+ },
+/obj/item/clothing/glasses/meson/engine,
+/obj/effect/turf_decal/siding/thinplating_new/terracotta{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden,
+/turf/open/floor/iron/dark,
+/area/station/engineering/storage)
"poQ" = (
/obj/structure/sign/warning/vacuum/external/directional/south,
/turf/open/floor/plating,
@@ -44385,13 +45026,6 @@
/obj/effect/spawner/random/structure/girder,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
-"ppF" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/machinery/meter,
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/status_display/evac/directional/south,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"ppS" = (
/obj/structure/chair/office{
dir = 1
@@ -44449,6 +45083,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"pqJ" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/structure/chair/sofa/bamboo/right{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/station/biodome/aft)
"prp" = (
/obj/machinery/button/door/directional/south{
id = "gatewayshutters";
@@ -44552,6 +45193,20 @@
/obj/item/storage/photo_album/chapel,
/turf/open/floor/iron/grimy,
/area/station/service/chapel/office)
+"ptA" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/landmark/start/customs_agent,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/checkpoint/supply)
+"ptM" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plating,
+/area/station/biodome/aft)
"ptN" = (
/obj/machinery/firealarm/directional/west,
/obj/structure/window/reinforced/spawner/directional/south,
@@ -44588,10 +45243,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/commons/dorms)
-"pui" = (
-/obj/structure/sign/flag/nanotrasen,
-/turf/open/openspace,
-/area/station/biodome)
"puk" = (
/obj/machinery/camera/motion/directional/east{
c_tag = "AI Minisat - External Port";
@@ -44644,12 +45295,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating,
/area/station/engineering/storage/tech)
-"pvw" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/openspace,
-/area/station/service/hydroponics)
"pvI" = (
/obj/vehicle/ridden/wheelchair{
dir = 8
@@ -44661,6 +45306,17 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/medbay/central)
+"pvM" = (
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 8
+ },
+/area/station/engineering/transit_tube)
"pvY" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -44800,11 +45456,6 @@
"pyW" = (
/turf/open/floor/wood/large,
/area/station/commons/storage/primary)
-"pze" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/spawner/random/maintenance,
-/turf/open/floor/iron/smooth_large,
-/area/station/cargo/warehouse)
"pzj" = (
/turf/closed/wall/r_wall,
/area/station/hallway/primary/starboard)
@@ -44904,28 +45555,6 @@
},
/turf/open/floor/wood/large,
/area/station/service/library)
-"pAr" = (
-/obj/item/radio/intercom/directional/north,
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/cup/bottle/multiver{
- pixel_x = 6
- },
-/obj/item/reagent_containers/cup/bottle/epinephrine,
-/obj/item/reagent_containers/syringe,
-/turf/open/floor/iron/dark/textured_half{
- dir = 1
- },
-/area/station/medical/chemistry)
-"pAA" = (
-/obj/structure/table,
-/obj/machinery/fax{
- fax_name = "Security Office";
- name = "Security Office Fax Machine"
- },
-/obj/effect/turf_decal/tile/red/anticorner/contrasted,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"pAB" = (
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
@@ -45008,6 +45637,13 @@
/obj/structure/cable,
/turf/open/floor/carpet,
/area/station/service/chapel)
+"pCB" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"pCL" = (
/obj/structure/chair{
dir = 8
@@ -45174,14 +45810,10 @@
/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/maintenance/department/cargo)
-"pFO" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "Cold Loop to Gas"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
+"pFR" = (
+/obj/structure/chair/sofa/bench/left,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"pFX" = (
/obj/structure/reagent_dispensers/water_cooler,
/obj/machinery/camera/directional/east{
@@ -45355,6 +45987,14 @@
},
/turf/closed/wall/mineral/wood,
/area/station/service/kitchen/diner)
+"pIz" = (
+/obj/structure/stairs/west,
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"pIA" = (
/turf/open/misc/asteroid/dug,
/area/station/maintenance/central/greater)
@@ -45446,24 +46086,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"pJN" = (
-/obj/structure/table,
-/obj/item/book/manual/hydroponics_pod_people,
-/obj/item/clothing/accessory/armband/hydro,
-/obj/item/reagent_containers/spray/plantbgone{
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/item/paper/guides/jobs/hydroponics,
-/obj/item/reagent_containers/spray/plantbgone{
- pixel_x = 6;
- pixel_y = 6
- },
-/obj/effect/turf_decal/siding/brown{
- dir = 4
- },
-/turf/open/floor/iron/terracotta/small,
-/area/station/service/hydroponics)
"pKg" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
@@ -45547,12 +46169,6 @@
/obj/structure/cable/multilayer/connected,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/ai_monitored/turret_protected/ai)
-"pMw" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
-/obj/machinery/meter,
-/obj/structure/cable,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"pMx" = (
/obj/effect/turf_decal/siding/green{
dir = 4
@@ -45756,24 +46372,6 @@
/obj/machinery/light/floor,
/turf/open/floor/plating,
/area/station/cargo/storage)
-"pQp" = (
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/pen,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
-"pQt" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome)
"pQw" = (
/obj/structure/cable,
/obj/machinery/duct,
@@ -45872,18 +46470,6 @@
"pSI" = (
/turf/open/floor/engine/vacuum,
/area/station/science/ordnance/burnchamber)
-"pSM" = (
-/obj/structure/table,
-/obj/item/inspector{
- pixel_x = -5;
- pixel_y = 12
- },
-/obj/item/inspector{
- pixel_x = 4;
- pixel_y = 4
- },
-/turf/open/floor/wood,
-/area/station/security/brig)
"pSV" = (
/obj/machinery/door/airlock/external{
name = "Solar Maintenance"
@@ -46098,6 +46684,12 @@
/obj/effect/turf_decal/trimline/green/filled/warning,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"pXy" = (
+/obj/effect/spawner/random/trash/garbage,
+/obj/effect/turf_decal/delivery/red,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/service/library/lounge)
"pXI" = (
/obj/item/chair/wood/wings,
/turf/open/floor/plating,
@@ -46153,6 +46745,12 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron/dark,
/area/station/engineering/supermatter/room)
+"pYJ" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/obj/machinery/vending/access/command,
+/turf/open/floor/wood,
+/area/station/command/bridge)
"pYK" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -46174,6 +46772,13 @@
/obj/effect/decal/cleanable/glitter/white,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"pZa" = (
+/obj/structure/sign/poster/official/obey/directional/north,
+/obj/machinery/computer/shuttle/labor{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/security/processing)
"pZg" = (
/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{
name = "Burn Chamber Interior Airlock"
@@ -46209,6 +46814,15 @@
dir = 4
},
/area/station/service/chapel)
+"qah" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"qai" = (
/obj/item/stack/cannonball/trashball{
pixel_x = -4
@@ -46235,13 +46849,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/engineering/supermatter/room)
-"qaU" = (
-/obj/machinery/computer/order_console/mining,
-/obj/effect/turf_decal/weather/dirt{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/station/cargo/miningdock)
"qaW" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -46312,10 +46919,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/chemistry)
-"qbX" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/closed/wall/r_wall,
-/area/station/ai_monitored/turret_protected/aisat/foyer)
"qcf" = (
/obj/machinery/duct,
/turf/open/floor/wood/tile,
@@ -46350,10 +46953,6 @@
},
/turf/open/floor/plating,
/area/station/security/detectives_office)
-"qcX" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/smooth_large,
-/area/station/cargo/warehouse)
"qcY" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch"
@@ -46547,12 +47146,6 @@
},
/turf/open/floor/iron/dark/smooth_half,
/area/station/security/brig)
-"qgp" = (
-/obj/structure/railing{
- dir = 5
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"qgs" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -46691,18 +47284,6 @@
},
/turf/open/space,
/area/space/nearstation)
-"qiP" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/dark_green/corner,
-/obj/effect/turf_decal/siding/dark_green/corner{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
-"qjd" = (
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"qjl" = (
/obj/structure/ladder,
/obj/effect/turf_decal/delivery,
@@ -46823,13 +47404,6 @@
/obj/machinery/light/directional/east,
/turf/open/floor/carpet/black,
/area/station/security/prison)
-"qkS" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/sign/warning/gas_mask/directional/south,
-/turf/open/floor/iron/dark,
-/area/station/engineering/supermatter/room)
"qkU" = (
/obj/machinery/airalarm/directional/west,
/obj/effect/mapping_helpers/airalarm/tlv_cold_room,
@@ -46865,6 +47439,13 @@
},
/turf/open/floor/iron/white,
/area/station/science/ordnance)
+"qlF" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"qlG" = (
/obj/structure/chair/comfy/black{
dir = 1
@@ -46907,11 +47488,6 @@
/obj/structure/disposalpipe/trunk,
/turf/open/floor/wood,
/area/station/service/lawoffice)
-"qlT" = (
-/obj/structure/closet/secure_closet/security/sec,
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
"qlZ" = (
/obj/machinery/gateway/centerstation,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -46990,14 +47566,6 @@
/obj/machinery/computer/cargo,
/turf/open/floor/wood,
/area/station/cargo/sorting)
-"qmS" = (
-/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/machinery/duct,
-/turf/open/floor/stone,
-/area/station/biodome/fore)
"qmX" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -47029,6 +47597,18 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron,
/area/station/science/ordnance/office)
+"qnL" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/light_switch/directional/south,
+/turf/open/floor/wood/parquet,
+/area/station/command/heads_quarters/blueshield)
"qnR" = (
/obj/structure/transit_tube/curved/flipped{
dir = 8
@@ -47123,14 +47703,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"qoW" = (
-/obj/effect/turf_decal/trimline/yellow/warning{
- dir = 1
- },
-/turf/open/floor/iron/dark/smooth_edge{
- dir = 8
- },
-/area/station/engineering/transit_tube)
"qoX" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/floor,
@@ -47172,6 +47744,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/stone,
/area/station/maintenance/department/security/brig)
+"qqb" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/hallway/secondary/service)
"qqy" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/light/directional/east,
@@ -47205,17 +47783,6 @@
/obj/structure/table/wood,
/turf/open/floor/plating,
/area/station/maintenance/department/cargo)
-"qqV" = (
-/obj/machinery/camera/directional/north{
- c_tag = "Security Post - Medbay"
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/security/checkpoint/medical)
"qre" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
@@ -47249,9 +47816,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
-"qrF" = (
-/turf/closed/wall,
-/area/station/security/brig)
"qrH" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
@@ -47291,6 +47855,14 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/dark,
/area/station/medical/cryo)
+"qsH" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/wood,
+/area/station/service/lawoffice)
"qsW" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -47350,6 +47922,12 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/engine_smes)
+"qtU" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"quf" = (
/obj/structure/transit_tube/horizontal,
/obj/structure/railing,
@@ -47376,13 +47954,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood/large,
/area/station/commons/storage/primary)
-"quP" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/closet/emcloset/anchored,
-/turf/open/floor/iron/dark,
-/area/station/engineering/supermatter/room)
"quS" = (
/obj/structure/table,
/obj/machinery/cell_charger,
@@ -47531,16 +48102,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/terracotta,
/area/station/hallway/secondary/construction/engineering)
-"qxr" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/weather/dirt,
-/obj/structure/railing/wooden_fencing{
- dir = 8
- },
-/turf/open/floor/wood/large,
-/area/station/biodome/aft)
"qxL" = (
/obj/structure/flora/bush/flowers_br/style_random,
/obj/effect/turf_decal/weather/dirt,
@@ -47605,6 +48166,12 @@
/obj/structure/closet/radiation,
/turf/open/floor/iron,
/area/station/engineering/gravity_generator)
+"qze" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/cable,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"qzf" = (
/turf/open/floor/wood/large,
/area/station/biodome/aft)
@@ -47727,13 +48294,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"qAI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/sofa/bench/left,
-/turf/open/floor/wood/large,
-/area/station/hallway/primary/central)
"qAP" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -47820,19 +48380,6 @@
},
/turf/open/floor/iron,
/area/station/science/research)
-"qCu" = (
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/button/door/directional/east{
- id = "engsm";
- name = "Radiation Shutters Control";
- req_access = list("engineering")
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"qCz" = (
/turf/open/floor/plating,
/area/station/hallway/primary/aft)
@@ -47976,6 +48523,12 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"qFk" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"qFl" = (
/turf/open/misc/beach/coast{
dir = 10
@@ -48002,6 +48555,14 @@
/obj/effect/spawner/random/vending/snackvend,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"qFD" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
+/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/smooth_half,
+/area/station/security/brig)
"qFW" = (
/obj/machinery/requests_console/directional/south{
department = "Atmospherics";
@@ -48032,24 +48593,11 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/grass,
/area/station/biodome/fore)
-"qGD" = (
-/obj/machinery/status_display/evac/directional/north,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/structure/cable/layer3,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
-"qGF" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/obj/structure/cable,
-/obj/effect/landmark/start/depsec/supply,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/security/checkpoint/supply)
+"qGH" = (
+/obj/machinery/light/directional/east,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/wood/large,
+/area/station/service/library/lounge)
"qGJ" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/brown/half/contrasted{
@@ -48119,6 +48667,11 @@
dir = 8
},
/area/station/engineering/transit_tube)
+"qHE" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"qHO" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/dark,
@@ -48185,10 +48738,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white/diagonal,
/area/station/science/robotics/lab)
-"qJa" = (
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"qJl" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -48230,6 +48779,14 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/general,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
+"qJQ" = (
+/obj/machinery/elevator_control_panel/directional/north{
+ linked_elevator_id = "biodome_engie_lift";
+ name = "Engineering's Lifts Control Panel";
+ preset_destination_names = list("2"="EngineeringAccess","3"="StorageZone")
+ },
+/turf/open/openspace,
+/area/station/hallway/primary/aft)
"qJS" = (
/obj/structure/table/wood,
/obj/machinery/computer/libraryconsole,
@@ -48241,15 +48798,6 @@
},
/turf/open/floor/wood/large,
/area/station/service/library)
-"qKh" = (
-/obj/effect/turf_decal/loading_area/white,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/science/research)
"qKk" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -48307,6 +48855,14 @@
},
/turf/open/floor/iron,
/area/station/engineering/main)
+"qKS" = (
+/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/structure/disposalpipe/segment,
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"qKY" = (
/obj/structure/table/wood/poker,
/obj/effect/spawner/random/entertainment/gambling,
@@ -48326,6 +48882,12 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
+"qLj" = (
+/obj/structure/beebox,
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/grass,
+/area/station/service/hydroponics)
"qLq" = (
/obj/structure/flora/bush/flowers_pp/style_random,
/obj/effect/turf_decal/weather/dirt,
@@ -48360,12 +48922,6 @@
/obj/effect/landmark/navigate_destination/dockarrival,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"qLW" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/openspace,
-/area/station/service/hydroponics)
"qMc" = (
/obj/machinery/airalarm/directional/south,
/turf/open/floor/glass/reinforced,
@@ -48420,6 +48976,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/testlab)
+"qMX" = (
+/mob/living/basic/pet/dog/markus,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"qMY" = (
/obj/machinery/door/airlock/security/glass{
name = "Armory"
@@ -48535,12 +49095,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmos/hfr_room)
-"qPn" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/fore)
"qPp" = (
/obj/machinery/duct,
/obj/item/bikehorn/rubberducky,
@@ -48548,13 +49102,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/freezer,
/area/station/security/prison/shower)
-"qPz" = (
-/obj/structure/extinguisher_cabinet/directional/south,
-/obj/structure/chair/sofa/bamboo/left{
- dir = 1
- },
-/turf/open/floor/grass,
-/area/station/biodome/aft)
"qPA" = (
/obj/machinery/computer/prisoner/gulag_teleporter_computer{
dir = 4
@@ -48564,27 +49111,22 @@
},
/turf/open/floor/iron/dark,
/area/station/security/processing)
-"qPC" = (
-/obj/structure/table,
-/obj/item/tank/internals/emergency_oxygen/engi,
-/obj/item/tank/internals/emergency_oxygen/engi{
- pixel_x = 5
- },
-/obj/item/clothing/mask/breath{
- pixel_x = 4
- },
-/obj/item/clothing/mask/breath{
- pixel_x = 2;
- pixel_y = -1
- },
-/obj/effect/turf_decal/siding/thinplating_new/terracotta/corner,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/engineering/storage)
"qPE" = (
/turf/open/floor/iron/white,
/area/station/medical/pharmacy)
+"qPK" = (
+/obj/machinery/duct,
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/machinery/requests_console/directional/north{
+ department = "Hydroponics";
+ name = "Hydroponics Requests Console";
+ pixel_y = -30
+ },
+/obj/effect/mapping_helpers/requests_console/supplies,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"qPO" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/effect/spawner/random/engineering/atmospherics_portable,
@@ -48620,6 +49162,9 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
+"qQq" = (
+/turf/open/floor/wood/large,
+/area/station/service/library/lounge)
"qQw" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/trimline/purple/line,
@@ -48672,6 +49217,12 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
+"qRn" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/station/biodome/aft)
"qRp" = (
/obj/machinery/camera/directional/east{
c_tag = "Storage - Drunk Tank Gallery"
@@ -48705,6 +49256,12 @@
/obj/structure/stairs/south,
/turf/open/floor/iron/stairs/medium,
/area/station/cargo/warehouse)
+"qRR" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"qRU" = (
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron/grimy,
@@ -48714,6 +49271,13 @@
/obj/effect/spawner/random/trash/moisture_trap,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/maintenance/department/cargo)
+"qRX" = (
+/obj/effect/turf_decal/tile/neutral/half{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/iron,
+/area/station/commons/locker)
"qSc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -48763,10 +49327,6 @@
/obj/machinery/light/warm/directional/east,
/turf/open/floor/iron/white,
/area/station/service/kitchen)
-"qSY" = (
-/obj/effect/spawner/random/maintenance,
-/turf/open/water/jungle/biodome,
-/area/station/biodome/aft)
"qTg" = (
/obj/structure/chair{
dir = 4
@@ -48802,6 +49362,17 @@
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/project)
+"qTz" = (
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"qTB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -48998,18 +49569,6 @@
/obj/structure/window/reinforced/spawner/directional/north,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"qVW" = (
-/obj/machinery/requests_console/directional/north{
- department = "Hydroponics";
- name = "Hydroponics Requests Console";
- pixel_y = -30
- },
-/obj/effect/mapping_helpers/requests_console/supplies,
-/obj/effect/turf_decal/trimline/dark_green/filled/line,
-/obj/effect/turf_decal/trimline/green/line,
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"qWe" = (
/obj/effect/decal/cleanable/blood/footprints{
dir = 8
@@ -49055,6 +49614,12 @@
},
/turf/open/floor/wood,
/area/station/service/lawoffice)
+"qWB" = (
+/obj/effect/turf_decal/tile/dark_green/opposingcorners,
+/obj/effect/turf_decal/tile/dark_green/opposingcorners,
+/obj/structure/stairs/east,
+/turf/open/floor/iron/white,
+/area/station/service/kitchen)
"qWE" = (
/obj/machinery/computer/atmos_control/plasma_tank{
dir = 4
@@ -49349,6 +49914,12 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"raV" = (
+/obj/structure/sign/directions/arrival/directional/south{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"rba" = (
/obj/structure/reagent_dispensers/watertank{
pixel_x = -1
@@ -49436,6 +50007,17 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/carpet/neon/simple/cyan/nodots,
/area/station/science/server)
+"rcZ" = (
+/obj/machinery/duct,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/window/elevator/left/directional/east{
+ elevator_mode = 1;
+ transport_linked_id = "biodome_engie_lift"
+ },
+/turf/open/floor/iron/terracotta,
+/area/station/hallway/secondary/construction/engineering)
"rdh" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -49616,6 +50198,18 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/iron,
/area/station/science/xenobiology)
+"rfH" = (
+/obj/structure/easel,
+/obj/item/canvas/twentythree_twentythree,
+/obj/item/canvas/nineteen_nineteen,
+/turf/open/floor/plating,
+/area/station/service/library/lounge)
+"rgj" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/stack/sheet/iron/fifty,
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"rgm" = (
/obj/machinery/power/solar{
id = "foreport";
@@ -49938,6 +50532,12 @@
/obj/machinery/door/firedoor,
/turf/open/floor/stone,
/area/station/biodome)
+"rlt" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/fakewood,
+/area/station/command/heads_quarters/captain)
"rlz" = (
/turf/open/floor/iron/grimy,
/area/station/hallway/secondary/entry)
@@ -50186,11 +50786,6 @@
/obj/effect/spawner/random/structure/steam_vent,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
-"rps" = (
-/obj/effect/turf_decal/siding/green,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"rpy" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -50244,21 +50839,21 @@
/obj/machinery/holopad,
/turf/open/floor/iron/grimy,
/area/station/service/lawoffice)
+"rqx" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/sign/poster/official/random/directional/west,
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/rnd/production/techfab/department/security,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"rqA" = (
/obj/effect/turf_decal/tile/purple/anticorner/contrasted{
dir = 8
},
/turf/open/floor/iron,
/area/station/science/research)
-"rqE" = (
-/obj/machinery/camera/directional/west{
- c_tag = "Biodome - Overpass Fore"
- },
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/hallway/primary/central)
"rqX" = (
/obj/structure/rack,
/obj/effect/spawner/random/techstorage/medical_all,
@@ -50268,6 +50863,15 @@
/obj/structure/shipping_container/cybersun,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
+"rrm" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"rrp" = (
/turf/open/misc/dirt/jungle/wasteland,
/area/station/maintenance/central/greater)
@@ -50306,11 +50910,6 @@
/obj/item/kirbyplants/photosynthetic,
/turf/open/floor/iron/dark,
/area/station/science/robotics/lab)
-"rsd" = (
-/obj/machinery/door/firedoor,
-/obj/effect/landmark/navigate_destination,
-/turf/open/floor/iron,
-/area/station/commons/locker)
"rsj" = (
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
@@ -50358,12 +50957,6 @@
/obj/structure/girder,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
-"rsY" = (
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/floor/iron/herringbone,
-/area/station/biodome)
"rsZ" = (
/obj/effect/spawner/random/food_or_drink/booze{
pixel_x = 3;
@@ -50495,14 +51088,6 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/station/hallway/primary/aft)
-"ruy" = (
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"ruD" = (
/obj/effect/spawner/random/trash/cigbutt,
/obj/machinery/firealarm/directional/north,
@@ -50678,12 +51263,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"rxD" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/landmark/start/depsec/science,
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/science)
"rxG" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/dark{
@@ -50735,18 +51314,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/misc/asteroid,
/area/station/maintenance/central/greater)
-"ryG" = (
-/obj/structure/table,
-/obj/item/food/donut/plain{
- pixel_x = -4;
- pixel_y = 6
- },
-/obj/item/storage/fancy/coffee_cart_rack{
- pixel_x = 8;
- pixel_y = 2
- },
-/turf/open/floor/wood,
-/area/station/security/brig)
"ryH" = (
/obj/effect/landmark/start/bitrunner,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
@@ -50893,12 +51460,6 @@
},
/turf/open/floor/stone,
/area/station/biodome/aft)
-"rBo" = (
-/obj/structure/easel,
-/obj/item/canvas/twentythree_twentythree,
-/obj/item/canvas/twentythree_nineteen,
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"rBr" = (
/obj/structure/table,
/obj/item/folder/yellow,
@@ -50963,6 +51524,20 @@
},
/turf/open/floor/plating,
/area/station/cargo/miningdock)
+"rCa" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/loading_area/white,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/window/elevator/left/directional/north{
+ elevator_mode = 1;
+ transport_linked_id = "biodome_science_lift"
+ },
+/turf/open/floor/iron/dark,
+/area/station/science/research)
"rCB" = (
/obj/structure/table,
/obj/item/folder/blue{
@@ -51035,13 +51610,6 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/iron,
/area/station/engineering/main)
-"rEJ" = (
-/obj/effect/landmark/start/depsec/medical,
-/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/smooth_large,
-/area/station/security/checkpoint/medical)
"rET" = (
/obj/structure/sign/clock/directional/west,
/turf/open/floor/stone,
@@ -51108,10 +51676,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/gravity_generator)
-"rGd" = (
-/obj/structure/mirror/directional/west,
-/turf/open/openspace,
-/area/station/security/brig)
"rGg" = (
/obj/structure/table,
/obj/item/storage/box/bodybags{
@@ -51142,6 +51706,12 @@
/obj/item/grown/bananapeel,
/turf/open/floor/wood/large,
/area/station/hallway/secondary/service)
+"rGv" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"rGE" = (
/obj/machinery/atmospherics/pipe/smart/simple/green/visible,
/obj/effect/turf_decal/tile/red/anticorner/contrasted,
@@ -51276,6 +51846,10 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
+"rIK" = (
+/obj/structure/table/wood,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"rIP" = (
/obj/structure/chair/wood/wings{
dir = 1
@@ -51286,6 +51860,9 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/reinforced,
/area/station/maintenance/central/greater)
+"rIV" = (
+/turf/open/space/basic,
+/area/space/nearstation)
"rJk" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/structure/cable,
@@ -51355,6 +51932,11 @@
},
/turf/open/floor/grass,
/area/station/service/kitchen/diner)
+"rKo" = (
+/obj/structure/closet/secure_closet/security/sec,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"rKp" = (
/obj/machinery/door/airlock/maintenance{
name = "Brig Infirmary Maintenance"
@@ -51397,12 +51979,6 @@
"rKS" = (
/turf/open/openspace,
/area/station/science/xenobiology)
-"rLd" = (
-/obj/structure/closet/secure_closet/security/sec,
-/obj/machinery/airalarm/directional/north,
-/obj/machinery/light/directional/north,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
"rLe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -51424,11 +52000,6 @@
},
/turf/open/floor/stone,
/area/station/biodome/aft)
-"rLL" = (
-/obj/machinery/door/firedoor/border_only,
-/obj/structure/railing,
-/turf/open/openspace,
-/area/station/hallway/primary/aft)
"rLU" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -51442,14 +52013,6 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/science/xenobiology)
-"rMf" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/structure/cable,
-/obj/machinery/door/firedoor,
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
"rMi" = (
/obj/structure/table,
/obj/effect/spawner/random/entertainment/money,
@@ -51509,6 +52072,11 @@
/obj/machinery/power/floodlight,
/turf/open/floor/grass,
/area/station/biodome)
+"rNx" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"rNL" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch"
@@ -51517,13 +52085,6 @@
/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"rOt" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/machinery/light/directional/east,
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"rOu" = (
/obj/machinery/duct,
/obj/structure/cable,
@@ -51535,14 +52096,6 @@
},
/turf/open/floor/iron/freezer,
/area/station/commons/toilet/auxiliary)
-"rOH" = (
-/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{
- dir = 4
- },
-/obj/item/radio/intercom/directional/east,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"rOP" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -51689,14 +52242,6 @@
"rRv" = (
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
-"rRy" = (
-/turf/closed/wall,
-/area/station/security/processing)
-"rRI" = (
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood/large,
-/area/station/commons/lounge)
"rRN" = (
/obj/structure/cable,
/obj/effect/turf_decal/siding/wood{
@@ -51926,6 +52471,12 @@
/obj/structure/broken_flooring/plating/directional/east,
/turf/open/floor/circuit/off,
/area/station/tcommsat/server)
+"rUO" = (
+/obj/structure/chair/stool/directional/south,
+/obj/effect/turf_decal/trimline/red/warning,
+/obj/effect/landmark/start/corrections_officer,
+/turf/open/floor/iron,
+/area/station/security/brig)
"rUW" = (
/obj/structure/table/glass,
/obj/item/paper_bin{
@@ -52040,14 +52591,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"rWF" = (
-/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{
- dir = 4
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"rWM" = (
/turf/closed/wall/r_wall,
/area/station/security/medical)
@@ -52172,13 +52715,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/cargo/miningdock)
-"rYH" = (
-/obj/machinery/light/directional/west,
-/obj/structure/railing{
- dir = 8
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"rYO" = (
/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 8
@@ -52459,27 +52995,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/stone,
/area/station/biodome/fore)
-"seo" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/closet{
- name = "Beekeeper Uniform"
- },
-/obj/item/melee/flyswatter,
-/obj/item/clothing/head/utility/beekeeper_head,
-/obj/item/clothing/suit/utility/beekeeper_suit,
-/obj/effect/turf_decal/trimline/dark_green/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/green/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner{
- dir = 1
- },
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"sep" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
@@ -52490,11 +53005,6 @@
/obj/structure/statue/bone/skull,
/turf/open/water/jungle/biodome,
/area/station/maintenance/central/greater)
-"seM" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/turf/open/space/basic,
-/area/space/nearstation)
"seP" = (
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/closed/wall/mineral/wood,
@@ -52544,6 +53054,14 @@
},
/turf/open/floor/noslip,
/area/station/biodome/aft)
+"sga" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/barricade/wooden,
+/turf/open/floor/wood/large,
+/area/station/hallway/secondary/service)
"sge" = (
/obj/structure/disposalpipe/sorting/mail{
dir = 8;
@@ -52577,11 +53095,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"sgA" = (
-/obj/structure/bookcase/random/adult,
-/obj/effect/turf_decal/delivery/red,
-/turf/open/floor/plating,
-/area/station/service/library/lounge)
"sgC" = (
/obj/machinery/telecomms/server/presets/engineering,
/turf/open/floor/iron/dark/telecomms,
@@ -52758,18 +53271,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/medical/virology)
-"skK" = (
-/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,
-/obj/machinery/light_switch/directional/east,
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"skV" = (
/obj/item/kirbyplants/random,
/turf/open/floor/wood,
@@ -52857,17 +53358,6 @@
"smF" = (
/turf/open/floor/iron/white,
/area/station/maintenance/port/greater)
-"smG" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/sorting/mail/flip{
- dir = 8;
- name = "sorting disposal pipe (Chapel)"
- },
-/obj/effect/mapping_helpers/mail_sorting/service/chapel,
-/turf/open/floor/stone,
-/area/station/biodome)
"smK" = (
/obj/structure/closet/emcloset,
/turf/open/floor/grass,
@@ -52877,13 +53367,6 @@
/obj/item/poster/random_contraband,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"smP" = (
-/obj/machinery/firealarm/directional/west,
-/obj/effect/turf_decal/siding/green{
- dir = 10
- },
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"smW" = (
/turf/open/floor/iron/smooth_large,
/area/station/security/brig)
@@ -52919,6 +53402,13 @@
},
/turf/open/water/jungle/biodome,
/area/station/biodome/aft)
+"snM" = (
+/obj/structure/table/wood/fancy,
+/obj/item/flashlight/flare/candle{
+ pixel_y = 6
+ },
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
"snN" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/decal/cleanable/oil,
@@ -53048,6 +53538,14 @@
/obj/machinery/status_display/evac/directional/north,
/turf/open/floor/iron,
/area/station/science/research)
+"spa" = (
+/obj/machinery/camera/directional/west,
+/turf/open/floor/wood/stairs/left,
+/area/station/biodome/aft)
+"spb" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/lockers)
"spc" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -53207,6 +53705,10 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"stq" = (
+/obj/effect/turf_decal/siding/dark_green,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"stx" = (
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine/air,
@@ -53273,6 +53775,12 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron/white,
/area/station/science/ordnance)
+"suU" = (
+/obj/machinery/light/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/security/processing)
"suW" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/effect/turf_decal/siding/dark_green{
@@ -53324,6 +53832,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/ai_monitored/command/nuke_storage)
+"svx" = (
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"svy" = (
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/open/floor/iron/dark,
@@ -53334,6 +53853,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"svF" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/floor/iron/dark,
+/area/station/engineering/supermatter/room)
"svR" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/stripes/asteroid/line{
@@ -53727,6 +54253,20 @@
/obj/effect/spawner/random/structure/billboard/roadsigns,
/turf/open/space/openspace,
/area/space/nearstation)
+"sCu" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/obj/structure/rack,
+/obj/item/storage/box/hug{
+ pixel_x = 4;
+ pixel_y = 3
+ },
+/obj/item/razor{
+ pixel_x = -8;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/blue,
+/area/station/security/processing)
"sCD" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -53774,6 +54314,12 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/carpet/executive,
/area/station/command/heads_quarters/captain/private)
+"sDp" = (
+/obj/structure/hedge,
+/obj/structure/railing,
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"sDq" = (
/obj/effect/turf_decal/siding/dark,
/turf/open/floor/carpet/black,
@@ -53791,13 +54337,6 @@
/obj/structure/sign/clock/directional/west,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/testlab)
-"sEc" = (
-/obj/structure/ladder,
-/obj/effect/turf_decal/trimline/dark_green/filled/line,
-/obj/effect/turf_decal/trimline/green/line,
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"sEq" = (
/obj/effect/turf_decal/siding/dark{
dir = 5
@@ -53854,6 +54393,11 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"sFM" = (
+/obj/machinery/smartfridge/food,
+/obj/machinery/door/firedoor,
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"sFP" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/structure/reagent_dispensers/fueltank,
@@ -54007,34 +54551,6 @@
/obj/machinery/light/floor,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
-"sIC" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/dark_green/corner{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
-"sIE" = (
-/obj/effect/landmark/secequipment,
-/obj/effect/turf_decal/bot,
-/obj/structure/sign/poster/official/random/directional/west,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
-"sIU" = (
-/obj/structure/bookcase/random/religion,
-/obj/effect/decal/cleanable/cobweb,
-/obj/structure/sign/painting/library{
- pixel_x = -32
- },
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/wood/large,
-/area/station/service/library)
"sJc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -54283,18 +54799,31 @@
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/security/interrogation)
-"sMH" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 10
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"sMK" = (
/obj/effect/spawner/random/trash/food_packaging,
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"sMM" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/dark,
+/obj/machinery/light/floor,
+/turf/open/floor/iron/dark,
+/area/station/hallway/secondary/exit/departure_lounge)
+"sNj" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
+"sNn" = (
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"sNJ" = (
/obj/structure/cable,
/obj/effect/spawner/random/trash/garbage{
@@ -54305,10 +54834,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
-"sNN" = (
-/obj/effect/turf_decal/weather/dirt,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"sNP" = (
/obj/machinery/computer/security/telescreen/cmo/directional/west{
desc = "Used for monitoring medbay to ensure patient safety.";
@@ -54320,14 +54845,12 @@
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/security/checkpoint/medical)
-"sOd" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+"sNR" = (
+/obj/structure/railing/corner{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/structure/cable/layer3,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"sOg" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -54443,6 +54966,12 @@
},
/turf/open/floor/iron,
/area/station/security/prison/mess)
+"sQb" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"sQn" = (
/obj/machinery/conveyor{
dir = 8;
@@ -54458,6 +54987,10 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"sQv" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"sQx" = (
/obj/machinery/camera/directional/east{
c_tag = "AI Minisat - Chamber Starboard";
@@ -54565,19 +55098,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
+"sRX" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/openspace,
+/area/station/biodome/fore)
"sSb" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"sSi" = (
-/obj/machinery/power/apc/auto_name/directional/east,
-/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/command/bridge)
"sSm" = (
/obj/structure/cable,
/turf/open/floor/catwalk_floor/iron_dark,
@@ -54611,13 +55144,6 @@
dir = 1
},
/area/station/science/robotics/lab)
-"sSz" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/primary/central)
"sSD" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/siding/wideplating_new/terracotta{
@@ -54885,6 +55411,10 @@
},
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/qm)
+"sYl" = (
+/obj/machinery/air_sensor/engine_chamber,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter)
"sYo" = (
/obj/effect/turf_decal/trimline/red/real_red/corner,
/obj/effect/turf_decal/trimline/red/line{
@@ -54892,6 +55422,11 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"sYu" = (
+/obj/machinery/light/floor,
+/obj/structure/lattice/catwalk,
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"sYC" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -54924,6 +55459,12 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron,
/area/station/engineering/atmos/storage/gas)
+"sZg" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/event_spawn,
+/obj/effect/landmark/start/science_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/science)
"sZh" = (
/obj/effect/turf_decal/delivery/white{
color = "#52B4E9"
@@ -55061,6 +55602,13 @@
},
/turf/open/floor/iron/smooth_half,
/area/station/security/brig)
+"taW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/delam_scram/directional/west,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter)
"tbb" = (
/obj/structure/table/reinforced,
/obj/item/paper/guides/jobs/medical/morgue,
@@ -55205,13 +55753,6 @@
/obj/effect/turf_decal/stripes/asteroid/line,
/turf/open/misc/asteroid,
/area/station/cargo/miningdock)
-"tcM" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/fore)
"tcP" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -55247,6 +55788,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood/large,
/area/station/service/barber)
+"tdd" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/machinery/airalarm/directional/south,
+/obj/structure/cable,
+/obj/effect/spawner/random/decoration/carpet/luxury,
+/turf/open/floor/iron/checker,
+/area/station/service/bar/backroom)
"tdn" = (
/obj/structure/rack,
/obj/effect/spawner/random/techstorage/rnd_secure_all,
@@ -55284,6 +55832,15 @@
/obj/structure/sign/departments/telecomms/alt/directional/east,
/turf/open/floor/iron/terracotta,
/area/station/hallway/secondary/construction/engineering)
+"tdL" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/glass,
+/area/station/hallway/primary/aft)
"tdO" = (
/obj/effect/decal/cleanable/cobweb,
/obj/structure/table/wood/fancy,
@@ -55310,6 +55867,20 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/stone,
/area/station/biodome/fore)
+"tef" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/south,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
+"teh" = (
+/obj/machinery/door/window/left/directional/west{
+ name = "Maximum Security Test Chamber";
+ req_access = list("science")
+ },
+/turf/open/floor/iron/dark,
+/area/station/science/circuits)
"ter" = (
/obj/structure/filingcabinet/chestdrawer,
/turf/open/floor/stone,
@@ -55391,11 +55962,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"tgi" = (
-/obj/effect/turf_decal/trimline/red/filled/line,
-/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
-/turf/open/floor/iron/smooth_large,
-/area/station/security/brig)
"tgm" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -55435,10 +56001,6 @@
/obj/effect/landmark/start/blueshield,
/turf/open/floor/carpet/executive,
/area/station/command/heads_quarters/captain)
-"tgU" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/freezer,
-/area/station/commons/toilet)
"thb" = (
/obj/item/melee/skateboard,
/turf/open/floor/plating/plasma,
@@ -55814,6 +56376,10 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"tmu" = (
+/obj/structure/table/wood,
+/turf/open/floor/carpet/red,
+/area/station/hallway/secondary/entry)
"tmw" = (
/obj/effect/spawner/random/structure/crate,
/obj/effect/spawner/random/entertainment/toy_figure,
@@ -55862,10 +56428,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"tnf" = (
-/obj/machinery/photocopier,
-/turf/open/floor/wood,
-/area/station/service/lawoffice)
"tnj" = (
/obj/machinery/space_heater,
/turf/open/floor/plating,
@@ -55956,6 +56518,21 @@
/obj/structure/girder/displaced,
/turf/open/floor/plating,
/area/station/service/janitor)
+"tqf" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/structure/table,
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 1
+ },
+/obj/machinery/recharger{
+ pixel_x = -6;
+ pixel_y = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"tqm" = (
/obj/machinery/computer/operating{
dir = 4
@@ -56177,10 +56754,6 @@
/obj/effect/decal/cleanable/food/egg_smudge,
/turf/open/floor/wood/large,
/area/station/biodome/fore)
-"tuE" = (
-/obj/machinery/light/small,
-/turf/open/floor/wood,
-/area/station/service/lawoffice)
"tuQ" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -56219,15 +56792,6 @@
/obj/machinery/meter,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
-"tvp" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/toolbox/mechanical,
-/obj/item/clothing/head/utility/welding,
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron/dark/textured_half{
- dir = 1
- },
-/area/station/medical/chemistry)
"tvt" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/machinery/light/small/directional/north,
@@ -56765,6 +57329,13 @@
/obj/effect/mapping_helpers/requests_console/supplies,
/turf/open/floor/iron,
/area/station/science/circuits)
+"tDY" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/security/processing)
"tEb" = (
/obj/effect/turf_decal/tile/neutral/diagonal_centre,
/obj/structure/mannequin/wood{
@@ -57079,6 +57650,14 @@
/obj/effect/mapping_helpers/airlock/unres,
/turf/open/floor/iron/smooth,
/area/station/maintenance/central/greater)
+"tIN" = (
+/obj/structure/closet/crate/engineering,
+/obj/item/storage/toolbox/artistic{
+ pixel_y = 8
+ },
+/obj/item/storage/toolbox/mechanical,
+/turf/open/floor/iron/smooth,
+/area/station/maintenance/department/crew_quarters/bar)
"tIP" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -57093,6 +57672,15 @@
"tIY" = (
/turf/open/floor/plating,
/area/station/service/abandoned_gambling_den)
+"tJb" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/start/botanist,
+/obj/effect/turf_decal/siding/brown{
+ dir = 9
+ },
+/obj/machinery/duct,
+/turf/open/floor/iron/terracotta/small,
+/area/station/service/hydroponics)
"tJp" = (
/obj/machinery/button/door/directional/south{
id = "Dorm1";
@@ -57138,22 +57726,6 @@
/obj/structure/flora/rock/pile/jungle/style_random,
/turf/open/water/jungle/biodome,
/area/station/biodome)
-"tKr" = (
-/obj/structure/table/glass,
-/obj/item/modular_computer/laptop/preset/civilian{
- pixel_y = 3
- },
-/obj/machinery/requests_console/directional/west{
- department = "Engineering";
- name = "Engineering Requests Console"
- },
-/obj/effect/mapping_helpers/requests_console/supplies,
-/obj/effect/mapping_helpers/requests_console/assistance,
-/obj/effect/turf_decal/tile/yellow/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/engineering/lobby)
"tKt" = (
/obj/structure/transit_tube/diagonal/crossing{
dir = 4
@@ -57182,10 +57754,6 @@
/obj/effect/mapping_helpers/airlock/access/all/science/general,
/turf/open/floor/iron/dark,
/area/station/science/circuits)
-"tKQ" = (
-/obj/machinery/vending/autodrobe,
-/turf/open/floor/plating,
-/area/station/maintenance/aft/upper)
"tLb" = (
/obj/structure/flora/rock/style_random,
/turf/open/floor/grass,
@@ -57204,6 +57772,19 @@
/obj/machinery/door/firedoor,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/qm)
+"tLG" = (
+/obj/machinery/camera/directional/south{
+ c_tag = "Service - Service Hall"
+ },
+/obj/machinery/light_switch/directional/south,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/duct,
+/turf/open/floor/wood/large,
+/area/station/hallway/secondary/service)
"tLI" = (
/obj/structure/disposalpipe/trunk,
/turf/closed/wall,
@@ -57265,16 +57846,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/ordnance)
-"tMz" = (
-/obj/effect/turf_decal/loading_area/white,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/science/research)
"tMG" = (
/obj/effect/spawner/structure/window,
/obj/machinery/door/poddoor/preopen{
@@ -57427,6 +57998,9 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"tPP" = (
+/turf/open/floor/wood,
+/area/station/service/lawoffice)
"tQk" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -57437,6 +58011,14 @@
/obj/structure/window/spawner/directional/east,
/turf/open/floor/carpet/donk,
/area/station/security/prison/mess)
+"tQp" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/conveyor{
+ id = "mining";
+ dir = 1
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"tQt" = (
/obj/structure/table,
/obj/item/flashlight{
@@ -57476,13 +58058,6 @@
},
/turf/open/floor/wood/large,
/area/station/service/library)
-"tQT" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"tQV" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -57592,6 +58167,12 @@
/obj/machinery/button/ignition/incinerator/atmos,
/turf/closed/wall/r_wall,
/area/station/maintenance/disposal/incinerator)
+"tUb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/station/biodome)
"tUf" = (
/obj/structure/railing{
dir = 4
@@ -57707,10 +58288,10 @@
},
/turf/open/floor/iron,
/area/station/commons/fitness)
-"tWa" = (
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
+"tWd" = (
+/obj/effect/landmark/navigate_destination/cryo,
+/turf/open/floor/carpet/executive,
+/area/station/commons/locker)
"tWe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -57725,10 +58306,6 @@
/obj/machinery/light/directional/north,
/turf/open/openspace,
/area/station/hallway/primary/starboard)
-"tWl" = (
-/obj/machinery/light/warm/directional/west,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"tWv" = (
/obj/effect/turf_decal/tile/dark_blue/diagonal_edge,
/obj/effect/landmark/event_spawn,
@@ -57786,6 +58363,11 @@
/obj/effect/mapping_helpers/airlock/unres,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"tXW" = (
+/obj/structure/closet/secure_closet/freezer/meat,
+/obj/machinery/light/cold/directional/north,
+/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
+/area/station/service/kitchen/coldroom)
"tYa" = (
/obj/structure/closet/secure_closet/atmospherics,
/turf/open/floor/iron/dark,
@@ -57851,10 +58433,12 @@
"tZU" = (
/turf/closed/wall/r_wall,
/area/station/security/prison)
-"uaa" = (
-/obj/structure/holosign/barrier/atmos/tram,
-/turf/open/openspace,
-/area/station/biodome/aft)
+"tZX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/engineering/engine_smes)
"uae" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -57921,6 +58505,12 @@
},
/turf/open/floor/iron/smooth_large,
/area/station/security/brig)
+"ubb" = (
+/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/large,
+/area/station/service/library/lounge)
"ubd" = (
/obj/structure/cable,
/turf/open/floor/carpet/black,
@@ -58040,6 +58630,16 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/grass,
/area/station/biodome/aft)
+"ued" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/duct,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/hallway/secondary/service)
"uef" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
@@ -58047,6 +58647,17 @@
},
/turf/open/floor/plating,
/area/station/engineering/atmos)
+"ueh" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Equipment Room"
+ },
+/obj/machinery/door/firedoor,
+/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,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"ueo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
/turf/open/floor/plating,
@@ -58164,13 +58775,6 @@
"ufJ" = (
/turf/closed/wall/mineral/wood,
/area/station/commons/storage/primary)
-"ufX" = (
-/obj/machinery/door/airlock{
- name = "Unisex Restrooms"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/freezer,
-/area/station/commons/toilet)
"ugl" = (
/obj/structure/cable,
/obj/item/shard,
@@ -58515,10 +59119,19 @@
},
/turf/open/floor/wood/large,
/area/station/service/library)
+"unt" = (
+/obj/structure/sign/poster/official/moth_hardhat/directional/east,
+/turf/open/floor/grass,
+/area/station/biodome)
"unu" = (
/obj/machinery/firealarm/directional/west,
/turf/open/floor/grass,
/area/station/biodome/aft)
+"unA" = (
+/obj/structure/beebox,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/grass,
+/area/station/service/hydroponics)
"unD" = (
/obj/structure/stairs/east,
/turf/open/floor/iron/stairs/left{
@@ -58564,11 +59177,6 @@
"uox" = (
/turf/closed/wall,
/area/station/security/lockers)
-"uoB" = (
-/obj/structure/holosign/barrier/atmos/tram,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plating,
-/area/station/biodome/aft)
"uoD" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -58636,11 +59244,6 @@
},
/turf/open/openspace,
/area/station/science/xenobiology)
-"upy" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/marker_beacon/olive,
-/turf/open/space/basic,
-/area/space/nearstation)
"upK" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/sorting/mail{
@@ -58654,10 +59257,6 @@
"upO" = (
/turf/closed/wall/r_wall,
/area/station/science/xenobiology/hallway)
-"upW" = (
-/obj/structure/closet/secure_closet/security/sec,
-/turf/open/floor/iron/smooth_half,
-/area/station/security/lockers)
"upY" = (
/obj/effect/landmark/start/blueshield,
/turf/open/floor/wood/tile,
@@ -58697,19 +59296,30 @@
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/station/engineering/atmos/project)
-"uqN" = (
-/obj/effect/turf_decal/bot,
-/obj/structure/closet/crate{
- icon_state = "crateopen"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"uqP" = (
/obj/effect/landmark/start/hangover,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/commons/fitness)
+"uqY" = (
+/obj/machinery/button/elevator/directional/north{
+ id = "biodome_engie_lift"
+ },
+/obj/machinery/lift_indicator/directional/north{
+ linked_elevator_id = "biodome_engie_lift"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8
+ },
+/obj/machinery/door/window/elevator/left/directional/west{
+ transport_linked_id = "biodome_engie_lift";
+ elevator_mode = 1
+ },
+/turf/open/floor/iron/terracotta,
+/area/station/hallway/primary/aft)
"uri" = (
/obj/machinery/recharge_station,
/turf/open/floor/plating,
@@ -58756,13 +59366,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
-"urA" = (
-/obj/structure/closet/bombcloset,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/iron/white,
-/area/station/science/ordnance)
"urM" = (
/obj/effect/spawner/structure/window,
/obj/structure/holosign/barrier/atmos/leaf{
@@ -58816,25 +59419,11 @@
},
/turf/open/floor/iron,
/area/station/cargo/drone_bay)
-"utd" = (
-/obj/machinery/firealarm/directional/east,
-/obj/effect/turf_decal/tile/neutral/half{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/commons/locker)
"ute" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/chemistry)
-"utg" = (
-/obj/machinery/vending/wardrobe/chem_wardrobe,
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron/dark/textured_half{
- dir = 1
- },
-/area/station/medical/chemistry)
"uti" = (
/obj/effect/spawner/structure/window,
/obj/structure/curtain/bounty,
@@ -58870,6 +59459,12 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/atmos/mix)
+"utZ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/small,
+/area/station/security/mechbay)
"uud" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -59003,6 +59598,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/carpet/neon/simple/cyan/nodots,
/area/station/science/server)
+"uxa" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/secequipment,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/lockers)
"uxI" = (
/obj/machinery/computer/mechpad,
/turf/open/floor/iron,
@@ -59029,6 +59630,13 @@
},
/turf/open/floor/iron,
/area/station/engineering/storage)
+"uxU" = (
+/obj/effect/landmark/start/hangover,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/station/biodome)
"uyp" = (
/obj/effect/turf_decal/arrows/red{
dir = 4;
@@ -59039,6 +59647,21 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmos/hfr_room)
+"uyv" = (
+/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{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/fax{
+ fax_name = "Security Office";
+ name = "Security Office Fax Machine"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"uyA" = (
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron,
@@ -59064,6 +59687,13 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
+"uyW" = (
+/obj/structure/transit_tube/curved,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/fore)
"uyX" = (
/obj/effect/turf_decal/siding/dark{
dir = 8
@@ -59559,6 +60189,10 @@
/obj/item/food/grown/ash_flora/mushroom_leaf,
/turf/open/floor/plating,
/area/station/engineering/atmos/project)
+"uHC" = (
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"uHK" = (
/obj/machinery/door/airlock/highsecurity{
name = "Secure Tech Storage"
@@ -59634,6 +60268,9 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/aft/upper)
+"uIJ" = (
+/turf/closed/wall/r_wall/fakewood,
+/area/station/command/heads_quarters/blueshield)
"uIO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -59743,12 +60380,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/cargo/storage)
-"uKU" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"uKY" = (
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/engine/hull,
@@ -59918,6 +60549,10 @@
},
/turf/open/floor/plating,
/area/station/commons/storage/tools)
+"uOc" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/turf/open/misc/asteroid/airless,
+/area/space/nearstation)
"uOi" = (
/obj/machinery/telecomms/server/presets/common,
/turf/open/floor/iron/dark/telecomms,
@@ -59943,6 +60578,15 @@
/obj/machinery/light/directional/west,
/turf/open/floor/iron,
/area/station/commons/fitness)
+"uOr" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/machinery/status_display/evac/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plating,
+/area/station/biodome/aft)
"uOC" = (
/obj/structure/chair/comfy/black,
/turf/open/floor/plating,
@@ -60070,6 +60714,13 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/engineering/engine_smes)
+"uRh" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/station/biodome/fore)
"uRn" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/yellow/opposingcorners,
@@ -60082,16 +60733,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/stone,
/area/station/cargo/blacksmith)
-"uRz" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- name = "Engine Coolant Bypass"
- },
-/obj/structure/cable/layer3,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"uRB" = (
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
dir = 10
@@ -60099,14 +60740,6 @@
/obj/machinery/meter,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"uRL" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/obj/structure/chair,
-/obj/effect/landmark/start/depsec/science,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/science)
"uRP" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -60133,14 +60766,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
-"uSy" = (
-/obj/machinery/airalarm/directional/east,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/item/banner/command/mundane,
-/turf/open/floor/wood,
-/area/station/command/bridge)
"uTf" = (
/obj/structure/table,
/obj/machinery/cell_charger,
@@ -60198,11 +60823,20 @@
/obj/effect/spawner/random/trash/moisture,
/turf/open/misc/asteroid,
/area/station/maintenance/central/greater)
-"uUw" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/filingcabinet/security,
-/turf/open/floor/wood,
-/area/station/security/brig)
+"uUp" = (
+/obj/machinery/vending/autodrobe,
+/obj/effect/turf_decal/tile/neutral/half,
+/turf/open/floor/iron,
+/area/station/commons/locker)
+"uUs" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/sign/poster/official/random/directional/west,
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 8
+ },
+/obj/machinery/photocopier,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/security/office)
"uUx" = (
/obj/structure/railing,
/turf/open/openspace,
@@ -60306,6 +60940,15 @@
},
/turf/open/floor/iron/white/smooth_large,
/area/station/service/hydroponics)
+"uWB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"uWL" = (
/obj/machinery/door/poddoor/shutters/preopen{
dir = 4;
@@ -60430,6 +61073,14 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"uYs" = (
+/obj/machinery/restaurant_portal/bar,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"uYy" = (
/obj/item/pneumatic_cannon/ghetto,
/turf/open/misc/asteroid,
@@ -60459,6 +61110,13 @@
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"uZi" = (
+/obj/item/radio/intercom/directional/east,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/carpet/blue,
+/area/station/security/processing)
"uZk" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/yellow/half/contrasted{
@@ -60525,6 +61183,11 @@
/obj/machinery/light/small/blacklight/directional/west,
/turf/open/floor/iron/dark,
/area/station/service/chapel)
+"vay" = (
+/obj/machinery/firealarm/directional/east,
+/obj/machinery/power/shieldwallgen,
+/turf/open/floor/iron/dark,
+/area/station/command/gateway)
"vaA" = (
/obj/machinery/airalarm/directional/north,
/obj/machinery/holopad,
@@ -60599,6 +61262,12 @@
/obj/structure/lattice,
/turf/open/openspace,
/area/station/service/hydroponics)
+"vbD" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/large,
+/area/station/biodome/aft)
"vbG" = (
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/obj/structure/cable,
@@ -60717,6 +61386,15 @@
/obj/effect/landmark/start/warden,
/turf/open/floor/carpet/blue,
/area/station/security/warden)
+"vdn" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"vdw" = (
/obj/effect/decal/cleanable/generic,
/turf/open/floor/plating,
@@ -60740,22 +61418,6 @@
/obj/structure/cable,
/turf/open/floor/carpet/royalblack,
/area/station/service/library/lounge)
-"vdL" = (
-/obj/structure/table/wood,
-/obj/item/toy/crayon/spraycan{
- pixel_x = -4
- },
-/obj/item/toy/crayon/spraycan,
-/obj/item/storage/crayons,
-/obj/item/storage/crayons,
-/obj/structure/sign/painting/library{
- pixel_x = 32
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"vdV" = (
/obj/machinery/atmospherics/components/binary/pump,
/turf/open/floor/glass/reinforced,
@@ -60791,6 +61453,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood/large,
/area/station/service/theater)
+"veJ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/wood/large,
+/area/station/hallway/secondary/service)
"veU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -60804,15 +61473,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood/large,
/area/station/service/kitchen/diner)
-"vfo" = (
-/obj/effect/landmark/start/depsec/medical,
-/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/landmark/event_spawn,
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/security/checkpoint/medical)
"vfv" = (
/obj/machinery/computer/cargo{
dir = 4
@@ -60957,11 +61617,6 @@
/obj/effect/landmark/carpspawn,
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
-"viy" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/dark_red/half,
-/turf/open/floor/iron/white,
-/area/station/medical/chemistry)
"viz" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -60981,16 +61636,6 @@
/obj/item/clothing/head/costume/festive,
/turf/open/floor/eighties/red,
/area/station/hallway/secondary/exit/departure_lounge)
-"vje" = (
-/obj/structure/table,
-/obj/item/paper/fluff/jobs/security/beepsky_mom{
- pixel_y = 6
- },
-/obj/item/stock_parts/power_store/cell/potato{
- name = "\improper Beepsky's emergency battery"
- },
-/turf/open/floor/wood,
-/area/station/security/brig)
"vjl" = (
/obj/machinery/power/smes{
charge = 5e+006
@@ -61026,12 +61671,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
-"vkm" = (
-/obj/structure/railing{
- dir = 9
- },
-/turf/open/openspace,
-/area/station/service/hydroponics)
"vkw" = (
/obj/effect/landmark/start/bartender,
/turf/open/floor/bamboo/tatami/black{
@@ -61421,6 +62060,13 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/solars/starboard/aft)
+"vqF" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/layer1,
+/obj/machinery/status_display/evac/directional/south,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"vqK" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -61461,6 +62107,13 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"vrm" = (
+/obj/machinery/firealarm/directional/east,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/carpet/blue,
+/area/station/security/processing)
"vrt" = (
/obj/machinery/door/airlock/maintenance{
name = "Disposal Access"
@@ -61483,6 +62136,10 @@
/obj/effect/turf_decal/tile/dark_green/full,
/turf/open/floor/iron/white/smooth_large,
/area/station/service/kitchen)
+"vrT" = (
+/obj/machinery/button/delam_scram,
+/turf/closed/wall/r_wall,
+/area/station/engineering/main)
"vrU" = (
/turf/open/floor/iron,
/area/station/security/checkpoint/escape)
@@ -61511,21 +62168,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/engine,
/area/station/science/explab)
-"vsz" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/landmark/start/depsec/science,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/science)
-"vsC" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/openspace,
-/area/station/maintenance/port/greater)
"vsD" = (
/obj/effect/spawner/random/structure/grille,
/obj/structure/lattice,
@@ -61567,10 +62209,6 @@
},
/turf/open/floor/iron/white/diagonal,
/area/station/science/robotics/lab)
-"vtC" = (
-/obj/effect/turf_decal/tile/blue,
-/turf/open/floor/iron,
-/area/station/engineering/lobby)
"vtH" = (
/obj/structure/reagent_dispensers/beerkeg,
/turf/open/floor/iron/checker,
@@ -61835,10 +62473,6 @@
"vyS" = (
/turf/open/floor/glass,
/area/station/maintenance/port/greater)
-"vzf" = (
-/obj/structure/beebox,
-/turf/open/floor/grass,
-/area/station/service/hydroponics)
"vzm" = (
/obj/machinery/camera/directional/east{
c_tag = "Biodome - Starboard Passage Overlook"
@@ -61853,6 +62487,10 @@
},
/turf/open/floor/wood/tile,
/area/station/command/heads_quarters/captain)
+"vzw" = (
+/obj/machinery/duct,
+/turf/open/floor/iron/freezer,
+/area/station/commons/toilet)
"vzF" = (
/obj/machinery/light/small/directional/north,
/turf/open/floor/plating,
@@ -61984,14 +62622,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/security/brig/entrance)
-"vCg" = (
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/structure/cable/layer3,
-/turf/open/floor/plating,
-/area/station/engineering/supermatter)
"vCl" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -62031,10 +62661,6 @@
dir = 5
},
/area/station/service/chapel)
-"vDd" = (
-/obj/structure/closet/secure_closet/engineering_electrical,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/crew_quarters/bar)
"vDf" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/duct,
@@ -62063,12 +62689,6 @@
/obj/structure/barricade/wooden,
/turf/open/floor/plating,
/area/station/maintenance/aft/upper)
-"vDz" = (
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/machinery/airalarm/directional/south,
-/obj/structure/cable,
-/turf/open/floor/iron/checker,
-/area/station/service/bar/backroom)
"vDB" = (
/obj/structure/table,
/obj/item/paper_bin{
@@ -62194,17 +62814,6 @@
/obj/machinery/duct,
/turf/open/floor/wood/large,
/area/station/hallway/secondary/service)
-"vFG" = (
-/obj/structure/table,
-/obj/item/reagent_containers/condiment/peppermill{
- pixel_x = 3
- },
-/obj/item/reagent_containers/condiment/saltshaker{
- pixel_x = -3
- },
-/obj/effect/turf_decal/weather/dirt,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"vFK" = (
/obj/effect/turf_decal/siding/dark,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -62418,6 +63027,12 @@
/obj/structure/lattice/catwalk,
/turf/open/openspace,
/area/station/biodome)
+"vJc" = (
+/obj/structure/sign/poster/random/directional/west,
+/obj/machinery/door/airlock/public/glass,
+/obj/machinery/door/firedoor,
+/turf/open/floor/grass,
+/area/station/biodome/aft)
"vJy" = (
/obj/effect/turf_decal/trimline/blue/corner{
dir = 8
@@ -62536,12 +63151,6 @@
/obj/effect/turf_decal/trimline/red/warning,
/turf/open/floor/iron,
/area/station/security/brig)
-"vLE" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/station/science/research)
"vLL" = (
/obj/structure/sign/directions/command/directional/east{
dir = 2;
@@ -62563,10 +63172,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"vLR" = (
-/obj/structure/hedge,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"vMd" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/landmark/generic_maintenance_landmark,
@@ -62578,17 +63183,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/construction)
-"vMh" = (
-/obj/structure/railing{
- dir = 8
- },
-/turf/open/floor/iron/herringbone,
-/area/station/biodome)
-"vMr" = (
-/obj/machinery/rnd/production/techfab/department/security,
-/obj/effect/turf_decal/tile/red/half/contrasted,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/security/office)
"vMt" = (
/obj/machinery/atmospherics/components/trinary/filter/flipped{
filter_type = list(/datum/gas/carbon_dioxide);
@@ -62614,10 +63208,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/construction/mining/aux_base)
-"vMK" = (
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/station/medical/chemistry)
"vMM" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -62672,12 +63262,6 @@
/obj/effect/landmark/start/hangover/closet,
/turf/open/floor/iron,
/area/station/commons/dorms)
-"vOf" = (
-/obj/structure/reflector/single/anchored{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
"vOu" = (
/obj/structure/filingcabinet,
/turf/open/floor/iron/dark,
@@ -62719,12 +63303,6 @@
/obj/item/poster/random_official,
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
-"vOV" = (
-/obj/effect/turf_decal/trimline/neutral/filled/warning{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/service/hydroponics/garden)
"vOY" = (
/obj/machinery/duct,
/turf/open/floor/iron/terracotta,
@@ -62755,6 +63333,13 @@
/obj/item/flashlight/lamp,
/turf/open/floor/carpet/neon/simple/green,
/area/station/commons/dorms)
+"vPO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"vQc" = (
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/iron/dark,
@@ -62766,16 +63351,6 @@
/obj/structure/closet/emcloset,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"vQj" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/door/firedoor,
-/obj/structure/mineral_door/paperframe{
- name = "Bar"
- },
-/turf/open/floor/bamboo/tatami{
- dir = 4
- },
-/area/station/commons/lounge)
"vQn" = (
/obj/structure/kitchenspike,
/obj/item/food/meat/slab/human,
@@ -62793,20 +63368,6 @@
/obj/structure/sign/poster/contraband/random/directional/south,
/turf/open/floor/carpet/black,
/area/station/service/theater)
-"vQz" = (
-/obj/effect/turf_decal/weather/dirt{
- dir = 8
- },
-/obj/machinery/camera/directional/west{
- c_tag = "Service - Diner"
- },
-/obj/effect/turf_decal/siding/dark_green/corner{
- dir = 4
- },
-/obj/machinery/firealarm/directional/west,
-/obj/structure/cable,
-/turf/open/floor/grass,
-/area/station/service/kitchen/diner)
"vQG" = (
/obj/structure/table/wood,
/obj/item/storage/box/seccarts{
@@ -62830,6 +63391,13 @@
},
/turf/open/floor/grass,
/area/station/medical/virology)
+"vRr" = (
+/obj/effect/turf_decal/siding/dark{
+ dir = 10
+ },
+/obj/machinery/cryopod/prison/directional/north,
+/turf/open/floor/iron,
+/area/station/security/prison)
"vRx" = (
/obj/machinery/door/airlock{
name = "Law Office"
@@ -62870,6 +63438,13 @@
/obj/machinery/light/directional/south,
/turf/open/openspace,
/area/station/hallway/primary/starboard)
+"vSo" = (
+/obj/structure/reflector/single/anchored{
+ dir = 10
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"vSA" = (
/obj/structure/closet/secure_closet/warden,
/obj/machinery/power/apc/auto_name/directional/south,
@@ -62944,23 +63519,11 @@
},
/turf/open/floor/carpet/executive,
/area/station/command/heads_quarters/captain)
-"vTD" = (
-/obj/structure/table,
-/obj/item/storage/box/lights/mixed,
-/obj/item/flashlight{
- pixel_x = 1;
- pixel_y = 5
- },
-/obj/item/flashlight{
- pixel_x = -1
- },
-/obj/effect/turf_decal/siding/thinplating_new/terracotta{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/engineering/storage)
+"vTH" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/stripes/red/box,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"vTL" = (
/turf/open/floor/engine/vacuum,
/area/station/engineering/atmos)
@@ -62990,15 +63553,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"vUr" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/structure/cable/layer3,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"vUu" = (
/obj/machinery/camera/directional/west{
c_tag = "Research - Xenobio Slime Chambers Port";
@@ -63043,13 +63597,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood,
/area/station/command/bridge)
-"vUO" = (
-/obj/machinery/door/window/left/directional/south{
- name = "Apiary";
- req_access = list("hydroponics")
- },
-/turf/open/floor/grass,
-/area/station/service/hydroponics)
"vUP" = (
/obj/machinery/atmospherics/components/trinary/filter/flipped{
filter_type = list(/datum/gas/plasma);
@@ -63182,6 +63729,15 @@
dir = 1
},
/area/station/medical/morgue)
+"vWv" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix Bypass"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/status_display/evac/directional/south,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"vWz" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -63289,6 +63845,17 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"vYJ" = (
+/obj/machinery/camera/directional/west{
+ c_tag = "Biodome - Overpass Fore"
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/item/book/random,
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plating,
+/area/station/hallway/primary/central)
"vYR" = (
/obj/structure/rack,
/obj/item/screwdriver,
@@ -63300,6 +63867,10 @@
/obj/machinery/suit_storage_unit/medical,
/turf/open/floor/iron/dark,
/area/station/medical/storage)
+"vZm" = (
+/obj/effect/spawner/random/structure/crate_loot,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"vZs" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
@@ -63470,6 +64041,16 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
+"wcq" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/red/arrow_cw{
+ dir = 8
+ },
+/obj/effect/landmark/start/corrections_officer,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/security/brig)
"wcs" = (
/obj/effect/landmark/start/hangover,
/turf/open/floor/plating,
@@ -63534,6 +64115,21 @@
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/medical/morgue)
+"wdl" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/railing/wooden_fencing{
+ dir = 8
+ },
+/obj/structure/railing/wooden_fencing{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/wood/large,
+/area/station/biodome/aft)
"wdv" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/iron/dark,
@@ -63564,10 +64160,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/science)
-"wdV" = (
-/obj/machinery/status_display/evac/directional/south,
-/turf/open/floor/stone,
-/area/station/biodome)
"wdZ" = (
/obj/machinery/atmospherics/components/binary/valve/digital{
dir = 1
@@ -63669,12 +64261,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"wfp" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome/aft)
"wfw" = (
/obj/structure/ladder,
/turf/open/floor/plating/airless,
@@ -63824,6 +64410,12 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
+"whT" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/wood/large,
+/area/station/service/library/lounge)
"wia" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/button/door/directional/south{
@@ -63881,13 +64473,9 @@
/obj/machinery/disposal/bin,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"wiP" = (
-/obj/machinery/status_display/evac/directional/west,
-/obj/structure/railing{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/station/biodome/aft)
+"wiM" = (
+/turf/closed/wall,
+/area/station/security/mechbay)
"wiZ" = (
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 6
@@ -63958,6 +64546,18 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"wjL" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ name = "sorting disposal pipe (Chapel)"
+ },
+/obj/effect/mapping_helpers/mail_sorting/service/chapel,
+/obj/machinery/light/directional/north,
+/turf/open/floor/stone,
+/area/station/biodome)
"wjM" = (
/obj/effect/decal/cleanable/confetti,
/turf/open/floor/plating,
@@ -63977,14 +64577,6 @@
},
/turf/open/floor/grass,
/area/station/biodome/aft)
-"wkm" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/structure/cable/layer3,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"wky" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -64158,16 +64750,6 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
-"wmc" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/effect/turf_decal/tile/yellow/fourcorners,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/station/engineering/storage)
"wme" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -64197,6 +64779,14 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/commons/storage/emergency/starboard)
+"wmx" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/obj/effect/mapping_helpers/airlock/unres,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/station/maintenance/port/greater)
"wmz" = (
/obj/structure/table,
/obj/item/reagent_containers/condiment/saltshaker{
@@ -64322,17 +64912,6 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/grass,
/area/station/science/genetics)
-"wnD" = (
-/obj/docking_port/stationary{
- dir = 2;
- dwidth = 11;
- height = 24;
- name = "SS13: Auxiliary Dock, Station-Port";
- shuttle_id = "whiteship_home";
- width = 35
- },
-/turf/open/space/basic,
-/area/space)
"wnH" = (
/obj/machinery/door/firedoor,
/obj/structure/cable,
@@ -64353,6 +64932,13 @@
},
/turf/open/floor/wood/large,
/area/station/commons/lounge)
+"wnT" = (
+/obj/effect/turf_decal/trimline/dark_blue/corner{
+ dir = 8
+ },
+/obj/machinery/light_switch/directional/east,
+/turf/open/floor/iron/dark,
+/area/station/command/gateway)
"wnV" = (
/obj/structure/railing{
dir = 1
@@ -64406,13 +64992,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
-"wom" = (
-/obj/structure/chair/sofa/corp/left{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue,
-/turf/open/floor/iron,
-/area/station/engineering/lobby)
"wor" = (
/obj/structure/closet/crate/coffin,
/obj/structure/window/spawner/directional/east,
@@ -64463,12 +65042,6 @@
dir = 1
},
/area/station/science/robotics/lab)
-"wpw" = (
-/obj/structure/easel,
-/obj/item/canvas/twentythree_twentythree,
-/obj/item/canvas/nineteen_nineteen,
-/turf/open/floor/wood/large,
-/area/station/service/library/lounge)
"wpy" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -64487,6 +65060,11 @@
/obj/effect/mapping_helpers/airlock/welded,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"wpU" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair/office,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/brig)
"wpW" = (
/obj/item/radio/intercom/directional/south,
/obj/structure/cable,
@@ -64513,6 +65091,11 @@
},
/turf/open/floor/carpet/black,
/area/station/service/chapel/funeral)
+"wqu" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating/airless,
+/area/station/security/mechbay)
"wqN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
/turf/open/floor/engine,
@@ -64592,12 +65175,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"wsv" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/wood/large,
-/area/station/hallway/secondary/service)
"wsz" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
dir = 8
@@ -64723,14 +65300,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/atmos/storage/gas)
-"wvn" = (
-/obj/machinery/camera/directional/south{
- c_tag = "Engineering - Supermatter Aft";
- network = list("ss13","engine")
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"wvs" = (
/obj/machinery/computer/quantum_console{
dir = 4
@@ -64964,11 +65533,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/white/small,
/area/station/maintenance/central/greater)
-"wyx" = (
-/obj/structure/sign/poster/random/directional/west,
-/obj/machinery/door/airlock/public/glass,
-/turf/open/floor/grass,
-/area/station/biodome/aft)
"wyE" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
@@ -65005,10 +65569,22 @@
},
/turf/open/floor/wood/large,
/area/station/biodome/fore)
+"wzk" = (
+/obj/effect/landmark/start/blueshield,
+/obj/structure/chair/comfy/teal{
+ dir = 4
+ },
+/turf/open/floor/carpet/executive,
+/area/station/command/heads_quarters/blueshield)
"wzl" = (
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/closed/wall/mineral/wood,
/area/station/asteroid)
+"wzs" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/station/engineering/transit_tube)
"wzu" = (
/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible{
dir = 4
@@ -65049,13 +65625,6 @@
},
/turf/open/floor/grass,
/area/station/service/theater)
-"wzP" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/dark_red{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/station/medical/chemistry)
"wzU" = (
/obj/machinery/firealarm/directional/west,
/obj/effect/turf_decal/tile/yellow/opposingcorners,
@@ -65078,6 +65647,13 @@
},
/turf/open/water/jungle/biodome,
/area/station/maintenance/central/greater)
+"wAb" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 10
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"wAh" = (
/obj/structure/chair/office,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -65382,6 +65958,15 @@
/obj/structure/table/reinforced/plasmarglass,
/turf/open/floor/stone,
/area/station/security/execution/education)
+"wEK" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/effect/turf_decal/trimline/dark_green/filled/line,
+/obj/effect/turf_decal/trimline/green/line,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/service/hydroponics)
"wEM" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -65410,15 +65995,13 @@
},
/turf/open/floor/carpet,
/area/station/service/chapel/funeral)
-"wFe" = (
-/obj/machinery/camera/directional/west{
- c_tag = "Civilian - Garden Overlook Port"
- },
-/obj/structure/railing{
- dir = 8
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
+"wFk" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/directional/east,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"wFv" = (
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
@@ -65465,6 +66048,14 @@
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/medical/morgue)
+"wGt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/structure/chair,
+/obj/effect/landmark/start/science_guard,
+/turf/open/floor/iron/dark,
+/area/station/security/checkpoint/science)
"wGu" = (
/mob/living/basic/lizard/wags_his_tail,
/obj/structure/cable,
@@ -65505,6 +66096,10 @@
/obj/structure/chair/wood,
/turf/open/floor/carpet/royalblack,
/area/station/service/library/lounge)
+"wHo" = (
+/obj/machinery/light/directional/west,
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"wHv" = (
/obj/structure/closet/firecloset,
/obj/effect/turf_decal/tile/purple/half/contrasted,
@@ -65594,6 +66189,12 @@
},
/turf/open/floor/iron,
/area/station/commons/fitness)
+"wJa" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/bot,
+/obj/structure/closet/secure_closet/security/sec,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/lockers)
"wJn" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -65724,12 +66325,27 @@
/obj/machinery/light/broken/directional/south,
/turf/open/floor/wood/large,
/area/station/science/breakroom)
+"wMm" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/conveyor{
+ id = "mining";
+ dir = 8
+ },
+/obj/machinery/bouldertech/refinery/smelter,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"wMo" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/holofloor/dark,
/area/station/science/cytology)
+"wMu" = (
+/obj/machinery/door/firedoor/border_only,
+/turf/open/openspace,
+/area/station/hallway/primary/aft)
"wMz" = (
/obj/structure/training_machine,
/obj/effect/landmark/blobstart,
@@ -65799,17 +66415,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/commons/storage/emergency/starboard)
-"wNI" = (
-/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 2
- },
-/obj/effect/turf_decal/siding/thinplating_new/terracotta{
- dir = 6
- },
-/turf/open/floor/iron/dark,
-/area/station/engineering/storage)
"wNK" = (
/obj/effect/spawner/random/structure/billboard/nanotrasen,
/obj/structure/lattice,
@@ -66143,13 +66748,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"wTa" = (
-/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{
- dir = 4
- },
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/iron/dark,
-/area/station/command/gateway)
"wTj" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -66207,12 +66805,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"wUg" = (
-/obj/structure/railing{
- dir = 6
- },
-/turf/open/floor/iron/herringbone,
-/area/station/biodome)
"wUh" = (
/obj/structure/flora/bush/flowers_yw/style_random,
/turf/open/floor/grass,
@@ -66227,6 +66819,10 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/construction/engineering)
+"wUw" = (
+/obj/machinery/status_display/evac/directional/west,
+/turf/open/floor/grass,
+/area/station/biodome)
"wUQ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -66251,15 +66847,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating,
/area/station/maintenance/solars/port/aft)
-"wVs" = (
-/obj/machinery/door/airlock/hydroponics{
- name = "Hydroponics"
- },
-/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/duct,
-/turf/open/floor/stone,
-/area/station/service/hydroponics)
"wVC" = (
/obj/effect/landmark/start/geneticist,
/obj/structure/chair/office{
@@ -66291,11 +66878,6 @@
},
/turf/open/openspace,
/area/station/biodome)
-"wWl" = (
-/obj/machinery/holopad,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/smooth_large,
-/area/station/security/lockers)
"wWm" = (
/obj/effect/turf_decal/siding/yellow{
dir = 4
@@ -66378,6 +66960,9 @@
/obj/item/lighter/greyscale,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/maintenance/department/cargo)
+"wXs" = (
+/turf/open/floor/wood/stairs/left,
+/area/station/biodome/aft)
"wXt" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/turf/open/floor/plating,
@@ -66759,13 +67344,6 @@
"xdO" = (
/turf/closed/wall,
/area/station/hallway/secondary/exit/departure_lounge)
-"xdR" = (
-/obj/structure/stairs/wood,
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/station/service/hydroponics/garden)
"xdT" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 4
@@ -66860,14 +67438,6 @@
},
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
-"xfC" = (
-/obj/effect/turf_decal/delivery/red,
-/obj/item/book/random,
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/station/service/library/lounge)
"xfO" = (
/obj/structure/transit_tube/curved/flipped{
dir = 4
@@ -66883,6 +67453,16 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/service/hydroponics/garden)
+"xgL" = (
+/obj/machinery/door/airlock/hydroponics{
+ name = "Hydroponics"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/duct,
+/obj/machinery/door/firedoor,
+/turf/open/floor/stone,
+/area/station/service/hydroponics)
"xgT" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -66953,6 +67533,9 @@
/obj/structure/flora/rock/pile/jungle/style_random,
/turf/open/water/jungle/biodome,
/area/station/maintenance/fore/greater)
+"xhV" = (
+/turf/open/openspace,
+/area/station/hallway/primary/aft)
"xhX" = (
/obj/structure/rack,
/obj/item/clothing/suit/hazardvest,
@@ -67013,6 +67596,10 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/biodome)
+"xiF" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/iron/smooth_large,
+/area/station/security/lockers)
"xiJ" = (
/turf/closed/wall/mineral/wood,
/area/station/engineering/storage/tech)
@@ -67107,6 +67694,12 @@
/obj/structure/cable,
/turf/open/floor/plating/reinforced,
/area/station/maintenance/central/greater)
+"xkK" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/station/biodome)
"xkP" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -67177,6 +67770,10 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
+"xlC" = (
+/obj/machinery/light/floor,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"xlE" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -67242,17 +67839,6 @@
"xnt" = (
/turf/open/floor/iron/white/smooth_large,
/area/station/service/hydroponics)
-"xnu" = (
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 1
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/red/filled/mid_joiner{
- dir = 1
- },
-/turf/open/floor/iron/smooth_half,
-/area/station/security/brig)
"xnx" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/effect/mapping_helpers/damaged_window,
@@ -67280,12 +67866,6 @@
/obj/effect/turf_decal/trimline/red/filled/line,
/turf/open/floor/iron/dark/smooth_half,
/area/station/security/brig)
-"xnJ" = (
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/station/security/medical)
"xnT" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -67343,6 +67923,11 @@
/obj/effect/turf_decal/tile/purple/opposingcorners,
/turf/open/floor/iron,
/area/station/science/genetics)
+"xoO" = (
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron/white,
+/area/station/science/ordnance)
"xoW" = (
/obj/structure/falsewall,
/turf/open/floor/plating,
@@ -67357,6 +67942,13 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/station/commons/fitness)
+"xpv" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/structure/chair_maintenance{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/department/science)
"xpD" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
@@ -67398,6 +67990,11 @@
/obj/item/toy/plush/lizard_plushie/space/green,
/turf/open/space/openspace,
/area/space/nearstation)
+"xqk" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"xqp" = (
/obj/structure/chair/pew,
/obj/effect/turf_decal/siding/dark{
@@ -67477,13 +68074,6 @@
"xrH" = (
/turf/open/floor/iron/white,
/area/station/science/ordnance)
-"xrP" = (
-/obj/effect/landmark/start/hangover,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/catwalk_floor/iron,
-/area/station/biodome)
"xrS" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -67556,6 +68146,16 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/grass,
/area/station/biodome)
+"xtn" = (
+/obj/structure/window/reinforced/spawner/directional/south,
+/turf/open/floor/iron/dark,
+/area/station/science/circuits)
+"xto" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/effect/turf_decal/trimline/red/filled/mid_joiner,
+/obj/machinery/recharge_station,
+/turf/open/floor/iron/smooth_half,
+/area/station/security/brig)
"xtD" = (
/obj/structure/cable,
/obj/effect/landmark/start/station_engineer,
@@ -67602,6 +68202,10 @@
/obj/machinery/newscaster/directional/north,
/turf/open/floor/carpet,
/area/station/commons/vacant_room/office)
+"xuD" = (
+/obj/machinery/light/directional/east,
+/turf/open/openspace,
+/area/station/service/hydroponics/garden)
"xuG" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/camera/directional/west{
@@ -67759,14 +68363,6 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron,
/area/station/engineering/atmos/storage/gas)
-"xwK" = (
-/obj/structure/table,
-/obj/item/trash/can/food/pine_nuts,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/turf_decal/weather/dirt,
-/obj/structure/stone_tile/block,
-/turf/open/floor/plating,
-/area/station/cargo/miningdock)
"xwM" = (
/obj/effect/turf_decal/siding/wideplating/corner,
/turf/open/floor/catwalk_floor/iron_dark,
@@ -67803,13 +68399,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"xxS" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"xxW" = (
/obj/machinery/status_display/evac/directional/north,
/obj/item/kirbyplants/random,
@@ -67879,6 +68468,12 @@
/obj/effect/turf_decal/siding/dark,
/turf/open/floor/carpet/orange,
/area/station/security/prison)
+"xzi" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"xzy" = (
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating,
@@ -67998,10 +68593,6 @@
/obj/machinery/light/warm/directional/north,
/turf/open/floor/iron/dark,
/area/station/medical/virology)
-"xAJ" = (
-/obj/machinery/light/directional/south,
-/turf/closed/mineral/random/stationside/asteroid/porus,
-/area/station/asteroid)
"xAY" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -68082,6 +68673,14 @@
/obj/item/radio,
/turf/open/floor/iron,
/area/station/security/checkpoint/escape)
+"xCy" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"xCT" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -68240,18 +68839,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"xFa" = (
-/obj/machinery/holopad,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/landmark/start/depsec/engineering,
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/camera/directional/south{
- c_tag = "Security Post - Engineering"
- },
-/obj/effect/turf_decal/trimline/red/filled/line,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/engineering)
"xFb" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
@@ -68270,14 +68857,6 @@
/obj/structure/ladder,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"xFv" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/structure/cable/layer3,
-/turf/open/floor/engine,
-/area/station/engineering/supermatter/room)
"xFw" = (
/obj/structure/closet/crate,
/obj/effect/spawner/random/maintenance/two,
@@ -68369,6 +68948,16 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/command/heads_quarters/ce)
+"xGU" = (
+/obj/machinery/door/airlock/hydroponics{
+ name = "Hydroponics Storage"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/dark_green/full,
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/dark/small,
+/area/station/service/hydroponics)
"xHf" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
@@ -68425,6 +69014,10 @@
/obj/structure/sign/warning/vacuum/external/directional/east,
/turf/open/floor/plating,
/area/station/maintenance/solars/starboard/aft)
+"xIn" = (
+/obj/docking_port/stationary/escape_pod,
+/turf/open/space/openspace,
+/area/space)
"xIs" = (
/obj/structure/mineral_door/wood{
name = "Maintenance Bar"
@@ -68494,6 +69087,14 @@
/obj/structure/cable,
/turf/open/floor/wood,
/area/station/cargo/bitrunning/den)
+"xJa" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Laser Room"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"xJc" = (
/obj/structure/cable,
/obj/item/wrench,
@@ -68502,11 +69103,6 @@
},
/turf/open/floor/wood/large,
/area/station/biodome/fore)
-"xJf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"xJr" = (
/obj/machinery/door/airlock/public/glass,
/obj/machinery/door/firedoor,
@@ -68580,6 +69176,13 @@
/obj/effect/turf_decal/tile/purple/half/contrasted,
/turf/open/floor/iron/dark,
/area/station/command/heads_quarters/rd)
+"xKc" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/dark_green/corner,
+/turf/open/floor/grass,
+/area/station/service/kitchen/diner)
"xKk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -68713,6 +69316,16 @@
/obj/structure/flora/bush/flowers_pp/style_random,
/turf/open/floor/grass,
/area/station/asteroid)
+"xLM" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Engine Coolant Bypass"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable/layer1,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"xLQ" = (
/obj/structure/chair/stool/directional/south,
/turf/open/floor/iron/dark,
@@ -68759,13 +69372,6 @@
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/atmos/mix)
-"xMk" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/machinery/light/directional/west,
-/turf/open/openspace,
-/area/station/service/hydroponics/garden)
"xMx" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -69122,6 +69728,17 @@
},
/turf/open/floor/plating,
/area/station/cargo/sorting)
+"xTi" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/obj/effect/turf_decal/siding/thinplating_new/terracotta{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden,
+/turf/open/floor/iron/dark,
+/area/station/engineering/storage)
"xTy" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -69266,13 +69883,6 @@
/obj/structure/cable,
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/break_room)
-"xVo" = (
-/obj/effect/turf_decal/weather/dirt{
- dir = 1
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/grass,
-/area/station/service/hydroponics/garden)
"xVv" = (
/obj/structure/cable,
/turf/open/floor/iron/solarpanel/airless,
@@ -69334,6 +69944,12 @@
"xWn" = (
/turf/open/floor/circuit,
/area/station/ai_monitored/turret_protected/ai)
+"xWr" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/station/medical/chemistry)
"xWx" = (
/obj/machinery/turretid{
control_area = "/area/station/ai_monitored/turret_protected/ai_upload";
@@ -69472,6 +70088,14 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"xZu" = (
+/obj/machinery/computer/security/telescreen/entertainment/directional/west,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/jukebox/public,
+/turf/open/floor/wood/large,
+/area/station/commons/lounge)
"xZE" = (
/obj/machinery/firealarm/directional/north,
/obj/machinery/photocopier,
@@ -69675,12 +70299,6 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"ydh" = (
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/openspace,
-/area/station/service/hydroponics)
"ydn" = (
/obj/effect/spawner/structure/window,
/obj/structure/holosign/barrier/atmos/leaf{
@@ -69749,12 +70367,6 @@
},
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
-"yeu" = (
-/obj/machinery/camera/directional/north{
- c_tag = "Civilian - Mining Base and Garden Junction"
- },
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"yeD" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{
@@ -69824,6 +70436,11 @@
/obj/machinery/door/poddoor/shutters,
/turf/open/floor/plating/airless,
/area/station/maintenance/starboard/lesser)
+"ygO" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"ygR" = (
/obj/structure/marker_beacon/jade,
/turf/open/floor/plating/airless,
@@ -69858,10 +70475,6 @@
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/wood/large,
/area/station/service/janitor)
-"yhu" = (
-/obj/effect/spawner/random/maintenance,
-/turf/open/floor/grass,
-/area/station/biodome/aft)
"yhv" = (
/obj/structure/cable,
/obj/machinery/airalarm/directional/east,
@@ -69908,6 +70521,21 @@
/obj/machinery/light/directional/west,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"yib" = (
+/obj/item/radio/intercom/directional/north,
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/cup/bottle/multiver{
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/cup/bottle/epinephrine,
+/obj/item/reagent_containers/syringe,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/medical/chemistry)
"yif" = (
/obj/structure/flora/grass/jungle/a/style_random,
/obj/machinery/light/directional/north,
@@ -69927,6 +70555,15 @@
},
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
+"yim" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"yin" = (
/obj/item/stack/package_wrap{
pixel_x = -4;
@@ -69987,6 +70624,19 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/station/command/bridge)
+"yje" = (
+/obj/structure/sign/painting/library{
+ pixel_x = 32
+ },
+/obj/structure/table/wood,
+/obj/item/toy/crayon/spraycan{
+ pixel_x = -4
+ },
+/obj/item/toy/crayon/spraycan,
+/obj/item/storage/crayons,
+/obj/item/storage/crayons,
+/turf/open/floor/wood/large,
+/area/station/service/library/lounge)
"yjg" = (
/turf/closed/wall,
/area/station/medical/surgery/fore)
@@ -70058,13 +70708,6 @@
/obj/machinery/light/directional/east,
/turf/open/floor/iron/dark,
/area/station/hallway/primary/aft)
-"yjN" = (
-/obj/structure/closet/secure_closet/hydroponics,
-/obj/effect/turf_decal/trimline/dark_green/filled/line,
-/obj/effect/turf_decal/trimline/green/line,
-/obj/effect/turf_decal/trimline/dark_green/filled/mid_joiner,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/hydroponics)
"yjR" = (
/obj/structure/closet{
name = "Evidence Closet 5"
@@ -70153,6 +70796,16 @@
/obj/effect/turf_decal/weather/dirt,
/turf/open/floor/wood/large,
/area/station/biodome/aft)
+"ylU" = (
+/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/wood{
+ name = "Library"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/wood/large,
+/area/station/hallway/primary/central)
(1,1,1) = {"
cCZ
@@ -88007,9 +88660,9 @@ pSz
rzW
gQd
hgi
-smP
-mJi
-pSz
+fZB
+kvv
+gFj
aMB
vhE
aMB
@@ -88264,9 +88917,9 @@ pSz
nxV
xlg
pgX
-rps
-xdR
-pSz
+ajO
+qQd
+uhS
aMB
vhE
aMB
@@ -88521,9 +89174,9 @@ pSz
uxR
lVd
pKg
-olz
-adI
-xVo
+ajO
+hvz
+uhS
vhE
xEk
vhE
@@ -89230,7 +89883,7 @@ cCZ
bxM
cCZ
cCZ
-cCZ
+xuo
xuo
xuo
xuo
@@ -89242,8 +89895,8 @@ xuo
xuo
xuo
koq
-koq
-koq
+cCZ
+cCZ
cCZ
cCZ
cCZ
@@ -89486,7 +90139,7 @@ cCZ
cCZ
bxM
cCZ
-cCZ
+xuo
xuo
xuo
xuo
@@ -89761,9 +90414,9 @@ opv
ouv
koq
cCZ
-eyK
-mIQ
-mIQ
+jLg
+jLg
+jLg
cCZ
cCZ
cCZ
@@ -90020,7 +90673,7 @@ koq
koq
koq
koq
-mIQ
+jLg
cCZ
cCZ
cCZ
@@ -90255,7 +90908,7 @@ cCZ
cCZ
bxM
cCZ
-xuo
+cCZ
xuo
xuo
xuo
@@ -90277,7 +90930,7 @@ koq
tOT
tOT
koq
-qbX
+koq
koq
jNG
cCZ
@@ -90534,7 +91187,7 @@ koq
tVA
lVx
qnX
-mBX
+jLg
jLg
cCZ
cCZ
@@ -90792,20 +91445,20 @@ hDS
jAX
hdp
gjX
-oZB
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
-bhN
+gjX
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
+hJd
cCZ
cCZ
cCZ
@@ -91062,7 +91715,7 @@ cCZ
cCZ
cCZ
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -91283,7 +91936,7 @@ cCZ
cCZ
bxM
cCZ
-xuo
+cCZ
xuo
xuo
xuo
@@ -91319,7 +91972,7 @@ rBE
cCZ
cCZ
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -91576,7 +92229,7 @@ cCZ
tKt
cCZ
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -91833,7 +92486,7 @@ cCZ
cCZ
iAd
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -92056,7 +92709,7 @@ cCZ
cCZ
bxM
cCZ
-cCZ
+xuo
xuo
xuo
xuo
@@ -92090,7 +92743,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -92141,8 +92794,8 @@ pKF
fJe
cgO
lHf
-mGA
-vMK
+mkZ
+mkZ
mkZ
mkZ
mkZ
@@ -92314,7 +92967,7 @@ cCZ
bxM
cCZ
cCZ
-cCZ
+xuo
xuo
xuo
xuo
@@ -92326,8 +92979,8 @@ xuo
xuo
xuo
koq
-koq
-koq
+cCZ
+cCZ
cCZ
cCZ
cCZ
@@ -92347,7 +93000,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -92398,8 +93051,8 @@ pKF
cJU
cJU
lHf
-tvp
-ckM
+nqJ
+iCP
mkZ
mkZ
mkZ
@@ -92604,7 +93257,7 @@ cCZ
cCZ
tHI
vtU
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -92655,8 +93308,8 @@ pKF
tBO
cJU
lHf
-htc
-kjC
+mBm
+qbU
rEj
qbU
qbU
@@ -92861,7 +93514,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -92913,7 +93566,7 @@ dBC
cJU
lHf
bwe
-vMK
+mkZ
tmx
rAX
rAX
@@ -93118,7 +93771,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -93170,7 +93823,7 @@ shB
cJU
lHf
xIL
-awT
+gfY
mkZ
dsa
dsa
@@ -93375,7 +94028,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -93427,7 +94080,7 @@ hec
hec
lHf
ePs
-vMK
+mkZ
mkZ
dsa
dsa
@@ -93447,7 +94100,7 @@ wrB
oso
sKq
mWP
-kty
+mWP
oAe
lgW
oAe
@@ -93632,7 +94285,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -93704,7 +94357,7 @@ wSI
tlP
sKq
bRw
-agt
+ksA
oAe
lgW
oAe
@@ -93889,7 +94542,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -93941,7 +94594,7 @@ ivB
dMM
lHf
szZ
-vMK
+mkZ
mkZ
dsa
tWv
@@ -94146,7 +94799,7 @@ vtU
vtU
tHI
vtU
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -94198,7 +94851,7 @@ ivB
dMM
lHf
sLz
-oHY
+pjU
mkZ
dsa
dsa
@@ -94403,7 +95056,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -94455,7 +95108,7 @@ cJU
dMM
lHf
sYd
-vMK
+mkZ
gLN
dsa
dsa
@@ -94660,7 +95313,7 @@ cCZ
cCZ
tHI
vtU
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -94711,8 +95364,8 @@ pKF
cJU
dMM
lHf
-utg
-viy
+heG
+iRI
yjw
dsa
dsa
@@ -94917,7 +95570,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -94968,8 +95621,8 @@ pKF
cJU
dMM
lHf
-pAr
-wzP
+yib
+xWr
tmx
rAX
rAX
@@ -95174,7 +95827,7 @@ vtU
vtU
tHI
vtU
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -95225,8 +95878,8 @@ pKF
fld
dMM
lHf
-nxZ
-vMK
+mkZ
+mkZ
crU
mkZ
mkZ
@@ -95431,7 +96084,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -95688,7 +96341,7 @@ cCZ
cCZ
tHI
vtU
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -95945,7 +96598,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -96202,7 +96855,7 @@ vtU
vtU
tHI
vtU
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -96459,7 +97112,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -96716,7 +97369,7 @@ cCZ
cCZ
tHI
vtU
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -96973,7 +97626,7 @@ vtU
vtU
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -97035,7 +97688,7 @@ dIN
qUZ
ktR
gHE
-wfp
+lWy
cDM
ktR
gwb
@@ -97230,7 +97883,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -97487,7 +98140,7 @@ cCZ
cCZ
eFW
cCZ
-bhN
+hJd
cCZ
cCZ
cCZ
@@ -97539,9 +98192,9 @@ dhk
qMk
asD
asD
-asD
-aWc
+hvx
aWc
+nGb
tlW
hVC
hVC
@@ -97744,7 +98397,7 @@ cCZ
cCZ
eFW
rNf
-lkY
+gDO
rNf
cCZ
cCZ
@@ -98001,7 +98654,7 @@ vtU
vtU
eFW
rNf
-dfO
+wzs
rNf
rRv
rRv
@@ -98026,11 +98679,11 @@ rkF
aLk
aLk
aLk
-qPn
+ehE
aLk
aLk
aLk
-dTc
+cSI
aLk
dit
aLk
@@ -98053,10 +98706,10 @@ wju
ngd
asD
asD
-iuL
-iuL
+asD
+asD
weR
-sIU
+nog
psC
jYu
iJt
@@ -98258,7 +98911,7 @@ cCZ
rNf
mhJ
rNf
-fgL
+hgy
rNf
rRv
rRv
@@ -98310,8 +98963,8 @@ wju
ngd
asD
asD
-iuL
-iuL
+asD
+asD
weR
mDI
bjN
@@ -98515,7 +99168,7 @@ cCZ
dQH
kup
qWk
-dgb
+cdl
dQH
hNy
rRv
@@ -98536,16 +99189,16 @@ sBz
dYQ
iJO
sBz
-afo
-dNi
-dNi
-dNi
-dNi
-dIi
-dIi
-dIi
-dIi
-aHS
+fLA
+dUI
+dUI
+bdd
+dUI
+rxL
+dUI
+dUI
+dUI
+iKW
dit
eBC
eBC
@@ -98771,8 +99424,8 @@ vtU
vtU
dQH
chx
-qoW
-kqS
+pvM
+fgO
dQH
hNy
hNy
@@ -98794,14 +99447,14 @@ dYQ
xPZ
sBz
cYQ
-dNi
-kaG
-onA
-dNi
-siP
-pJN
-rZD
-dIi
+dUI
+diJ
+sgO
+fNE
+lqP
+vnQ
+kUT
+dUI
nlw
rpA
eBC
@@ -98809,13 +99462,13 @@ eBC
eBC
eBC
lec
-hwu
+mWV
eBC
vxL
lVA
wnK
aeo
-oGJ
+xZu
kRH
pUX
vxL
@@ -98838,7 +99491,7 @@ weR
qYW
weR
weR
-mZS
+iZv
vxS
oAe
vnE
@@ -99051,16 +99704,16 @@ dYQ
dYQ
sBz
fsz
-dNi
-iZp
-rsA
-nrf
-qVB
-lvu
-mrL
-aLA
-ikE
-erU
+dUI
+ibj
+pxZ
+srr
+aza
+owx
+ued
+vFy
+fBt
+fEO
eBC
eBC
rrw
@@ -99069,7 +99722,7 @@ iMD
iMD
dYR
vxL
-cHN
+uYs
cTA
cGB
tOQ
@@ -99086,7 +99739,7 @@ cUM
weR
cPm
oZS
-nNe
+weR
nsd
kDp
mpn
@@ -99308,14 +99961,14 @@ dYQ
dYQ
sBz
fsz
-dNi
-oqf
-dUr
-dNi
-kxg
-lvu
-fLq
-dIi
+bdd
+aTD
+eiw
+sfK
+pQw
+fGu
+tLG
+dUI
mov
dit
eBC
@@ -99565,14 +100218,14 @@ eoI
xHF
sBz
diF
-dNi
-dNi
-dNi
-dNi
-oVw
-qWV
-eFr
-dIi
+dUI
+hdU
+pxZ
+niz
+aza
+luN
+mMH
+dUI
sdv
mTx
sdv
@@ -99592,7 +100245,7 @@ oOT
woc
ngd
wju
-hLn
+xkK
gbE
asD
asD
@@ -99822,14 +100475,14 @@ dYQ
xHF
sBz
dwC
-dNi
-wfm
-cov
-aZw
-jXX
-cHu
-qVW
-dNi
+dUI
+hLl
+bFL
+cnq
+uFc
+dRn
+cYz
+dUI
wlT
dit
eBC
@@ -100077,16 +100730,16 @@ aZn
sBz
tkw
dYQ
-sBz
+krm
xWK
-dNi
-pcV
-kJJ
-jSt
-jSt
-mhX
-vyx
-dNi
+dUI
+dUI
+bdd
+dUI
+dUI
+dUI
+dUI
+dUI
mNB
gXs
fKF
@@ -100337,14 +100990,14 @@ dYQ
sBz
cTF
dNi
-kRr
-jRa
-tkA
-xnt
-kRr
-omi
-dae
-aLk
+kaG
+onA
+dNi
+siP
+bqJ
+rZD
+dIi
+eBC
bCN
eBC
bGo
@@ -100363,19 +101016,19 @@ oOT
miM
ngd
wju
-gwP
+laI
omC
asD
-asD
+wUw
xti
asD
oAv
ota
ota
-bUw
+onu
+ota
ota
ota
-sAB
ota
ota
oAv
@@ -100591,17 +101244,17 @@ mDo
dYQ
dYQ
dYQ
-sBz
+mDo
eMi
dNi
-qef
-jRa
-kRr
-xnt
-kRr
-kkE
-keR
-aLk
+iZp
+rsA
+xGU
+qVB
+cFk
+dlF
+dIi
+mNB
bCN
eBC
klK
@@ -100609,34 +101262,34 @@ iMD
iMD
rjR
szr
-oIr
+fUh
lCm
kbF
kbF
kbF
lUJ
tNz
-kZi
-vQj
-oEr
+kGn
+azI
+fSp
wju
-wdV
-iuL
-hvx
-iuL
-jFi
+ngd
+asD
+asD
+asD
+asD
asD
ixe
-jDs
-giG
-ixe
-sAB
-sAB
-ixe
-yhu
+ota
+ota
+ota
+ota
+ota
+ota
+ota
jTy
ixe
-sAB
+kMk
ota
ooS
oAe
@@ -100848,18 +101501,18 @@ gbs
gbs
gbs
gbs
-sBz
+mDo
fsz
dNi
-kRr
-jRa
-kRr
-xnt
-kRr
-bWS
+oqf
+dUr
dNi
-lHu
-bCN
+jRa
+lvu
+svx
+dje
+aMR
+fOl
eBC
eBC
gwG
@@ -100873,23 +101526,23 @@ cGB
xOP
cTA
xOP
-rRI
+qze
vxL
ccE
rwt
ngd
-dfu
+unt
asD
asD
asD
-jFi
-cKp
+asD
+udX
+ota
+ota
ota
ota
-cKp
-sAB
vEf
-cKp
+ota
ota
ota
ixe
@@ -100918,12 +101571,12 @@ plc
vIo
lTQ
scp
-seM
-seM
-seM
-seM
-jsF
-iKE
+jbA
+jbA
+jbA
+jbA
+vtU
+vtU
lOH
lOH
lOH
@@ -101108,12 +101761,12 @@ gbs
sBz
aBC
dNi
-bQg
-jRa
-kRr
-xnt
-kRr
-omi
+dNi
+dNi
+dNi
+oVw
+qWV
+eFr
dIi
mov
bCN
@@ -101130,7 +101783,7 @@ cTA
jGz
lCc
dCX
-etY
+hPS
vxL
mGR
gDz
@@ -101178,17 +101831,17 @@ dWb
uuT
uuT
uuT
-vtU
-vtU
-hoE
-jIl
-qPC
-vTD
-myU
-wNI
-wmc
-jIl
-lEZ
+jbA
+jbA
+jbA
+gpk
+ajm
+hZJ
+poL
+xTi
+hYD
+gpk
+jbA
rRv
hNy
hNy
@@ -101338,7 +101991,7 @@ gbs
jlt
rWl
rWl
-iAY
+jPb
jlt
gkO
gkO
@@ -101365,12 +102018,12 @@ gbs
sBz
jvC
dNi
-yfs
-jRa
-xnt
-mnM
-uWr
-omi
+wfm
+cov
+aZw
+jXX
+cHu
+dlF
dIi
mNB
bCN
@@ -101385,9 +102038,9 @@ vxL
bQK
cTA
ojn
+kgq
cTA
-cTA
-niY
+gRz
vxL
szJ
rwt
@@ -101397,7 +102050,7 @@ asD
asD
asD
asD
-wyx
+vJc
ota
ota
ota
@@ -101422,8 +102075,8 @@ jrD
upK
dKi
xbL
-adG
-tKr
+iHk
+nmo
cqH
aRm
oac
@@ -101445,7 +102098,7 @@ xtD
uZk
gTu
lOH
-tQT
+jbA
rRv
hNy
hNy
@@ -101595,7 +102248,7 @@ gbs
jlt
exQ
bQR
-tMz
+oqC
jlt
jlt
jlt
@@ -101622,14 +102275,14 @@ gbs
sBz
cYQ
dNi
-ktb
-jRa
-xnt
-xnt
-lqx
-nbg
-wVs
-nUc
+pcV
+kJJ
+jSt
+jSt
+mhX
+vyx
+dNi
+eBC
dit
eBC
eBC
@@ -101643,7 +102296,7 @@ kCr
sVS
cTA
cTA
-mDE
+eGv
hUs
vxL
rlo
@@ -101654,10 +102307,10 @@ asD
asD
asD
asD
-bdX
-bdX
-bdX
+udX
+ota
ota
+goY
ota
ota
ota
@@ -101679,11 +102332,11 @@ nDo
xwI
dmv
xbL
-vtC
+olp
oMf
fiN
fcI
-wom
+mEe
fwm
wSx
ozG
@@ -101702,7 +102355,7 @@ sPy
eKb
wpW
lOH
-tQT
+jbA
rRv
rRv
hNy
@@ -101879,15 +102532,15 @@ igU
sBz
gzJ
dNi
-vIP
-mPj
-fSa
-lOi
-lNG
-bSG
-dIi
+kRr
+jRa
+tkA
+xnt
+kRr
+qPK
+dNi
mNB
-dit
+guD
syw
syw
syw
@@ -101900,7 +102553,7 @@ vxL
sWX
jzx
jzx
-rMf
+ecs
vxL
vxL
iuz
@@ -101959,7 +102612,7 @@ quS
nfx
keU
lOH
-tQT
+jbA
rRv
hNy
hNy
@@ -102135,16 +102788,16 @@ dYQ
dYQ
sBz
xWK
-dUI
-dUI
-bdd
-dUI
-rxL
-dUI
-eTO
-dUI
-eVG
-dit
+dNi
+qef
+jRa
+kRr
+dNi
+kRr
+kkE
+cRp
+eBC
+lBS
syw
knO
oae
@@ -102154,11 +102807,11 @@ ngg
nJj
syw
nqE
-dQi
-aAj
-aAj
-aAj
-vQz
+xKc
+gfN
+gfN
+gfN
+bfM
oOb
bAB
rwt
@@ -102216,7 +102869,7 @@ iNV
hYS
iOb
lOH
-tQT
+jbA
rRv
rRv
rRv
@@ -102392,14 +103045,14 @@ fRH
tMJ
sBz
cYQ
-dUI
-diJ
-sgO
-fNE
-lqP
-vnQ
-kUT
-dUI
+dNi
+kRr
+jRa
+kRr
+pIz
+kRr
+bWS
+jzL
eBC
dit
syw
@@ -102411,15 +103064,15 @@ pWk
ldW
wob
kFd
-mqy
+stq
dQU
sXJ
oAS
nUA
-onM
+bye
hiF
rwt
-hLn
+xkK
asD
asD
tLb
@@ -102473,7 +103126,7 @@ sIb
sIb
xVL
lOH
-tQT
+jbA
cCZ
cCZ
cCZ
@@ -102624,10 +103277,10 @@ dJN
unD
xCm
nJl
-vLE
+joK
hpD
qhx
-pbn
+fCH
ras
kTc
ras
@@ -102649,15 +103302,15 @@ kBD
upu
sBz
cYQ
-dUI
-ibj
-pxZ
-srr
-aza
-owx
-eEK
-dUI
-eBC
+dNi
+bQg
+jRa
+kRr
+xnt
+kRr
+omi
+dNi
+cHn
dit
lpd
ljV
@@ -102668,12 +103321,12 @@ rMy
ldW
ajU
nej
-mqy
+stq
kzV
cAL
sQZ
nUA
-bnd
+kUX
hiF
rwt
ngd
@@ -102730,16 +103383,16 @@ mcL
bMi
xAa
lOH
-eRd
-ecV
-ecV
-ecV
-ecV
-ecV
-ecV
-ecV
-ecV
-eQy
+jbA
+jbA
+jbA
+jbA
+jbA
+jbA
+jbA
+jbA
+jbA
+jbA
cCZ
cCZ
nLN
@@ -102885,9 +103538,9 @@ aKd
aKd
qhx
tDL
-ras
-ras
-ras
+xtn
+teh
+isE
aqn
jlt
wzB
@@ -102906,15 +103559,15 @@ dYQ
hJD
sBz
vsW
-bdd
-aTD
-eiw
-sfK
-pQw
-fGu
-djQ
-vFy
-qmS
+dNi
+yfs
+jRa
+xnt
+mnM
+uWr
+omi
+dIi
+eBC
rpA
sVp
byH
@@ -102925,12 +103578,12 @@ xkU
ldW
plq
nej
-qiP
+jRC
suW
whn
cqa
pde
-sNN
+ftA
nCL
rwt
ngd
@@ -102950,7 +103603,7 @@ liD
bAL
ota
fPs
-ffO
+bDk
ota
oAe
ihE
@@ -102975,7 +103628,7 @@ wqY
nTx
xxC
xII
-oeZ
+iis
tOE
eev
axi
@@ -102996,7 +103649,7 @@ mSg
mSg
mSg
mSg
-tQT
+jbA
cCZ
cCZ
cCZ
@@ -103142,8 +103795,8 @@ adC
ito
qhx
vvw
-ras
qhx
+cxQ
vvw
vvw
jlt
@@ -103161,20 +103814,20 @@ dZv
dZv
kWs
dZv
-sBz
+krm
cYQ
-dUI
-hdU
-pxZ
-niz
-aza
-luN
-mMH
-dUI
+dNi
+ktb
+jRa
+xnt
+xnt
+lqx
+nbg
+dIi
lUu
vHU
lpd
-ebK
+qWB
vrS
eHD
vrS
@@ -103182,15 +103835,15 @@ xkU
ldW
ajU
nej
-mqy
+stq
dQU
wmz
oAS
kMI
-vFG
+iTM
hiF
vdW
-xrP
+uxU
asD
rnw
bdX
@@ -103232,7 +103885,7 @@ ria
nTx
xxC
msD
-xFa
+piO
tOE
bzJ
axi
@@ -103253,7 +103906,7 @@ hCT
dUq
lhu
mSg
-tQT
+jbA
cCZ
cCZ
cCZ
@@ -103399,10 +104052,10 @@ pMH
bYQ
qhx
sGc
-sGc
kmq
sGc
sGc
+sGc
jlt
hZC
dYQ
@@ -103420,18 +104073,18 @@ sBz
isM
sBz
fsz
-dUI
-hLl
-kIW
-cnq
-uFc
-dRn
-cYz
-dUI
-eBC
+dNi
+vIP
+mPj
+fSa
+lOi
+lNG
+tJb
+xgL
+nUc
vHU
syw
-ljV
+syw
pCn
eij
dHv
@@ -103439,12 +104092,12 @@ dFr
uZy
gIC
nej
-mqy
+stq
bpO
sXJ
sQZ
kMI
-bNa
+oOf
hiF
vdW
ngd
@@ -103474,7 +104127,7 @@ kjb
lcF
hgT
eTW
-lxd
+rcZ
lxd
lxd
vOY
@@ -103489,7 +104142,7 @@ eIk
nTx
xxC
usC
-gqX
+miR
xxC
peb
qDy
@@ -103510,7 +104163,7 @@ flf
sGU
lhu
mSg
-tQT
+jbA
cCZ
cCZ
cCZ
@@ -103657,7 +104310,7 @@ elH
qhx
sGc
sGc
-sGc
+dQq
sGc
wMz
jlt
@@ -103676,19 +104329,19 @@ sBz
sBz
dZv
sBz
-afo
-dUI
-dUI
-bdd
-dUI
-dUI
-dUI
-dUI
-dUI
-jgn
-vHU
+fLA
+dNi
+dNi
+dNi
+dNi
+dNi
+dNi
+dNi
+dIi
+eBC
+kbb
syw
-lua
+byH
pCn
dHv
cFK
@@ -103696,7 +104349,7 @@ gzM
aeQ
syw
tgt
-sIC
+lAb
rKm
rKm
rKm
@@ -103746,7 +104399,7 @@ eIk
geu
tOE
tAZ
-lYf
+kyj
xxC
rne
avb
@@ -103767,9 +104420,9 @@ flf
flf
flf
mSg
-eRd
-gsG
-eQy
+jbA
+jbA
+jbA
cCZ
cCZ
cCZ
@@ -103939,13 +104592,13 @@ eBC
eBC
eBC
eBC
-rrw
+eBC
rnX
aki
aLk
vHU
syw
-lsD
+ebK
qSx
plL
lra
@@ -103978,7 +104631,7 @@ xGE
uti
lLW
nZG
-lQH
+qRn
vEf
oAe
bua
@@ -104026,7 +104679,7 @@ dhO
mSg
mSg
mSg
-tQT
+jbA
cCZ
cCZ
cCZ
@@ -104217,7 +104870,7 @@ pIp
dmQ
dTM
iuz
-smG
+wjL
eKB
eKB
pEb
@@ -104283,7 +104936,7 @@ uEc
spc
ikH
mSg
-tQT
+jbA
cCZ
cCZ
cCZ
@@ -104426,7 +105079,7 @@ eFQ
lvX
anC
noO
-mfv
+xoO
jvj
dGb
kDV
@@ -104462,7 +105115,7 @@ aLk
aLk
wXC
txr
-eKB
+kvA
eKB
eKB
htF
@@ -104540,14 +105193,14 @@ giK
guf
wEe
mSg
-tQT
-cCZ
-cCZ
-cCZ
-cCZ
+jbA
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
+nLN
cCZ
cCZ
cCZ
@@ -104793,15 +105446,15 @@ wjE
rjO
uQZ
rjO
-rjO
+tZX
uuR
qtH
mSg
-tQT
-cCZ
-cCZ
-cCZ
-cCZ
+jbA
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -104972,7 +105625,7 @@ oTZ
cYR
ftr
vHU
-krW
+mbM
eBC
cKd
mGR
@@ -105054,12 +105707,12 @@ tKg
xUV
aCz
mSg
-tQT
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+jbA
+hNy
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -105191,7 +105844,7 @@ kvc
dJN
dJN
dJN
-urA
+dpD
lvX
eFQ
lvX
@@ -105229,7 +105882,7 @@ aPg
rOu
rRR
sel
-fJF
+gQK
eBC
fqc
oLQ
@@ -105311,12 +105964,12 @@ kmT
xUV
aCz
mSg
-tQT
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+uOc
+hNy
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -105520,7 +106173,7 @@ ocz
wtu
ota
fPs
-ffO
+bDk
ota
oAe
aez
@@ -105556,7 +106209,7 @@ fdy
aQb
bWg
rKd
-mjF
+aBl
mYz
wew
jMz
@@ -105564,17 +106217,17 @@ jMU
tHz
ucy
exH
-oCD
+dLP
fVT
aCz
mSg
-sMH
-eQy
-nLN
-cCZ
-cCZ
-cCZ
-cCZ
+uOc
+uOc
+uOc
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -105813,7 +106466,7 @@ gMZ
gMZ
lvd
cMI
-ttj
+vrT
ttj
mSg
mSg
@@ -105821,17 +106474,17 @@ gDs
gDs
gDs
mSg
-gif
+cun
mSg
mSg
mSg
siV
-tQT
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+siV
+uOc
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -106065,12 +106718,12 @@ dTP
bdN
hNy
siV
-qeL
nfe
-oLx
-oLx
+nfe
+nfe
+nfe
kEZ
-nlO
+vTH
gvA
nlO
nlO
@@ -106078,17 +106731,17 @@ nlO
nlO
nlO
nlO
-owj
+qHE
gvA
-lCl
-kzz
-igj
-eiO
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+nlO
+dcj
+ioi
+qTz
+uOc
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -106237,7 +106890,7 @@ knC
hNy
hNy
sBz
-gKH
+heh
tFu
fUv
ogX
@@ -106322,30 +106975,30 @@ lCh
bdN
hNy
siV
-mSB
+nfe
+gXp
+gXp
gXp
bGq
-ncM
-gym
-oJQ
-gym
-qCu
-uRz
-lZs
-lKy
-cvV
-sOd
-xFv
+gXp
+gXp
+gXp
+gXp
+gXp
+gXp
+gXp
+gXp
+sNn
+gXp
nlO
-nXS
-fxi
+oAI
+dOX
siV
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+rRv
+rRv
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -106548,8 +107201,8 @@ ocz
ocz
vEf
fPs
-lQH
-ota
+qRn
+gjN
oAe
dCm
oAe
@@ -106579,31 +107232,31 @@ hci
bdN
hNy
siV
-oyH
-mDF
+qeL
+gXp
bGq
-fjh
-lBW
-phY
-uXD
-uve
-tkq
-wAi
-uXD
-cMl
-tnA
-vUr
+aFD
+fAQ
+vdn
+fAQ
+nZA
+xLM
+mDB
+uWB
+bOV
+iMN
+mXk
+gXp
nlO
-nXS
-dBz
+lCl
+ePO
siV
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+hNy
+rRv
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -106801,12 +107454,12 @@ ota
ota
hbx
ota
-fWD
-vEf
+ota
+ota
ota
fPs
frW
-ota
+pqJ
oAe
kPD
oAe
@@ -106836,31 +107489,31 @@ hmD
bdN
hNy
siV
-qaT
-aJm
-kAb
-fjh
-cix
-cix
+mSB
+gXp
+bGq
+xqk
+lBW
+lBW
uXD
-bPZ
-hiO
-rYR
+uve
+tkq
+wAi
uXD
-wOk
-wOk
-eAU
+cMl
+tnA
+kUp
+lAH
nlO
nXS
-quP
+ePO
siV
hNy
-hNy
rRv
rRv
hNy
-cCZ
-cCZ
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -107054,16 +107707,16 @@ asD
udX
ota
ota
+iaF
+nqp
+gWJ
+qKS
+xFA
+xFA
+xFA
+dVg
+frW
ota
-ota
-ota
-ota
-ota
-ota
-ota
-fPs
-wtO
-wtO
tIK
wkE
usk
@@ -107093,29 +107746,34 @@ kCg
bdN
hNy
siV
-tak
-ict
-abM
-nGd
-uXD
-uXD
-uve
-nre
-vlm
-qDc
-wAi
+oyH
+mDF
+bGq
+mBy
+cix
+cix
uXD
+doA
+hiO
+rYR
uXD
-qGD
+wOk
+wOk
+kUp
+gXp
nlO
nXS
-qkS
+aGK
siV
hNy
hNy
rRv
-rRv
hNy
+hNy
+hNy
+hNy
+cCZ
+cCZ
cCZ
cCZ
cCZ
@@ -107156,54 +107814,49 @@ cCZ
cCZ
cCZ
cCZ
+"}
+(145,1,1) = {"
cCZ
cCZ
cCZ
cCZ
cCZ
-"}
-(145,1,1) = {"
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-hNy
-hNy
-hNy
-hNy
-hNy
-hNy
-hNy
-ogK
-ygd
-xTJ
-ygd
-ogK
-hNy
-hNy
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+hNy
+hNy
+hNy
+hNy
+hNy
+hNy
+hNy
+ogK
+ygd
+xTJ
+ygd
+ogK
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -107311,16 +107964,16 @@ asD
udX
ota
ota
-ota
-ota
-ota
-ota
-ota
-ota
-ota
-fPs
+mzx
frW
-qPz
+emG
+frW
+rLu
+iIs
+frW
+sRL
+toc
+fFi
oAe
toO
oAe
@@ -107350,33 +108003,33 @@ fEs
bdN
hNy
siV
-lCT
-dxV
+qaT
+aJm
kAb
-fjh
-tIT
-hiO
-aiH
-qvF
-hiO
-esB
-pSY
-myo
-tIT
-wkm
+vqF
+uXD
+uXD
+uve
+nre
+vlm
+qDc
+wAi
+uXD
+uXD
+dpt
+gXp
nlO
-siV
-cuF
+nXS
+cRA
siV
hNy
hNy
hNy
-rRv
hNy
-cCZ
-cCZ
-cCZ
-cCZ
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -107534,11 +108187,11 @@ aSa
iuu
lRy
jHS
-lDV
+gMz
jHS
jHS
jHS
-tcM
+uRh
jHS
jHS
xRb
@@ -107569,16 +108222,16 @@ rFf
xFA
yjs
xnc
-xFA
-xFA
-hlw
-xFA
-xFA
-xFA
-dVg
-frW
-enR
-oAe
+bAe
+hcW
+gUE
+nXt
+qXi
+qXi
+jzo
+qXi
+qXi
+aOy
toO
oAe
oAe
@@ -107607,23 +108260,24 @@ jpp
bdN
hNy
siV
-lCT
-gLM
-kAb
-fjh
-vCg
-eUT
-vuG
-qvF
-fcN
+tak
+ict
+abM
+mBy
+tIT
+hiO
+aiH
+taW
+sYl
esB
-rGR
-eUT
-vCg
-ruy
-kJu
-eHk
-nBy
+pSY
+myo
+tIT
+oRG
+gXp
+bSt
+svF
+kDk
siV
hNy
hNy
@@ -107631,10 +108285,9 @@ hNy
hNy
hNy
rRv
-rRv
-rRv
-hNy
-hNy
+cCZ
+cCZ
+cCZ
cCZ
cCZ
cCZ
@@ -107809,12 +108462,12 @@ ivx
tyJ
ngd
ngd
-pQt
+nnW
ngd
nUr
ngd
ngd
-npL
+tUb
ngd
ngd
ngd
@@ -107826,16 +108479,16 @@ hLZ
frW
gzQ
fPs
-frW
-frW
-frW
-rLu
-iIs
-frW
-sRL
-toc
-fFi
-oAe
+xjp
+pnf
+pnf
+qXi
+drx
+fWL
+vDV
+jzB
+bhm
+aOy
rVi
gRN
wLJ
@@ -107864,34 +108517,34 @@ bdN
bdN
hNy
siV
-ucH
-gLM
+lCT
+dxV
kAb
-gtH
-tIT
-hiO
-aiH
+mBy
+fYp
+eUT
+vuG
qvF
-hiO
+fcN
esB
-pSY
-hiO
-tIT
-tbB
-wvn
+rGR
+eUT
+fYp
+oRG
+gXp
+bSt
siV
-abI
+cuF
siV
hNy
hNy
hNy
hNy
hNy
-hNy
-hNy
-hNy
-hNy
-hNy
+rRv
+cCZ
+cCZ
+cCZ
cCZ
cCZ
cCZ
@@ -108083,15 +108736,15 @@ vjY
fWc
gzQ
fPs
-fIL
-hcW
-faL
-nXt
-qXi
-qXi
-jzo
-qXi
-qXi
+asO
+pnf
+dQE
+trX
+tOy
+paq
+vDV
+edG
+xEg
aOy
toO
toO
@@ -108122,33 +108775,34 @@ hNy
hNy
siV
lCT
-ict
-jNJ
-ppF
-uXD
-uXD
-uXD
-uXD
-kkK
-uXD
-uXD
-uXD
-uXD
-uCk
-dGy
-afA
-fnZ
-qiK
-hNy
-hNy
-hNy
+gLM
+kAb
+mBy
+tIT
+hiO
+aiH
+qvF
+hiO
+esB
+pSY
+hiO
+tIT
+tbB
+gXp
+bSt
+jLf
+knt
+siV
+rRv
hNy
hNy
hNy
hNy
+rRv
+rRv
+rRv
hNy
hNy
-rRv
cCZ
cCZ
cCZ
@@ -108167,30 +108821,29 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-"}
-(149,1,1) = {"
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+cCZ
+"}
+(149,1,1) = {"
cCZ
cCZ
cCZ
@@ -108343,12 +108996,12 @@ fPs
xjp
pnf
eEL
-qXi
-drx
-fWL
+trX
+uhM
+ptP
vDV
-jzB
-bhm
+fZe
+eYv
aOy
cAe
oAe
@@ -108378,35 +109031,35 @@ hNy
hNy
hNy
siV
-wIa
-gjj
-bGq
-cqh
-kPl
-meW
-kPl
-dGE
-kPl
-kPl
-kPl
-meW
-kDP
-isp
-nlO
-jLf
-cCZ
-vFo
-ycH
-qiK
-xGj
-cCZ
-aWF
+ucH
+gLM
+kAb
+vWv
+uXD
+uXD
+uXD
+uXD
+kkK
+uXD
+uXD
+uXD
+uXD
+uCk
+gXp
+mOo
+siV
+abI
+siV
cCZ
-aWF
+rRv
+rRv
+hNy
+hNy
+hNy
+hNy
hNy
hNy
hNy
-cCZ
cCZ
cCZ
cCZ
@@ -108600,12 +109253,12 @@ fPs
xjp
qUe
pnf
-trX
-tOy
-paq
-vDV
-edG
-xEg
+qXi
+qXi
+qXi
+tda
+qXi
+qXi
aOy
cAe
oAe
@@ -108634,32 +109287,33 @@ bSh
hNy
cCZ
kci
-tfD
-qUH
-qUH
-cXZ
-wfH
-fJq
-tIc
-fJq
-tIc
-tIc
-fJq
-tIc
-ulI
-wqN
-pMw
-pFO
+siV
+lCT
+ict
+jNJ
+qtU
+keY
+xCy
+keY
+dGk
+keY
+keY
+keY
+xCy
+gjj
+lUd
+gXp
+bSt
afA
-dct
-jMr
-jMr
-jMr
-eWk
+fnZ
+qiK
cCZ
-aWF
-vtU
-vtU
+cCZ
+rRv
+hNy
+hNy
+hNy
+hNy
hNy
hNy
rRv
@@ -108702,7 +109356,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(151,1,1) = {"
cCZ
@@ -108845,7 +109498,7 @@ gHP
gHP
gHP
gHP
-fJO
+kNg
tjs
aNP
pQL
@@ -108858,11 +109511,11 @@ xjp
pnf
pnf
trX
-uhM
-ptP
-vDV
-fZe
-eYv
+buJ
+dOt
+nPp
+lJu
+dSi
aOy
cAe
oAe
@@ -108891,32 +109544,33 @@ bSh
hNy
cCZ
vtU
-jLf
-jLf
siV
-nPS
-mAv
-jLf
-siV
-siV
-jLf
-jLf
+wIa
+yim
+bGq
+qlF
+hTY
+gXp
+hTY
+gXp
+gXp
+hTY
+gXp
+hTY
+gXp
+wqN
+lAH
+bSt
jLf
-siV
-siV
-uSw
-mAv
-uSw
-siV
+rIV
+vFo
ycH
-gNx
-qbK
-gNx
-uHv
+qiK
+xGj
cCZ
-vtU
+aWF
cCZ
-vtU
+aWF
hNy
hNy
hNy
@@ -108959,7 +109613,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(152,1,1) = {"
cCZ
@@ -109115,11 +109768,11 @@ dHE
pnf
pnf
qXi
-qXi
-qXi
-tda
-qXi
-qXi
+gAG
+kAB
+qzt
+fnr
+rQL
aOy
cAe
qcY
@@ -109148,36 +109801,36 @@ bSh
hNy
vtU
vtU
-cCZ
-cCZ
-siV
-gZA
-oRg
-nyG
-dxV
-dxV
-dxV
-ouQ
-utC
-dxV
-dxV
-olu
-kXb
-rFM
-siV
-old
-gNx
-qbK
-gNx
+tfD
+qUH
+qUH
+cXZ
+wfH
+fJq
+tIc
+fJq
+tIc
+tIc
+fJq
+tIc
+ulI
+wqN
+chI
+aaG
+bSt
+afA
+dct
+jMr
+jMr
+jMr
eWk
cCZ
aWF
-cCZ
-aWF
-hNy
+vtU
+vtU
hNy
hNy
-cCZ
+rRv
cCZ
cCZ
cCZ
@@ -109359,7 +110012,7 @@ doI
qlZ
bwO
gpp
-chB
+cKX
sWx
dwk
csN
@@ -109371,12 +110024,12 @@ fPs
xjp
pnf
pnf
-trX
-buJ
-dOt
-nPp
-lJu
-dSi
+qXi
+qXi
+qXi
+qXi
+qXi
+qXi
aOy
cAe
oAe
@@ -109405,32 +110058,33 @@ bSh
hNy
cCZ
cCZ
-cCZ
-cCZ
+jLf
+jLf
siV
-wWs
-oRg
-oRg
-dxV
-dxV
-dxV
-dxV
-dxV
-dxV
-dxV
-gNo
-oRg
-gUv
+nPS
+mAv
+jLf
siV
-pXU
-jMr
-jMr
-jMr
+siV
+jLf
+jLf
+jLf
+siV
+siV
+uSw
+xJa
+jLf
+uSw
+siV
+ycH
+gNx
+qbK
+gNx
uHv
cCZ
-aWF
+vtU
cCZ
-aWF
+vtU
hNy
hNy
hNy
@@ -109473,7 +110127,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(154,1,1) = {"
cCZ
@@ -109616,25 +110269,25 @@ bMe
bwO
bwO
baF
-mfE
+wnT
phR
soG
phR
nNc
lKR
-qgw
+cVo
cVS
aNh
xjp
pYL
pnf
-qXi
-gAG
-kAB
-qzt
-fnr
-rQL
-aOy
+qUe
+pnf
+pnf
+pnf
+pnf
+pnf
+oAe
cAe
oAe
jew
@@ -109665,19 +110318,20 @@ cCZ
cCZ
cCZ
siV
-pYG
+gZA
+oRg
nyG
-wmI
dxV
dxV
dxV
ouQ
+utC
dxV
dxV
-dxV
-trJ
-nyG
-kdi
+olu
+olu
+rFM
+rFM
siV
old
gNx
@@ -109730,7 +110384,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(155,1,1) = {"
cCZ
@@ -109873,19 +110526,19 @@ gHP
gHP
gHP
gHP
-nft
-jXA
-wTa
-rWF
-rOH
+bcS
+vay
+bkG
+oLr
+gxa
kYL
-riM
+eLb
biy
aNh
dAd
snL
snL
-qXi
+ceR
cBF
cBF
cBF
@@ -109922,24 +110575,25 @@ cCZ
cCZ
cCZ
siV
-eZP
-nyG
-nuO
-mNK
-nyG
-vOf
-siV
-jjW
-nyG
-nyG
-aFz
+wWs
+oRg
+oRg
+dxV
+dxV
+dxV
+dxV
+dxV
+dxV
+dxV
+jiE
nyG
-unN
+dxV
+gUv
siV
-xHf
-gNx
-gNx
-gNx
+pXU
+jMr
+jMr
+jMr
uHv
cCZ
aWF
@@ -109987,7 +110641,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(156,1,1) = {"
cCZ
@@ -110127,9 +110780,9 @@ cJf
sbJ
iDN
fNG
-ibv
-qSY
-gHP
+gRd
+aOU
+wzk
gHP
gHP
gHP
@@ -110179,27 +110832,28 @@ cCZ
cCZ
cCZ
siV
-siV
-siV
-siV
-siV
-siV
-siV
-siV
-siV
-siV
-siV
-siV
-siV
-siV
+pYG
+nyG
+wmI
+dxV
+dxV
+dxV
+ouQ
+dxV
+dxV
+dxV
+trJ
+nyG
+kdi
+dxV
siV
old
-aLG
-ffl
-aLG
+gNx
+qbK
+gNx
eWk
cCZ
-vtU
+aWF
cCZ
aWF
hNy
@@ -110244,7 +110898,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(157,1,1) = {"
cCZ
@@ -110384,10 +111037,10 @@ fNG
fNG
fNG
fNG
-pnf
-pnf
-pnf
-pnf
+ntq
+oHJ
+dxc
+uIJ
pnf
svn
pnf
@@ -110435,29 +111088,30 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
-cCZ
-cCZ
-vtU
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-xGj
-mDG
-uHv
-mDG
+siV
+eZP
+nyG
+nuO
+mNK
+oRg
+ezl
+eWf
+vSo
+oRg
+oRg
+aFz
+nyG
+unN
+dxV
+siV
+xHf
+gNx
+gNx
+gNx
uHv
cCZ
aWF
-vtU
+cCZ
aWF
hNy
hNy
@@ -110501,7 +111155,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(158,1,1) = {"
cCZ
@@ -110640,11 +111293,11 @@ qKr
qKr
tKi
qKr
-pnf
-pnf
-svn
-pnf
-pnf
+uIJ
+lkf
+ceo
+qnL
+uIJ
pnf
pnf
pnf
@@ -110690,29 +111343,30 @@ cCZ
aWF
aWF
vtU
-aWF
-aWF
-aWF
-vtU
-aWF
-aWF
-aWF
-aWF
-vtU
-aWF
-aWF
-aWF
-aWF
-aWF
-aWF
-aWF
-aWF
-vtU
-aWF
-vtU
-aWF
-aWF
-vtU
+rIV
+rIV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+siV
+old
+aLG
+ffl
+aLG
+eWk
+cCZ
vtU
cCZ
aWF
@@ -110758,7 +111412,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(159,1,1) = {"
cCZ
@@ -110897,18 +111550,18 @@ qKr
qKr
qKr
qKr
+uIJ
+uIJ
+uIJ
+oPk
+uIJ
pnf
pnf
pnf
-pnf
-pnf
-pnf
-pnf
-pnf
-aZR
-mZn
-qxr
-gzQ
+wdl
+kqH
+jmB
+cnI
hOi
uKD
kMj
@@ -110963,16 +111616,17 @@ cCZ
cCZ
cCZ
cCZ
-vtU
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
cCZ
+jLg
+jLg
+wAb
+uHv
+mDG
+uHv
cCZ
+aWF
vtU
+aWF
hNy
hNy
hNy
@@ -111015,7 +111669,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(160,1,1) = {"
cCZ
@@ -111154,15 +111807,15 @@ izf
wFQ
fOu
fOu
-mZn
-mZn
-mZn
-mZn
-mZn
-mZn
-mZn
-mZn
-qzf
+vbD
+vbD
+vbD
+lfc
+lfc
+kqH
+kqH
+kqH
+enu
qzf
ylP
eXH
@@ -111220,15 +111873,16 @@ cCZ
cCZ
cCZ
cCZ
-vtU
-cCZ
cCZ
+vtU
cCZ
cCZ
+vtU
aWF
aWF
-aWF
-aWF
+vtU
+vtU
+cCZ
aWF
hNy
hNy
@@ -111272,7 +111926,6 @@ cCZ
cCZ
cCZ
cCZ
-cCZ
"}
(161,1,1) = {"
cCZ
@@ -111477,20 +112130,20 @@ cCZ
cCZ
hNy
cCZ
+cCZ
vtU
cCZ
cCZ
cCZ
cCZ
cCZ
+cCZ
+cCZ
+cCZ
+vtU
hNy
hNy
hNy
-hNy
-hNy
-hNy
-cCZ
-cCZ
cCZ
cCZ
cCZ
@@ -111734,20 +112387,20 @@ cCZ
hNy
hNy
hNy
-vtU
cCZ
+vtU
cCZ
cCZ
cCZ
cCZ
+aWF
+aWF
+aWF
+aWF
+aWF
hNy
hNy
hNy
-hNy
-hNy
-hNy
-cCZ
-cCZ
cCZ
cCZ
cCZ
@@ -111991,19 +112644,19 @@ cCZ
hNy
hNy
hNy
-vtU
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
cCZ
+vtU
cCZ
cCZ
cCZ
-vtU
cCZ
cCZ
+hNy
+hNy
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -112248,19 +112901,19 @@ vtU
hNy
hNy
hNy
-vtU
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
cCZ
+vtU
cCZ
cCZ
cCZ
-vtU
cCZ
cCZ
+hNy
+hNy
+hNy
+hNy
+hNy
+hNy
cCZ
cCZ
cCZ
@@ -112743,8 +113396,8 @@ vuQ
jtj
fHJ
kHf
-fVU
-dhs
+mBd
+lJs
kHf
ncW
qMz
@@ -114545,7 +115198,7 @@ gSB
cGz
acw
gup
-oKT
+wcq
oKT
vnc
ohW
@@ -115065,7 +115718,7 @@ kHf
bzc
kHf
sKh
-vLD
+rUO
iXi
gjb
buH
@@ -116051,7 +116704,7 @@ tbV
rRv
rRv
rRv
-oWn
+iOB
rRv
rRv
dsR
@@ -116099,7 +116752,7 @@ jwc
brQ
eMc
sbe
-nSK
+vRr
qsd
mjv
cgU
@@ -116356,7 +117009,7 @@ yaE
yaE
yaE
yaE
-cJs
+hbG
qsd
hHq
pYu
@@ -116555,7 +117208,7 @@ cCZ
vtU
cCZ
tbV
-xwK
+iHQ
kUt
rIv
lFE
@@ -116568,7 +117221,7 @@ dsR
jcA
oiQ
rRv
-iIL
+evb
lol
rRv
hNy
@@ -116581,7 +117234,7 @@ sQY
oEV
kbW
qlQ
-fVB
+qsH
cSs
uru
pND
@@ -116613,7 +117266,7 @@ vls
wmB
fcL
wtP
-lzr
+heP
qsd
fOn
rnC
@@ -116816,8 +117469,8 @@ kpp
kUt
jPg
vAA
-qaU
-tbV
+dNv
+ivL
tbV
vCB
tyd
@@ -116834,14 +117487,14 @@ fDK
lDr
gXL
gXL
-brl
+kaz
gXA
kvb
kOa
rdu
oCW
wYk
-tuE
+tPP
dpm
mBf
mBf
@@ -117073,8 +117726,8 @@ mNV
uiI
iIH
mRk
-hGF
-tbV
+dNv
+fen
tbV
hNy
vCB
@@ -117306,7 +117959,7 @@ hNy
dAF
dzI
iwy
-kcb
+kqQ
lPy
jSN
rYo
@@ -117349,13 +118002,13 @@ mfd
wlS
lwc
kPb
-jGx
+lDr
kvb
aIB
oUB
fGx
wYk
-tuE
+tPP
dpm
hNy
cCZ
@@ -117562,7 +118215,7 @@ vtU
vtU
dAF
hSC
-rYo
+fSh
lcn
vFk
jSN
@@ -117609,7 +118262,7 @@ kPb
gRY
kbW
rrr
-tnf
+lyh
pRf
xDC
xFg
@@ -117818,10 +118471,10 @@ cCZ
cCZ
cCZ
dAF
-tWa
+kDa
lsO
eJG
-pze
+fnY
jgb
qoX
goi
@@ -118075,9 +118728,9 @@ cCZ
cCZ
cCZ
dAF
-byV
-jSN
-qcX
+wMm
+vPO
+pCB
xjk
jSN
jSN
@@ -118332,10 +118985,10 @@ vtU
vtU
vtU
dAF
-uqN
-fGr
-mlo
-kDJ
+liQ
+aRG
+xlC
+rYo
jSN
jSN
jSN
@@ -118589,10 +119242,10 @@ cCZ
cCZ
cCZ
dAF
-xJf
-cte
-hSC
-dgl
+iTw
+tQp
+lbQ
+hnD
paM
frw
maL
@@ -144021,11 +144674,11 @@ hHc
kWt
hHc
qlI
-vtU
-vtU
-vtU
-vtU
-vtU
+dUQ
+dUQ
+dUQ
+dUQ
+dUQ
dUQ
dUQ
dUQ
@@ -144278,16 +144931,16 @@ hHc
kWt
hHc
qlI
-jLg
-upy
-jLg
-upy
-jLg
+fxf
+lSs
+fxf
+lSs
+fxf
qlI
qlI
qlI
qlI
-jLg
+fxf
fxf
lSs
fxf
@@ -144535,11 +145188,11 @@ hHc
kWt
dUQ
qlI
-vtU
-vtU
-vtU
-vtU
-vtU
+dUQ
+dUQ
+dUQ
+dUQ
+dUQ
qlI
kaJ
xpD
@@ -144792,11 +145445,11 @@ hHc
kWt
hHc
qlI
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+hHc
qlI
fdp
xpD
@@ -145049,11 +145702,11 @@ hHc
kWt
hHc
qlI
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+hHc
qlI
duX
fDn
@@ -145332,7 +145985,7 @@ fDn
gUy
gUy
gUy
-cCZ
+hHc
hHc
hHc
hHc
@@ -145589,7 +146242,7 @@ fDn
trC
ipY
trC
-wnD
+gsH
hHc
hHc
hHc
@@ -145846,7 +146499,7 @@ fDn
trC
xQr
trC
-cCZ
+hHc
hHc
hHc
hHc
@@ -146358,8 +147011,8 @@ ycq
pNg
fDn
qlI
-cCZ
-vtU
+hHc
+dUQ
hHc
hHc
hHc
@@ -146615,8 +147268,8 @@ vlp
xnk
djP
qlI
-vtU
-vtU
+dUQ
+dUQ
hHc
hHc
hHc
@@ -146872,8 +147525,8 @@ gUy
cIv
fDn
qlI
-cCZ
-vtU
+hHc
+dUQ
hHc
hHc
hHc
@@ -147129,9 +147782,9 @@ sqo
hUO
pHk
qlI
-cCZ
-vtU
-cCZ
+hHc
+dUQ
+hHc
hHc
hHc
hHc
@@ -147386,9 +148039,9 @@ gUy
rtN
fDn
qlI
-cCZ
-vtU
-cCZ
+hHc
+dUQ
+hHc
hHc
hHc
hHc
@@ -147643,8 +148296,8 @@ dxY
wwf
fDn
qlI
-cCZ
-vtU
+hHc
+dUQ
hHc
hHc
hHc
@@ -147900,8 +148553,8 @@ uXq
pNg
djP
qlI
-vtU
-vtU
+dUQ
+dUQ
hHc
hHc
hHc
@@ -148157,8 +148810,8 @@ uEb
pNg
fDn
qlI
-cCZ
-vtU
+hHc
+dUQ
hHc
hHc
hHc
@@ -148414,8 +149067,8 @@ pNg
pNg
fDn
qlI
-cCZ
-vtU
+hHc
+dUQ
hHc
hHc
hHc
@@ -148896,8 +149549,8 @@ hHc
hHc
hHc
hHc
-maW
-vtU
+gIP
+dUQ
qlI
qlI
qlI
@@ -149153,11 +149806,11 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+hHc
qlI
sOj
qlI
@@ -149183,8 +149836,8 @@ bzt
fDn
hHf
ikk
-dBp
-pSH
+jsJ
+sNj
ikk
hHc
hHc
@@ -149410,11 +150063,11 @@ hHc
hHc
hHc
hHc
-npt
-cCZ
-cCZ
-cCZ
-mbI
+nSV
+hHc
+hHc
+hHc
+xIn
nna
wdA
jvE
@@ -149440,8 +150093,8 @@ qSj
fDn
qzT
ikk
-vsC
-pSH
+npD
+rGv
ikk
hHc
hHc
@@ -149667,20 +150320,20 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+hHc
qlI
jyh
qlI
fdp
+tmu
+tmu
wyM
-wyM
-wyM
-wyM
-wyM
+tmu
+tmu
wyM
dip
qlI
@@ -149697,8 +150350,8 @@ qlI
yhx
pNg
ikk
-dqI
-pSH
+gPQ
+rGv
tiU
hHc
hHc
@@ -149924,8 +150577,8 @@ hHc
hHc
hHc
hHc
-maW
-vtU
+gIP
+dUQ
qlI
qlI
qlI
@@ -149954,8 +150607,8 @@ oOG
fDn
pNg
ikk
-dBp
-pSH
+bik
+sNR
ikk
ikk
ikk
@@ -150201,11 +150854,11 @@ qlI
pNg
pNg
pNg
-pNg
-pNg
gRj
cFR
cFR
+cFR
+cFR
wXS
cFR
cFR
@@ -150449,8 +151102,6 @@ hHc
hHc
hHc
dUQ
-hHc
-hHc
ngE
uEK
uEK
@@ -150463,7 +151114,8 @@ ngE
ngE
liq
fDn
-ibF
+fDn
+qlI
ibF
ibF
nEg
@@ -150472,6 +151124,7 @@ ibF
ibF
ibF
ibF
+wwO
dBp
pSH
tiU
@@ -150706,8 +151359,6 @@ kWt
kWt
kWt
kWt
-hHc
-hHc
ngE
maH
dDW
@@ -150720,7 +151371,8 @@ tzH
lpZ
gyb
fDn
-ibF
+fDn
+qlI
rgJ
wvK
mQj
@@ -150729,6 +151381,7 @@ ehR
jEb
wZh
ibF
+wwO
pSH
pSH
ikk
@@ -150958,13 +151611,11 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-vsD
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+kWt
ngE
ygq
dDW
@@ -150977,7 +151628,8 @@ fXt
fXt
cgK
cgK
-ibF
+cgK
+qlI
pFj
izA
tdx
@@ -150986,6 +151638,7 @@ axZ
aON
fjm
ibF
+wwO
wOd
jcE
ikk
@@ -151215,13 +151868,11 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-vsD
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+kWt
ngE
gJk
dDW
@@ -151234,7 +151885,8 @@ aXu
iVk
fDn
fDn
-ibF
+djP
+qlI
bGi
blf
mqr
@@ -151243,6 +151895,7 @@ iZD
mRJ
fUa
ibF
+wwO
vxs
dBp
tiU
@@ -151472,13 +152125,11 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-vsD
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+kWt
ngE
ngE
ngE
@@ -151491,7 +152142,8 @@ udf
iVk
fDn
fDn
-ibF
+fDn
+qlI
xus
fjm
hUt
@@ -151500,7 +152152,8 @@ tTm
wvK
gpq
ibF
-pSH
+wwO
+jcE
pSH
ikk
hHc
@@ -151729,13 +152382,11 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-vsD
-vtU
-vtU
+hHc
+hHc
+hHc
+hHc
+kWt
ngE
uEK
cCc
@@ -151747,8 +152398,9 @@ iaK
hKJ
dUK
fDn
-djP
-ibF
+fDn
+fDn
+qlI
klC
wvK
wwO
@@ -151757,6 +152409,7 @@ tTm
wvK
izA
ibF
+wwO
pSH
qPO
ikk
@@ -151986,13 +152639,11 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-vsD
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+kWt
ngE
dDW
ihO
@@ -152004,8 +152655,9 @@ nuN
eGw
iVk
fDn
+fDn
swE
-ikk
+qlI
ikk
ikk
ikk
@@ -152014,6 +152666,7 @@ ikk
ikk
ofa
ikk
+pSH
jcE
wOd
ikk
@@ -152243,13 +152896,11 @@ hHc
hHc
hHc
hHc
-cCZ
-cCZ
-cCZ
-cCZ
-vsD
-cCZ
-cCZ
+hHc
+hHc
+hHc
+hHc
+kWt
ngE
mWR
nRT
@@ -152262,9 +152913,12 @@ fOk
iVk
fDn
fDn
+fDn
+qlI
+vZm
ikk
vJS
-pSH
+jcE
pTI
hdY
pTI
@@ -152272,7 +152926,6 @@ ikk
pSH
pSH
pSH
-pSH
iMV
pSH
khI
@@ -152505,20 +153158,21 @@ kWt
kWt
kWt
kWt
-hHc
-hHc
ngE
-mGu
ngE
ngE
+mGu
ngE
fXt
fXt
cLz
-fXt
-fXt
+iVk
+iVk
cgK
cgK
+cgK
+qlI
+jcE
ikk
ikk
ikk
@@ -152526,7 +153180,6 @@ pTI
pTI
pTI
ikk
-pSH
ikk
ikk
ikk
@@ -152767,23 +153420,23 @@ hHc
mLm
rQq
txv
+bsi
txv
txv
txv
txv
-evY
-bsi
-tWl
-juR
-jUO
+txv
+txv
+lzl
ikk
+pSH
+jcE
pGK
ikk
tiU
pSH
tiU
ikk
-pSH
ikk
aVd
wbu
@@ -153024,22 +153677,22 @@ lmJ
lmJ
rQq
nzW
-bTF
-bTF
-bTF
-bTF
-vaY
-vaY
-vaY
-vaY
-vaY
-nFw
-vkh
+xzi
+xzi
+xzi
+xzi
+xzi
+xzi
+wFk
+sQv
+wmx
vkh
+ygO
vkh
vkh
vkh
vkh
+bzf
vkh
vkh
vkh
@@ -153281,15 +153934,15 @@ pXo
lmJ
dAf
oLd
-hlp
-txv
+awq
+raV
pSz
esU
esU
esU
pSz
-qjd
-jpW
+pSz
+ikk
ikk
ikk
ikk
@@ -153540,14 +154193,14 @@ txv
oLd
txv
hFt
-rYH
+wHo
+nDd
nDd
nDd
+pcB
nDd
-wFe
-vOV
-cJX
-xMk
+nDd
+wHo
vAK
frL
xph
@@ -153797,14 +154450,14 @@ txv
oLd
txv
hFt
-fwY
nDd
nDd
nDd
-fwY
-vOV
-cJX
-iXd
+nDd
+nDd
+nDd
+nDd
+nDd
nDd
frL
hYm
@@ -154053,15 +154706,15 @@ rHl
txv
oLd
txv
-vLR
-gxn
+sDp
+nDd
+nDd
+nDd
+nDd
+nDd
nDd
nDd
nDd
-isx
-riL
-cJX
-iXd
nDd
gba
xph
@@ -154309,17 +154962,17 @@ dka
wZS
wBS
oLd
-qJa
-vLR
-qgp
-fwY
-fwY
-fwY
-iqy
-riL
-cJX
-qgp
-fwY
+gpA
+sDp
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
kJF
wxS
vdY
@@ -154566,17 +155219,17 @@ cNt
rHl
txv
oLd
-qoG
-jpO
-riL
-riL
-riL
-riL
-riL
-riL
-cJX
-cJX
-cJX
+sQv
+oos
+fyB
+fyB
+fyB
+fyB
+fyB
+fyB
+fyB
+mNa
+fyB
eqC
wQb
uqP
@@ -154829,10 +155482,10 @@ riL
nMm
riL
riL
-dju
+mcy
riL
riL
-nMm
+sYu
riL
jVv
aIy
@@ -155080,17 +155733,17 @@ czz
sCM
txv
oLd
-txv
-jpO
-riL
-riL
-riL
-gQY
-oLl
-kaT
-eNE
-eNE
-eNE
+goH
+lyA
+cvu
+cvu
+cvu
+oxT
+cvu
+cvu
+cvu
+mXt
+mXt
xJr
mUN
qbF
@@ -155338,16 +155991,16 @@ lmJ
dAf
oLd
txv
-vLR
-gxn
-isx
-riL
-kkB
+sDp
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
nDd
-xxS
-eNE
-gxn
-ixY
tgu
tAF
xdT
@@ -155592,18 +156245,18 @@ lmJ
lmJ
lmJ
lmJ
-yeu
+dEC
oLd
txv
-vLR
-iXd
-dwf
-riL
-kkB
+sDp
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
nDd
-xxS
-eNE
-iXd
uMD
lza
ivS
@@ -155849,18 +156502,18 @@ jJi
cqS
cCo
jJi
-txv
+jkn
oLd
txv
-vLR
-iXd
-dwf
-riL
-kkB
+sDp
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
+nDd
nDd
-xxS
-eNE
-iXd
nDd
frL
hYm
@@ -156106,18 +156759,18 @@ ebn
cdP
cdP
jJi
-txv
+mCT
oLd
sFk
-vLR
-qgp
-iqy
-riL
-kkB
+sDp
+nDd
+nDd
+nDd
+nDd
okj
-xxS
-eNE
-rOt
+nDd
+nDd
+xuD
nDd
frL
ivS
@@ -156366,14 +157019,14 @@ sfX
vaY
qxg
goH
-jeH
-bDH
-bDH
-ihh
-uKU
+cJG
+cEz
+cEz
+naq
+cRs
+lRJ
+lRJ
lRJ
-efu
-ufX
lRJ
lRJ
bqd
@@ -156630,7 +157283,7 @@ saK
ibD
lRJ
mBc
-tgU
+mBc
ibC
hxH
bqd
@@ -156887,7 +157540,7 @@ lRJ
lRJ
lRJ
bgQ
-aNX
+nvO
lRJ
lRJ
bqd
@@ -157144,7 +157797,7 @@ lRJ
kog
lRJ
bgQ
-kzF
+vzw
cBO
vEl
bqd
@@ -157401,7 +158054,7 @@ lRJ
vSP
lRJ
bgQ
-iKJ
+aIi
lRJ
lRJ
bqd
@@ -157658,7 +158311,7 @@ gYR
mBc
mBc
sKk
-kzF
+vzw
aUY
qoA
bqd
@@ -157908,7 +158561,7 @@ wuF
txv
fmZ
fmZ
-fmZ
+cgE
tTk
dWa
oup
@@ -158417,7 +159070,7 @@ pAP
ocv
irB
irB
-fhN
+uUp
jvz
txv
fmZ
@@ -158676,7 +159329,7 @@ irB
irB
rdE
jvz
-txv
+hjE
fmZ
txv
lRJ
@@ -158932,7 +159585,7 @@ tEb
irB
irB
wDZ
-rsd
+gEZ
rtf
rQq
qoG
@@ -159437,7 +160090,7 @@ lEX
rxV
jJi
yhC
-dnJ
+tWd
eaI
ftd
ftd
@@ -159957,8 +160610,8 @@ wrT
wrT
dig
bOj
-utd
-wrT
+kxP
+qRX
xcb
jvz
dbz
@@ -160764,7 +161417,7 @@ soo
guM
jtS
fAq
-rEJ
+coI
dYf
lym
poh
@@ -160796,7 +161449,7 @@ qLe
qLe
fJC
pkh
-tKQ
+eOA
fJC
vxC
qHj
@@ -160989,7 +161642,7 @@ phJ
juY
phJ
phJ
-txv
+cPM
vwk
txv
pKF
@@ -161021,7 +161674,7 @@ eoF
iEt
jtS
gFM
-vfo
+hSo
lRz
lym
xZc
@@ -161277,8 +161930,8 @@ hmx
oCd
lOc
jtS
-qqV
-eKw
+lAC
+lZP
kfI
eyw
nHf
@@ -161762,7 +162415,7 @@ phJ
phJ
wxT
uGB
-awl
+gkr
pGm
pGm
pGm
@@ -163334,16 +163987,16 @@ rAq
rAq
rAq
rAq
-ctt
-pkB
+jjb
pkB
+jjb
qxk
icG
-pkB
-sgA
jjb
-cBP
-pkB
+jjb
+jjb
+hvP
+hvP
pkB
jjb
fQs
@@ -163589,8 +164242,8 @@ rAq
rAq
rAq
rAq
-vMh
-rsY
+rAq
+rAq
pkB
pkB
pkB
@@ -163846,8 +164499,8 @@ rAq
rAq
rAq
rAq
-bsz
-wUg
+rAq
+rAq
pkB
oJI
hne
@@ -164073,14 +164726,14 @@ bma
cGo
pGm
fsz
-dIi
-dIi
-dIi
-dNi
-dIi
-dIi
-dIi
-dIi
+fgk
+aUs
+fkg
+icq
+aUs
+aUs
+fkg
+hQz
sZD
sZD
sZD
@@ -164330,14 +164983,14 @@ ayc
jzd
nfE
ggF
-dIi
-vzf
-fRK
-fEG
-yjN
-egz
-wxH
-dIi
+xGC
+dUI
+ohP
+ohP
+ohP
+dQs
+dUI
+dyO
sZD
sZD
sZD
@@ -164587,14 +165240,14 @@ ayc
jzd
nfE
ggF
-dIi
-aJa
-dpE
-jRa
-dlF
-ydh
-kKU
-dIi
+xGC
+qZl
+dUI
+dUI
+dUI
+vnl
+cxL
+dyO
sZD
sZD
sZD
@@ -164609,7 +165262,7 @@ hQG
aAO
gnh
oXf
-sAZ
+dSr
rtP
mQG
tpc
@@ -164844,14 +165497,14 @@ ayc
jzd
nfE
ggF
-dNi
-bJo
-vUO
-muL
-sEc
-ydh
-kKU
-dIi
+xGC
+qZl
+jtJ
+xMB
+qQA
+dUI
+cxL
+rXr
sZD
sZD
sZD
@@ -164860,15 +165513,15 @@ nzE
nzE
crE
vtH
-vDz
+tdd
nzE
fGY
aAO
-nZd
-qAI
-nZd
-lGt
-iav
+gwg
+pFR
+rIK
+nTZ
+oob
tpc
rAq
rAq
@@ -165101,14 +165754,14 @@ ayc
jzd
nfE
ggF
-dIi
-dJI
-tCx
-jRa
-vkm
-qLW
-kKU
-dIi
+xGC
+qZl
+dUI
+dUI
+dUI
+vnl
+cxL
+dyO
ggF
fsz
ggF
@@ -165121,11 +165774,11 @@ sJc
xiM
uJB
xXz
-mQi
-mQi
-mQi
-mQi
-sSz
+gwg
+gwg
+gwg
+gwg
+oob
tpc
rAq
rAq
@@ -165135,15 +165788,15 @@ rAq
rAq
vel
lBf
-kBa
+dAX
qvg
lDo
-jSF
-vdL
-wpw
-rBo
-iKU
-rMD
+lDo
+whT
+qQq
+qQq
+qQq
+qQq
pkB
fQs
fQs
@@ -165358,14 +166011,14 @@ ayc
uck
nfE
ggF
-dIi
-riD
-gZP
-seo
-ydh
-kKU
-kKU
-dIi
+rGt
+dUI
+xnT
+igf
+xnT
+xnT
+dUI
+dyO
sZD
sZD
sZD
@@ -165378,11 +166031,11 @@ oTW
nzE
smk
xXz
-mQi
-mQi
-mQi
-mQi
-cuw
+gwg
+gqx
+snM
+qFk
+oXI
tpc
rAq
rAq
@@ -165391,16 +166044,16 @@ lFj
elj
sjl
pkB
-pkB
-pkB
-jVe
-hqK
-pkB
-pkB
-vel
-vel
-pkB
-pkB
+lei
+qGH
+ubb
+qQq
+azu
+yje
+rfH
+bme
+iKU
+rMD
pkB
fQs
fQs
@@ -165615,14 +166268,14 @@ ayc
pEk
nfE
ggF
-dIi
-wxH
-kKU
-kKU
-kKU
-kKU
-kKU
-opw
+kZH
+sga
+qqb
+veJ
+qqb
+qqb
+qqb
+cNd
sZD
sZD
sZD
@@ -165635,11 +166288,11 @@ pbH
nzE
oob
xXz
-mQi
-mQi
-mQi
-mQi
-sSz
+gwg
+gwg
+gwg
+gwg
+oob
tpc
rAq
rAq
@@ -165647,18 +166300,18 @@ rAq
tUf
qHa
pHy
-xfC
+lNp
pkB
pkB
-als
-pHy
+ylU
+ezo
pkB
pkB
-jjb
-jjb
+vel
+vel
pkB
pkB
-ltx
+pXy
fQs
fQs
jpN
@@ -165702,7 +166355,7 @@ qHj
qHj
qHj
qHj
-cCZ
+hHc
hHc
hHc
hHc
@@ -165873,12 +166526,12 @@ jzd
nfE
ggF
dIi
-wxH
-kKU
-kKU
-kKU
-kKU
-kKU
+dIi
+dIi
+dNi
+dIi
+dIi
+dIi
dIi
sZD
sZD
@@ -165892,11 +166545,11 @@ kju
nzE
jxx
xXz
-mQi
-mQi
-mQi
-mQi
-kfk
+gwg
+gqx
+snM
+qFk
+fvl
vXZ
tUf
tUf
@@ -165905,16 +166558,16 @@ gNF
oHW
bdu
vXZ
-rqE
-kNc
+vYJ
+bkA
cvl
pHy
-wiP
+uOr
+apy
apy
-mqf
apy
apy
-mqf
+ptM
apy
apy
plp
@@ -165958,8 +166611,8 @@ vnI
vnI
vnI
vnI
-sjW
-cCZ
+azS
+hHc
hHc
hHc
hHc
@@ -166130,12 +166783,12 @@ jzd
nfE
ggF
dIi
+kRr
+kmw
+jRa
+dad
+wxH
wxH
-kKU
-kKU
-kKU
-kKU
-kKU
dIi
sZD
sZD
@@ -166387,10 +167040,10 @@ jzd
nfE
ggF
dIi
-wxH
-kKU
-kKU
-kKU
+jRa
+eRW
+jRa
+nZi
kKU
kKU
dIi
@@ -166402,7 +167055,7 @@ ggF
qmF
wzi
uSa
-vDd
+tIN
mey
uSa
nds
@@ -166643,11 +167296,11 @@ bKz
jzd
nfE
ggF
-dIi
-kwB
-pvw
-kKU
-kKU
+dNi
+imD
+iPX
+xnt
+nZi
kKU
kKU
dIi
@@ -166874,7 +167527,7 @@ qfG
dJN
vUU
vUU
-eHg
+rCa
czJ
faz
cWS
@@ -166901,10 +167554,10 @@ nCa
pGm
ggF
dIi
-dmh
-ydh
-kKU
-kKU
+kRr
+kmw
+jRa
+nZi
kKU
kKU
dIi
@@ -166917,7 +167570,7 @@ sZD
aMV
ujU
dpL
-ctI
+lbH
uSa
qBL
gwg
@@ -167131,7 +167784,7 @@ sJJ
dJN
vUU
vUU
-qKh
+lfd
czJ
kPB
wLa
@@ -167158,12 +167811,12 @@ jzd
pGm
ggF
dIi
-dFm
-egz
-vbt
-wxH
-wxH
-wxH
+unA
+qLj
+fEG
+nZi
+kKU
+kKU
dIi
sZD
sZD
@@ -167415,13 +168068,13 @@ uck
pGm
ggF
dIi
-dIi
-dIi
-dNi
-dIi
-dIi
-dIi
-dIi
+aJa
+dpE
+jRa
+nZi
+kKU
+kKU
+opw
sZD
sZD
ggF
@@ -167671,14 +168324,14 @@ kME
aWo
pGm
ggF
-fgk
-aUs
-fkg
-icq
-aUs
-aUs
-fkg
-hQz
+dNi
+bJo
+hWe
+muL
+fVn
+sQb
+wxH
+dIi
sZD
sZD
ggF
@@ -167928,14 +168581,14 @@ kME
jzd
pGm
ggF
-xGC
-dUI
-ohP
-ohP
-ohP
-dQs
-dUI
-dyO
+dIi
+dJI
+tCx
+kJV
+kKU
+wEK
+kKU
+dIi
heF
heF
noy
@@ -168185,14 +168838,14 @@ kME
jzd
pGm
ggF
-xGC
-qZl
-dUI
-dUI
-dUI
-vnl
-cxL
-dyO
+dIi
+riD
+gZP
+kGu
+kKU
+wEK
+kKU
+dIi
sZD
sZD
dZM
@@ -168418,7 +169071,7 @@ twf
umb
dCg
gcX
-cin
+mgO
daE
vNv
ktL
@@ -168442,19 +169095,19 @@ kME
jzd
wvB
ggF
-xGC
-qZl
-jtJ
-xMB
-qQA
-dUI
-cxL
-rXr
+dIi
+neq
+kKU
+kKU
+kKU
+wEK
+kKU
+dIi
sZD
sZD
-cbU
+hDa
snd
-fLX
+tXW
xSi
rvN
cGd
@@ -168699,19 +169352,19 @@ bKz
jzd
pGm
ggF
-xGC
-qZl
-dUI
-dUI
-dUI
-vnl
-cxL
-dyO
-heF
-heF
-aaI
-snd
-fLX
+dIi
+oDB
+wxH
+vbt
+wxH
+rrm
+qRR
+hMn
+exy
+qah
+sFM
+bqb
+fjD
pdI
rvN
cGd
@@ -168956,19 +169609,19 @@ vwD
kIS
nfE
iOT
-rGt
-dUI
-xnT
-igf
-xnT
-xnT
-dUI
-dyO
-sZD
+dIi
+dIi
+dIi
+dNi
+dIi
+dIi
+dIi
+dIi
sZD
-snd
-snd
-pom
+oov
+dyA
+cse
+oKM
xSi
fNp
ouB
@@ -169011,8 +169664,8 @@ xXi
xXi
oFk
cTq
-cTq
-cTq
+tdL
+tdL
osa
xXi
xiJ
@@ -169161,7 +169814,7 @@ hHc
hHc
hHc
hHc
-hHc
+byv
hHc
hHc
hHc
@@ -169213,19 +169866,19 @@ jZm
uLY
pGm
uHs
-wsv
-bpz
-frT
-jcq
-frT
-jcq
-nsm
-cNd
+wMD
+uyW
+jCm
+hCf
+jCm
+hCf
+kbs
+kOA
sZD
sZD
snd
-ktI
-xSi
+jYg
+ldB
kMo
hTu
rTe
@@ -169267,10 +169920,10 @@ oeq
xCb
xXi
nPx
-cZt
-hyg
-mjV
-osa
+xhV
+xhV
+wMu
+lSS
xXi
xiJ
oOW
@@ -169422,7 +170075,7 @@ hHc
hHc
hHc
hHc
-hHc
+byv
hHc
hHc
hNy
@@ -169524,10 +170177,10 @@ jAa
mmT
wYg
nPx
-cfo
-jVT
-rLL
-osa
+qJQ
+xhV
+wMu
+lSS
rSn
xiJ
guV
@@ -169728,8 +170381,8 @@ rac
pGm
ybh
fnd
-lOz
-bTP
+sZD
+sZD
heF
sZD
heF
@@ -169781,9 +170434,9 @@ oeq
tkZ
xXi
nPx
-hEN
-nNh
-hhx
+uqY
+ayv
+eNg
osa
oll
xiJ
@@ -169971,7 +170624,7 @@ xUK
kAO
lzU
sSo
-lWj
+bhe
tcX
vtm
vtm
@@ -169985,8 +170638,8 @@ rxU
mRH
qgJ
xAj
-ggF
-jXk
+sRX
+sZD
heF
sZD
heF
@@ -171002,7 +171655,7 @@ sxf
cca
mqn
quo
-lex
+nAu
rSO
akW
nff
@@ -171362,11 +172015,11 @@ qgt
qgt
qgt
hNy
-hHc
-hHc
-hHc
-hHc
-hHc
+hNy
+hNy
+hNy
+hNy
+hNy
hHc
hHc
hHc
@@ -171620,9 +172273,9 @@ hNy
hNy
hNy
hNy
-hHc
-hHc
-hHc
+hNy
+hNy
+hNy
hHc
hHc
hHc
@@ -171876,10 +172529,10 @@ hNy
hNy
hNy
hNy
-hHc
-hHc
-hHc
-hHc
+hNy
+hNy
+hNy
+hNy
hHc
hHc
hHc
@@ -172006,8 +172659,8 @@ rRv
rRv
rRv
rRv
-rRv
-rRv
+jpl
+rgj
jpl
jpl
jpl
@@ -172133,9 +172786,9 @@ hNy
hNy
hNy
hNy
-hHc
-hHc
-hHc
+hNy
+hNy
+hNy
hHc
hHc
hHc
@@ -172263,11 +172916,11 @@ rRv
rRv
rRv
rRv
-rRv
-rRv
-rRv
-rRv
-pae
+jpl
+mGd
+oyl
+kqa
+jpl
bzj
dJN
dJN
@@ -172391,9 +173044,9 @@ hNy
hNy
hNy
hNy
-hHc
-hHc
-hHc
+hNy
+hNy
+hNy
hHc
hHc
hHc
@@ -172520,11 +173173,11 @@ hHc
hHc
hHc
hHc
-hHc
-hHc
-rRv
-rRv
-pae
+jpl
+hUb
+njG
+xpv
+jpl
huW
cLA
tXe
@@ -172773,15 +173426,15 @@ hHc
hHc
hHc
hHc
-byv
-hHc
hHc
hHc
hHc
hHc
-hHc
-rRv
-pae
+mvB
+qfG
+mGd
+cLA
+jpl
bzj
cLA
pyb
@@ -173034,11 +173687,11 @@ hHc
hHc
hHc
hHc
-hHc
-hHc
-hHc
-jpl
-jpl
+mvB
+jGD
+mRb
+qfG
+uHC
adK
qfG
cLA
@@ -173156,7 +173809,7 @@ vWM
vWM
vWM
vWM
-nEU
+vWM
arN
arN
arN
@@ -173284,9 +173937,6 @@ hHc
hHc
hHc
hHc
-byv
-hHc
-hHc
hHc
hHc
hHc
@@ -173294,8 +173944,11 @@ hHc
hHc
hHc
hHc
+mvB
+mvB
+jpl
+jpl
jpl
-cLA
bzj
cLA
urw
@@ -173313,9 +173966,9 @@ bMA
pUc
rqA
tQk
-kEE
-rxD
-uRL
+hee
+sZg
+wGt
tCr
asA
cHp
@@ -173412,8 +174065,8 @@ hbf
qrz
kkJ
feU
-feU
-cdD
+ufv
+tDY
pQN
fnm
pgZ
@@ -173570,7 +174223,7 @@ qCr
pUc
kAO
jWh
-vsz
+jam
tDI
gfF
bzb
@@ -173664,13 +174317,13 @@ mvG
iJB
mvG
vJT
-hTo
+arN
+aJb
+sCu
+vrm
+uZi
+ihT
vWM
-oPI
-loD
-loD
-feU
-ufv
arN
hTo
hTo
@@ -173920,14 +174573,14 @@ tMe
hIV
smW
mvG
-jKG
-arN
-lzQ
-hlb
-ebO
-jcG
-vWM
+tqf
+nhy
+nhy
+nhy
+nhy
+nhy
ihT
+vWM
arN
dZH
rRv
@@ -174177,14 +174830,14 @@ ths
hIV
smW
mvG
-gfL
-rRy
-rRy
-rRy
-rRy
-rRy
-kzZ
-ihT
+aJK
+wqu
+csW
+fWA
+hsG
+nhy
+suU
+vWM
arN
arN
arN
@@ -174434,14 +175087,14 @@ gqY
mvG
iJB
mvG
-nAj
-plE
-mvc
-pSM
-vje
-rRy
-emt
-hfm
+oKs
+fQi
+utZ
+kXY
+gSk
+nhy
+dvy
+gxW
rbu
fnm
hdt
@@ -174691,14 +175344,14 @@ kpM
hIV
bcG
kQu
-cQY
-smW
-aWy
-aWy
-aYB
-rRy
-lul
-vWM
+qFD
+ooI
+hlo
+cHd
+iGW
+nhy
+pZa
+eRt
arN
arN
arN
@@ -174948,15 +175601,15 @@ ths
hIV
smW
mvG
-smW
-smW
-ryG
-cdX
-mTu
-mTu
-mTu
-mTu
+xto
+wiM
+wqu
+wiM
mTu
+dmT
+dmT
+dmT
+dmT
jCd
rRv
kcg
@@ -175144,15 +175797,15 @@ meU
rXg
kYo
kIn
-sSi
-lGQ
+atI
+atI
vUM
jzb
uVZ
qwk
hiH
-uSy
-ncp
+bJd
+atI
icP
vXf
mNu
@@ -175205,10 +175858,10 @@ gqY
xQo
cTv
peP
-smW
-smW
-aHK
-eAH
+ege
+iZE
+dQx
+hnb
mTu
xft
qHO
@@ -175401,15 +176054,15 @@ gQB
dAB
uHZ
ivz
+pYJ
+pcI
ofe
ofe
+gcs
ofe
ofe
-lli
-ofe
-ofe
-ofe
-ofe
+oWv
+iwE
qeS
gAI
omJ
@@ -175463,9 +176116,9 @@ hIV
smW
lzk
jep
-jep
-uUw
-ocP
+gfW
+wpU
+fhH
mTu
rvE
oQH
@@ -175721,7 +176374,7 @@ pmL
jvc
smW
smW
-ePm
+smW
nZu
mTu
bPv
@@ -175920,11 +176573,11 @@ fNG
fNG
xyg
fNG
-xyg
-fNG
+rlt
fNG
ofe
ofe
+ofe
hlT
wgD
nOL
@@ -176176,11 +176829,11 @@ rAq
rAq
bsz
xTI
-uoB
-koU
-wXL
-fQs
-fQs
+spa
+wXs
+wXs
+wXs
+wXs
ofe
wOn
cip
@@ -176226,7 +176879,7 @@ rWM
ezS
bPY
qkr
-qkr
+lJF
pzs
aEc
ePm
@@ -176433,11 +177086,11 @@ rAq
rAq
rAq
rAq
-uaa
-fQs
-fQs
-fQs
-fQs
+wXs
+wXs
+wXs
+wXs
+wXs
ofe
pbY
uVv
@@ -176481,7 +177134,7 @@ uEl
oay
rKp
pdj
-xnJ
+lip
pTY
jQf
sEW
@@ -176493,11 +177146,11 @@ uQE
egm
amb
okY
-opJ
+okY
ofD
-sIE
-nHj
-bJy
+rqx
+eQF
+uUs
dIE
rRv
rRv
@@ -176690,7 +177343,7 @@ rAq
rAq
rAq
rAq
-uaa
+fQs
fQs
fQs
fQs
@@ -176754,7 +177407,7 @@ gyj
gyj
gyj
auM
-cZo
+awR
dIE
jCd
rRv
@@ -176946,8 +177599,8 @@ ofe
rAq
rAq
rAq
-pui
-uaa
+rAq
+fQs
fQs
fQs
fQs
@@ -177000,7 +177653,7 @@ lVb
yho
oSR
iwf
-xnu
+aJR
vMM
smW
gfw
@@ -177008,10 +177661,10 @@ bXV
lMU
ybg
dsJ
-dss
+epa
dsJ
gyj
-vMr
+nlS
dIE
hNy
hNy
@@ -177152,7 +177805,7 @@ hHc
hHc
hHc
hHc
-hHc
+byv
hHc
hHc
hHc
@@ -177204,7 +177857,7 @@ phq
cDb
cDb
cDb
-pGm
+ijZ
ydn
ydn
ydn
@@ -177266,7 +177919,7 @@ kZp
gyj
khP
vtR
-cTB
+cwE
asL
uMz
dIE
@@ -177462,7 +178115,7 @@ jzd
jzd
jzd
xLH
-neH
+dnd
neH
neH
neH
@@ -177516,8 +178169,8 @@ nHG
iwf
lla
lhq
-lxV
-jrI
+jep
+bps
grw
bXK
xTR
@@ -177525,7 +178178,7 @@ dhN
xUg
vyz
gyj
-eEl
+nlS
dIE
hNy
hNy
@@ -177773,8 +178426,8 @@ mbH
iwf
wnV
fpE
-tgi
-qrF
+smW
+oKs
egm
xhx
auM
@@ -177782,7 +178435,7 @@ gyj
mdD
gyj
onq
-gbK
+nlS
dIE
hNy
hNy
@@ -178030,16 +178683,16 @@ iwf
iwf
rWr
fpE
-lXe
-qrF
-hmh
+alA
+mVe
+egm
fht
-skK
dgf
-dgf
-nnC
-pQp
-pAA
+oFw
+uyv
+hcD
+iaH
+gVV
dIE
hNy
hNy
@@ -178279,7 +178932,7 @@ foJ
oay
vNc
kHf
-rGd
+rWr
rWr
odq
nQw
@@ -178287,10 +178940,11 @@ plE
cEF
xbr
gAM
-oKs
+tef
uox
+egm
ebv
-hUJ
+ueh
vTi
vTi
vTi
@@ -178298,7 +178952,6 @@ qxY
vTi
hFQ
vTi
-hNy
rRv
rRv
jCd
@@ -178547,7 +179200,8 @@ dUY
xqG
uox
txE
-eZQ
+xiF
+apn
vTi
fby
cMB
@@ -178556,7 +179210,6 @@ xsl
asv
mAL
rRv
-rRv
hNy
hNy
hHc
@@ -178804,7 +179457,8 @@ kIj
uox
uox
nQs
-eZQ
+iSv
+rNx
vTi
fnb
aRh
@@ -178813,7 +179467,6 @@ fAp
aUy
eBh
rRv
-rRv
hNy
hNy
hHc
@@ -179059,9 +179712,10 @@ eIp
qgI
vdm
uox
-qlT
-bks
-bks
+rKo
+cwu
+cwu
+oHZ
vTi
dAV
fFr
@@ -179069,7 +179723,6 @@ nDE
qAn
wSn
vTi
-rRv
jCd
hNy
hNy
@@ -179245,7 +179898,7 @@ iZe
iyx
bfl
rAn
-noZ
+hjn
oyE
oNy
pxq
@@ -179264,7 +179917,7 @@ fTd
ybl
ojO
nMA
-ngQ
+bEJ
ilA
ybl
myK
@@ -179316,9 +179969,10 @@ cWD
cnA
gEQ
uox
-nsD
+ldQ
doc
cwu
+gch
vTi
vQG
cwt
@@ -179328,7 +179982,6 @@ ijv
eBh
rRv
rRv
-rRv
hNy
rRv
hNy
@@ -179573,9 +180226,10 @@ mGK
rTx
rvQ
uox
-rLd
+fwT
cmh
cwu
+wJa
vTi
azL
mbl
@@ -179586,7 +180240,6 @@ eBh
rRv
rRv
rRv
-rRv
hNy
rRv
hNy
@@ -179830,9 +180483,10 @@ wlt
wlt
vSA
uox
-upW
-cwu
-cwu
+oYF
+gpD
+bks
+uxa
vTi
vTi
mAL
@@ -179841,7 +180495,6 @@ eBh
mAL
mAL
rRv
-rRv
hNy
rRv
rRv
@@ -180087,7 +180740,7 @@ qMY
eIc
dhB
uox
-lXt
+nLr
cwu
cwu
cId
@@ -180262,7 +180915,7 @@ lJh
iyA
pqu
web
-lTT
+kyP
mAB
ovE
ovE
@@ -180344,7 +180997,7 @@ nqd
sOg
etn
mNo
-obq
+spb
cwu
cwu
jIE
@@ -180602,20 +181255,20 @@ oks
pJA
uCJ
usA
-wWl
-mmP
+cwu
+doc
fBz
eol
hNy
hNy
-hNy
-hNy
-hNy
-hNy
-rRv
-hNy
+qgt
+qgt
+qgt
hNy
rRv
+qgt
+qgt
+qgt
hNy
dUQ
dUQ
@@ -180858,7 +181511,7 @@ oTe
pQQ
dGr
uox
-cGX
+aic
aNr
qoe
jBJ
@@ -181131,11 +181784,11 @@ kcg
kcg
kcg
kcg
-cCZ
-cCZ
-vtU
-cCZ
-cCZ
+hHc
+hHc
+dUQ
+hHc
+hHc
hHc
hHc
hHc
@@ -181302,10 +181955,10 @@ hNy
rRv
rRv
heE
-lKb
-qGF
-izR
-dod
+iRg
+eZn
+edu
+ptA
bjl
qcQ
sch
@@ -181388,11 +182041,11 @@ kcg
kcg
kcg
kcg
-cCZ
-cCZ
-vtU
-cCZ
-cCZ
+hHc
+hHc
+dUQ
+hHc
+hHc
hHc
hHc
hHc
@@ -181825,7 +182478,7 @@ xzO
ewr
nbb
lsx
-sAc
+qMX
jZy
qsW
lsx
@@ -182150,14 +182803,14 @@ rRv
jCd
hNy
hNy
-hNy
-hNy
-hNy
-rRv
-hNy
+qgt
+qgt
+qgt
rRv
hNy
-rRv
+qgt
+qgt
+qgt
dUQ
dUQ
dUQ
@@ -183087,7 +183740,7 @@ tYp
mLG
iOc
tYp
-kyo
+sMM
tYp
tYp
oZX
@@ -183858,7 +184511,7 @@ tYp
mLG
reE
tYp
-kyo
+sMM
tYp
tYp
ofg
@@ -184145,7 +184798,7 @@ lWc
qYc
xvk
xvk
-xAJ
+hNy
hNy
eZB
eZB
diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm
index ded3dcd76d24e..8eca8d06b6112 100644
--- a/_maps/map_files/wawastation/wawastation.dmm
+++ b/_maps/map_files/wawastation/wawastation.dmm
@@ -4937,9 +4937,9 @@
/turf/open/floor/iron/dark,
/area/station/security/courtroom)
"bLI" = (
-/obj/machinery/processor/slime,
/obj/effect/turf_decal/bot_red,
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/processor/slime,
/turf/open/floor/iron/white/textured_large,
/area/station/science/xenobiology)
"bLS" = (
@@ -17542,10 +17542,8 @@
/area/space/nearstation)
"gkj" = (
/obj/effect/turf_decal/tile/blue/fourcorners,
-/obj/machinery/camera/autoname/directional/north{
- network = list("ss13","medbay")
- },
/obj/machinery/iv_drip,
+/obj/machinery/light/cold/dim/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"gkt" = (
@@ -22068,6 +22066,7 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/obj/machinery/light_switch/directional/west,
/obj/item/wrench/medical,
+/obj/machinery/light/cold/dim/directional/west,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"hPs" = (
@@ -46863,6 +46862,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/item/stack/sheet/mineral/plasma,
/turf/open/floor/iron/white/textured_large,
/area/station/science/xenobiology)
"qGN" = (
@@ -47528,11 +47528,11 @@
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
"qUi" = (
-/obj/machinery/processor/slime,
/obj/effect/turf_decal/bot_red,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/machinery/processor/slime,
/turf/open/floor/iron/white/textured_large,
/area/station/science/xenobiology)
"qUl" = (
@@ -48757,6 +48757,7 @@
pixel_y = 8
},
/obj/effect/turf_decal/stripes/line,
+/obj/item/stack/sheet/mineral/plasma,
/turf/open/floor/iron/white/textured_large,
/area/station/science/xenobiology)
"rms" = (
@@ -65510,10 +65511,12 @@
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"xcC" = (
-/obj/machinery/light/cold/dim/directional/north,
/obj/item/radio/intercom/directional/east,
/obj/machinery/vending/drugs,
/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/machinery/camera/autoname/directional/north{
+ network = list("ss13","medbay")
+ },
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"xdf" = (
diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm
index 11cf261276d72..a033f04a798a0 100644
--- a/code/__DEFINES/DNA.dm
+++ b/code/__DEFINES/DNA.dm
@@ -90,8 +90,8 @@
#define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator"
#define ORGAN_SLOT_APPENDIX "appendix"
#define ORGAN_SLOT_BRAIN "brain"
-#define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop"
-#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun"
+#define ORGAN_SLOT_BRAIN_CEREBELLUM "brain_antidrop"
+#define ORGAN_SLOT_BRAIN_CNS "brain_antistun"
#define ORGAN_SLOT_BREATHING_TUBE "breathing_tube"
#define ORGAN_SLOT_EARS "ears"
#define ORGAN_SLOT_EYES "eye_sight"
@@ -174,8 +174,8 @@ GLOBAL_LIST_INIT(organ_process_order, list(
ORGAN_SLOT_VOICE,
ORGAN_SLOT_ADAMANTINE_RESONATOR,
ORGAN_SLOT_HEART_AID,
- ORGAN_SLOT_BRAIN_ANTIDROP,
- ORGAN_SLOT_BRAIN_ANTISTUN,
+ ORGAN_SLOT_BRAIN_CEREBELLUM,
+ ORGAN_SLOT_BRAIN_CNS,
ORGAN_SLOT_PARASITE_EGG,
ORGAN_SLOT_MONSTER_CORE,
ORGAN_SLOT_XENO_PLASMAVESSEL,
diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm
index 0c682f7d411a8..2b25d0cfb31e1 100644
--- a/code/__DEFINES/ai/ai_blackboard.dm
+++ b/code/__DEFINES/ai/ai_blackboard.dm
@@ -123,6 +123,18 @@
///list of foods this mob likes
#define BB_BASIC_FOODS "BB_basic_foods"
+///key holding any food we've found
+#define BB_TARGET_FOOD "BB_TARGET_FOOD"
+
+///key holding emotes we play after eating
+#define BB_EAT_EMOTES "BB_eat_emotes"
+
+///key holding the next time we eat
+#define BB_NEXT_FOOD_EAT "BB_next_food_eat"
+
+///key holding our eating cooldown
+#define BB_EAT_FOOD_COOLDOWN "BB_eat_food_cooldown"
+
/// Blackboard key for a held item
#define BB_SIMPLE_CARRY_ITEM "BB_SIMPLE_CARRY_ITEM"
@@ -168,5 +180,4 @@
/// For /datum/ai_behavior/find_potential_targets, what if any field are we using currently
#define BB_FIND_TARGETS_FIELD(type) "bb_find_targets_field_[type]"
-///mothroach next meal key!
-#define BB_MOTHROACH_NEXT_EAT "mothroach_next_eat"
+
diff --git a/code/__DEFINES/basic_mobs.dm b/code/__DEFINES/basic_mobs.dm
index e519fb25240be..12ddaa3a68af9 100644
--- a/code/__DEFINES/basic_mobs.dm
+++ b/code/__DEFINES/basic_mobs.dm
@@ -24,6 +24,9 @@
/// Above this speed we stop gliding because it looks silly
#define END_GLIDE_SPEED 10
+///hunger cooldown for basic mobs
+#define EAT_FOOD_COOLDOWN 45 SECONDS
+
///mook attack status flags
#define MOOK_ATTACK_NEUTRAL 0
#define MOOK_ATTACK_WARMUP 1
@@ -33,6 +36,9 @@
///keeps track of how many gutlunches are born
GLOBAL_VAR_INIT(gutlunch_count, 0)
+///Pet customization settings saved for every client
+GLOBAL_LIST_EMPTY(customized_pets)
+
//raptor defines
#define RAPTOR_RED "Red"
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 7861cd5335343..62eafe6e36ada 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -239,8 +239,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
/// ex_act() with EXPLODE_DEVASTATE severity will gib mobs with less than this much bomb armor
#define EXPLODE_GIB_THRESHOLD 50
-#define EMP_HEAVY 1
#define EMP_LIGHT 2
+#define EMP_HEAVY 1
#define GRENADE_CLUMSY_FUMBLE 1
#define GRENADE_NONCLUMSY_FUMBLE 2
diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm
index 9b614f924549f..f7606b63a01db 100644
--- a/code/__DEFINES/dcs/signals/signals_fish.dm
+++ b/code/__DEFINES/dcs/signals/signals_fish.dm
@@ -24,8 +24,6 @@
#define COMSIG_FISH_EATEN_BY_OTHER_FISH "fish_eaten_by_other_fish"
///From /obj/item/fish/generate_reagents_to_add, which returns a holder when the fish is eaten or composted for example: (list/reagents)
#define COMSIG_GENERATE_REAGENTS_TO_ADD "generate_reagents_to_add"
-///From /obj/item/fish/feed: (fed_reagents, fed_reagent_type)
-#define COMSIG_FISH_FED "fish_on_fed"
///From /obj/item/fish/update_size_and_weight: (new_size, new_weight)
#define COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT "fish_update_size_and_weight"
///From /obj/item/fish/update_fish_force: (weight_rank, bonus_malus)
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
index 4a558c5fa7e03..51240110062ea 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
@@ -150,6 +150,10 @@
///from /mob/say_dead(): (mob/speaker, message)
#define COMSIG_MOB_DEADSAY "mob_deadsay"
#define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0)
+///from /mob/living/check_cooldown(): ()
+#define COMSIG_MOB_EMOTE_COOLDOWN_CHECK "mob_emote_cd"
+ /// make a wild guess
+ #define COMPONENT_EMOTE_COOLDOWN_BYPASS (1<<0)
///from /mob/living/emote(): ()
#define COMSIG_MOB_EMOTE "mob_emote"
///from base of mob/swap_hand(): (obj/item/currently_held_item)
diff --git a/code/__DEFINES/interaction_flags.dm b/code/__DEFINES/interaction_flags.dm
index fd66cee5bb93e..b031292b0242e 100644
--- a/code/__DEFINES/interaction_flags.dm
+++ b/code/__DEFINES/interaction_flags.dm
@@ -48,3 +48,5 @@
#define INTERACT_MACHINE_REQUIRES_SIGHT (1<<6)
/// the user must be able to read to interact
#define INTERACT_MACHINE_REQUIRES_LITERACY (1<<7)
+/// user must be standing up in order to interact
+#define INTERACT_MACHINE_REQUIRES_STANDING (1<<8)
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 17e10754ea7c1..a143c671a4f46 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -253,7 +253,7 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list(
#define ismecha(A) (istype(A, /obj/vehicle/sealed/mecha))
-#define ismopable(A) (A && ((A.plane == FLOOR_PLANE) ? (A.layer <= FLOOR_CLEAN_LAYER) : (A.layer <= GAME_CLEAN_LAYER))) //If something can be cleaned by floor-cleaning devices such as mops or clean bots
+#define ismopable(A) (A && ((PLANE_TO_TRUE(A.plane) == FLOOR_PLANE) ? (A.layer <= FLOOR_CLEAN_LAYER) : (A.layer <= GAME_CLEAN_LAYER))) //If something can be cleaned by floor-cleaning devices such as mops or clean bots
#define isorgan(A) (istype(A, /obj/item/organ))
diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm
index ec93973a9900c..9658f12c1524a 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -37,6 +37,7 @@
#define INTERACTION_SOUND_RANGE_MODIFIER -3
#define EQUIP_SOUND_VOLUME 30
+#define LIQUID_SLOSHING_SOUND_VOLUME 10
#define PICKUP_SOUND_VOLUME 15
#define DROP_SOUND_VOLUME 20
#define YEET_SOUND_VOLUME 90
@@ -260,3 +261,9 @@ GLOBAL_LIST_INIT(announcer_keys, list(
#define SFX_LIQUID_POUR "liquid_pour"
#define SFX_SNORE_FEMALE "snore_female"
#define SFX_SNORE_MALE "snore_male"
+#define SFX_PLASTIC_BOTTLE_LIQUID_SLOSH "plastic_bottle_liquid_slosh"
+#define SFX_DEFAULT_LIQUID_SLOSH "default_liquid_slosh"
+#define SFX_PLATE_ARMOR_RUSTLE "plate_armor_rustle"
+#define SFX_PIG_OINK "pig_oink"
+#define SFX_VISOR_UP "visor_up"
+#define SFX_VISOR_DOWN "visor_down"
diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm
index 2a04228cbab28..df85d95d86bbd 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -116,6 +116,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_RESISTHEAT "resist_heat"
/// Trait for when you can no longer gain body heat
#define TRAIT_HYPOTHERMIC "body_hypothermic"
+/// This non-living object is valid to be used in dna infusers
+#define TRAIT_VALID_DNA_INFUSION "valid_dna_infusion"
///For when you've gotten a power from a dna vault
#define TRAIT_USED_DNA_VAULT "used_dna_vault"
/// For when you want to be able to touch hot things, but still want fire to be an issue.
@@ -838,6 +840,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_MUSICIAN "musician"
#define TRAIT_LIGHT_DRINKER "light_drinker"
#define TRAIT_EMPATH "empath"
+#define TRAIT_EVIL "evil"
#define TRAIT_FRIENDLY "friendly"
#define TRAIT_GRABWEAKNESS "grab_weakness"
#define TRAIT_SNOB "snob"
@@ -996,6 +999,15 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_FISH_SHOULD_TWOHANDED "fish_should_twohanded"
///This fish won't be killed when cooked.
#define TRAIT_FISH_SURVIVE_COOKING "fish_survive_cooking"
+/**
+ * This fish has been fed teslium without the electrogenesis having trait.
+ * Gives the electrogenesis, but at halved output, and it hurts the fish over time.
+ */
+#define TRAIT_FISH_ON_TESLIUM "fish_on_teslium"
+/// This fish has been fed growth serum or something and will grow 5 times faster, up to 50% weight and size gain when fed.
+#define TRAIT_FISH_QUICK_GROWTH "fish_quick_growth"
+/// This fish has been fed mutagen or something. Evolutions will have more than twice the probability
+#define TRAIT_FISH_MUTAGENIC "fish_mutagenic"
/// Trait given to angelic constructs to let them purge cult runes
#define TRAIT_ANGELIC "angelic"
@@ -1072,6 +1084,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define STATION_TRAIT_UNIQUE_AI "station_trait_unique_ai"
#define STATION_TRAIT_UNNATURAL_ATMOSPHERE "station_trait_unnatural_atmosphere"
#define STATION_TRAIT_VENDING_SHORTAGE "station_trait_vending_shortage"
+#define STATION_TRAIT_SPIKED_DRINKS "station_trait_spiked_drinks"
///Deathmatch traits
#define TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS "deathmath_explosive_implants"
@@ -1297,6 +1310,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
///Trait which allows mobs to parry mining mob projectiles
#define TRAIT_MINING_PARRYING "mining_parrying"
+///Trait which silences all chemical reactions in its container
+#define TRAIT_SILENT_REACTIONS "silent_reactions"
+
/**
*
* This trait is used in some interactions very high in the interaction chain to allow
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 3eb89831957b8..92c725bd81bb7 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -302,7 +302,7 @@
* Tips that starts with the @ character won't be html encoded. That's necessary for any tip containing markup tags,
* just make sure they don't also have html characters like <, > and ' which will be garbled.
*/
-/proc/send_tip_of_the_round(target, selected_tip)
+/proc/send_tip_of_the_round(target, selected_tip, source = "Tip of the round")
var/message
if(selected_tip)
message = selected_tip
@@ -320,4 +320,4 @@
message = html_encode(message)
else
message = copytext(message, 2)
- to_chat(target, span_purple(examine_block("Tip of the round: [message]")))
+ to_chat(target, span_purple(examine_block("[source]: [message]")))
diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm
index 6680e655551f5..769f3984cf1a0 100644
--- a/code/__byond_version_compat.dm
+++ b/code/__byond_version_compat.dm
@@ -11,7 +11,9 @@
// Unable to compile this version thanks to mutable appearance changes
#if (DM_VERSION == 515 && DM_BUILD == 1643)
-#error This version of BYOND cannot compile this project. Visit www.byond.com/download/build to download an older version or update (if possible).
+#error This specific version of BYOND (515.1643) cannot compile this project.
+#error If 515.1643 IS NOT the latest version of BYOND, then you should simply update as normal.
+#error But if 515.1643 IS the latest version of BYOND, i.e. you can't update, then you MUST visit www.byond.com/download/build and downgrade to 515.1642.
#endif
// Keep savefile compatibilty at minimum supported level
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 0865867196c92..9cf233867e717 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -163,6 +163,7 @@ DEFINE_BITFIELD(interaction_flags_machine, list(
"INTERACT_MACHINE_REQUIRES_SILICON" = INTERACT_MACHINE_REQUIRES_SILICON,
"INTERACT_MACHINE_REQUIRES_SIGHT" = INTERACT_MACHINE_REQUIRES_SIGHT,
"INTERACT_MACHINE_REQUIRES_LITERACY" = INTERACT_MACHINE_REQUIRES_LITERACY,
+ "INTERACT_MACHINE_REQUIRES_STANDING" = INTERACT_MACHINE_REQUIRES_STANDING,
))
DEFINE_BITFIELD(interaction_flags_item, list(
diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm
index 0f7bd8908885a..4b77618dfe52a 100644
--- a/code/_globalvars/lists/quirks.dm
+++ b/code/_globalvars/lists/quirks.dm
@@ -100,3 +100,19 @@ GLOBAL_LIST_INIT(paraplegic_choice, list(
"Default" = FALSE,
"Amputee" = TRUE,
))
+
+///chipped Quirk
+GLOBAL_LIST_INIT(quirk_chipped_choice, list(
+ "Basketsoft 3000" = /obj/item/skillchip/basketweaving,
+ "WINE" = /obj/item/skillchip/wine_taster,
+ "Hedge 3" = /obj/item/skillchip/bonsai,
+ "Skillchip adapter" = /obj/item/skillchip/useless_adapter,
+ "N16H7M4R3" = /obj/item/skillchip/light_remover,
+ "3NTR41LS" = /obj/item/skillchip/entrails_reader,
+ "GENUINE ID Appraisal Now!" = /obj/item/skillchip/appraiser,
+ "Le S48R4G3" = /obj/item/skillchip/sabrage,
+ "Integrated Intuitive Thinking and Judging" = /obj/item/skillchip/intj,
+ "F0RC3 4DD1CT10N" = /obj/item/skillchip/drunken_brawler,
+ "\"Space Station 13: The Musical\"" = /obj/item/skillchip/musical,
+ "Mast-Angl-Er skillchip" = /obj/item/skillchip/master_angler,
+))
diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm
index 22f5f374fe318..ef5fa69138e1a 100644
--- a/code/_globalvars/traits/_traits.dm
+++ b/code/_globalvars/traits/_traits.dm
@@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_CHASM_STOPPER" = TRAIT_CHASM_STOPPER,
"TRAIT_COMBAT_MODE_SKIP_INTERACTION" = TRAIT_COMBAT_MODE_SKIP_INTERACTION,
"TRAIT_DEL_ON_SPACE_DUMP" = TRAIT_DEL_ON_SPACE_DUMP,
+ "TRAIT_VALID_DNA_INFUSION" = TRAIT_VALID_DNA_INFUSION,
"TRAIT_FISH_CASE_COMPATIBILE" = TRAIT_FISH_CASE_COMPATIBILE,
"TRAIT_FROZEN" = TRAIT_FROZEN,
"TRAIT_HAS_LABEL" = TRAIT_HAS_LABEL,
@@ -77,6 +78,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_WADDLING" = TRAIT_WADDLING,
"TRAIT_WAS_RENAMED" = TRAIT_WAS_RENAMED,
"TRAIT_WEATHER_IMMUNE" = TRAIT_WEATHER_IMMUNE,
+ "TRAIT_SILENT_REACTIONS" = TRAIT_SILENT_REACTIONS,
),
/datum/controller/subsystem/economy = list(
"TRAIT_MARKET_CRASHING" = TRAIT_MARKET_CRASHING,
@@ -111,6 +113,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"STATION_TRAIT_UNIQUE_AI" = STATION_TRAIT_UNIQUE_AI,
"STATION_TRAIT_UNNATURAL_ATMOSPHERE" = STATION_TRAIT_UNNATURAL_ATMOSPHERE,
"STATION_TRAIT_VENDING_SHORTAGE" = STATION_TRAIT_VENDING_SHORTAGE,
+ "STATION_TRAIT_SPIKED_DRINKS" = STATION_TRAIT_SPIKED_DRINKS,
),
/datum/deathmatch_lobby = list(
"TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS" = TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS,
@@ -232,6 +235,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_EMOTEMUTE" = TRAIT_EMOTEMUTE,
"TRAIT_EMPATH" = TRAIT_EMPATH,
"TRAIT_ENTRAILS_READER" = TRAIT_ENTRAILS_READER,
+ "TRAIT_EVIL" = TRAIT_EVIL,
"TRAIT_EXAMINE_DEEPER_FISH" = TRAIT_EXAMINE_DEEPER_FISH,
"TRAIT_EXAMINE_FISH" = TRAIT_EXAMINE_FISH,
"TRAIT_EXAMINE_FISHING_SPOT" = TRAIT_EXAMINE_FISHING_SPOT,
@@ -632,14 +636,17 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_FISH_FLOPPING" = TRAIT_FISH_FLOPPING,
"TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE,
"TRAIT_FISH_INK_ON_COOLDOWN" = TRAIT_FISH_INK_ON_COOLDOWN,
+ "TRAIT_FISH_MUTAGENIC" = TRAIT_FISH_MUTAGENIC,
"TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER,
"TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING,
+ "TRAIT_FISH_ON_TESLIUM" = TRAIT_FISH_ON_TESLIUM,
"TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE,
"TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE,
"TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED,
"TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS,
"TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER,
"TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING,
+ "TRAIT_FISH_QUICK_GROWTH" = TRAIT_FISH_QUICK_GROWTH,
"TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE,
"TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY,
"TRAIT_FISH_WELL_COOKED" = TRAIT_FISH_WELL_COOKED,
diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm
index 7e6e0dbf7e643..b54635db2f39d 100644
--- a/code/_globalvars/traits/admin_tooling.dm
+++ b/code/_globalvars/traits/admin_tooling.dm
@@ -22,6 +22,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_SCARY_FISHERMAN" = TRAIT_SCARY_FISHERMAN,
"TRAIT_SNOWSTORM_IMMUNE" = TRAIT_SNOWSTORM_IMMUNE,
"TRAIT_WEATHER_IMMUNE" = TRAIT_WEATHER_IMMUNE,
+ "TRAIT_SILENT_REACTIONS" = TRAIT_SILENT_REACTIONS,
),
/mob = list(
"TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING,
@@ -344,14 +345,17 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_FISH_FED_LUBE" = TRAIT_FISH_FED_LUBE,
"TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE,
"TRAIT_FISH_INK_ON_COOLDOWN" = TRAIT_FISH_INK_ON_COOLDOWN,
+ "TRAIT_FISH_MUTAGENIC" = TRAIT_FISH_MUTAGENIC,
"TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER,
"TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING,
+ "TRAIT_FISH_ON_TESLIUM" = TRAIT_FISH_ON_TESLIUM,
"TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE,
"TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE,
"TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED,
"TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS,
"TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER,
"TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING,
+ "TRAIT_FISH_QUICK_GROWTH" = TRAIT_FISH_QUICK_GROWTH,
"TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE,
"TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY,
"TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH,
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index 83ac1b8be93ed..91b5c9b8e2af8 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -72,6 +72,8 @@
if(screen.needs_offsetting)
screen.plane = GET_NEW_PLANE(initial(screen.plane), offset)
+INITIALIZE_IMMEDIATE(/atom/movable/screen/fullscreen)
+
/atom/movable/screen/fullscreen
icon = 'icons/hud/screen_full.dmi'
icon_state = "default"
diff --git a/code/controllers/subsystem/map_vote.dm b/code/controllers/subsystem/map_vote.dm
index 7d0be38f92072..44aa82172f3f0 100644
--- a/code/controllers/subsystem/map_vote.dm
+++ b/code/controllers/subsystem/map_vote.dm
@@ -79,15 +79,33 @@ SUBSYSTEM_DEF(map_vote)
send_map_vote_notice("No valid maps.")
return
- var/winner = pick_weight(filter_cache_to_valid_maps())
+ var/winner
+ var/winner_amount = 0
+ for(var/map in valid_maps)
+ if(!winner_amount)
+ winner = map
+ winner_amount = map_vote_cache[map]
+ continue
+ if(map_vote_cache[map] <= winner_amount)
+ continue
+ winner = map
+ winner_amount = map_vote_cache[map]
+
+ ASSERT(winner, "No winner found in map vote.")
set_next_map(config.maplist[winner])
- send_map_vote_notice("Map Selected - [span_bold(next_map_config.map_name)]")
+ var/list/messages = list("Map Selected - [span_bold(next_map_config.map_name)]")
+ messages += "Tallies at the time of selection:"
+ messages += tally_printout
// do not reset tallies if only one map is even possible
if(length(valid_maps) > 1)
map_vote_cache[winner] = CONFIG_GET(number/map_vote_minimum_tallies)
write_cache()
update_tally_printout()
+ else
+ messages += "Only one map was possible, tallies were not reset."
+
+ send_map_vote_notice(arglist(messages))
/// Returns a list of all map options that are invalid for the current population.
/datum/controller/subsystem/map_vote/proc/get_valid_map_vote_choices()
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index 4387d9ff44b59..89eac30f3451c 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -26,6 +26,7 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list(
list(/datum/quirk/photophobia, /datum/quirk/nyctophobia),
list(/datum/quirk/item_quirk/settler, /datum/quirk/freerunning),
list(/datum/quirk/numb, /datum/quirk/selfaware),
+ list(/datum/quirk/empath, /datum/quirk/evil),
//SKYRAT EDIT ADDITION BEGIN
list(/datum/quirk/equipping/nerve_staple, /datum/quirk/nonviolent),
list(/datum/quirk/equipping/nerve_staple, /datum/quirk/item_quirk/nearsighted),
diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm
index 2b07734b4a852..428c975665676 100644
--- a/code/datums/actions/mobs/lava_swoop.dm
+++ b/code/datums/actions/mobs/lava_swoop.dm
@@ -144,11 +144,17 @@
for(var/turf/T in walled)
drakewalls += new /obj/effect/temp_visual/drakewall(T) // no people with lava immunity can just run away from the attack for free
var/list/indestructible_turfs = list()
- for(var/turf/T in RANGE_TURFS(2, center))
- if(isindestructiblefloor(T))
+
+ for(var/turf/turf_target as anything in RANGE_TURFS(2, center))
+ if(isindestructiblefloor(turf_target))
+ continue
+ if(isindestructiblewall(turf_target))
+ indestructible_turfs += turf_target
continue
- if(isindestructiblewall(T))
- indestructible_turfs += T
+ if(ismineralturf(turf_target))
+ var/turf/closed/mineral/mineral_turf = turf_target
+ mineral_turf.gets_drilled(owner)
+
SLEEP_CHECK_DEATH(1 SECONDS, owner) // give them a bit of time to realize what attack is actually happening
var/list/turfs = RANGE_TURFS(2, center)
diff --git a/code/datums/ai/_ai_controller.dm b/code/datums/ai/_ai_controller.dm
index 3eb7f9244a188..d6230ec8d3534 100644
--- a/code/datums/ai/_ai_controller.dm
+++ b/code/datums/ai/_ai_controller.dm
@@ -364,16 +364,6 @@ multiple modular subtrees with behaviors
///Runs any actions that are currently running
/datum/ai_controller/process(seconds_per_tick)
- if(current_movement_target)
- if(!isatom(current_movement_target))
- stack_trace("[pawn]'s current movement target is not an atom, rather a [current_movement_target.type]! Did you accidentally set it to a weakref?")
- CancelActions()
- return
-
- if(get_dist(pawn, current_movement_target) > max_target_distance) //The distance is out of range
- CancelActions()
- return
-
for(var/datum/ai_behavior/current_behavior as anything in current_behaviors)
// Convert the current behaviour action cooldown to realtime seconds from deciseconds.current_behavior
diff --git a/code/datums/ai/basic_mobs/base_basic_controller.dm b/code/datums/ai/basic_mobs/base_basic_controller.dm
index f21d31b05000c..7ab15437f7d35 100644
--- a/code/datums/ai/basic_mobs/base_basic_controller.dm
+++ b/code/datums/ai/basic_mobs/base_basic_controller.dm
@@ -9,6 +9,7 @@
update_speed(basic_mob)
RegisterSignals(basic_mob, list(POST_BASIC_MOB_UPDATE_VARSPEED, COMSIG_MOB_MOVESPEED_UPDATED), PROC_REF(update_speed))
+ RegisterSignal(basic_mob, COMSIG_MOB_ATE, PROC_REF(on_mob_eat))
return ..() //Run parent at end
@@ -44,3 +45,8 @@
/datum/ai_controller/basic_controller/proc/update_speed(mob/living/basic/basic_mob)
SIGNAL_HANDLER
movement_delay = basic_mob.cached_multiplicative_slowdown
+
+/datum/ai_controller/basic_controller/proc/on_mob_eat()
+ SIGNAL_HANDLER
+ var/food_cooldown = blackboard[BB_EAT_FOOD_COOLDOWN] || EAT_FOOD_COOLDOWN
+ set_blackboard_key(BB_NEXT_FOOD_EAT, world.time + food_cooldown)
diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm
new file mode 100644
index 0000000000000..3b0c4245656e5
--- /dev/null
+++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm
@@ -0,0 +1,27 @@
+///behavior for general interactions with any targets
+/datum/ai_behavior/interact_with_target
+ behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_REQUIRE_REACH
+ ///should we be clearing the target after the fact?
+ var/clear_target = TRUE
+
+/datum/ai_behavior/interact_with_target/setup(datum/ai_controller/controller, target_key)
+ . = ..()
+ var/atom/target = controller.blackboard[target_key]
+ if(QDELETED(target))
+ return FALSE
+ set_movement_target(controller, target)
+
+/datum/ai_behavior/interact_with_target/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
+ var/atom/target = controller.blackboard[target_key]
+ if(QDELETED(target) || !pre_interact(controller, target))
+ return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED
+ controller.ai_interact(target)
+ return AI_BEHAVIOR_SUCCEEDED | AI_BEHAVIOR_DELAY
+
+/datum/ai_behavior/interact_with_target/finish_action(datum/ai_controller/controller, succeeded, target_key)
+ . = ..()
+ if(clear_target || !succeeded)
+ controller.clear_blackboard_key(target_key)
+
+/datum/ai_behavior/interact_with_target/proc/pre_interact(datum/ai_controller/controller, target)
+ return TRUE
diff --git a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm
index 9e3cd557b6437..f05c357b1a845 100644
--- a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm
+++ b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm
@@ -4,11 +4,33 @@
var/datum/ai_behavior/finding_behavior = /datum/ai_behavior/find_and_set/in_list
///key of foods list
var/food_list_key = BB_BASIC_FOODS
+ ///key where we store our food
+ var/found_food_key = BB_TARGET_FOOD
+ ///key holding any emotes we play after eating food
+ var/emotes_blackboard_list = BB_EAT_EMOTES
/datum/ai_planning_subtree/find_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
- . = ..()
- if(controller.blackboard_key_exists(BB_BASIC_MOB_CURRENT_TARGET))
- // Busy with something
+ if(controller.blackboard[BB_NEXT_FOOD_EAT] > world.time)
+ return
+ if(!controller.blackboard_key_exists(found_food_key))
+ controller.queue_behavior(finding_behavior, found_food_key, controller.blackboard[food_list_key])
return
+ controller.queue_behavior(/datum/ai_behavior/interact_with_target/eat_food, found_food_key, emotes_blackboard_list)
+ return SUBTREE_RETURN_FINISH_PLANNING
+
+/datum/ai_behavior/interact_with_target/eat_food
+ ///default list of actions we take after eating
+ var/list/food_actions = list(
+ "eats up happily!",
+ "chomps with glee!",
+ )
- controller.queue_behavior(finding_behavior, BB_BASIC_MOB_CURRENT_TARGET, controller.blackboard[food_list_key])
+/datum/ai_behavior/interact_with_target/eat_food/perform(seconds_per_tick, datum/ai_controller/controller, target_key, emotes_blackboard_list)
+ . = ..()
+ if(. & AI_BEHAVIOR_FAILED)
+ return
+ var/list/emotes_to_pick = controller.blackboard[emotes_blackboard_list] || food_actions
+ if(!length(emotes_to_pick))
+ return
+ var/mob/living/living_pawn = controller.pawn
+ living_pawn.manual_emote(pick(emotes_to_pick))
diff --git a/code/datums/components/clothing_dirt.dm b/code/datums/components/clothing_dirt.dm
new file mode 100644
index 0000000000000..40f0ddb07e249
--- /dev/null
+++ b/code/datums/components/clothing_dirt.dm
@@ -0,0 +1,88 @@
+/// This component applies tint to clothing when its exposed to pepperspray, used in /obj/item/clothing/mask/gas.
+
+/datum/component/clothing_dirt
+ /// Amount of dirt stacks on the clothing
+ var/dirtiness = 0
+
+/datum/component/clothing_dirt/Initialize()
+ if(!isclothing(parent))
+ return COMPONENT_INCOMPATIBLE
+
+/datum/component/clothing_dirt/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
+ RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip))
+ RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop))
+ RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean))
+ RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE)
+
+/datum/component/clothing_dirt/UnregisterFromParent()
+ var/obj/item/clothing/clothing = parent
+ clothing.tint -= dirtiness
+ if(iscarbon(clothing.loc))
+ var/mob/living/carbon/wearer = clothing.loc
+ wearer.update_tint()
+ UnregisterSignal(wearer, COMSIG_ATOM_EXPOSE_REAGENTS)
+ else
+ UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS)
+ UnregisterSignal(parent, list(
+ COMSIG_ATOM_EXAMINE,
+ COMSIG_ITEM_EQUIPPED,
+ COMSIG_MOB_UNEQUIPPED_ITEM,
+ COMSIG_COMPONENT_CLEAN_ACT,
+ ))
+ return ..()
+
+/datum/component/clothing_dirt/proc/on_equip(datum/source, mob/user, slot)
+ SIGNAL_HANDLER
+ var/obj/item/clothing/clothing = parent
+ if (!(slot & clothing.slot_flags))
+ return
+ UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS)
+ RegisterSignal(user, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE)
+
+/datum/component/clothing_dirt/proc/on_drop(datum/source, mob/holder)
+ SIGNAL_HANDLER
+ UnregisterSignal(holder, COMSIG_ATOM_EXPOSE_REAGENTS)
+ RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE)
+
+/datum/component/clothing_dirt/proc/on_examine(datum/source, mob/user, list/examine_list)
+ SIGNAL_HANDLER
+ if (dirtiness > 0)
+ examine_list += span_warning("It appears to be covered in some oily substance. Won't see much while wearing it until you wash it off.")
+
+/datum/component/clothing_dirt/proc/on_expose(atom/target, list/reagents, datum/reagents/source, methods)
+ SIGNAL_HANDLER
+
+ var/mob/living/carbon/wearer
+ if(iscarbon(target))
+ wearer = target
+ if(is_protected(wearer))
+ return
+
+ var/datum/reagent/consumable/condensedcapsaicin/pepper = locate() in reagents
+ if(isnull(pepper))
+ return
+
+ var/obj/item/clothing/clothing = parent
+ if (methods & (TOUCH | VAPOR))
+ clothing.tint -= dirtiness
+ dirtiness = min(dirtiness + round(reagents[pepper] / 5), 3)
+ clothing.tint += dirtiness
+ if(!isnull(wearer))
+ wearer.update_tint()
+
+/datum/component/clothing_dirt/proc/is_protected(mob/living/carbon/wearer)
+ return wearer.head && (wearer.head.flags_cover & PEPPERPROOF)
+
+/datum/component/clothing_dirt/proc/on_clean(datum/target, clean_types)
+ SIGNAL_HANDLER
+ var/obj/item/clothing/clothing = parent
+ var/mob/living/carbon/wearer
+ if(iscarbon(clothing.loc))
+ wearer = clothing.loc
+
+ if (clean_types & (CLEAN_WASH|CLEAN_SCRUB))
+ clothing.tint -= dirtiness
+ dirtiness = 0
+ if(!isnull(wearer))
+ wearer.update_tint()
diff --git a/code/datums/components/fish_growth.dm b/code/datums/components/fish_growth.dm
index 3ec1427fd51a8..7c9aed1048c27 100644
--- a/code/datums/components/fish_growth.dm
+++ b/code/datums/components/fish_growth.dm
@@ -44,7 +44,6 @@
return
var/datum/fish_evolution/evolution = GLOB.fish_evolutions[result_type]
evolution.RegisterSignal(parent, COMSIG_FISH_BEFORE_GROWING, TYPE_PROC_REF(/datum/fish_evolution, growth_checks))
- evolution.register_fish(parent)
/datum/component/fish_growth/UnregisterFromParent()
UnregisterSignal(parent, list(COMSIG_FISH_LIFE, COMSIG_FISH_BEFORE_GROWING))
@@ -55,6 +54,8 @@
return
var/deciseconds_elapsed = seconds_per_tick * 10
var/growth = growth_rate * deciseconds_elapsed
+ if(HAS_TRAIT(source, TRAIT_FISH_QUICK_GROWTH))
+ growth *= 2
if(SEND_SIGNAL(source, COMSIG_FISH_BEFORE_GROWING, seconds_per_tick, growth) & COMPONENT_DONT_GROW)
return
maturation += growth
diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm
index 9e2964273fd48..6651d9234143e 100644
--- a/code/datums/components/food/edible.dm
+++ b/code/datums/components/food/edible.dm
@@ -98,6 +98,9 @@ Behavior that's still missing from this component that original food items had t
else if(isturf(parent) || isstructure(parent))
RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(TryToEatIt))
+ if(foodtypes & GORE)
+ ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src))
+
/datum/component/edible/UnregisterFromParent()
UnregisterSignal(parent, list(
COMSIG_ATOM_ATTACK_ANIMAL,
@@ -114,6 +117,9 @@ Behavior that's still missing from this component that original food items had t
qdel(GetComponent(/datum/component/connect_loc_behalf))
+ if(foodtypes & GORE)
+ REMOVE_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src))
+
/datum/component/edible/InheritComponent(
datum/component/edible/old_comp,
i_am_original,
@@ -138,6 +144,9 @@ Behavior that's still missing from this component that original food items had t
tastes = old_comp.tastes
eatverbs = old_comp.eatverbs
+ if(foodtypes & GORE)
+ ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src))
+
// only edit if we're OG
if(!i_am_original)
return
diff --git a/code/datums/components/heart_eater.dm b/code/datums/components/heart_eater.dm
index 507090b9452b0..722c4b1636d79 100644
--- a/code/datums/components/heart_eater.dm
+++ b/code/datums/components/heart_eater.dm
@@ -13,9 +13,9 @@
/datum/mutation/human/adaptation/thermal,
/datum/mutation/human/chameleon,
/datum/mutation/human/cryokinesis,
- /datum/mutation/human/cryokinesis/pyrokinesis,
+ /datum/mutation/human/pyrokinesis,
/datum/mutation/human/dwarfism,
- /datum/mutation/human/geladikinesis/ash,
+ /datum/mutation/human/cindikinesis,
/datum/mutation/human/insulated,
/datum/mutation/human/telekinesis,
/datum/mutation/human/telepathy,
diff --git a/code/datums/components/holderloving.dm b/code/datums/components/holderloving.dm
index 0670fa6086e2c..e41d986600df6 100644
--- a/code/datums/components/holderloving.dm
+++ b/code/datums/components/holderloving.dm
@@ -39,6 +39,7 @@
COMSIG_ATOM_EXITED,
COMSIG_ITEM_STORED,
), PROC_REF(check_my_loc))
+ RegisterSignal(parent, COMSIG_ITEM_PRE_UNEQUIP, PROC_REF(no_unequip))
/datum/component/holderloving/UnregisterFromParent()
UnregisterSignal(holder, list(COMSIG_MOVABLE_MOVED, COMSIG_QDELETING))
@@ -48,6 +49,7 @@
COMSIG_ATOM_ENTERED,
COMSIG_ATOM_EXITED,
COMSIG_ITEM_STORED,
+ COMSIG_ITEM_PRE_UNEQUIP,
))
/datum/component/holderloving/PostTransfer()
@@ -63,6 +65,7 @@
/datum/component/holderloving/proc/holder_deleting(datum/source, force)
SIGNAL_HANDLER
+
if(del_parent_with_holder)
qdel(parent)
else
@@ -70,6 +73,20 @@
/datum/component/holderloving/proc/check_my_loc(datum/source)
SIGNAL_HANDLER
+
var/obj/item/item_parent = parent
if(!check_valid_loc(item_parent.loc))
item_parent.forceMove(holder)
+
+/datum/component/holderloving/proc/no_unequip(obj/item/I, force, atom/newloc, no_move, invdrop, silent)
+ SIGNAL_HANDLER
+
+ // just allow it
+ if(force)
+ return NONE
+ // dropping onto a turf just forcemoves it back to the holder. let it happen, it's intuitive
+ // no_move says it's just going to be moved a second time. so let it happen, it'll just be moved back if it's invalid anyway
+ if(isturf(newloc) || no_move)
+ return NONE
+ // the item is being unequipped to somewhere invalid. stop it
+ return COMPONENT_ITEM_BLOCK_UNEQUIP
diff --git a/code/datums/components/multiple_lives.dm b/code/datums/components/multiple_lives.dm
index 13c3282605b6e..ce2c4a5053f1e 100644
--- a/code/datums/components/multiple_lives.dm
+++ b/code/datums/components/multiple_lives.dm
@@ -46,7 +46,7 @@
/datum/component/multiple_lives/proc/on_examine(mob/living/source, mob/user, list/examine_list)
SIGNAL_HANDLER
if(isobserver(user) || source == user)
- examine_list += "[source.p_Theyve()] [lives_left] extra lives left."
+ examine_list += "[source.p_They()] [source.p_have()] [lives_left] extra lives left."
/datum/component/multiple_lives/InheritComponent(datum/component/multiple_lives/new_comp , lives_left)
src.lives_left += new_comp ? new_comp.lives_left : lives_left
diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm
index cfdaf605878bf..e34e763ae8397 100644
--- a/code/datums/components/riding/riding.dm
+++ b/code/datums/components/riding/riding.dm
@@ -195,7 +195,7 @@
if(diroffsets.len == 3)
buckled_mob.layer = diroffsets[3]
break dir_loop
- var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0))
+ var/static/list/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0))
var/px = default_vehicle_pixel_offsets[AM_dir]
var/py = default_vehicle_pixel_offsets[AM_dir]
if(directional_vehicle_offsets[AM_dir])
diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm
index d5e00ddb39858..1e8313fa53b2b 100644
--- a/code/datums/components/tether.dm
+++ b/code/datums/components/tether.dm
@@ -142,6 +142,8 @@
INVOKE_ASYNC(src, PROC_REF(process_beam_click), source, location, params, user)
/datum/component/tether/proc/process_beam_click(atom/source, atom/location, params, mob/user)
+ if (!location.can_interact(user))
+ return
var/list/modifiers = params2list(params)
if(LAZYACCESS(modifiers, CTRL_CLICK))
location.balloon_alert(user, "cutting the tether...")
diff --git a/code/datums/drift_handler.dm b/code/datums/drift_handler.dm
index 27a4fd4bc9154..7000483f9ab11 100644
--- a/code/datums/drift_handler.dm
+++ b/code/datums/drift_handler.dm
@@ -213,6 +213,10 @@
if (drift_force < INERTIA_FORCE_SPACEMOVE_GRAB || isnull(drifting_loop))
return
+ if (!isnull(source.client) && source.client.intended_direction)
+ if ((source.client.intended_direction & movement_dir) && !(get_dir(source, backup) & movement_dir))
+ return
+
if (drift_force <= INERTIA_FORCE_SPACEMOVE_REDUCTION / source.inertia_force_weight)
glide_to_halt(get_loop_delay(source))
return COMPONENT_PREVENT_SPACEMOVE_HALT
diff --git a/code/datums/elements/pet_bonus.dm b/code/datums/elements/pet_bonus.dm
index a802c363f44f5..d809b9ef4bdad 100644
--- a/code/datums/elements/pet_bonus.dm
+++ b/code/datums/elements/pet_bonus.dm
@@ -10,17 +10,14 @@
///string key of the emote to do when pet.
var/emote_name
- ///optional cute message to send when you pet your pet!
- var/emote_message
///actual moodlet given, defaults to the pet animal one
var/moodlet
-/datum/element/pet_bonus/Attach(datum/target, emote_message, moodlet = /datum/mood_event/pet_animal)
+/datum/element/pet_bonus/Attach(datum/target, emote_name, moodlet = /datum/mood_event/pet_animal)
. = ..()
if(!isliving(target))
return ELEMENT_INCOMPATIBLE
- src.emote_message = emote_message
src.emote_name = emote_name
src.moodlet = moodlet
RegisterSignal(target, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand))
@@ -37,8 +34,6 @@
new /obj/effect/temp_visual/heart(pet.loc)
SEND_SIGNAL(pet, COMSIG_ANIMAL_PET, petter, modifiers)
- if(emote_message && prob(33))
- pet.manual_emote(emote_message)
- if(emote_name)
+ if(emote_name && prob(33))
INVOKE_ASYNC(pet, TYPE_PROC_REF(/mob, emote), emote_name)
petter.add_mood_event("petting_bonus", moodlet, pet)
diff --git a/code/datums/elements/venomous.dm b/code/datums/elements/venomous.dm
index 9f9e4940df13e..93bb455509821 100644
--- a/code/datums/elements/venomous.dm
+++ b/code/datums/elements/venomous.dm
@@ -7,7 +7,7 @@
element_flags = ELEMENT_BESPOKE
argument_hash_start_idx = 2
///Path of the reagent added
- var/poison_type
+ var/reagents
///Details of how we inject our venom
var/injection_flags
///How much of the reagent added. if it's a list, it'll pick a range with the range being list(lower_value, upper_value)
@@ -17,7 +17,7 @@
/datum/element/venomous/Attach(datum/target, poison_type, amount_added, injection_flags = NONE, thrown_effect = FALSE)
. = ..()
- src.poison_type = poison_type
+ src.reagents = poison_type
src.amount_added = amount_added
src.injection_flags = injection_flags
src.thrown_effect = thrown_effect
@@ -41,4 +41,17 @@
final_amount_added = rand(amount_added[1], amount_added[2])
else
final_amount_added = amount_added
- target.reagents?.add_reagent(poison_type, final_amount_added)
+
+ var/datum/reagents/tmp_holder = new(final_amount_added)
+ tmp_holder.my_atom = src
+ tmp_holder.add_reagent(reagents, final_amount_added)
+
+ tmp_holder.trans_to(
+ target = target,
+ amount = tmp_holder.total_volume,
+ multiplier = 1,
+ methods = INJECT,
+ transferred_by = ismob(element_owner) ? element_owner : null,
+ show_message = FALSE,
+ )
+ qdel(tmp_holder)
diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm
index 12606aba6e615..de4b45a7cc910 100644
--- a/code/datums/emotes.dm
+++ b/code/datums/emotes.dm
@@ -256,12 +256,14 @@
* Returns FALSE if the cooldown is not over, TRUE if the cooldown is over.
*/
/datum/emote/proc/check_cooldown(mob/user, intentional)
+ if(SEND_SIGNAL(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK, src.key, intentional) & COMPONENT_EMOTE_COOLDOWN_BYPASS)
+ intentional = FALSE
+
if(!intentional)
return TRUE
- //SKYRAT EDIT CHANGE BEGIN - EMOTES - GLOBAL COOLDOWN
- //if(user.emotes_used && user.emotes_used[src] + cooldown > world.time) - SKYRAT EDIT - ORIGINAL
- if(user.nextsoundemote > world.time)
- var/datum/emote/default_emote = new /datum/emote
+
+ if(user.emotes_used && user.emotes_used[src] + cooldown > world.time)
+ var/datum/emote/default_emote = /datum/emote
if(cooldown > initial(default_emote.cooldown)) // only worry about longer-than-normal emotes
to_chat(user, span_danger("You must wait another [DisplayTimeText(user.nextsoundemote - world.time)] before using that emote."))
return FALSE
diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
index 2137aea08f3b4..62f30855abb1f 100644
--- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
+++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
@@ -229,6 +229,21 @@
icon_file = 'icons/obj/toys/plushes.dmi'
json_config = 'code/datums/greyscale/json_configs/plushie_carp.json'
+/datum/greyscale_config/pet_carrier
+ name = "Pet Carrier"
+ icon_file = 'icons/obj/pet_carrier.dmi'
+ json_config = 'code/datums/greyscale/json_configs/pet_carrier.json'
+
+/datum/greyscale_config/pet_carrier_inhands_left
+ name = "Pet Carrier Left"
+ icon_file = 'icons/mob/inhands/items_lefthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/pet_carrier_inhands.json'
+
+/datum/greyscale_config/pet_carrier_inhands_right
+ name = "Pet Carrier Right"
+ icon_file = 'icons/mob/inhands/items_righthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/pet_carrier_inhands.json'
+
/datum/greyscale_config/plush_lizard
name = "Plushie Lizard"
icon_file = 'icons/obj/toys/plushes.dmi'
diff --git a/code/datums/greyscale/json_configs/bandanaskull_inhands.json b/code/datums/greyscale/json_configs/bandanaskull_inhands.json
index b7067cf3c2e71..40fade079736c 100644
--- a/code/datums/greyscale/json_configs/bandanaskull_inhands.json
+++ b/code/datums/greyscale/json_configs/bandanaskull_inhands.json
@@ -14,3 +14,4 @@
}
]
}
+
diff --git a/code/datums/greyscale/json_configs/pet_carrier.json b/code/datums/greyscale/json_configs/pet_carrier.json
new file mode 100644
index 0000000000000..1674765268ff2
--- /dev/null
+++ b/code/datums/greyscale/json_configs/pet_carrier.json
@@ -0,0 +1,87 @@
+{
+ "pet_carrier_open": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_open",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_closed_unlocked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_unlocked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_closed",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_closed_locked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_locked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_closed",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_occupied_unlocked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_unlocked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_occupied",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_occupied_locked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_locked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_occupied",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/pet_carrier_inhands.json b/code/datums/greyscale/json_configs/pet_carrier_inhands.json
new file mode 100644
index 0000000000000..05978e3c8292b
--- /dev/null
+++ b/code/datums/greyscale/json_configs/pet_carrier_inhands.json
@@ -0,0 +1,15 @@
+{
+ "pet_carrier": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index 695bf43949653..30999a874b77b 100644
--- a/code/datums/mood_events/generic_negative_events.dm
+++ b/code/datums/mood_events/generic_negative_events.dm
@@ -501,3 +501,8 @@
// Felinids apparently hate being hit over the head with cardboard
if(isfelinid(owner))
mood_change = -2
+
+/datum/mood_event/encountered_evil
+ description = "I didn't want to believe it, but there are people out there that are genuinely evil."
+ mood_change = -4
+ timeout = 1 MINUTES
diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm
index dd5441476dcfb..93a8f186da6c2 100644
--- a/code/datums/mood_events/needs_events.dm
+++ b/code/datums/mood_events/needs_events.dm
@@ -76,6 +76,11 @@
mood_change = 4
timeout = 5 MINUTES
+/datum/mood_event/shower_hater
+ description = "I hate being wet!"
+ mood_change = -2
+ timeout = 3 MINUTES
+
/datum/mood_event/fresh_laundry
description = "There's nothing like the feeling of a freshly laundered jumpsuit."
mood_change = 2
diff --git a/code/datums/mutations/_combined.dm b/code/datums/mutations/_combined.dm
index 5b7b5d429015e..399cbec53ed00 100644
--- a/code/datums/mutations/_combined.dm
+++ b/code/datums/mutations/_combined.dm
@@ -27,11 +27,11 @@
/datum/generecipe/cindikinesis
required = "/datum/mutation/human/geladikinesis; /datum/mutation/human/fire_breath"
- result = /datum/mutation/human/geladikinesis/ash
+ result = /datum/mutation/human/cindikinesis
/datum/generecipe/pyrokinesis
required = "/datum/mutation/human/cryokinesis; /datum/mutation/human/fire_breath"
- result = /datum/mutation/human/cryokinesis/pyrokinesis
+ result = /datum/mutation/human/pyrokinesis
/datum/generecipe/thermal_adaptation
required = "/datum/mutation/human/adaptation/cold; /datum/mutation/human/adaptation/heat"
diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm
index 5684b20c454f7..7730ab16d9cc9 100644
--- a/code/datums/mutations/antenna.dm
+++ b/code/datums/mutations/antenna.dm
@@ -96,6 +96,11 @@
to_chat(owner, span_warning("You plunge into your mind... Yep, it's your mind."))
return
+ if(HAS_TRAIT(cast_on, TRAIT_EVIL))
+ to_chat(owner, span_warning("As you reach into [cast_on]'s mind, \
+ you feel the overwhelming emptiness within. A truly evil being. \
+ [HAS_TRAIT(owner, TRAIT_EVIL) ? "It's nice to find someone who is like-minded." : "What is wrong with this person?"]"))
+
to_chat(owner, span_boldnotice("You plunge into [cast_on]'s mind..."))
if(prob(20))
// chance to alert the read-ee
diff --git a/code/datums/mutations/cold.dm b/code/datums/mutations/cold.dm
index fd060bc8ca5e0..7916b4137238e 100644
--- a/code/datums/mutations/cold.dm
+++ b/code/datums/mutations/cold.dm
@@ -37,6 +37,7 @@
button_icon_state = "icebeam"
base_icon_state = "icebeam"
active_overlay_icon_state = "bg_spell_border_active_blue"
+ cast_range = 9
cooldown_time = 16 SECONDS
spell_requirements = NONE
antimagic_flags = NONE
diff --git a/code/datums/mutations/hot.dm b/code/datums/mutations/hot.dm
index 574bc95d1e404..74fa42e1edd03 100644
--- a/code/datums/mutations/hot.dm
+++ b/code/datums/mutations/hot.dm
@@ -1,30 +1,48 @@
-/datum/mutation/human/geladikinesis/ash
+/datum/mutation/human/cindikinesis
name = "Cindikinesis"
desc = "Allows the user to concentrate nearby heat into a pile of ash. Wow. Very interesting."
+ quality = POSITIVE
text_gain_indication = span_notice("Your hand feels warm.")
+ instability = POSITIVE_INSTABILITY_MINOR
+ difficulty = 10
+ synchronizer_coeff = 1
locked = TRUE
- power_path = /datum/action/cooldown/spell/conjure_item/snow/ash
+ power_path = /datum/action/cooldown/spell/conjure_item/ash
-/datum/action/cooldown/spell/conjure_item/snow/ash
+/datum/action/cooldown/spell/conjure_item/ash
name = "Create Ash"
desc = "Concentrates pyrokinetic forces to create ash, useful for basically nothing."
button_icon_state = "ash"
+ cooldown_time = 5 SECONDS
+ spell_requirements = NONE
+
item_type = /obj/effect/decal/cleanable/ash
+ delete_old = FALSE
+ delete_on_failure = FALSE
-/datum/mutation/human/cryokinesis/pyrokinesis
+/datum/mutation/human/pyrokinesis
name = "Pyrokinesis"
desc = "Draws positive energy from the surroundings to heat surrounding temperatures at subject's will."
+ quality = POSITIVE
text_gain_indication = span_notice("Your hand feels hot!")
+ instability = POSITIVE_INSTABILITY_MODERATE
+ difficulty = 12
+ synchronizer_coeff = 1
+ energy_coeff = 1
locked = TRUE
- power_path = /datum/action/cooldown/spell/pointed/projectile/cryo/pyro
+ power_path = /datum/action/cooldown/spell/pointed/projectile/pyro
-/datum/action/cooldown/spell/pointed/projectile/cryo/pyro
+/datum/action/cooldown/spell/pointed/projectile/pyro
name = "Pyrobeam"
desc = "This power fires a heated bolt at a target."
button_icon_state = "firebeam"
base_icon_state = "firebeam"
+ active_overlay_icon_state = "bg_spell_border_active_blue"
+ cast_range = 9
cooldown_time = 30 SECONDS
+ spell_requirements = NONE
+ antimagic_flags = NONE
active_msg = "You focus your pyrokinesis!"
deactive_msg = "You cool down."
diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm
index b9367cfdcdc81..f487ac56c1330 100644
--- a/code/datums/mutations/speech.dm
+++ b/code/datums/mutations/speech.dm
@@ -79,7 +79,7 @@
// Used to replace the original later
var/og_word = editing_word
// Iterating through each replaceable-string in the .json
- var/list/static/super_wacky_words = strings("heckacious.json", "heckacious")
+ var/static/list/super_wacky_words = strings("heckacious.json", "heckacious")
// If the word doesn't get replaced we might do something with it later
var/word_edited
diff --git a/code/datums/quirks/neutral_quirks/evil.dm b/code/datums/quirks/neutral_quirks/evil.dm
new file mode 100644
index 0000000000000..6753a7d034cfd
--- /dev/null
+++ b/code/datums/quirks/neutral_quirks/evil.dm
@@ -0,0 +1,12 @@
+/datum/quirk/evil
+ name = "Fundamentally Evil"
+ desc = "Where you would have a soul is but an ink-black void. While you are committed to maintaining your social standing, \
+ anyone who stares too long into your cold, uncaring eyes will know the truth. You are truly evil. There is nothing \
+ wrong with you. You chose to be evil, committed to it. Your ambitions come first above all."
+ icon = FA_ICON_HAND_MIDDLE_FINGER
+ value = 0
+ mob_trait = TRAIT_EVIL
+ gain_text = span_notice("You shed what little remains of your humanity. You have work to do.")
+ lose_text = span_notice("You suddenly care more about others and their needs.")
+ medical_record_text = "Patient has passed all our social fitness tests with flying colours, but had trouble on the empathy tests."
+ mail_goodies = list(/obj/item/food/grown/citrus/lemon)
diff --git a/code/datums/quirks/positive_quirks/chip_connector.dm b/code/datums/quirks/positive_quirks/chip_connector.dm
new file mode 100644
index 0000000000000..c12809bbfd2ef
--- /dev/null
+++ b/code/datums/quirks/positive_quirks/chip_connector.dm
@@ -0,0 +1,28 @@
+/datum/quirk/chip_connector
+ name = "Chip Connector"
+ desc = "You had a device installed that lets you manually add and remove skillchips! Just try not to get near any electromagnetic pulses."
+ icon = FA_ICON_PLUG
+ value = 4
+ gain_text = span_notice("You feel CONNECTED.")
+ lose_text = span_danger("You don't feel so CONNECTED anymore.")
+ medical_record_text = "Patient has a cybernetic implant on their back of their head that lets them install and remove skillchips at will. Gross."
+ mail_goodies = list()
+ var/obj/item/organ/internal/cyberimp/brain/connector/connector
+
+/datum/quirk/chip_connector/New()
+ . = ..()
+ mail_goodies = assoc_to_keys(GLOB.quirk_chipped_choice) + /datum/quirk/chipped::mail_goodies
+
+/datum/quirk/chip_connector/add_unique(client/client_source)
+ . = ..()
+ var/mob/living/carbon/carbon_holder = quirk_holder
+ if(!iscarbon(quirk_holder))
+ return
+ connector = new()
+ connector.Insert(carbon_holder, special = TRUE)
+
+/datum/quirk/chip_connector/post_add()
+ to_chat(quirk_holder, span_boldannounce(desc)) // efficiency is clever laziness
+
+/datum/quirk/chip_connector/remove()
+ qdel(connector)
diff --git a/code/datums/quirks/positive_quirks/chipped.dm b/code/datums/quirks/positive_quirks/chipped.dm
new file mode 100644
index 0000000000000..30c226c130031
--- /dev/null
+++ b/code/datums/quirks/positive_quirks/chipped.dm
@@ -0,0 +1,57 @@
+/datum/quirk/chipped
+ name = "Chipped"
+ desc = "You got caught up in the skillchip craze a few years back, and had one of the commercially available chips implanted into yourself."
+ icon = FA_ICON_MICROCHIP
+ value = 2
+ gain_text = span_notice("The chip in your head itches a bit.")
+ lose_text = span_danger("You don't feel so chipped anymore..")
+ medical_record_text = "Patient explained how they got caught up in 'the skillchip chase' recently, and now the chip in they head itches every so often. Dumbass."
+ mail_goodies = list(
+ /obj/item/skillchip/matrix_taunt,
+ /obj/item/skillchip/big_pointer,
+ /obj/item/skillchip/acrobatics,
+ /obj/item/storage/pill_bottle/mannitol/braintumor,
+ )
+ /// Variable that holds the chip, used on removal.
+ var/obj/item/skillchip/installed_chip
+ var/datum/callback/itchy_timer
+
+/datum/quirk_constant_data/chipped
+ associated_typepath = /datum/quirk/chipped
+ customization_options = list(/datum/preference/choiced/chipped)
+
+/datum/quirk/chipped/add_to_holder(mob/living/new_holder, quirk_transfer, client/client_source)
+ var/obj/item/skillchip/chip_pref = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)]
+
+ if(!chip_pref)
+ return ..()
+
+ gain_text = span_notice("The [chip_pref] in your head itches a bit.")
+ lose_text = span_notice("Your head stops itching so much.")
+ return ..()
+
+/datum/quirk/chipped/add_unique(client/client_source)
+
+ var/preferred_chip = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)]
+ if(isnull(preferred_chip)) //Client is gone or they chose a random chip
+ preferred_chip = GLOB.quirk_chipped_choice[pick(GLOB.quirk_chipped_choice)]
+
+ var/mob/living/carbon/quirk_holder_carbon = quirk_holder
+ if(iscarbon(quirk_holder))
+ installed_chip = new preferred_chip()
+ quirk_holder_carbon.implant_skillchip(installed_chip, force = TRUE)
+ installed_chip.try_activate_skillchip(silent = FALSE, force = TRUE)
+
+ var/obj/item/organ/internal/brain/itchy_brain = quirk_holder.get_organ_by_type(ORGAN_SLOT_BRAIN)
+ itchy_timer = addtimer(CALLBACK(src, PROC_REF(cause_itchy), itchy_brain), rand(5 SECONDS, 10 MINUTES)) // they get The Itch from a poor quality install every so often
+
+/datum/quirk/chipped/remove()
+ qdel(installed_chip)
+ deltimer(itchy_timer)
+ . = ..()
+
+/datum/quirk/chipped/proc/cause_itchy(obj/item/organ/internal/brain/itchy_brain)
+
+ itchy_brain.apply_organ_damage(rand(1, 5), maximum = itchy_brain.maxHealth * 0.3)
+ to_chat(itchy_brain.owner, span_warning("Your [itchy_brain] itches."))
+ itchy_timer = addtimer(CALLBACK(itchy_brain, PROC_REF(cause_itchy)), rand(5 SECONDS, 10 MINUTES)) // it will never end
diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm
index b7d5b536941bd..36aa88bf99dcd 100644
--- a/code/datums/station_traits/negative_traits.dm
+++ b/code/datums/station_traits/negative_traits.dm
@@ -756,4 +756,13 @@
advisory_string += "The ongoing blizzard has interfered with our surveillance equipment, and we cannot provide an accurate threat summary at this time. We advise you to stay safe and avoid traversing the area around the station."
return advisory_string
+/datum/station_trait/spiked_drinks
+ name = "Spiked Drinks"
+ trait_type = STATION_TRAIT_NEGATIVE
+ weight = 3
+ cost = STATION_TRAIT_COST_LOW
+ show_in_report = TRUE
+ report_message = "Due to a mishap at the Robust Softdrinks Megafactory, some drinks may contain traces of ethanol or psychoactive chemicals."
+ trait_to_give = STATION_TRAIT_SPIKED_DRINKS
+
#undef GLOW_NEBULA
diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm
index 74a8e5424003f..5a94a478bcd14 100644
--- a/code/datums/station_traits/neutral_traits.dm
+++ b/code/datums/station_traits/neutral_traits.dm
@@ -544,3 +544,49 @@
dynamic_category = RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTS
threat_reduction = 15
dynamic_threat_id = "Background Checks"
+
+/* BUBBER EDIT REMOVAL BEGIN - Lobby buttons
+/datum/station_trait/pet_day
+ name = "Bring Your Pet To Work Day"
+ trait_type = STATION_TRAIT_NEUTRAL
+ show_in_report = FALSE
+ weight = 2
+ sign_up_button = TRUE
+
+/datum/station_trait/pet_day/New()
+ . = ..()
+ RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, PROC_REF(on_job_after_spawn))
+
+/datum/station_trait/pet_day/setup_lobby_button(atom/movable/screen/lobby/button/sign_up/lobby_button)
+ lobby_button.desc = "Want to bring your innocent pet to a giant metal deathtrap? Click here to customize it!"
+ RegisterSignal(lobby_button, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_lobby_button_update_overlays))
+ return ..()
+
+/datum/station_trait/pet_day/can_display_lobby_button(client/player)
+ return sign_up_button
+
+/datum/station_trait/pet_day/on_round_start()
+ return
+
+/datum/station_trait/pet_day/on_lobby_button_click(atom/movable/screen/lobby/button/sign_up/lobby_button, updates)
+ var/mob/our_player = lobby_button.get_mob()
+ var/client/player_client = our_player.client
+ if(isnull(player_client))
+ return
+ var/datum/pet_customization/customization = GLOB.customized_pets[REF(player_client)]
+ if(isnull(customization))
+ customization = new(player_client)
+ INVOKE_ASYNC(customization, TYPE_PROC_REF(/datum, ui_interact), our_player)
+
+/datum/station_trait/pet_day/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/spawned, client/player_client)
+ SIGNAL_HANDLER
+
+ var/datum/pet_customization/customization = GLOB.customized_pets[REF(player_client)]
+ if(isnull(customization))
+ return
+ INVOKE_ASYNC(customization, TYPE_PROC_REF(/datum/pet_customization, create_pet), spawned, player_client)
+
+/datum/station_trait/pet_day/proc/on_lobby_button_update_overlays(atom/movable/screen/lobby/button/sign_up/lobby_button, list/overlays)
+ overlays += "select_pet"
+
+*/// BUBBER EDIT REMOVAL END
diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm
index 43b17377c2ec7..013f8b6545ba7 100644
--- a/code/datums/station_traits/positive_traits.dm
+++ b/code/datums/station_traits/positive_traits.dm
@@ -272,7 +272,7 @@
/datum/job/clown = /obj/item/organ/internal/cyberimp/brain/anti_stun, //HONK!
/datum/job/cook = /obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/datum/job/coroner = /obj/item/organ/internal/tongue/bone, //hes got a bone to pick with you
- /datum/job/curator = /obj/item/organ/internal/eyes/robotic/glow,
+ /datum/job/curator = /obj/item/organ/internal/cyberimp/brain/connector,
/datum/job/detective = /obj/item/organ/internal/lungs/cybernetic/tier3,
/datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/surgery,
/datum/job/geneticist = /obj/item/organ/internal/fly, //we don't care about implants, we have cancer.
diff --git a/code/datums/status_effects/debuffs/temperature_over_time.dm b/code/datums/status_effects/debuffs/temperature_over_time.dm
new file mode 100644
index 0000000000000..cb1a73cc2ae50
--- /dev/null
+++ b/code/datums/status_effects/debuffs/temperature_over_time.dm
@@ -0,0 +1,88 @@
+/**
+ * Affects temperature over time.
+ * I don't know how this wasn't a thing already.
+
+ * Incidentally: Thermal insulation is actually really bad for this, since it traps the temperature inside.
+ * If you're going to use this in a situation where it'd make sense for insulation to hinder its effects,
+ * you should to check for it manually.
+ */
+
+/datum/status_effect/temperature_over_time
+ id = "temp_ot"
+ alert_type = null // no alert. you do the sprite
+ remove_on_fullheal = TRUE
+ on_remove_on_mob_delete = TRUE
+ tick_interval = 1 SECONDS
+
+ duration = 60 SECONDS
+
+ /// How much to change temperature per second.
+ var/temperature_value = 10
+ /// How much to remove from above variable per second.
+ var/temperature_decay = 1
+ /// Cap of temperature, won't apply the effect above this.
+ var/capped_temperature_hot = BODYTEMP_HEAT_WARNING_2
+ /// Cap of temperature, won't apply the effect below this.
+ var/capped_temperature_cold = BODYTEMP_COLD_WARNING_2
+ /// Effect removed outright at this temperature or above.
+ var/removal_temperature_hot = BODYTEMP_HEAT_WARNING_3
+ /// Effect removed outright at this temperature or below.
+ var/removal_temperature_cold = BODYTEMP_COLD_WARNING_3
+
+/datum/status_effect/temperature_over_time/on_creation(mob/living/new_owner, duration = 10 SECONDS)
+ src.duration = duration
+ return ..()
+
+/datum/status_effect/temperature_over_time/on_apply()
+ . = ..()
+ if((HAS_TRAIT(owner, TRAIT_RESISTHEAT) && temperature_value > 1))
+ qdel(src) // git out
+ else if((HAS_TRAIT(owner, TRAIT_RESISTCOLD) && temperature_value < 1))
+ qdel(src) // git out
+
+/datum/status_effect/temperature_over_time/on_remove()
+ return ..()
+
+/datum/status_effect/temperature_over_time/get_examine_text()
+
+ if(temperature_value > 0)
+ return "[owner.p_They()] [owner.p_are()] sweating bullets!"
+
+ return "[owner.p_They()] [owner.p_are()] shivering!"
+
+/datum/status_effect/temperature_over_time/tick(seconds_between_ticks)
+ if((TRAIT_RESISTHEAT && temperature_value > 1) || (TRAIT_RESISTCOLD && temperature_value < 1))
+ qdel(src) // git out
+ return
+ temperaturetion(seconds_between_ticks)
+
+/datum/status_effect/temperature_over_time/proc/temperaturetion(seconds_per_tick)
+
+ // I feel like there should be an easier way to do this but I am a fool
+ if(capped_temperature_hot && owner.bodytemperature > capped_temperature_hot)
+ return
+ if(capped_temperature_cold && owner.bodytemperature < capped_temperature_cold)
+ return
+
+ owner.adjust_bodytemperature(temperature_value * seconds_per_tick) // note that this has no softcap reduction, unlike fire
+ temperature_value += temperature_decay
+ if(temperature_value == 0)
+ qdel(src)
+
+ if(removal_temperature_hot && owner.bodytemperature > removal_temperature_hot)
+ qdel(src)
+ return
+ if(removal_temperature_cold && owner.bodytemperature < removal_temperature_cold)
+ qdel(src)
+ return
+
+/datum/status_effect/temperature_over_time/chip_overheat
+ id = "temp_ot_chip"
+ temperature_value = 15
+ temperature_decay = -0.5
+ duration = 15 SECONDS
+ capped_temperature_hot = BODYTEMP_HEAT_WARNING_3
+ removal_temperature_cold = BODYTEMP_COLD_WARNING_1 // internal cooling...
+
+ removal_temperature_hot = null
+ capped_temperature_cold = null
diff --git a/code/datums/storage/subtypes/drone.dm b/code/datums/storage/subtypes/drone.dm
new file mode 100644
index 0000000000000..2df8f4c627966
--- /dev/null
+++ b/code/datums/storage/subtypes/drone.dm
@@ -0,0 +1,26 @@
+/datum/storage/drone
+ max_total_storage = 40
+ max_specific_storage = WEIGHT_CLASS_NORMAL
+ max_slots = 10
+ do_rustle = FALSE
+
+/datum/storage/drone/New(atom/parent, max_slots, max_specific_storage, max_total_storage)
+ . = ..()
+
+ var/static/list/drone_builtins = list(
+ /obj/item/crowbar/drone,
+ /obj/item/screwdriver/drone,
+ /obj/item/wrench/drone,
+ /obj/item/weldingtool/drone,
+ /obj/item/wirecutters/drone,
+ /obj/item/multitool/drone,
+ /obj/item/pipe_dispenser/drone,
+ /obj/item/t_scanner/drone,
+ /obj/item/analyzer/drone,
+ /obj/item/soap/drone,
+ )
+
+ set_holdable(drone_builtins)
+
+/datum/storage/drone/dump_content_at(atom/dest_object, dump_loc, mob/user)
+ return //no dumping of contents allowed
diff --git a/code/game/atom/atom_materials.dm b/code/game/atom/atom_materials.dm
index 31ac1992a9b64..cb88c83f3eb8c 100644
--- a/code/game/atom/atom_materials.dm
+++ b/code/game/atom/atom_materials.dm
@@ -64,14 +64,16 @@
return material_effects
/**
- * A proc that can be used to selectively control the statistics and affects from a material without affecting the others
+ * A proc that can be used to selectively control the stat changes and effects from a material without affecting the others.
+ *
* For example, we can have items made of two different materials, with the primary contributing a good 1.2 multiplier
* and the second a meager 0.3.
- * The GET_MATERIAL_MODIFIER macro will handles some modifiers where the minimum should be 1 if above 1 and the maximum
- * 1 if below 1, so you shouldn't worry about returning values between 0 and 1. Be ware about returning negative values tho.
+ *
+ * The GET_MATERIAL_MODIFIER macro will handles some modifications where the minimum should be 1 if above 1 and the maximum
+ * be 1 if below 1. Just don't return negative values.
*/
/atom/proc/get_material_multiplier(datum/material/custom_material, list/materials, index)
- return 1
+ return 1/length(materials)
///Called by apply_material_effects(). It ACTUALLY handles applying effects common to all atoms (depending on material flags)
/atom/proc/finalize_material_effects(list/materials)
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 800997d24a81e..eaa9e39387cc3 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -325,6 +325,10 @@ Security HUDs! Basic mode shows only the job.
set_hud_image_active(IMPLOYAL_HUD)
/mob/living/carbon/human/proc/sec_hud_set_security_status()
+ if(!hud_list)
+ // We haven't finished initializing yet, huds will be updated once we are
+ return
+
var/image/holder = hud_list[WANTED_HUD]
var/icon/sec_icon = icon(icon, icon_state, dir)
holder.pixel_y = sec_icon.Height() - ICON_SIZE_Y
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index 34b8612c2d4be..282e7f6a34ae2 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -648,6 +648,11 @@
if(interaction_flags_machine & INTERACT_MACHINE_REQUIRES_SILICON) //if the user was a silicon, we'd have returned out earlier, so the user must not be a silicon
return FALSE
+ if(interaction_flags_machine & INTERACT_MACHINE_REQUIRES_STANDING)
+ var/mob/living/living_user = user
+ if(!(living_user.mobility_flags & MOBILITY_MOVE))
+ return FALSE
+
return TRUE // If we passed all of those checks, woohoo! We can interact with this machine.
/obj/machinery/proc/check_nap_violations()
diff --git a/code/game/machinery/computer/operating_computer.dm b/code/game/machinery/computer/operating_computer.dm
index 0354806d85ebd..83a2a08d986c3 100644
--- a/code/game/machinery/computer/operating_computer.dm
+++ b/code/game/machinery/computer/operating_computer.dm
@@ -7,6 +7,7 @@
icon_screen = "crew"
icon_keyboard = "med_key"
circuit = /obj/item/circuitboard/computer/operating
+ interaction_flags_machine = parent_type::interaction_flags_machine | INTERACT_MACHINE_REQUIRES_STANDING
var/obj/structure/table/optable/table
var/list/advanced_surgeries = list()
@@ -77,7 +78,7 @@
break
/obj/machinery/computer/operating/ui_state(mob/user)
- return GLOB.not_incapacitated_state
+ return GLOB.standing_state
/obj/machinery/computer/operating/ui_interact(mob/user, datum/tgui/ui)
. = ..()
diff --git a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm
index c8cfa12f9abfe..a91a34b46f2da 100644
--- a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm
+++ b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm
@@ -46,3 +46,9 @@
item_path = /obj/item/stack/spacecash/c1000
desc = "A stack of space cash worth 1000 credits."
cost_per_order = 2000
+
+/datum/orderable_item/consumables/rescue_hook
+ name = "Rescue Fishing Rod"
+ item_path = /obj/item/fishing_rod/rescue
+ desc = "For when your fellow miner has inevitably fallen into a chasm, and it's up to you to save them."
+ cost_per_order = 600
diff --git a/code/game/machinery/dna_infuser/dna_infuser.dm b/code/game/machinery/dna_infuser/dna_infuser.dm
index 961092c635b33..ccc24d44f6e7e 100644
--- a/code/game/machinery/dna_infuser/dna_infuser.dm
+++ b/code/game/machinery/dna_infuser/dna_infuser.dm
@@ -210,7 +210,6 @@
/// Verify that the given infusion source/mob is a dead creature.
/obj/machinery/dna_infuser/proc/is_valid_infusion(atom/movable/target, mob/user)
- var/datum/component/edible/food_comp = IS_EDIBLE(target)
if(infusing_from)
balloon_alert(user, "empty the machine first!")
return FALSE
@@ -219,11 +218,8 @@
if(living_target.stat != DEAD)
balloon_alert(user, "only dead creatures!")
return FALSE
- else if(food_comp)
- if(!(food_comp.foodtypes & GORE))
- balloon_alert(user, "only creatures!")
- return FALSE
- else
+ else if(!HAS_TRAIT(target, TRAIT_VALID_DNA_INFUSION))
+ balloon_alert(user, "only creatures!")
return FALSE
return TRUE
diff --git a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm
index 670abc2d87bbf..27b9f4c045b90 100644
--- a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm
+++ b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm
@@ -69,6 +69,32 @@
infusion_desc = "fluffy"
tier = DNA_MUTANT_TIER_ZERO
+/*
+/datum/infuser_entry/lizard
+ name = "Lizard"
+ infuse_mob_name = "lacertilia"
+ desc = "Turns out infusing most humanoids with lizard DNA creates features remarkably similar to those of lizardpeople. What a strange coincidence."
+ threshold_desc = DNA_INFUSION_NO_THRESHOLD
+ qualities = list(
+ "long tails",
+ "decorative horns",
+ "aesthetic snouts",
+ "not much honestly",
+ )
+ input_obj_or_mob = list(
+ /mob/living/basic/lizard,
+ )
+ output_organs = list(
+ /obj/item/organ/external/horns,
+ /obj/item/organ/external/frills,
+ /obj/item/organ/external/snout,
+ /obj/item/organ/external/tail/lizard,
+ /obj/item/organ/internal/tongue/lizard,
+ )
+ infusion_desc = "scaly"
+ tier = DNA_MUTANT_TIER_ZERO
+*/
+
/datum/infuser_entry/felinid
name = "Cat"
infuse_mob_name = "feline"
diff --git a/code/game/machinery/nebula_shielding.dm b/code/game/machinery/nebula_shielding.dm
index 10306177ebf5a..6473c1b1bfc46 100644
--- a/code/game/machinery/nebula_shielding.dm
+++ b/code/game/machinery/nebula_shielding.dm
@@ -140,7 +140,7 @@
/obj/item/paper/fluff/radiation_nebula
name = "radioactive nebula shielding"
default_raw_text = {"EXTREME IMPORTANCE!!!!
- Set up these radioactive nebula shielding units before the gravity generators native shielding is overwhelmed!
+ Set up these radioactive nebula shielding units before the gravity generator's native shielding is overwhelmed!
Shielding units passively generate tritium, so make sure to properly ventilate/isolate the area before setting up a shielding unit!
More circuit boards can be ordered through cargo. Consider setting up auxillary shielding units in-case of destruction, power loss or sabotage.
"}
@@ -149,6 +149,6 @@
/obj/item/paper/fluff/radiation_nebula_virologist
name = "radioactive resonance"
default_raw_text = {"EXTREME IMPORTANCE!!!!
- During routine bloodscreening on employees working in the nebula, we found no traces of the sympton called 'Radioactive Resonance'.
- Something inside the nebula is interfering with it, be wary of a more shallow viral genepool.
+ During routine blood screening on employees working within the nebula, we have found no traces of the symptom called 'Radioactive Resonance'.
+ Something inside the nebula is interfering with it; be wary of a more shallow viral genepool.
"}
diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm
index d05d5f039256b..92343d91d219d 100644
--- a/code/game/objects/effects/spawners/gibspawner.dm
+++ b/code/game/objects/effects/spawners/gibspawner.dm
@@ -71,8 +71,6 @@
/obj/effect/gibspawner/generic/animal
gib_mob_type = /mob/living/basic/pet
-
-
/obj/effect/gibspawner/human
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm
index 1467a7854be52..68a49b8a3031b 100644
--- a/code/game/objects/effects/step_triggers.dm
+++ b/code/game/objects/effects/step_triggers.dm
@@ -220,3 +220,9 @@
if(happens_once)
qdel(src)
+
+/obj/effect/step_trigger/sound_effect/lavaland_cult_altar
+ happens_once = 1
+ name = "a grave mistake";
+ sound = 'sound/effects/hallucinations/i_see_you1.ogg'
+ triggerer_only = 1
diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm
index 960363685b1e8..e46bb676a8caf 100644
--- a/code/game/objects/items/cardboard_cutouts.dm
+++ b/code/game/objects/items/cardboard_cutouts.dm
@@ -360,3 +360,34 @@
applied_name = "Private Security Officer"
applied_desc = "A cardboard cutout of a private security officer."
mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasensoldier
+
+/datum/cardboard_cutout/heretic
+ name = "Heretic"
+ applied_name = "Unknown"
+ applied_desc = "A cardboard cutout of a Heretic."
+ outfit = /datum/outfit/heretic_hallucination
+
+/datum/cardboard_cutout/changeling
+ name = "Changeling"
+ applied_name = "Unknown"
+ applied_desc = "A cardboard cutout of a Changeling."
+ outfit = /datum/outfit/changeling
+
+/datum/cardboard_cutout/pirate
+ name = "Pirate"
+ applied_name = "Unknown"
+ applied_desc = "A cardboard cutout of a space pirate."
+ outfit = /datum/outfit/pirate/space/captain/cardboard
+
+/datum/cardboard_cutout/ninja
+ name = "Space Ninja"
+ applied_name = "Unknown"
+ applied_desc = "A cardboard cutout of a space ninja."
+ outfit = /datum/outfit/ninja
+
+/datum/cardboard_cutout/abductor
+ name = "Abductor Agent"
+ applied_name = "Unknown"
+ applied_desc = "A cardboard cutout of an abductor agent."
+ species = /datum/species/abductor
+ outfit = /datum/outfit/abductor/agent/cardboard
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 5518f7fa8366a..1a853bf8c403e 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -26,6 +26,9 @@
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
+ pickup_sound = 'sound/items/handling/id_card/id_card_pickup1.ogg'
+ drop_sound = 'sound/items/handling/id_card/id_card_drop1.ogg'
+ sound_vary = TRUE
/// Cached icon that has been built for this card. Intended to be displayed in chat. Cardboards IDs and actual IDs use it.
var/icon/cached_flat_icon
@@ -1854,6 +1857,8 @@
var/scribbled_trim
///The colors for each of the above variables, for when overlays are updated.
var/details_colors = list(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK)
+ pickup_sound = 'sound/items/handling/materials/cardboard_pick_up.ogg'
+ drop_sound = 'sound/items/handling/materials/cardboard_drop.ogg'
/obj/item/card/cardboard/equipped(mob/user, slot, initial = FALSE)
. = ..()
diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm
index c74e446a6ca35..6669c7806d0d5 100644
--- a/code/game/objects/items/chainsaw.dm
+++ b/code/game/objects/items/chainsaw.dm
@@ -26,6 +26,8 @@
var/on = FALSE
///The looping sound for our chainsaw when running
var/datum/looping_sound/chainsaw/chainsaw_loop
+ ///how long it takes to behead someone with this chainsaw.
+ var/behead_time = 15 SECONDS
/obj/item/chainsaw/apply_fantasy_bonuses(bonus)
. = ..()
@@ -97,8 +99,9 @@
desc = span_warning("VRRRRRRR!!!")
armour_penetration = 100
force_on = 30
+ behead_time = 2 SECONDS
-/obj/item/chainsaw/doomslayer/attack(mob/living/target_mob, mob/living/user, params)
+/obj/item/chainsaw/attack(mob/living/target_mob, mob/living/user, params)
if (target_mob.stat != DEAD)
return ..()
@@ -112,7 +115,7 @@
playsound(user, 'sound/items/weapons/slice.ogg', vol = 80, vary = TRUE)
target_mob.balloon_alert(user, "cutting off head...")
- if (!do_after(user, 2 SECONDS, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head)))
+ if (!do_after(user, behead_time, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head)))
return TRUE
head.dismember(silent = FALSE)
@@ -127,7 +130,7 @@
return TRUE
return FALSE
-/obj/item/chainsaw/doomslayer/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head)
+/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head)
return target_mob.get_bodypart(BODY_ZONE_HEAD) == head
/obj/item/chainsaw/mounted_chainsaw
diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm
index 43df72d8a5ba9..4b8ac653c98c0 100644
--- a/code/game/objects/items/devices/scanners/gas_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm
@@ -18,6 +18,8 @@
custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT * 0.3, /datum/material/glass=SMALL_MATERIAL_AMOUNT * 0.2)
grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5)
interaction_flags_click = NEED_LITERACY|NEED_LIGHT|ALLOW_RESTING
+ pickup_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg'
+ drop_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg'
/// Boolean whether this has a CD
var/cooldown = FALSE
/// The time in deciseconds
diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm
index 5eb5e3bf2bdd6..9c33e2b201896 100644
--- a/code/game/objects/items/extinguisher.dm
+++ b/code/game/objects/items/extinguisher.dm
@@ -6,6 +6,8 @@
worn_icon_state = "fire_extinguisher"
inhand_icon_state = "fire_extinguisher"
hitsound = 'sound/items/weapons/smash.ogg'
+ pickup_sound = 'sound/items/handling/gas_tank/gas_tank_pick_up.ogg'
+ drop_sound = 'sound/items/handling/gas_tank/gas_tank_drop.ogg'
obj_flags = CONDUCTS_ELECTRICITY
throwforce = 10
w_class = WEIGHT_CLASS_NORMAL
@@ -47,6 +49,9 @@
var/cooling_power = 2
/// Icon state when inside a tank holder.
var/tank_holder_icon_state = "holder_extinguisher"
+ ///The sound a fire extinguisher makes when picked up, dropped if there is liquid inside.
+ var/fire_extinguisher_reagent_sloshing_sound = SFX_DEFAULT_LIQUID_SLOSH
+
/obj/item/extinguisher/Initialize(mapload)
. = ..()
@@ -66,6 +71,17 @@
context[SCREENTIP_CONTEXT_ALT_LMB] = "Empty"
return CONTEXTUAL_SCREENTIP_SET
+/obj/item/extinguisher/dropped(mob/user, silent)
+ . = ..()
+ if(fire_extinguisher_reagent_sloshing_sound && reagents.total_volume > 0)
+ playsound(src, fire_extinguisher_reagent_sloshing_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)
+
+/obj/item/extinguisher/equipped(mob/user, slot, initial = FALSE)
+ . = ..()
+ if((slot & ITEM_SLOT_HANDS) && fire_extinguisher_reagent_sloshing_sound && reagents.total_volume > 0)
+ playsound(src, fire_extinguisher_reagent_sloshing_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)
+
+
/obj/item/extinguisher/empty
starting_water = FALSE
diff --git a/code/game/objects/items/kirby_plants/kirbyplants.dm b/code/game/objects/items/kirby_plants/kirbyplants.dm
index f5e550be4a70e..28c1d4be34164 100644
--- a/code/game/objects/items/kirby_plants/kirbyplants.dm
+++ b/code/game/objects/items/kirby_plants/kirbyplants.dm
@@ -19,10 +19,11 @@
var/dead = FALSE
///If it's a special named plant, set this to true to prevent dead-name overriding.
var/custom_plant_name = FALSE
- var/list/static/random_plant_states
+ var/static/list/random_plant_states
/// Maximum icon state number - KEEP THIS UP TO DATE
var/random_state_cap = 43 // SKYRAT EDIT ADDITION
+
/obj/item/kirbyplants/Initialize(mapload)
. = ..()
AddComponent(/datum/component/tactical)
@@ -67,23 +68,25 @@
/// Cycle basic plant visuals
/obj/item/kirbyplants/proc/change_visual()
- if(!random_plant_states)
- generate_states()
+ if(isnull(random_plant_states))
+ random_plant_states = generate_states()
var/current = random_plant_states.Find(icon_state)
var/next = WRAP(current+1,1,length(random_plant_states))
base_icon_state = random_plant_states[next]
update_appearance(UPDATE_ICON)
/obj/item/kirbyplants/proc/generate_states()
- random_plant_states = list()
+ var/list/plant_states = list()
for(var/i in 1 to random_state_cap) //SKYRAT EDIT CHANGE - ORIGINAL: for(var/i in 1 to 24)
var/number
if(i < 10)
number = "0[i]"
else
number = "[i]"
- random_plant_states += "plant-[number]"
- random_plant_states += list("applebush", "monkeyplant") //SKYRAT EDIT CHANGE - ORIGINAL:random_plant_states += "applebush"
+ plant_states += "plant-[number]"
+ plant_states += "applebush"
+ plant_states += "monkeyplant" // BUBBER EDIT ADDITION
+ return plant_states
/obj/item/kirbyplants/random
icon = 'icons/obj/fluff/flora/_flora.dmi'
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 29df25d179cb8..3e97cc5ecb762 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -530,7 +530,7 @@
///Cleric maces are made of two custom materials: one is handle, and the other is the mace itself.
/obj/item/melee/cleric_mace/get_material_multiplier(datum/material/custom_material, list/materials, index)
- if(length(materials) < 1)
+ if(length(materials) <= 1)
return 1.2
if(index == 1)
return 1
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index 8be08a876d70d..336d177f2a2dd 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -11,6 +11,10 @@
inhand_icon_state = "pet_carrier"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
+ greyscale_config = /datum/greyscale_config/pet_carrier
+ greyscale_config_inhand_left = /datum/greyscale_config/pet_carrier_inhands_left
+ greyscale_config_inhand_right = /datum/greyscale_config/pet_carrier_inhands_right
+ greyscale_colors = COLOR_BLUE
force = 5
attack_verb_continuous = list("bashes", "carries")
attack_verb_simple = list("bash", "carry")
@@ -19,7 +23,6 @@
throw_range = 3
custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 7.5, /datum/material/glass = SMALL_MATERIAL_AMOUNT)
interaction_flags_mouse_drop = NEED_DEXTERITY
-
var/open = TRUE
var/locked = FALSE
var/list/occupants = list()
@@ -147,14 +150,9 @@
if(open)
icon_state = initial(icon_state)
return ..()
- icon_state = "[base_icon_state]_[!occupants.len ? "closed" : "occupied"]"
+ icon_state = "[base_icon_state]_[!occupants.len ? "closed" : "occupied"]_[locked ? "locked" : "unlocked"]"
return ..()
-/obj/item/pet_carrier/update_overlays()
- . = ..()
- if(!open)
- . += "[base_icon_state]_[locked ? "" : "un"]locked"
-
/obj/item/pet_carrier/mouse_drop_dragged(atom/over_atom, mob/user, src_location, over_location, params)
if(isopenturf(over_atom) && open && occupants.len)
user.visible_message(span_notice("[user] unloads [src]."), \
@@ -202,5 +200,9 @@
base_icon_state = "biopod"
icon_state = "biopod_open"
inhand_icon_state = "biopod"
+ greyscale_config = null
+ greyscale_config_inhand_left = null
+ greyscale_config_inhand_right = null
+ greyscale_colors = null
#undef pet_carrier_full
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index b9e4094a2bbb5..c385beb3199e1 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -229,6 +229,8 @@
icon_state = "medical"
inhand_icon_state = "medical"
worn_icon_state = "medical"
+ drop_sound = 'sound/items/handling/toolbelt_drop.ogg'
+ pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg'
/obj/item/storage/belt/medical/Initialize(mapload)
. = ..()
@@ -514,6 +516,8 @@
icon_state = "soulstonebelt"
inhand_icon_state = "soulstonebelt"
worn_icon_state = "soulstonebelt"
+ drop_sound = 'sound/items/handling/toolbelt_drop.ogg'
+ pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg'
/obj/item/storage/belt/soulstone/Initialize(mapload)
. = ..()
@@ -649,6 +653,8 @@
icon_state = "grenadebeltnew"
inhand_icon_state = "security"
worn_icon_state = "grenadebeltnew"
+ drop_sound = 'sound/items/handling/toolbelt_drop.ogg'
+ pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg'
/obj/item/storage/belt/grenade/Initialize(mapload)
. = ..()
@@ -712,6 +718,8 @@
icon_state = "janibelt"
inhand_icon_state = "janibelt"
worn_icon_state = "janibelt"
+ drop_sound = 'sound/items/handling/toolbelt_drop.ogg'
+ pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg'
/obj/item/storage/belt/janitor/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 6f47661d93a63..c9270b1f67ef6 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1360,6 +1360,11 @@
toysay = "EI NATH!"
toysound = 'sound/effects/magic/disintegrate.ogg'
+/obj/item/toy/figure/wizard/special
+ name = "\improper Wizard action figure special edition"
+ toysay = "CLANG!";
+ toysound = 'sound/effects/clang.ogg'
+
/obj/item/toy/figure/rd
name = "\improper Research Director action figure"
icon_state = "rd"
diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm
index 7b4f2d2ee2c37..4e43ea2ce10bf 100644
--- a/code/game/objects/structures/crates_lockers/closets/fitness.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm
@@ -50,7 +50,7 @@
new /obj/item/gun/energy/laser/redtag(src)
for(var/i in 1 to 3)
new /obj/item/clothing/suit/redtag(src)
- new /obj/item/clothing/head/helmet/redtaghelm(src)
+ new /obj/item/clothing/head/helmet/taghelm/red(src)
/obj/structure/closet/lasertag/blue
@@ -65,4 +65,4 @@
new /obj/item/gun/energy/laser/bluetag(src)
for(var/i in 1 to 3)
new /obj/item/clothing/suit/bluetag(src)
- new /obj/item/clothing/head/helmet/bluetaghelm(src)
+ new /obj/item/clothing/head/helmet/taghelm/blue(src)
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index acadb7eba9a07..6931c6e2fafcc 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -267,8 +267,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16))
return
var/mob/living/living_target = target
check_heat(living_target)
- living_target.add_mood_event("shower", /datum/mood_event/nice_shower)
living_target.apply_status_effect(/datum/status_effect/shower_regen)
+ /* BUBBER EDIT TODO - Felinids hate water
+ if(!HAS_TRAIT(target, TRAIT_WATER_HATER) || HAS_TRAIT(target, TRAIT_WATER_ADAPTATION))
+ living_target.add_mood_event("shower", /datum/mood_event/nice_shower)
+ else
+ living_target.add_mood_event("shower", /datum/mood_event/shower_hater)
+ */// BUBBER EDIT TODO END
+ living_target.add_mood_event("shower", /datum/mood_event/nice_shower) // BUBBER EDIT TODO
/**
* Toggle whether shower is actually on and outputting water.
diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm
index a30a59e45a2c1..11f4817b94cf7 100644
--- a/code/game/objects/structures/traps.dm
+++ b/code/game/objects/structures/traps.dm
@@ -12,7 +12,7 @@
var/charges = INFINITY
var/antimagic_flags = MAGIC_RESISTANCE
- var/list/static/ignore_typecache
+ var/static/list/ignore_typecache
var/list/mob/immune_minds = list()
var/sparks = TRUE
@@ -30,7 +30,7 @@
)
AddElement(/datum/element/connect_loc, loc_connections)
- if(!ignore_typecache)
+ if(isnull(ignore_typecache))
ignore_typecache = typecacheof(list(
/obj/effect,
/mob/dead,
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 070f2026955c6..7b4e060145914 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -541,22 +541,59 @@
'sound/mobs/humanoids/human/snore/snore_male1.ogg' = 20,
'sound/mobs/humanoids/human/snore/snore_male2.ogg' = 20,
'sound/mobs/humanoids/human/snore/snore_male3.ogg' = 20,
- 'sound/mobs/humanoids/human/snore/snore_male3.ogg' = 20,
+ 'sound/mobs/humanoids/human/snore/snore_male4.ogg' = 20,
'sound/mobs/humanoids/human/snore/snore_male5.ogg' = 20,
'sound/mobs/humanoids/human/snore/snore_mimimi2.ogg' = 1,
))
if(SFX_CAT_MEOW)
soundin = pick_weight(list(
- 'sound/creatures/cat/cat_meow1.ogg' = 33,
- 'sound/creatures/cat/cat_meow2.ogg' = 33,
- 'sound/creatures/cat/cat_meow3.ogg' = 33,
- 'sound/creatures/cat/oranges_meow1.ogg' = 1,
+ 'sound/mobs/non-humanoids/cat/cat_meow1.ogg' = 33,
+ 'sound/mobs/non-humanoids/cat/cat_meow2.ogg' = 33,
+ 'sound/mobs/non-humanoids/cat/cat_meow3.ogg' = 33,
+ 'sound/mobs/non-humanoids/cat/oranges_meow1.ogg' = 1,
))
if(SFX_CAT_PURR)
soundin = pick(
- 'sound/creatures/cat/cat_purr1.ogg',
- 'sound/creatures/cat/cat_purr2.ogg',
- 'sound/creatures/cat/cat_purr3.ogg',
- 'sound/creatures/cat/cat_purr4.ogg',
+ 'sound/mobs/non-humanoids/cat/cat_purr1.ogg',
+ 'sound/mobs/non-humanoids/cat/cat_purr2.ogg',
+ 'sound/mobs/non-humanoids/cat/cat_purr3.ogg',
+ 'sound/mobs/non-humanoids/cat/cat_purr4.ogg',
+ )
+ if(SFX_DEFAULT_LIQUID_SLOSH)
+ soundin = pick(
+ 'sound/items/handling/reagent_containers/default/default_liquid_slosh1.ogg',
+ 'sound/items/handling/reagent_containers/default/default_liquid_slosh2.ogg',
+ 'sound/items/handling/reagent_containers/default/default_liquid_slosh3.ogg',
+ 'sound/items/handling/reagent_containers/default/default_liquid_slosh4.ogg',
+ 'sound/items/handling/reagent_containers/default/default_liquid_slosh5.ogg',
+ )
+ if(SFX_PLASTIC_BOTTLE_LIQUID_SLOSH)
+ soundin = pick(
+ 'sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh1.ogg',
+ 'sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh2.ogg',
+ )
+ if(SFX_PLATE_ARMOR_RUSTLE)
+ soundin = pick_weight(list(
+ 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle1.ogg' = 8, //longest sound is rarer.
+ 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle2.ogg' = 23,
+ 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle3.ogg' = 23,
+ 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle4.ogg' = 23,
+ 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle5.ogg' = 23,
+ ))
+ if(SFX_PIG_OINK)
+ soundin = pick(
+ 'sound/mobs/non-humanoids/pig/pig1.ogg',
+ 'sound/mobs/non-humanoids/pig/pig2.ogg',
+ )
+ if(SFX_VISOR_DOWN)
+ soundin = pick(
+ 'sound/items/handling/helmet/visor_down1.ogg',
+ 'sound/items/handling/helmet/visor_down2.ogg',
+ 'sound/items/handling/helmet/visor_down3.ogg',
+ )
+ if(SFX_VISOR_UP)
+ soundin = pick(
+ 'sound/items/handling/helmet/visor_up1.ogg',
+ 'sound/items/handling/helmet/visor_up2.ogg',
)
return soundin
diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm
index f81ac4c7f536e..2699b4933626d 100644
--- a/code/game/turfs/open/chasm.dm
+++ b/code/game/turfs/open/chasm.dm
@@ -50,8 +50,8 @@
/turf/open/chasm/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
- underlay_appearance.icon = 'icons/turf/floors.dmi'
- underlay_appearance.icon_state = "basalt"
+ underlay_appearance.icon = /turf/open/misc/asteroid/basalt::icon
+ underlay_appearance.icon_state = /turf/open/misc/asteroid/basalt::icon_state
return TRUE
/turf/open/chasm/attackby(obj/item/C, mob/user, params, area/area_restriction)
@@ -100,6 +100,11 @@
light_power = 0.65
light_color = LIGHT_COLOR_PURPLE
+/turf/open/chasm/icemoon/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
+ underlay_appearance.icon = /turf/open/misc/asteroid/snow/icemoon::icon
+ underlay_appearance.icon_state = /turf/open/misc/asteroid/snow/icemoon::icon_state
+ return TRUE
+
// Chasms for the jungle, with planetary atmos and a different icon
/turf/open/chasm/jungle
icon = 'icons/turf/floors/junglechasm.dmi'
@@ -109,8 +114,8 @@
baseturfs = /turf/open/chasm/jungle
/turf/open/chasm/jungle/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
- underlay_appearance.icon = 'icons/turf/floors.dmi'
- underlay_appearance.icon_state = "dirt"
+ underlay_appearance.icon = /turf/open/misc/dirt::icon
+ underlay_appearance.icon_state = /turf/open/misc/dirt::icon_state
return TRUE
// Chasm that doesn't do any z-level nonsense and just kills/stores whoever steps into it.
diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm
index eebb74b72897b..1a9f24ce50ebd 100644
--- a/code/game/turfs/open/lava.dm
+++ b/code/game/turfs/open/lava.dm
@@ -178,11 +178,6 @@
/turf/open/lava/singularity_pull(S, current_size)
return
-/turf/open/lava/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
- underlay_appearance.icon = 'icons/turf/floors.dmi'
- underlay_appearance.icon_state = "basalt"
- return TRUE
-
/turf/open/lava/GetHeatCapacity()
. = 700000
@@ -341,6 +336,12 @@
underfloor_accessibility = 2 //This avoids strangeness when routing pipes / wires along catwalks over lava
immerse_overlay_color = "#F98511"
+/// Smooth lava needs to take after basalt in order to blend better. If you make a /turf/open/lava/smooth subtype for an area NOT surrounded by basalt; you should override this proc.
+/turf/open/lava/smooth/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
+ underlay_appearance.icon = /turf/open/misc/asteroid/basalt::icon
+ underlay_appearance.icon_state = /turf/open/misc/asteroid/basalt::icon_state
+ return TRUE
+
/turf/open/lava/smooth/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
planetary_atmos = TRUE
diff --git a/code/modules/admin/verbs/lawpanel.dm b/code/modules/admin/verbs/lawpanel.dm
index 6de3ff70182b8..32815b73cbd8f 100644
--- a/code/modules/admin/verbs/lawpanel.dm
+++ b/code/modules/admin/verbs/lawpanel.dm
@@ -48,7 +48,8 @@ ADMIN_VERB(law_panel, R_ADMIN, "Law Panel", "View the AI laws.", ADMIN_CATEGORY_
borgo.laws.add_inherent_law(lawtext)
if(LAW_SUPPLIED)
borgo.laws.add_supplied_law(length(borgo.laws.supplied), lawtext) // Just goes to the end of the list
-
+ log_admin("[key_name(user)] has UPLOADED a [lawtype] law to [key_name(borgo)] stating: [lawtext]")
+ message_admins("[key_name(user)] has UPLOADED a [lawtype] law to [key_name(borgo)] stating: [lawtext]")
return TRUE
/datum/law_panel/proc/move_law_helper(mob/living/user, mob/living/silicon/borgo, direction, law)
@@ -104,6 +105,9 @@ ADMIN_VERB(law_panel, R_ADMIN, "Law Panel", "View the AI laws.", ADMIN_CATEGORY_
return FALSE
relevant_laws[lawindex] = newlaw
+ log_admin("[key_name(user)] has EDITED [key_name(borgo)] [lawtype] law. OLD LAW: [oldlaw] \
+ NEW LAW: [newlaw]")
+ message_admins("[key_name(user)] has EDITED a [lawtype] law on [key_name(borgo)]")
return TRUE
/datum/law_panel/proc/edit_law_priority_helper(mob/living/user, mob/living/silicon/borgo, law)
@@ -145,10 +149,12 @@ ADMIN_VERB(law_panel, R_ADMIN, "Law Panel", "View the AI laws.", ADMIN_CATEGORY_
if(swap_or_remove == "Swap")
borgo.laws.supplied.Swap(old_prio, new_prio)
+ log_admin("[key_name(user)] has SWAPPED [key_name(borgo)] law [old_prio] and [new_prio]")
return TRUE
if(swap_or_remove == "Replace")
borgo.laws.remove_supplied_law_by_num(new_prio, law)
borgo.laws.add_supplied_law(new_prio, law)
+ log_admin("[key_name(user)] has REPLACED [key_name(borgo)] law: [law] with priority [new_prio]")
return TRUE
var/new_prio_for_old_law = new_prio + (swap_or_remove == "Move up" ? 1 : -1)
@@ -157,6 +163,7 @@ ADMIN_VERB(law_panel, R_ADMIN, "Law Panel", "View the AI laws.", ADMIN_CATEGORY_
borgo.laws.remove_supplied_law_by_num(new_prio)
borgo.laws.add_supplied_law(new_prio, law)
borgo.laws.add_supplied_law(new_prio_for_old_law, existing_law)
+ log_admin("[key_name(user)] has changed the priority of an existing law on [key_name(borgo)]. LAW: [law] PRIORITY: [new_prio]")
return TRUE
// Sanity
@@ -167,6 +174,8 @@ ADMIN_VERB(law_panel, R_ADMIN, "Law Panel", "View the AI laws.", ADMIN_CATEGORY_
// At this point the slot is free, insert it as normal
borgo.laws.remove_supplied_law_by_num(old_prio)
borgo.laws.add_supplied_law(new_prio, law)
+ log_admin("[key_name(user)] has UPLOADED a supplied law to [key_name(borgo)] stating: [law]") // Normal insertion, I.E upload
+ message_admins("[key_name(user)] has UPLOADED a supplied law to [key_name(borgo)] stating: [law]")
return TRUE
/datum/law_panel/proc/remove_law_helper(mob/living/user, mob/living/silicon/borgo, lawtype, law)
@@ -184,7 +193,8 @@ ADMIN_VERB(law_panel, R_ADMIN, "Law Panel", "View the AI laws.", ADMIN_CATEGORY_
borgo.laws.protected_zeroth = FALSE
else
return FALSE
-
+ log_admin("[key_name(user)] has REMOVED a law from [key_name(borgo)]. LAW: [law]")
+ message_admins("[key_name(user)] has REMOVED a law from [key_name(borgo)]. LAW: [law]")
return TRUE
/datum/law_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
diff --git a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm
index 109f27e82225f..8739a9de74950 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm
@@ -50,6 +50,13 @@
/obj/item/abductor/silencer = 1
)
+/datum/outfit/abductor/agent/cardboard
+ name = "Abductor Agent"
+ head = /obj/item/clothing/head/helmet/abductor
+ suit = /obj/item/clothing/suit/armor/abductor/vest
+ l_hand = /obj/item/melee/baton/abductor
+ belt = /obj/item/storage/belt/military/abductor/full
+
/datum/outfit/abductor/scientist
name = "Abductor Scientist"
diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
index 91107529721bc..9f6d10677d198 100644
--- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
+++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
@@ -594,6 +594,10 @@ Congratulations! You are now trained for invasive xenobiology research!"}
icon_state = "alienhelmet"
inhand_icon_state = null
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/obj/item/clothing/head/helmet/abductor/equipped(mob/living/user, slot)
. = ..()
diff --git a/code/modules/antagonists/heretic/magic/space_crawl.dm b/code/modules/antagonists/heretic/magic/space_crawl.dm
index 6a96403872f11..cce9f46085bc6 100644
--- a/code/modules/antagonists/heretic/magic/space_crawl.dm
+++ b/code/modules/antagonists/heretic/magic/space_crawl.dm
@@ -1,3 +1,5 @@
+#define SPACE_PHASING "space-phasing"
+
/**
* ### Space Crawl
*
@@ -16,6 +18,8 @@
invocation_type = INVOCATION_NONE
spell_requirements = NONE
+ ///List of traits that are added to the heretic while in space phase jaunt
+ var/static/list/jaunting_traits = list(TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTCOLD, TRAIT_NOBREATH)
/datum/action/cooldown/spell/jaunt/space_crawl/Grant(mob/grant_to)
. = ..()
@@ -82,6 +86,7 @@
jaunter.put_in_hands(left_hand)
jaunter.put_in_hands(right_hand)
+ jaunter.add_traits(jaunting_traits, SPACE_PHASING)
RegisterSignal(jaunter, SIGNAL_REMOVETRAIT(TRAIT_ALLOW_HERETIC_CASTING), PROC_REF(on_focus_lost))
playsound(our_turf, 'sound/effects/magic/cosmic_energy.ogg', 50, TRUE, -1)
our_turf.visible_message(span_warning("[jaunter] sinks into [our_turf]!"))
@@ -101,6 +106,7 @@
if(!exit_jaunt(jaunter, our_turf))
return FALSE
+ jaunter.remove_traits(jaunting_traits, SPACE_PHASING)
our_turf.visible_message(span_boldwarning("[jaunter] rises out of [our_turf]!"))
return TRUE
@@ -131,3 +137,5 @@
/obj/item/space_crawl/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
+
+#undef SPACE_PHASING
diff --git a/code/modules/antagonists/ninja/ninja_clothing.dm b/code/modules/antagonists/ninja/ninja_clothing.dm
index 54ed46c9c3ec0..4eaf40f9c79cb 100644
--- a/code/modules/antagonists/ninja/ninja_clothing.dm
+++ b/code/modules/antagonists/ninja/ninja_clothing.dm
@@ -15,7 +15,8 @@
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags_inv = HIDEFACIALHAIR | HIDEFACE | HIDESNOUT
flags_cover = MASKCOVERSMOUTH | PEPPERPROOF
- has_fov = FALSE
+ pepper_tint = FALSE
+
/obj/item/clothing/under/syndicate/ninja
name = "ninja suit"
diff --git a/code/modules/antagonists/pirate/pirate_outfits.dm b/code/modules/antagonists/pirate/pirate_outfits.dm
index 14729908e65be..8976e212c5475 100644
--- a/code/modules/antagonists/pirate/pirate_outfits.dm
+++ b/code/modules/antagonists/pirate/pirate_outfits.dm
@@ -57,6 +57,10 @@
id_trim = /datum/id_trim/pirate/captain
+/datum/outfit/pirate/space/captain/cardboard
+ name = "Space Pirate Captain (EVA)"
+ l_hand = /obj/item/nullrod/claymore/saber/pirate
+
/datum/outfit/pirate/silverscale
name = "Silver Scale Member"
diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm
index 8b96a5ddaf7dd..588353b34fe44 100644
--- a/code/modules/cargo/packs/costumes_toys.dm
+++ b/code/modules/cargo/packs/costumes_toys.dm
@@ -82,8 +82,8 @@
/obj/item/gun/energy/laser/bluetag = 3,
/obj/item/clothing/suit/redtag = 3,
/obj/item/clothing/suit/bluetag = 3,
- /obj/item/clothing/head/helmet/redtaghelm = 3,
- /obj/item/clothing/head/helmet/bluetaghelm = 3,
+ /obj/item/clothing/head/helmet/taghelm/blue = 3,
+ /obj/item/clothing/head/helmet/taghelm/red = 3,
)
crate_name = "laser tag crate"
diff --git a/code/modules/client/preferences/chipped.dm b/code/modules/client/preferences/chipped.dm
new file mode 100644
index 0000000000000..2ce73dbbb0d85
--- /dev/null
+++ b/code/modules/client/preferences/chipped.dm
@@ -0,0 +1,20 @@
+/datum/preference/choiced/chipped
+ category = PREFERENCE_CATEGORY_MANUALLY_RENDERED
+ savefile_key = "chipped"
+ savefile_identifier = PREFERENCE_CHARACTER
+
+/datum/preference/choiced/chipped/create_default_value()
+ return "Random"
+
+/datum/preference/choiced/chipped/init_possible_values()
+ return list("Random") + assoc_to_keys(GLOB.quirk_chipped_choice)
+
+/datum/preference/choiced/chipped/is_accessible(datum/preferences/preferences)
+ . = ..()
+ if (!.)
+ return FALSE
+
+ return /datum/quirk/chipped::name in preferences.all_quirks
+
+/datum/preference/choiced/chipped/apply_to_human(mob/living/carbon/human/target, value)
+ return
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index f296bd18249ea..f3f4472adeb71 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -14,6 +14,10 @@
var/visor_flags_cover = NONE //same as above, but for flags_cover
///What to toggle when toggled with adjust_visor()
var/visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_VISIONFLAGS | VISOR_INVISVIEW
+ ///Sound this item makes when its visor is flipped down
+ var/visor_toggle_down_sound = null
+ ///Sound this item makes when its visor is flipped up
+ var/visor_toggle_up_sound = null
var/clothing_flags = NONE
///List of items that can be equipped in the suit storage slot while we're worn.
@@ -537,6 +541,12 @@ BLIND // can't see anything
to_chat(user, span_notice("You push [src] [up ? "out of the way" : "back into place"]."))
+ //play sounds when toggling the visor up or down (if there is any)
+ if(visor_toggle_up_sound && up)
+ playsound(src, visor_toggle_up_sound, 20, TRUE, -1)
+ if(visor_toggle_down_sound && !up)
+ playsound(src, visor_toggle_down_sound, 20, TRUE, -1)
+
update_item_action_buttons()
if(user.is_holding(src))
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index b9b371d498c10..b8e6bfa7ada2a 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -33,6 +33,12 @@
/obj/item/clothing/head/helmet/sec
var/flipped_visor = FALSE
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
+ visor_toggle_up_sound = SFX_VISOR_UP
+ visor_toggle_down_sound = SFX_VISOR_DOWN
/obj/item/clothing/head/helmet/sec/Initialize(mapload)
. = ..()
@@ -70,8 +76,10 @@
icon_state = base_icon_state
if (flipped_visor)
flags_cover &= ~HEADCOVERSEYES
+ playsound(src, SFX_VISOR_DOWN, 20, TRUE, -1)
else
flags_cover |= HEADCOVERSEYES
+ playsound(src, SFX_VISOR_UP, 20, TRUE, -1)
update_appearance()
return CLICK_ACTION_SUCCESS
@@ -79,6 +87,10 @@
name = "press helmet"
desc = "A blue helmet used to distinguish non-combatant \"PRESS\" members, like if anyone cares."
icon_state = "helmet_press"
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/obj/item/clothing/head/helmet/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file)
. = ..()
@@ -92,6 +104,10 @@
inhand_icon_state = "helmet"
armor_type = /datum/armor/helmet_alt
dog_fashion = null
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/datum/armor/helmet_alt
melee = 15
@@ -118,6 +134,10 @@
clothing_flags = STOPSPRESSUREDAMAGE | STACKABLE_HELMET_EXEMPT
resistance_flags = FIRE_PROOF | ACID_PROOF
dog_fashion = null
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/datum/armor/helmet_marine
melee = 50
@@ -161,6 +181,10 @@
name = "degrading helmet"
desc = "Standard issue security helmet. Due to degradation the helmet's visor obstructs the users ability to see long distances."
tint = 2
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/obj/item/clothing/head/helmet/blueshirt
name = "blue helmet"
@@ -168,6 +192,10 @@
icon_state = "blueshift"
inhand_icon_state = "blueshift_helmet"
custom_premium_price = PAYCHECK_COMMAND
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/obj/item/clothing/head/helmet/toggleable
@@ -200,6 +228,12 @@
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED)
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
+ visor_toggle_up_sound = SFX_VISOR_UP
+ visor_toggle_down_sound = SFX_VISOR_DOWN
/obj/item/clothing/head/helmet/toggleable/riot/Initialize(mapload)
. = ..()
@@ -241,6 +275,12 @@
COOLDOWN_DECLARE(visor_toggle_cooldown)
///Looping sound datum for the siren helmet
var/datum/looping_sound/siren/weewooloop
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
+ visor_toggle_up_sound = SFX_VISOR_UP
+ visor_toggle_down_sound = SFX_VISOR_DOWN
/obj/item/clothing/head/helmet/toggleable/justice/adjust_visor(mob/living/user)
if(!COOLDOWN_FINISHED(src, visor_toggle_cooldown))
@@ -283,6 +323,10 @@
resistance_flags = FIRE_PROOF | ACID_PROOF
dog_fashion = null
clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED)
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/obj/item/clothing/head/helmet/swat/Initialize(mapload)
. = ..()
@@ -388,17 +432,17 @@
flags_cover = HEADCOVERSEYES
dog_fashion = null
-/obj/item/clothing/head/helmet/redtaghelm
- name = "red laser tag helmet"
- desc = "They have chosen their own end."
- icon_state = "redtaghelm"
+/obj/item/clothing/head/helmet/taghelm
flags_cover = HEADCOVERSEYES
- inhand_icon_state = "redtag_helmet"
- armor_type = /datum/armor/helmet_redtaghelm
// Offer about the same protection as a hardhat.
+ armor_type = /datum/armor/helmet_taghelm
dog_fashion = null
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
-/datum/armor/helmet_redtaghelm
+/datum/armor/helmet_taghelm
melee = 15
bullet = 10
laser = 20
@@ -406,23 +450,17 @@
bomb = 20
acid = 50
-/obj/item/clothing/head/helmet/bluetaghelm
+/obj/item/clothing/head/helmet/taghelm/red
+ name = "red laser tag helmet"
+ desc = "They have chosen their own end."
+ icon_state = "redtaghelm"
+ inhand_icon_state = "redtag_helmet"
+
+/obj/item/clothing/head/helmet/taghelm/blue
name = "blue laser tag helmet"
desc = "They'll need more men."
icon_state = "bluetaghelm"
- flags_cover = HEADCOVERSEYES
inhand_icon_state = "bluetag_helmet"
- armor_type = /datum/armor/helmet_bluetaghelm
- // Offer about the same protection as a hardhat.
- dog_fashion = null
-
-/datum/armor/helmet_bluetaghelm
- melee = 15
- bullet = 10
- laser = 20
- energy = 10
- bomb = 20
- acid = 50
/obj/item/clothing/head/helmet/knight
name = "medieval helmet"
@@ -491,6 +529,10 @@
icon_state = "rus_helmet"
inhand_icon_state = "rus_helmet"
armor_type = /datum/armor/helmet_rus_helmet
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/datum/armor/helmet_rus_helmet
melee = 25
@@ -559,6 +601,10 @@
strip_delay = 80
dog_fashion = null
armor_type = /datum/armor/helmet_military
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
/datum/armor/helmet_military
melee = 45
diff --git a/code/modules/clothing/masks/costume.dm b/code/modules/clothing/masks/costume.dm
index ff980442565a4..37a3fc7ccb5e8 100644
--- a/code/modules/clothing/masks/costume.dm
+++ b/code/modules/clothing/masks/costume.dm
@@ -52,7 +52,7 @@
. += "Use in-hand to wear as a mask!"
return
else
- . += "Use in-hand to tie it up to wear as a hat!"
+ . += "Use in-hand to wear as a hat!"
/obj/item/clothing/mask/kitsune/attack_self(mob/user)
adjust_visor(user)
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 1f9711cc7cc01..828bbb01092b1 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -25,12 +25,12 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
var/list/gas_filters
///Type of filter that spawns on roundstart
var/starting_filter_type = /obj/item/gas_filter
- ///Does the mask have an FOV?
- var/has_fov = TRUE
///Cigarette in the mask
var/obj/item/cigarette/cig
///How much does this mask affect fishing difficulty
var/fishing_modifier = 2
+ ///Applies clothing_dirt component to the pepperproof mask if true
+ var/pepper_tint = TRUE
/datum/armor/mask_gas
bio = 100
@@ -39,6 +39,9 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
. = ..()
//init_fov() BUBBER EDIT - Dear god
+ if((flags_cover & PEPPERPROOF) && pepper_tint)
+ AddComponent(/datum/component/clothing_dirt)
+
if(fishing_modifier)
AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier)
@@ -160,11 +163,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
has_filter = FALSE
return filtered_breath
-/// Initializes the FoV component for the gas mask
-/obj/item/clothing/mask/gas/proc/init_fov()
- if (has_fov)
- AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES)
-
/**
* Getter for overall filter durability, takes into consideration all filters filter_status
*/
@@ -267,7 +265,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
icon_state = "plaguedoctor"
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT|HIDEHAIR
inhand_icon_state = "gas_mask"
- has_fov = FALSE
clothing_flags = BLOCK_GAS_SMOKE_EFFECT|MASKINTERNALS
/obj/item/clothing/mask/gas/syndicate
@@ -278,8 +275,8 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
resistance_flags = FIRE_PROOF | ACID_PROOF
strip_delay = 60
w_class = WEIGHT_CLASS_SMALL
- has_fov = FALSE
fishing_modifier = 0
+ pepper_tint = FALSE
/obj/item/clothing/mask/gas/clown_hat
name = "clown wig and mask"
@@ -296,7 +293,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
resistance_flags = FLAMMABLE
actions_types = list(/datum/action/item_action/adjust)
dog_fashion = /datum/dog_fashion/head/clown
- has_fov = FALSE
var/list/clownmask_designs = list()
voice_filter = null // performer masks expect to be talked through
fishing_modifier = 0
@@ -341,7 +337,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi'
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
- has_fov = FALSE
fishing_modifier = 0
/obj/item/clothing/mask/gas/mime
@@ -355,7 +350,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
resistance_flags = FLAMMABLE
actions_types = list(/datum/action/item_action/adjust)
species_exception = list(/datum/species/golem)
- has_fov = FALSE
fishing_modifier = 0
var/list/mimemask_designs = list()
@@ -414,7 +408,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
inhand_icon_state = "owl_mask"
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
- has_fov = FALSE
fishing_modifier = 0
/obj/item/clothing/mask/gas/sexymime
@@ -426,7 +419,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
species_exception = list(/datum/species/golem)
- has_fov = FALSE
fishing_modifier = 0
/obj/item/clothing/mask/gas/cyborg
@@ -434,7 +426,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
desc = "Beep boop."
icon_state = "death"
resistance_flags = FLAMMABLE
- has_fov = FALSE
flags_cover = MASKCOVERSEYES
fishing_modifier = 0
@@ -446,7 +437,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
clothing_flags = MASKINTERNALS
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
- has_fov = FALSE
fishing_modifier = -1
/obj/item/clothing/mask/gas/carp
@@ -454,7 +444,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
desc = "Gnash gnash."
icon_state = "carp_mask"
inhand_icon_state = null
- has_fov = FALSE
flags_cover = MASKCOVERSEYES
fishing_modifier = -3
@@ -465,7 +454,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
inhand_icon_state = null
custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT * 1.25)
resistance_flags = FLAMMABLE
- has_fov = FALSE
flags_cover = MASKCOVERSEYES
max_integrity = 100
actions_types = list(/datum/action/item_action/adjust)
@@ -512,7 +500,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
inhand_icon_state = "gas_atmos"
resistance_flags = FIRE_PROOF | ACID_PROOF
flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT
- has_fov = FALSE
fishing_modifier = -2
/obj/item/clothing/mask/gas/prop
@@ -523,7 +510,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
clothing_flags = NONE
flags_cover = MASKCOVERSMOUTH
resistance_flags = FLAMMABLE
- has_fov = FALSE
fishing_modifier = 0
/obj/item/clothing/mask/gas/atmosprop
@@ -535,7 +521,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
clothing_flags = NONE
flags_cover = MASKCOVERSMOUTH
resistance_flags = FLAMMABLE
- has_fov = FALSE
fishing_modifier = 0
/obj/item/clothing/mask/gas/driscoll
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index aee1ac17b1b3e..182bc3ace7669 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -56,7 +56,6 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
flags_cover = MASKCOVERSMOUTH
visor_flags_cover = MASKCOVERSMOUTH
tint = 0
- has_fov = FALSE
fishing_modifier = 0
unique_death = 'sound/items/sec_hailer/sec_death.ogg'
COOLDOWN_DECLARE(hailer_cooldown)
@@ -88,6 +87,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
fishing_modifier = 2
+ pepper_tint = FALSE
/obj/item/clothing/mask/gas/sechailer/swat/spacepol
name = "spacepol mask"
diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm
index 422cb34fa090d..46bdd0742bb5b 100644
--- a/code/modules/clothing/outfits/standard.dm
+++ b/code/modules/clothing/outfits/standard.dm
@@ -98,7 +98,7 @@
box = /obj/item/storage/box
ears = /obj/item/radio/headset
gloves = /obj/item/clothing/gloves/color/red
- head = /obj/item/clothing/head/helmet/redtaghelm
+ head = /obj/item/clothing/head/helmet/taghelm/red
shoes = /obj/item/clothing/shoes/sneakers/red
/datum/outfit/traitor_cutout
@@ -141,7 +141,7 @@
suit = /obj/item/clothing/suit/bluetag
suit_store = /obj/item/gun/energy/laser/bluetag
gloves = /obj/item/clothing/gloves/color/blue
- head = /obj/item/clothing/head/helmet/bluetaghelm
+ head = /obj/item/clothing/head/helmet/taghelm/blue
shoes = /obj/item/clothing/shoes/sneakers/blue
/datum/outfit/tunnel_clown
diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm
index fea48d13d3776..d063e54e6bb01 100644
--- a/code/modules/clothing/spacesuits/_spacesuits.dm
+++ b/code/modules/clothing/spacesuits/_spacesuits.dm
@@ -25,6 +25,10 @@
resistance_flags = NONE
dog_fashion = null
slowdown = 0.5
+ sound_vary = TRUE
+ equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg'
+ pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg'
+ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg'
///How much this helmet affects fishing difficulty
var/fishing_modifier = 3
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 321a59e89f799..d844e03c8cf7a 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -145,6 +145,10 @@
inhand_icon_state = "armor"
dog_fashion = null
+/obj/item/clothing/suit/armor/vest/cuirass/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
+
/obj/item/clothing/suit/armor/hos
name = "armored greatcoat"
desc = "A greatcoat enhanced with a special alloy for some extra protection and style for those with a commanding presence."
@@ -552,7 +556,7 @@
/obj/item/tank/internals/plasmaman,
)
/obj/item/clothing/suit/armor/riot/knight/init_rustle_component()
- return
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
/obj/item/clothing/suit/armor/riot/knight/yellow
icon_state = "knight_yellow"
diff --git a/code/modules/events/meteors/dark_matteor_event.dm b/code/modules/events/meteors/dark_matteor_event.dm
index 412354b16f13d..a2352a1927e01 100644
--- a/code/modules/events/meteors/dark_matteor_event.dm
+++ b/code/modules/events/meteors/dark_matteor_event.dm
@@ -22,7 +22,7 @@
target = potential_target
break
//if target was never chosen the target is null aka the matteor will act as spacedust (and can technically miss)
- spawn_meteor(list(/obj/effect/meteor/dark_matteor = 1), null, target)
+ spawn_meteor(list(/obj/effect/meteor/dark_matteor = 1), null, target, distance_from_edge = 10)
/datum/round_event/dark_matteor/announce(fake)
priority_announce("Warning. Excessive tampering of meteor satellites has attracted a dark matt-eor. Signature approaching [GLOB.station_name]. Please brace for impact.", "Meteor Alert", 'sound/announcer/alarm/airraid.ogg')
diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm
index 539f7c9a0b9b5..b3fbb91b468d1 100644
--- a/code/modules/fishing/fish/_fish.dm
+++ b/code/modules/fishing/fish/_fish.dm
@@ -173,6 +173,9 @@
ADD_TRAIT(src, TRAIT_UNCOMPOSTABLE, REF(src)) //Composting a food that is not real food wouldn't work anyway.
START_PROCESSING(SSobj, src)
+ //Adding this because not all fish have the gore foodtype that makes them automatically eligible for dna infusion.
+ ADD_TRAIT(src, TRAIT_VALID_DNA_INFUSION, INNATE_TRAIT)
+
//stops new fish from being able to reproduce right away.
breeding_wait = world.time + (breeding_timeout * NEW_FISH_BREEDING_TIMEOUT_MULT)
last_feeding = world.time - (feeding_frequency * NEW_FISH_LAST_FEEDING_MULT)
@@ -181,7 +184,6 @@
apply_traits() //Make sure traits are applied before size and weight.
update_size_and_weight()
- register_evolutions()
register_context()
register_item_context()
@@ -687,11 +689,6 @@
var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait_type]
trait.apply_to_fish(src)
-/obj/item/fish/proc/register_evolutions()
- for(var/evolution_type in evolution_types)
- var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type]
- evolution.register_fish(src)
-
/obj/item/fish/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE)
. = ..()
check_flopping()
@@ -720,17 +717,28 @@
/obj/item/fish/proc/feed(datum/reagents/fed_reagents)
if(status != FISH_ALIVE)
return
- var/fed_reagent_type
+
+ ///If one of the reagent with fish effects is also our food reagent this is set to TRUE
+ var/already_fed = FALSE
+ for(var/datum/reagent/reagent as anything in fed_reagents.reagent_list)
+ if(!fed_reagents.has_reagent(reagent.type, 0.1) || !reagent.used_on_fish(src))
+ continue
+ fed_reagents.remove_reagent(reagent.type, 0.1)
+ if(reagent.type == food)
+ already_fed = TRUE
+
+ if(already_fed)
+ sate_hunger()
+ return
+
if(fed_reagents.remove_reagent(food, 0.1))
- fed_reagent_type = food
sate_hunger()
- else
- var/datum/reagent/wrong_reagent = pick(fed_reagents.reagent_list)
- if(!wrong_reagent)
- return
- fed_reagent_type = wrong_reagent.type
- fed_reagents.remove_reagent(fed_reagent_type, 0.1)
- SEND_SIGNAL(src, COMSIG_FISH_FED, fed_reagents, fed_reagent_type)
+ return
+
+ var/datum/reagent/wrong_reagent = pick(fed_reagents.reagent_list)
+ if(!wrong_reagent)
+ return
+ fed_reagents.remove_reagent(wrong_reagent.type, 0.1)
/**
* Base multiplier of the difference between current size and weight and their maximum value
@@ -761,11 +769,14 @@
hunger_mult = 1 - (hunger - FISH_GROWTH_PEAK) * 4
if(hunger_mult <= 0)
return
+ var/base_mult = FISH_GROWTH_MULT
+ if(HAS_TRAIT(src, TRAIT_FISH_QUICK_GROWTH))
+ base_mult *= 2.5
if(size < maximum_size)
- new_size += CEILING((maximum_size - size) * FISH_GROWTH_MULT / (w_class * FISH_SIZE_WEIGHT_GROWTH_MALUS) * hunger_mult, 1)
+ new_size += CEILING((maximum_size - size) * base_mult / (w_class * FISH_SIZE_WEIGHT_GROWTH_MALUS) * hunger_mult, 1)
new_size = min(new_size, maximum_size)
if(weight < maximum_weight)
- new_weight += CEILING((maximum_weight - weight) * FISH_GROWTH_MULT / (get_weight_rank() * FISH_SIZE_WEIGHT_GROWTH_MALUS) * hunger_mult, 1)
+ new_weight += CEILING((maximum_weight - weight) * base_mult / (get_weight_rank() * FISH_SIZE_WEIGHT_GROWTH_MALUS) * hunger_mult, 1)
new_weight = min(new_weight, maximum_weight)
if(new_size != size || new_weight != weight)
update_size_and_weight(new_size, new_weight)
@@ -1014,6 +1025,9 @@
health_change_per_second -= 0.5 //Starving
else
health_change_per_second += 0.5 //Slowly healing
+ if(HAS_TRAIT(src, TRAIT_FISH_ON_TESLIUM))
+ health_change_per_second -= 0.65 //This becomes - 0.15 if safe and not starving.
+
adjust_health(health + health_change_per_second * seconds_per_tick)
/obj/item/fish/proc/adjust_health(amount)
@@ -1223,6 +1237,8 @@
if(istype(loc, /obj/structure/aquarium/bioelec_gen))
fish_zap_range = 5
fish_zap_power = GET_FISH_ELECTROGENESIS(src)
+ if(HAS_TRAIT(src, TRAIT_FISH_ON_TESLIUM))
+ fish_zap_power *= 0.5
fish_zap_flags |= (ZAP_GENERATES_POWER | ZAP_MOB_STUN)
tesla_zap(source = get_turf(src), zap_range = fish_zap_range, power = fish_zap_power, cutoff = 1 MEGA JOULES, zap_flags = fish_zap_flags)
diff --git a/code/modules/fishing/fish/fish_evolution.dm b/code/modules/fishing/fish/fish_evolution.dm
index 25ce133c98d40..52708add566da 100644
--- a/code/modules/fishing/fish/fish_evolution.dm
+++ b/code/modules/fishing/fish/fish_evolution.dm
@@ -48,6 +48,8 @@ GLOBAL_LIST_EMPTY(fishes_by_fish_evolution)
if(aquarium)
//chances are halved if only one parent has this evolution.
var/real_probability = (mate && (type in mate.evolution_types)) ? probability : probability/2
+ if(HAS_TRAIT(source, TRAIT_FISH_MUTAGENIC) || (mate && HAS_TRAIT(mate, TRAIT_FISH_MUTAGENIC)))
+ real_probability *= 3
if(!prob(real_probability))
return FALSE
if(!ISINRANGE(aquarium.fluid_temp, required_temperature_min, required_temperature_max))
@@ -82,25 +84,12 @@ GLOBAL_LIST_EMPTY(fishes_by_fish_evolution)
. += " [conditions_note]"
return .
-///Proc called to let evolution register signals that are needed for various conditions.
-/datum/fish_evolution/proc/register_fish(obj/item/fish/fish)
- return
-
/datum/fish_evolution/lubefish
probability = 25
new_fish_type = /obj/item/fish/clownfish/lube
new_traits = list(/datum/fish_trait/lubed)
conditions_note = "The fish must be fed lube beforehand."
-/datum/fish_evolution/lubefish/register_fish(obj/item/fish/fish)
- RegisterSignal(fish, COMSIG_FISH_FED, PROC_REF(check_for_lube))
-
-/datum/fish_evolution/lubefish/proc/check_for_lube(obj/item/fish/source, datum/reagents/fed_reagents, wrong_reagent_type)
- SIGNAL_HANDLER
- if((wrong_reagent_type == /datum/reagent/lube) || fed_reagents.remove_reagent(/datum/reagent/lube, 0.1))
- ADD_TRAIT(source, TRAIT_FISH_FED_LUBE, FISH_EVOLUTION)
- addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_FISH_FED_LUBE, FISH_EVOLUTION), source.feeding_frequency)
-
/datum/fish_evolution/lubefish/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium)
if(!HAS_TRAIT(source, TRAIT_FISH_FED_LUBE))
return FALSE
diff --git a/code/modules/fishing/fish/types/freshwater.dm b/code/modules/fishing/fish/types/freshwater.dm
index fe0ff437c7d8c..75d4891b4f0ad 100644
--- a/code/modules/fishing/fish/types/freshwater.dm
+++ b/code/modules/fishing/fish/types/freshwater.dm
@@ -175,7 +175,7 @@
/obj/item/fish/tadpole/Initialize(mapload, apply_qualities = TRUE)
. = ..()
- AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2.5, 3 MINUTES))
+ AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2 MINUTES, 3 MINUTES))
RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks))
RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth))
diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm
index 23aabcc3ece7c..345746bcbd639 100644
--- a/code/modules/fishing/fishing_rod.dm
+++ b/code/modules/fishing/fishing_rod.dm
@@ -503,6 +503,11 @@
line = null
show_in_wiki = FALSE
+///From the mining order console, meant to help miners rescue their fallen brethren
+/obj/item/fishing_rod/rescue
+ hook = /obj/item/fishing_hook/rescue
+ show_in_wiki = FALSE
+
/obj/item/fishing_rod/bone
name = "bone fishing rod"
desc = "A humble rod, made with whatever happened to be on hand."
diff --git a/code/modules/fishing/sources/source_types.dm b/code/modules/fishing/sources/source_types.dm
index 56c1cb8e32529..3c909193a816a 100644
--- a/code/modules/fishing/sources/source_types.dm
+++ b/code/modules/fishing/sources/source_types.dm
@@ -354,9 +354,6 @@
/datum/fish_source/lavaland/reason_we_cant_fish(obj/item/fishing_rod/rod, mob/fisherman, atom/parent)
. = ..()
- var/turf/approx = get_turf(fisherman) //todo pass the parent
- if(!SSmapping.level_trait(approx.z, ZTRAIT_MINING))
- return "There doesn't seem to be anything to catch here."
if(!rod.line || !(rod.line.fishing_line_traits & FISHING_LINE_REINFORCED))
return "You'll need reinforced fishing line to fish in there"
diff --git a/code/modules/jobs/job_types/assistant/gimmick_assistants.dm b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm
index 161ea00a4fbd2..2c8b4efd75fdf 100644
--- a/code/modules/jobs/job_types/assistant/gimmick_assistants.dm
+++ b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm
@@ -54,7 +54,7 @@
/datum/outfit/job/assistant/gimmick/skater
name = "Gimmick Assistant - Skater"
- head = /obj/item/clothing/head/helmet/redtaghelm
+ head = /obj/item/clothing/head/helmet/taghelm/red
suit = /obj/item/clothing/suit/redtag
l_hand = /obj/item/melee/skateboard
@@ -65,7 +65,7 @@
/datum/outfit/job/assistant/gimmick/rollerskater
name = "Gimmick Assistant - Rollerskater"
- head = /obj/item/clothing/head/helmet/bluetaghelm
+ head = /obj/item/clothing/head/helmet/taghelm/blue
suit = /obj/item/clothing/suit/bluetag
shoes = /obj/item/clothing/shoes/wheelys/rollerskates
diff --git a/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm b/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm
index 6af8c844555da..9bd6436994df1 100644
--- a/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm
+++ b/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm
@@ -151,6 +151,10 @@
inhand_icon_state = null
slowdown = 0
+/obj/item/clothing/suit/chaplainsuit/armor/clock/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
+
/obj/item/clothing/head/helmet/chaplain
name = "crusader helmet"
desc = "Deus Vult."
@@ -179,6 +183,10 @@
inhand_icon_state = null
slowdown = 0
+/obj/item/clothing/suit/chaplainsuit/armor/templar/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
+
/obj/item/clothing/head/helmet/chaplain/cage
name = "cage"
desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is."
@@ -199,6 +207,10 @@
icon_state = "knight_ancient"
inhand_icon_state = null
+/obj/item/clothing/suit/chaplainsuit/armor/ancient/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
+
/obj/item/clothing/head/helmet/chaplain/witchunter_hat
name = "witchunter hat"
desc = "This hat saw much use back in the day."
@@ -230,6 +242,11 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor_type = /datum/armor/armor_crusader
+/obj/item/clothing/suit/chaplainsuit/armor/crusader/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
+
+
/datum/armor/armor_crusader
melee = 50
bullet = 50
diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm
index 2fd4f3a93a6da..80936dce2938a 100644
--- a/code/modules/jobs/job_types/paramedic.dm
+++ b/code/modules/jobs/job_types/paramedic.dm
@@ -24,7 +24,7 @@
/datum/job_department/medical,
)
- family_heirlooms = list(/obj/item/storage/medkit/ancient/heirloom)
+ family_heirlooms = list(/obj/item/storage/medkit/ancient/heirloom, /obj/item/fishing_hook/rescue)
mail_goodies = list(
/obj/item/reagent_containers/hypospray/medipen = 20,
diff --git a/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm b/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm
new file mode 100644
index 0000000000000..75705aca97a49
--- /dev/null
+++ b/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm
@@ -0,0 +1,171 @@
+/obj/item/skillchip/acrobatics
+ name = "old F058UR7 skillchip"
+ desc = "A formerly cutting-edge skillchip that granted the user an advanced, Olympian-level degree of kinesthesics for flipping, spinning, and absolutely nothing else. \
+ It was pulled off the markets shortly after release due to users damaging the chip's integrity from excessive acrobatics, causing deadly malfunctions. It really puts the 'flop' in 'Fosbury Flop'!"
+ skill_name = "Spinesthetics"
+ skill_description = "Allows you to flip and spin at an illegal and dangerous rate."
+ skill_icon = FA_ICON_WHEELCHAIR_ALT
+ activate_message = span_notice("You suddenly have an extremely advanced and complex sense of how to spin and flip with grace.")
+ deactivate_message = span_notice("Your divine grasp of Spinesthesics disappears entirely.")
+ custom_premium_price = PAYCHECK_CREW * 4
+ /// set integrity to 1 when mapping for !!FUN!!
+ max_integrity = 100
+ /// list of emotes whose cd is overridden by this skillchip. can be edited in mapping or ingame
+ var/list/affected_emotes = list("spin", "flip")
+ var/datum/effect_system/spark_spread/sparks
+ // you can use this without lowering integrity! let's be honest. nobody's doing that
+ var/allowed_usage = 3
+ var/reload_charge = 10 SECONDS
+ // current particle effect used for smoking brain
+ var/obj/effect/abstract/particle_holder/particle_effect
+
+/obj/item/skillchip/acrobatics/on_activate(mob/living/carbon/user, silent = FALSE)
+ . = ..()
+ RegisterSignal(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK, PROC_REF(whowee))
+
+/obj/item/skillchip/acrobatics/on_deactivate(mob/living/carbon/user, silent)
+ . = ..()
+ UnregisterSignal(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK)
+
+/obj/item/skillchip/acrobatics/Destroy(force)
+ QDEL_NULL(sparks)
+ QDEL_NULL(particle_effect)
+ return ..()
+
+/obj/item/skillchip/acrobatics/proc/whowee(mob/living/carbon/bozo, emote_key, emote_intentional)
+ SIGNAL_HANDLER
+
+ if(!(emote_key in affected_emotes))
+ return
+
+ if(allowed_usage)
+ allowed_usage--
+ addtimer(CALLBACK(src, PROC_REF(charge)), reload_charge)
+ else
+ take_damage(1, sound_effect = FALSE)
+
+ if(!sparks)
+ sparks = new(src)
+
+ // minimum roll is by default capped at 50, with the min value lowering as integrity is reduced.
+ var/mintegrity = clamp(50 - (100 - get_integrity()), 1, 100)
+ switch(rand(mintegrity, get_integrity())) // 1 to 100 but gets worse every time
+ // CRIT FAIL
+ if(1)
+ bozo.visible_message(span_userdanger("[bozo]'s head suddenly explodes outwards!"))
+
+ explosion(bozo, light_impact_range = 2, adminlog = TRUE, explosion_cause = src)
+ // WITNESS THE GORE
+ for(var/mob/living/splashed in view(2, bozo))
+ if(bozo.has_status_effect(/datum/status_effect/grouped/blindness))
+ to_chat(splashed, span_userdanger("You're splashed with something"))
+ else
+ to_chat(splashed, span_userdanger("You are blinded by a shower of blood!"))
+ splashed.Stun(1 SECONDS)
+ splashed.Knockdown(2 SECONDS)
+ splashed.set_eye_blur_if_lower(15 SECONDS)
+ splashed.adjust_confusion(4 SECONDS)
+
+ // GORE
+ var/obj/item/bodypart/bozopart = bozo.get_bodypart(BODY_ZONE_HEAD)
+ if(bozopart)
+ var/datum/wound/cranial_fissure/crit_wound = new()
+ crit_wound.apply_wound(bozopart)
+ /*
+ var/list/droppage_candidates = bozo.get_organs_for_zone(BODY_ZONE_HEAD, include_children = TRUE)
+ if(droppage_candidates)
+ var/obj/thing_to_drop = pick(droppage_candidates)
+ thing_to_drop.forceMove(bozo.drop_location())
+ */ //WHY DOESNTY IT OWRK
+
+ // does not necessarily kill you directly. instead it causes cranial fissure + something to drop from your head. could be eyes, tongue, ears, brain, even implants
+ new /obj/effect/gibspawner/generic(get_turf(bozo), bozo)
+
+ sparks.set_up(15, cardinals_only = FALSE, location = get_turf(src))
+ sparks.start()
+
+ qdel(src)
+ // last chance to stop
+ if(7 to 9)
+ bozo.visible_message(
+ span_danger("[bozo] seems to short circuit!"),
+ span_userdanger("Your brain short circuits!"),
+ )
+ // if they're susceptible to electrocution, confuse them
+ if(bozo.electrocute_act(15, bozo, 1, SHOCK_NOGLOVES|SHOCK_NOSTUN))
+ bozo.adjust_confusion(15 SECONDS)
+ bozo.set_eye_blur_if_lower(10 SECONDS)
+ // but the rest of the effects will happen either way
+ bozo.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20 - get_integrity())
+
+ sparks.set_up(5, cardinals_only = FALSE, location = get_turf(src))
+ sparks.start()
+
+ // brain Smoking. you should probably stop now
+ if(13 to 15)
+ // if already hot, light 'em up
+ var/particle_path = /particles/smoke/steam/mild
+ if(bozo.has_status_effect(/datum/status_effect/temperature_over_time/chip_overheat))
+ bozo.adjust_fire_stacks(11 - get_integrity())
+ bozo.ignite_mob()
+ bozo.visible_message(
+ span_danger("[bozo]'s head lights up!"),
+ span_userdanger("Your head hurts so much, it feels like it's on fire!"),
+ )
+ ASYNC
+ bozo.emote("scream")
+ if(particle_effect?.type == particle_path)
+ return
+ particle_path = /particles/smoke/steam/bad
+ else
+ bozo.visible_message(
+ span_danger("[bozo]'s head starts smoking!"),
+ span_userdanger("Your brain feels like it's on fire!"),
+ )
+
+ // increase smokiness if already smoking
+ if(particle_effect?.type == /particles/smoke/steam/mild)
+ particle_path = /particles/smoke/steam
+ else
+ particle_path = /particles/smoke/steam/mild
+
+ bozo.adjust_confusion(4 SECONDS)
+ bozo.set_eye_blur_if_lower(3 SECONDS)
+
+ particle_effect = new(bozo, particle_path)
+ // roughly head position.
+ // dont know how to make this not hardcoded
+ particle_effect.set_particle_position(-2, 12, 0)
+ bozo.apply_status_effect(/datum/status_effect/temperature_over_time/chip_overheat, 15 SECONDS)
+ QDEL_IN(particle_effect, 15 SECONDS)
+
+ sparks.set_up(10, cardinals_only = FALSE, location = get_turf(src))
+ sparks.start()
+
+ // hey, something isn't right...
+ if(16 to 50)
+ bozo.visible_message(
+ span_warning("[bozo]'s head sparks."),
+ )
+
+ sparks.set_up(rand(1,2), cardinals_only = TRUE, location = get_turf(src))
+ sparks.start()
+
+ return COMPONENT_EMOTE_COOLDOWN_BYPASS
+
+/obj/item/skillchip/acrobatics/proc/charge()
+ allowed_usage++
+
+/obj/item/skillchip/acrobatics/kiss
+ name = "prototype N. 807 - K1SS skillchip"
+ desc = "An idle experiment when developing skillchips led to this catastrophe. Everyone involved swore to keep it a secret until death, but it looks like someone has let loose this mistake into the world."
+ skill_name = "ERROERERROROROEROEORROER"
+ skill_description = "NULL DESCRIPTION NOT FOUND"
+ skill_icon = FA_ICON_KISS_BEAM
+ activate_message = span_userdanger("This was a mistake.")
+ deactivate_message = span_userdanger("The mistake is over.")
+ custom_premium_price = PAYCHECK_CREW * 500
+ max_integrity = 25
+ affected_emotes = list("kiss")
+ allowed_usage = 1
+ reload_charge = 30 SECONDS
diff --git a/code/modules/library/skill_learning/generic_skillchips/misc.dm b/code/modules/library/skill_learning/generic_skillchips/misc.dm
new file mode 100644
index 0000000000000..aea850b8f49f2
--- /dev/null
+++ b/code/modules/library/skill_learning/generic_skillchips/misc.dm
@@ -0,0 +1,157 @@
+//Contains generic skillchips that are fairly short and simple
+
+/obj/item/skillchip/basketweaving
+ name = "Basketsoft 3000 skillchip"
+ desc = "Underwater edition."
+ auto_traits = list(TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE)
+ skill_name = "Underwater Basketweaving"
+ skill_description = "Master intricate art of using twine to create perfect baskets while submerged."
+ skill_icon = "shopping-basket"
+ activate_message = span_notice("You're one with the twine and the sea.")
+ deactivate_message = span_notice("Higher mysteries of underwater basketweaving leave your mind.")
+
+/obj/item/skillchip/wine_taster
+ name = "WINE skillchip"
+ desc = "Wine.Is.Not.Equal version 5."
+ auto_traits = list(TRAIT_WINE_TASTER)
+ skill_name = "Wine Tasting"
+ skill_description = "Recognize wine vintage from taste alone. Never again lack an opinion when presented with an unknown drink."
+ skill_icon = "wine-bottle"
+ activate_message = span_notice("You recall wine taste.")
+ deactivate_message = span_notice("Your memories of wine evaporate.")
+
+/obj/item/skillchip/bonsai
+ name = "Hedge 3 skillchip"
+ auto_traits = list(TRAIT_BONSAI)
+ skill_name = "Hedgetrimming"
+ skill_description = "Trim hedges and potted plants into marvelous new shapes with any old knife. Not applicable to plastic plants."
+ skill_icon = "spa"
+ activate_message = span_notice("Your mind is filled with plant arrangments.")
+ deactivate_message = span_notice("You can't remember what a hedge looks like anymore.")
+
+/obj/item/skillchip/useless_adapter
+ name = "Skillchip adapter"
+ skill_name = "Useless adapter"
+ skill_description = "Allows you to insert another skillchip into this adapter after it has been inserted into your brain..."
+ skill_icon = "plug"
+ activate_message = span_notice("You can now activate another chip through this adapter, but you're not sure why you did this...")
+ deactivate_message = span_notice("You no longer have the useless skillchip adapter.")
+ skillchip_flags = SKILLCHIP_ALLOWS_MULTIPLE
+ // Literally does nothing.
+ complexity = 0
+ slot_use = 0
+
+/obj/item/skillchip/light_remover
+ name = "N16H7M4R3 skillchip"
+ auto_traits = list(TRAIT_LIGHTBULB_REMOVER)
+ skill_name = "Lightbulb Removing"
+ skill_description = "Stop failing taking out lightbulbs today, no gloves needed!"
+ skill_icon = "lightbulb"
+ activate_message = span_notice("Your feel like your pain receptors are less sensitive to hot objects.")
+ deactivate_message = span_notice("You feel like hot objects could stop you again...")
+
+/obj/item/skillchip/disk_verifier
+ name = "K33P-TH4T-D15K skillchip"
+ auto_traits = list(TRAIT_DISK_VERIFIER)
+ skill_name = "Nuclear Disk Verification"
+ skill_description = "Nuclear authentication disks have an extremely long serial number for verification. This skillchip stores that number, which allows the user to automatically spot forgeries."
+ skill_icon = "save"
+ activate_message = span_notice("You feel your mind automatically verifying long serial numbers on disk shaped objects.")
+ deactivate_message = span_notice("The innate recognition of absurdly long disk-related serial numbers fades from your mind.")
+
+/obj/item/skillchip/entrails_reader
+ name = "3NTR41LS skillchip"
+ auto_traits = list(TRAIT_ENTRAILS_READER)
+ skill_name = "Entrails Reader"
+ skill_description = "Be able to learn about a person's life, by looking at their internal organs. Not to be confused with looking into the future."
+ skill_icon = "lungs"
+ activate_message = span_notice("You feel that you know a lot about interpreting organs.")
+ deactivate_message = span_notice("Knowledge of liver damage, heart strain and lung scars fades from your mind.")
+
+/obj/item/skillchip/appraiser
+ name = "GENUINE ID Appraisal Now! skillchip"
+ auto_traits = list(TRAIT_ID_APPRAISER)
+ skill_name = "ID Appraisal"
+ skill_description = "Appraise an ID and see if it's issued from centcom, or just a cruddy station-printed one."
+ skill_icon = "magnifying-glass"
+ activate_message = span_notice("You feel that you can recognize special, minute details on ID cards.")
+ deactivate_message = span_notice("Was there something special about certain IDs?")
+
+/obj/item/skillchip/sabrage
+ name = "Le S48R4G3 skillchip"
+ auto_traits = list(TRAIT_SABRAGE_PRO)
+ skill_name = "Sabrage Proficiency"
+ skill_description = "Grants the user knowledge of the intricate structure of a champagne bottle's structural weakness at the neck, \
+ improving their proficiency at being a show-off at officer parties."
+ skill_icon = "bottle-droplet"
+ activate_message = span_notice("You feel a new understanding of champagne bottles and methods on how to remove their corks.")
+ deactivate_message = span_notice("The knowledge of the subtle physics residing inside champagne bottles fades from your mind.")
+
+/obj/item/skillchip/brainwashing
+ name = "suspicious skillchip"
+ auto_traits = list(TRAIT_BRAINWASHING)
+ skill_name = "Brainwashing"
+ skill_description = "WARNING: The integrity of this chip is compromised. Please discard this skillchip."
+ skill_icon = "soap"
+ activate_message = span_notice("...But all at once it comes to you... something involving putting a brain in a washing machine?")
+ deactivate_message = span_warning("All knowledge of the secret brainwashing technique is GONE.")
+
+/obj/item/skillchip/brainwashing/examine(mob/user)
+ . = ..()
+ . += span_warning("It seems to have been corroded over time, putting this in your head may not be the best idea...")
+
+/obj/item/skillchip/brainwashing/on_activate(mob/living/carbon/user, silent = FALSE)
+ to_chat(user, span_danger("You get a pounding headache as the chip sends corrupt memories into your head!"))
+ user.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20)
+ . = ..()
+
+/obj/item/skillchip/chefs_kiss
+ name = "K1SS skillchip"
+ auto_traits = list(TRAIT_CHEF_KISS)
+ skill_name = "Chef's Kiss"
+ skill_description = "Allows you to kiss food you've created to make them with love."
+ skill_icon = "cookie"
+ activate_message = span_notice("You recall learning from your grandmother how they baked their cookies with love.")
+ deactivate_message = span_notice("You forget all memories imparted upon you by your grandmother. Were they even your real grandma?")
+
+/obj/item/skillchip/intj
+ name = "Integrated Intuitive Thinking and Judging skillchip"
+ auto_traits = list(TRAIT_REMOTE_TASTING)
+ skill_name = "Mental Flavour Calculus"
+ skill_description = "When examining food, you can experience the flavours just as well as if you were eating it."
+ skill_icon = FA_ICON_DRUMSTICK_BITE
+ activate_message = span_notice("You think of your favourite food and realise that you can rotate its flavour in your mind.")
+ deactivate_message = span_notice("You feel your food-based mind palace crumbling...")
+
+/obj/item/skillchip/drunken_brawler
+ name = "F0RC3 4DD1CT10N skillchip"
+ auto_traits = list(TRAIT_DRUNKEN_BRAWLER)
+ skill_name = "Drunken Unarmed Proficiency"
+ skill_description = "When intoxicated, you gain increased unarmed effectiveness."
+ skill_icon = "wine-bottle"
+ activate_message = span_notice("You honestly could do with a drink. Never know when someone might try and jump you around here.")
+ deactivate_message = span_notice("You suddenly feel a lot safer going around the station sober... ")
+
+/obj/item/skillchip/master_angler
+ name = "Mast-Angl-Er skillchip"
+ auto_traits = list(TRAIT_REVEAL_FISH, TRAIT_EXAMINE_FISHING_SPOT, TRAIT_EXAMINE_FISH, TRAIT_EXAMINE_DEEPER_FISH)
+ skill_name = "Fisherman's Discernment"
+ skill_description = "Lists fishes when examining a fishing spot, gives a hint of whatever thing's biting the hook and more."
+ skill_icon = "fish"
+ activate_message = span_notice("You feel the knowledge and passion of several sunbaked, seasoned fishermen burn within you.")
+ deactivate_message = span_notice("You no longer feel like casting a fishing rod by the sunny riverside.")
+
+ actions_types = list(/datum/action/cooldown/fishing_tip)
+
+/datum/action/cooldown/fishing_tip
+ name = "Dispense Fishing Tip"
+ desc = "Recall a pearl of wisdom about fishing."
+ button_icon = 'icons/hud/radial_fishing.dmi'
+ button_icon_state = "river"
+ background_icon_state = "bg_default"
+ overlay_icon_state = "bg_default_border"
+ cooldown_time = 2.5 SECONDS //enough time to skim through tips.
+
+/datum/action/cooldown/fishing_tip/Activate(atom/target_atom)
+ . = ..()
+ send_tip_of_the_round(owner, pick(GLOB.fishing_tips), source = "Ancient fishing wisdom")
diff --git a/code/modules/library/skill_learning/generic_skillchips/musical.dm b/code/modules/library/skill_learning/generic_skillchips/musical.dm
new file mode 100644
index 0000000000000..0eea811ffab77
--- /dev/null
+++ b/code/modules/library/skill_learning/generic_skillchips/musical.dm
@@ -0,0 +1,91 @@
+/obj/item/skillchip/musical
+ name = "\improper Old Copy of \"Space Station 13: The Musical\""
+ desc = "An old copy of \"Space Station 13: The Musical\", \
+ ran on the station's 100th anniversary...Or maybe it was the 200th?"
+ skill_name = "Memory of a Musical"
+ skill_description = "Allows you to hit that high note, like those that came a century before us."
+ skill_icon = FA_ICON_MUSIC
+ activate_message = span_notice("You feel like you could \u2669 sing a soooong! \u266B")
+ deactivate_message = span_notice("The musical fades from your mind, leaving you with a sense of nostalgia.")
+ custom_premium_price = PAYCHECK_CREW * 4
+
+/obj/item/skillchip/musical/Initialize(mapload, is_removable)
+ . = ..()
+ name = replacetext(name, "Old", round(CURRENT_STATION_YEAR - pick(50, 100, 150, 200, 250), 5))
+
+/obj/item/skillchip/musical/on_activate(mob/living/carbon/user, silent = FALSE)
+ . = ..()
+ RegisterSignal(user, COMSIG_MOB_SAY, PROC_REF(make_music))
+
+/obj/item/skillchip/musical/on_deactivate(mob/living/carbon/user, silent)
+ . = ..()
+ UnregisterSignal(user, COMSIG_MOB_SAY)
+
+/obj/item/skillchip/musical/proc/make_music(mob/living/carbon/source, list/say_args)
+ SIGNAL_HANDLER
+
+ var/raw_message = say_args[SPEECH_MESSAGE]
+ var/list/words = splittext(raw_message, " ")
+ if(length(words) <= 1)
+ say_args[SPEECH_MODS][MODE_SING] = TRUE
+ return
+ var/last_word = words[length(words)]
+ var/num_chars = length_char(last_word)
+ var/last_vowel = ""
+ // find the last vowel present in the word
+ for(var/i in 1 to num_chars)
+ var/char = copytext_char(last_word, i, i + 1)
+ if(char in VOWELS)
+ last_vowel = char
+
+ // now we'll reshape the final word to make it sound like they're singing it
+ var/final_word = ""
+ var/has_ellipsis = copytext(last_word, -3) == "..."
+ for(var/i in 1 to num_chars)
+ var/char = copytext_char(last_word, i, i + 1)
+ // replacing any final periods with exclamation marks (so long as it's not an ellipsis)
+ if(char == "." && i == num_chars && !has_ellipsis)
+ final_word += "!"
+ // or if it's the vowel we found, we're gonna repeat it a few times (holding the note)
+ else if(char == last_vowel)
+ for(var/j in 1 to 4)
+ final_word += char
+ // if we dragged out the last character of the word, just period it
+ if(i == num_chars)
+ final_word += "."
+ // no special handing otherwise
+ else
+ final_word += char
+
+ if(!has_ellipsis)
+ // adding an extra exclamation mark at the end if there's no period
+ var/last_char = copytext_char(final_word, -1)
+ if(last_char != ".")
+ final_word += "!"
+
+ words[length(words)] = final_word
+ // now we siiiiiiing
+ say_args[SPEECH_MESSAGE] = jointext(words, " ")
+ say_args[SPEECH_MODS][MODE_SING] = TRUE
+
+/obj/item/skillchip/musical/examine(mob/user)
+ . = ..()
+ . += span_tinynoticeital("Huh, looks like it'd fit in a skillchip adapter.")
+
+/obj/item/skillchip/musical/examine_more(mob/user)
+ . = ..()
+ var/list/songs = list()
+ songs += "• \"The Ballad of Space Station 13\""
+ songs += "• \"The Captain's Call\""
+ songs += "• \"A Mime's Lament\""
+ songs += "• \"Banned from Cargo\""
+ songs += "• \"Botany Blues\""
+ songs += "• \"Clown Song\""
+ songs += "• \"Elegy to an Engineer\""
+ songs += "• \"Medical Malpractitioner\""
+ songs += "• \"Security Strike\""
+ songs += "• \"Send for the Shuttle\""
+ songs += "• And one song scratched out..."
+
+ . += span_notice("On the back of the chip, you see a list of songs:")
+ . += span_smallnotice("[jointext(songs, "
")]")
diff --git a/code/modules/library/skill_learning/generic_skillchips/point.dm b/code/modules/library/skill_learning/generic_skillchips/point.dm
index 761a482268952..ba6a2e3e236ec 100644
--- a/code/modules/library/skill_learning/generic_skillchips/point.dm
+++ b/code/modules/library/skill_learning/generic_skillchips/point.dm
@@ -11,25 +11,17 @@
activate_message = span_notice("From \"The Definitive Compendium of Body Language for the Aspiring Leader\", page 164, paragraph 3...")
deactivate_message = span_notice("So, uh, yeah, how do I point at things again?")
- ///The action for changing the pointer color
- var/datum/action/change_pointer_color/action
-
-/obj/item/skillchip/big_pointer/Destroy()
- action = null
- return ..()
+ actions_types = list(/datum/action/change_pointer_color)
/obj/item/skillchip/big_pointer/on_activate(mob/living/carbon/user, silent=FALSE)
. = ..()
RegisterSignal(user, COMSIG_MOVABLE_POINTED, PROC_REF(fancier_pointer))
- if(!action)
- action = new(src)
- action.Grant(user)
/obj/item/skillchip/big_pointer/on_deactivate(mob/living/carbon/user, silent=FALSE)
UnregisterSignal(user, COMSIG_MOVABLE_POINTED)
+ var/datum/action/change_pointer_color/action = locate() in actions
action?.arrow_color = null
action?.arrow_overlay = null
- action?.Remove(user)
return ..()
/obj/item/skillchip/big_pointer/proc/fancier_pointer(mob/living/user, atom/pointed, obj/effect/temp_visual/point/point)
@@ -37,6 +29,7 @@
if(HAS_TRAIT(user, TRAIT_UNKNOWN))
return
point.cut_overlays()
+ var/datum/action/change_pointer_color/action = locate() in actions
if(!action.arrow_color)
point.icon_state = "arrow_large"
return
diff --git a/code/modules/library/skill_learning/generic_skillchips/rod_suplex.dm b/code/modules/library/skill_learning/job_skillchips/research_director.dm
similarity index 100%
rename from code/modules/library/skill_learning/generic_skillchips/rod_suplex.dm
rename to code/modules/library/skill_learning/job_skillchips/research_director.dm
diff --git a/code/modules/library/skill_learning/skillchip.dm b/code/modules/library/skill_learning/skillchip.dm
index 10139585dd9a7..eddaf300e08a9 100644
--- a/code/modules/library/skill_learning/skillchip.dm
+++ b/code/modules/library/skill_learning/skillchip.dm
@@ -48,6 +48,10 @@
. = ..()
removable = is_removable
+///We don't grant actions outside of being activated when implanted
+/obj/item/skillchip/item_action_slot_check(slot, mob/user, datum/action/action)
+ return FALSE
+
/**
* Activates the skillchip, if possible.
*
@@ -150,6 +154,9 @@
active = TRUE
+ for(var/datum/action/action as anything in actions)
+ action.Grant(user)
+
COOLDOWN_START(src, chip_cooldown, cooldown)
/**
@@ -185,6 +192,9 @@
active = FALSE
+ for(var/datum/action/action as anything in actions)
+ action.Remove(user)
+
COOLDOWN_START(src, chip_cooldown, cooldown)
/**
@@ -369,236 +379,3 @@
removable = metadata["removable"]
return active_msg
-
-/obj/item/skillchip/basketweaving
- name = "Basketsoft 3000 skillchip"
- desc = "Underwater edition."
- auto_traits = list(TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE)
- skill_name = "Underwater Basketweaving"
- skill_description = "Master intricate art of using twine to create perfect baskets while submerged."
- skill_icon = "shopping-basket"
- activate_message = span_notice("You're one with the twine and the sea.")
- deactivate_message = span_notice("Higher mysteries of underwater basketweaving leave your mind.")
-
-/obj/item/skillchip/wine_taster
- name = "WINE skillchip"
- desc = "Wine.Is.Not.Equal version 5."
- auto_traits = list(TRAIT_WINE_TASTER)
- skill_name = "Wine Tasting"
- skill_description = "Recognize wine vintage from taste alone. Never again lack an opinion when presented with an unknown drink."
- skill_icon = "wine-bottle"
- activate_message = span_notice("You recall wine taste.")
- deactivate_message = span_notice("Your memories of wine evaporate.")
-
-/obj/item/skillchip/bonsai
- name = "Hedge 3 skillchip"
- auto_traits = list(TRAIT_BONSAI)
- skill_name = "Hedgetrimming"
- skill_description = "Trim hedges and potted plants into marvelous new shapes with any old knife. Not applicable to plastic plants."
- skill_icon = "spa"
- activate_message = span_notice("Your mind is filled with plant arrangments.")
- deactivate_message = span_notice("You can't remember what a hedge looks like anymore.")
-
-/obj/item/skillchip/useless_adapter
- name = "Skillchip adapter"
- skill_name = "Useless adapter"
- skill_description = "Allows you to insert another skillchip into this adapter after it has been inserted into your brain..."
- skill_icon = "plug"
- activate_message = span_notice("You can now activate another chip through this adapter, but you're not sure why you did this...")
- deactivate_message = span_notice("You no longer have the useless skillchip adapter.")
- skillchip_flags = SKILLCHIP_ALLOWS_MULTIPLE
- // Literally does nothing.
- complexity = 0
- slot_use = 0
-
-/obj/item/skillchip/light_remover
- name = "N16H7M4R3 skillchip"
- auto_traits = list(TRAIT_LIGHTBULB_REMOVER)
- skill_name = "Lightbulb Removing"
- skill_description = "Stop failing taking out lightbulbs today, no gloves needed!"
- skill_icon = "lightbulb"
- activate_message = span_notice("Your feel like your pain receptors are less sensitive to hot objects.")
- deactivate_message = span_notice("You feel like hot objects could stop you again...")
-
-/obj/item/skillchip/disk_verifier
- name = "K33P-TH4T-D15K skillchip"
- auto_traits = list(TRAIT_DISK_VERIFIER)
- skill_name = "Nuclear Disk Verification"
- skill_description = "Nuclear authentication disks have an extremely long serial number for verification. This skillchip stores that number, which allows the user to automatically spot forgeries."
- skill_icon = "save"
- activate_message = span_notice("You feel your mind automatically verifying long serial numbers on disk shaped objects.")
- deactivate_message = span_notice("The innate recognition of absurdly long disk-related serial numbers fades from your mind.")
-
-/obj/item/skillchip/entrails_reader
- name = "3NTR41LS skillchip"
- auto_traits = list(TRAIT_ENTRAILS_READER)
- skill_name = "Entrails Reader"
- skill_description = "Be able to learn about a person's life, by looking at their internal organs. Not to be confused with looking into the future."
- skill_icon = "lungs"
- activate_message = span_notice("You feel that you know a lot about interpreting organs.")
- deactivate_message = span_notice("Knowledge of liver damage, heart strain and lung scars fades from your mind.")
-
-/obj/item/skillchip/appraiser
- name = "GENUINE ID Appraisal Now! skillchip"
- auto_traits = list(TRAIT_ID_APPRAISER)
- skill_name = "ID Appraisal"
- skill_description = "Appraise an ID and see if it's issued from centcom, or just a cruddy station-printed one."
- skill_icon = "magnifying-glass"
- activate_message = span_notice("You feel that you can recognize special, minute details on ID cards.")
- deactivate_message = span_notice("Was there something special about certain IDs?")
-
-/obj/item/skillchip/sabrage
- name = "Le S48R4G3 skillchip"
- auto_traits = list(TRAIT_SABRAGE_PRO)
- skill_name = "Sabrage Proficiency"
- skill_description = "Grants the user knowledge of the intricate structure of a champagne bottle's structural weakness at the neck, \
- improving their proficiency at being a show-off at officer parties."
- skill_icon = "bottle-droplet"
- activate_message = span_notice("You feel a new understanding of champagne bottles and methods on how to remove their corks.")
- deactivate_message = span_notice("The knowledge of the subtle physics residing inside champagne bottles fades from your mind.")
-
-/obj/item/skillchip/brainwashing
- name = "suspicious skillchip"
- auto_traits = list(TRAIT_BRAINWASHING)
- skill_name = "Brainwashing"
- skill_description = "WARNING: The integrity of this chip is compromised. Please discard this skillchip."
- skill_icon = "soap"
- activate_message = span_notice("...But all at once it comes to you... something involving putting a brain in a washing machine?")
- deactivate_message = span_warning("All knowledge of the secret brainwashing technique is GONE.")
-
-/obj/item/skillchip/brainwashing/examine(mob/user)
- . = ..()
- . += span_warning("It seems to have been corroded over time, putting this in your head may not be the best idea...")
-
-/obj/item/skillchip/brainwashing/on_activate(mob/living/carbon/user, silent = FALSE)
- to_chat(user, span_danger("You get a pounding headache as the chip sends corrupt memories into your head!"))
- user.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20)
- . = ..()
-
-/obj/item/skillchip/chefs_kiss
- name = "K1SS skillchip"
- auto_traits = list(TRAIT_CHEF_KISS)
- skill_name = "Chef's Kiss"
- skill_description = "Allows you to kiss food you've created to make them with love."
- skill_icon = "cookie"
- activate_message = span_notice("You recall learning from your grandmother how they baked their cookies with love.")
- deactivate_message = span_notice("You forget all memories imparted upon you by your grandmother. Were they even your real grandma?")
-
-/obj/item/skillchip/master_angler
- name = "Mast-Angl-Er skillchip"
- auto_traits = list(TRAIT_REVEAL_FISH, TRAIT_EXAMINE_FISHING_SPOT, TRAIT_EXAMINE_FISH, TRAIT_EXAMINE_DEEPER_FISH)
- skill_name = "Fisherman's Discernment"
- skill_description = "Lists fishes when examining a fishing spot, gives a hint of whatever thing's biting the hook and more."
- skill_icon = "fish"
- activate_message = span_notice("You feel the knowledge and passion of several sunbaked, seasoned fishermen burn within you.")
- deactivate_message = span_notice("You no longer feel like casting a fishing rod by the sunny riverside.")
-
-/obj/item/skillchip/intj
- name = "Integrated Intuitive Thinking and Judging skillchip"
- auto_traits = list(TRAIT_REMOTE_TASTING)
- skill_name = "Mental Flavour Calculus"
- skill_description = "When examining food, you can experience the flavours just as well as if you were eating it."
- skill_icon = FA_ICON_DRUMSTICK_BITE
- activate_message = span_notice("You think of your favourite food and realise that you can rotate its flavour in your mind.")
- deactivate_message = span_notice("You feel your food-based mind palace crumbling...")
-
-/obj/item/skillchip/drunken_brawler
- name = "F0RC3 4DD1CT10N skillchip"
- auto_traits = list(TRAIT_DRUNKEN_BRAWLER)
- skill_name = "Drunken Unarmed Proficiency"
- skill_description = "When intoxicated, you gain increased unarmed effectiveness."
- skill_icon = "wine-bottle"
- activate_message = span_notice("You honestly could do with a drink. Never know when someone might try and jump you around here.")
- deactivate_message = span_notice("You suddenly feel a lot safer going around the station sober... ")
-
-/obj/item/skillchip/musical
- name = "\improper Old Copy of \"Space Station 13: The Musical\""
- desc = "An old copy of \"Space Station 13: The Musical\", \
- ran on the station's 100th anniversary...Or maybe it was the 200th?"
- skill_name = "Memory of a Musical"
- skill_description = "Allows you to hit that high note, like those that came a century before us."
- skill_icon = FA_ICON_MUSIC
- activate_message = span_notice("You feel like you could \u2669 sing a soooong! \u266B")
- deactivate_message = span_notice("The musical fades from your mind, leaving you with a sense of nostalgia.")
- custom_premium_price = PAYCHECK_CREW * 4
-
-/obj/item/skillchip/musical/Initialize(mapload, is_removable)
- . = ..()
- name = replacetext(name, "Old", round(CURRENT_STATION_YEAR - pick(50, 100, 150, 200, 250), 5))
-
-/obj/item/skillchip/musical/on_activate(mob/living/carbon/user, silent = FALSE)
- . = ..()
- RegisterSignal(user, COMSIG_MOB_SAY, PROC_REF(make_music))
-
-/obj/item/skillchip/musical/on_deactivate(mob/living/carbon/user, silent)
- . = ..()
- UnregisterSignal(user, COMSIG_MOB_SAY)
-
-/obj/item/skillchip/musical/proc/make_music(mob/living/carbon/source, list/say_args)
- SIGNAL_HANDLER
-
- var/raw_message = say_args[SPEECH_MESSAGE]
- var/list/words = splittext(raw_message, " ")
- if(length(words) <= 1)
- say_args[SPEECH_MODS][MODE_SING] = TRUE
- return
- var/last_word = words[length(words)]
- var/num_chars = length_char(last_word)
- var/last_vowel = ""
- // find the last vowel present in the word
- for(var/i in 1 to num_chars)
- var/char = copytext_char(last_word, i, i + 1)
- if(char in VOWELS)
- last_vowel = char
-
- // now we'll reshape the final word to make it sound like they're singing it
- var/final_word = ""
- var/has_ellipsis = copytext(last_word, -3) == "..."
- for(var/i in 1 to num_chars)
- var/char = copytext_char(last_word, i, i + 1)
- // replacing any final periods with exclamation marks (so long as it's not an ellipsis)
- if(char == "." && i == num_chars && !has_ellipsis)
- final_word += "!"
- // or if it's the vowel we found, we're gonna repeat it a few times (holding the note)
- else if(char == last_vowel)
- for(var/j in 1 to 4)
- final_word += char
- // if we dragged out the last character of the word, just period it
- if(i == num_chars)
- final_word += "."
- // no special handing otherwise
- else
- final_word += char
-
- if(!has_ellipsis)
- // adding an extra exclamation mark at the end if there's no period
- var/last_char = copytext_char(final_word, -1)
- if(last_char != ".")
- final_word += "!"
-
- words[length(words)] = final_word
- // now we siiiiiiing
- say_args[SPEECH_MESSAGE] = jointext(words, " ")
- say_args[SPEECH_MODS][MODE_SING] = TRUE
-
-/obj/item/skillchip/musical/examine(mob/user)
- . = ..()
- . += span_tinynoticeital("Huh, looks like it'd fit in a skillchip adapter.")
-
-/obj/item/skillchip/musical/examine_more(mob/user)
- . = ..()
- var/list/songs = list()
- songs += "• \"The Ballad of Space Station 13\""
- songs += "• \"The Captain's Call\""
- songs += "• \"A Mime's Lament\""
- songs += "• \"Banned from Cargo\""
- songs += "• \"Botany Blues\""
- songs += "• \"Clown Song\""
- songs += "• \"Elegy to an Engineer\""
- songs += "• \"Medical Malpractitioner\""
- songs += "• \"Security Strike\""
- songs += "• \"Send for the Shuttle\""
- songs += "• And one song scratched out..."
-
- . += span_notice("On the back of the chip, you see a list of songs:")
- . += span_smallnotice("[jointext(songs, "
")]")
diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm
index 03e53ff6f8ab1..f2c3be931436a 100644
--- a/code/modules/lighting/lighting_source.dm
+++ b/code/modules/lighting/lighting_source.dm
@@ -1,3 +1,6 @@
+/// Cached global list of generated lighting sheets. See: datum/light_source/proc/get_sheet()
+GLOBAL_LIST_EMPTY(lighting_sheets)
+
// This is where the fun begins.
// These are the main datums that emit light.
@@ -223,16 +226,15 @@
/// If the requested sheet is multiz, this will be 3 lists deep, first handling z level then x and y
/// otherwise it's just two, x then y
/datum/light_source/proc/get_sheet(multiz = FALSE)
- var/list/static/key_to_sheet = list()
var/range = max(1, light_range);
var/key = "[range]-[visual_offset]-[offset_x]-[offset_y]-[light_dir]-[light_angle]-[light_height]-[multiz]"
- var/list/hand_back = key_to_sheet[key]
+ var/list/hand_back = GLOB.lighting_sheets[key]
if(!hand_back)
if(multiz)
hand_back = generate_sheet_multiz(range, visual_offset, offset_x, offset_y, light_dir, light_angle, light_height)
else
hand_back = generate_sheet(range, visual_offset, offset_x, offset_y, light_dir, light_angle, light_height)
- key_to_sheet[key] = hand_back
+ GLOB.lighting_sheets[key] = hand_back
return hand_back
/// Returns a list of lists that encodes the light falloff of our source
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
index 1181dcb93a14f..7cf3b9b81dd9c 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
@@ -9,7 +9,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
w_class = WEIGHT_CLASS_SMALL
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
//SKYRAT EDIT ADDITION - GHOST HOTEL UPDATE + EXTRA STUFF
- var/list/static/hotel_maps = list("Generic", "Apartment", "Beach Condo", "Station Side", "Library")
+ var/static/list/hotel_maps = list("Generic", "Apartment", "Beach Condo", "Station Side", "Library")
//standart - hilber's hotel room
//apartment - see /datum/map_template/ghost_cafe_rooms
//beach condo - Beach themed apartment
diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm
index 4987016c5a074..d6ac3ac4f9424 100644
--- a/code/modules/mapping/ruins.dm
+++ b/code/modules/mapping/ruins.dm
@@ -31,7 +31,7 @@
testing("Ruin \"[name]\" placed at ([central_turf.x], [central_turf.y], [central_turf.z])")
if(clear_below)
- var/list/static/clear_below_typecache = typecacheof(list(
+ var/static/list/clear_below_typecache = typecacheof(list(
/obj/structure/spawner,
/mob/living/simple_animal,
/obj/structure/flora
diff --git a/code/modules/meteors/meteor_spawning.dm b/code/modules/meteors/meteor_spawning.dm
index 83b1c9533c577..17e4746753522 100644
--- a/code/modules/meteors/meteor_spawning.dm
+++ b/code/modules/meteors/meteor_spawning.dm
@@ -4,7 +4,7 @@
for(var/i in 1 to number)
spawn_meteor(meteor_types, direction)
-/proc/spawn_meteor(list/meteor_types, direction, atom/target)
+/proc/spawn_meteor(list/meteor_types, direction, atom/target, distance_from_edge = 0)
if (SSmapping.is_planetary())
stack_trace("Tried to spawn meteors in a map which isn't in space.")
return // We're not going to find any space turfs here
@@ -18,7 +18,7 @@
else
start_side = pick(GLOB.cardinals)
var/start_Z = pick(SSmapping.levels_by_trait(ZTRAIT_STATION))
- picked_start = spaceDebrisStartLoc(start_side, start_Z)
+ picked_start = spaceDebrisStartLoc(start_side, start_Z, distance_from_edge)
if(target)
if(!isturf(target))
target = get_turf(target)
@@ -31,22 +31,22 @@
var/new_meteor = pick_weight(meteor_types)
new new_meteor(picked_start, picked_goal)
-/proc/spaceDebrisStartLoc(start_side, Z)
+/proc/spaceDebrisStartLoc(start_side, Z, distance_from_edge = 0)
var/starty
var/startx
switch(start_side)
if(NORTH)
- starty = world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD)
- startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD))
+ starty = world.maxy - (TRANSITIONEDGE + MAP_EDGE_PAD) - distance_from_edge
+ startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge))
if(EAST)
- starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD),world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD))
- startx = world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD)
+ starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge),world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge))
+ startx = world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD) - distance_from_edge
if(SOUTH)
- starty = (TRANSITIONEDGE + MAP_EDGE_PAD)
- startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD))
+ starty = (TRANSITIONEDGE + MAP_EDGE_PAD) + distance_from_edge
+ startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge))
if(WEST)
- starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD))
- startx = (TRANSITIONEDGE + MAP_EDGE_PAD)
+ starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge), world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD + distance_from_edge))
+ startx = (TRANSITIONEDGE + MAP_EDGE_PAD) + distance_from_edge
. = locate(startx, starty, Z)
/proc/spaceDebrisFinishLoc(startSide, Z)
diff --git a/code/modules/mining/boulder_processing/boulder_types.dm b/code/modules/mining/boulder_processing/boulder_types.dm
index 366c5b21c4259..6d0d58a1be2b8 100644
--- a/code/modules/mining/boulder_processing/boulder_types.dm
+++ b/code/modules/mining/boulder_processing/boulder_types.dm
@@ -38,7 +38,7 @@
. = ..()
/// Static list of all minerals to populate gulag boulders with.
- var/list/static/gulag_minerals = list(
+ var/static/list/gulag_minerals = list(
/datum/material/diamond = 1,
/datum/material/gold = 8,
/datum/material/iron = 95,
@@ -59,7 +59,7 @@
. = ..()
/// Static list of all minerals to populate gulag boulders with, but with bluespace added where safe.
- var/list/static/expanded_gulag_minerals = list(
+ var/static/list/expanded_gulag_minerals = list(
/datum/material/bluespace = 1,
/datum/material/diamond = 1,
/datum/material/gold = 8,
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index af31d32719f14..c2dffd37ee533 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -61,7 +61,6 @@
actions_types = list(/datum/action/item_action/adjust)
armor_type = /datum/armor/gas_explorer
resistance_flags = FIRE_PROOF
- has_fov = FALSE
/datum/armor/gas_explorer
melee = 10
@@ -293,6 +292,7 @@
/obj/item/clothing/suit/hooded/cloak/godslayer/Initialize(mapload)
. = ..()
allowed = GLOB.mining_suit_allowed
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
/obj/item/clothing/head/hooded/cloakhood/godslayer
name = "godslayer helm"
diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm
index 2b14dfcc93ea9..6446ebc343244 100644
--- a/code/modules/mining/lavaland/tendril_loot.dm
+++ b/code/modules/mining/lavaland/tendril_loot.dm
@@ -737,6 +737,7 @@
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
AddComponent(/datum/component/armor_plate, maxamount = 1, upgrade_item = /obj/item/drake_remains, armor_mod = /datum/armor/drake_empowerment, upgrade_prefix = "empowered")
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
/obj/item/clothing/head/hooded/berserker/examine()
. = ..()
diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm
index e7075ed508f27..70d73f49daa98 100644
--- a/code/modules/mob/dead/dead.dm
+++ b/code/modules/mob/dead/dead.dm
@@ -77,7 +77,8 @@ INITIALIZE_IMMEDIATE(/mob/dead)
var/client/C = client
to_chat(C, span_notice("Sending you to [pick]."))
- new /atom/movable/screen/splash(null, null, C)
+ var/atom/movable/screen/splash/S = new(null, null, C)
+ S.Fade(FALSE)
ADD_TRAIT(src, TRAIT_NO_TRANSFORM, SERVER_HOPPER_TRAIT)
sleep(2.9 SECONDS) //let the animation play
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 5b1cf278a6468..a8846f2ae5f1f 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -1079,31 +1079,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/proc/tray_view()
set category = "Ghost"
- set name = "T-ray view"
- set desc = "Toggles a view of sub-floor objects"
+ set name = "T-ray scan"
+ set desc = "Perfom a scan to view sub-floor objects"
- var/static/t_ray_view = FALSE
- if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder && !t_ray_view)
+ if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder)
to_chat(usr, span_notice("That verb is currently globally disabled."))
return
- t_ray_view = !t_ray_view
-
- var/list/t_ray_images = list()
- var/static/list/stored_t_ray_images = list()
- for(var/obj/O in orange(client.view, src) )
- if(HAS_TRAIT(O, TRAIT_T_RAY_VISIBLE))
- var/image/I = new(loc = get_turf(O))
- var/mutable_appearance/MA = new(O)
- MA.alpha = 128
- MA.dir = O.dir
- I.appearance = MA
- t_ray_images += I
- stored_t_ray_images += t_ray_images
- if(length(t_ray_images))
- if(t_ray_view)
- client.images += t_ray_images
- else
- client.images -= stored_t_ray_images
+
+ t_ray_scan(src)
/mob/dead/observer/default_lighting_cutoff()
var/datum/preferences/prefs = client?.prefs
diff --git a/code/modules/mob/living/basic/drone/drone_tools.dm b/code/modules/mob/living/basic/drone/drone_tools.dm
index 6f3f79bff506e..b55b438362a9d 100644
--- a/code/modules/mob/living/basic/drone/drone_tools.dm
+++ b/code/modules/mob/living/basic/drone/drone_tools.dm
@@ -3,31 +3,14 @@
desc = "Access your built-in tools."
icon = 'icons/hud/screen_drone.dmi'
icon_state = "tool_storage"
+ storage_type = /datum/storage/drone
item_flags = ABSTRACT
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/item/storage/drone_tools/Initialize(mapload)
. = ..()
- ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
-
- var/static/list/drone_builtins = list(
- /obj/item/crowbar/drone,
- /obj/item/screwdriver/drone,
- /obj/item/wrench/drone,
- /obj/item/weldingtool/drone,
- /obj/item/wirecutters/drone,
- /obj/item/multitool/drone,
- /obj/item/pipe_dispenser/drone,
- /obj/item/t_scanner/drone,
- /obj/item/analyzer/drone,
- /obj/item/soap/drone,
- )
- atom_storage.max_total_storage = 40
- atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL
- atom_storage.max_slots = 10
- atom_storage.do_rustle = FALSE
- atom_storage.set_holdable(drone_builtins)
+ ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
/obj/item/storage/drone_tools/PopulateContents()
var/list/builtintools = list()
@@ -44,8 +27,6 @@
for(var/obj/item/tool as anything in builtintools)
tool.AddComponent(/datum/component/holderloving, src, TRUE)
- ADD_TRAIT(tool, TRAIT_NODROP, REF(src))
-
/obj/item/crowbar/drone
name = "built-in crowbar"
diff --git a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm
index 3c2aae36bc1d0..53f9c618c637b 100644
--- a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm
+++ b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm
@@ -100,13 +100,8 @@
return ..()
/mob/living/basic/bee/death(gibbed)
- if(beehome)
- beehome.bees -= src
- beehome = null
- beegent = null
- if(flags_1 & HOLOGRAM_1 || gibbed)
- return ..()
- spawn_corpse()
+ if(!(flags_1 & HOLOGRAM_1) && !gibbed)
+ spawn_corpse()
return ..()
/// Leave something to remember us by
diff --git a/code/modules/mob/living/basic/farm_animals/chicken/chick.dm b/code/modules/mob/living/basic/farm_animals/chicken/chick.dm
index 9e4af384aeeff..7ddf86b0cfb7f 100644
--- a/code/modules/mob/living/basic/farm_animals/chicken/chick.dm
+++ b/code/modules/mob/living/basic/farm_animals/chicken/chick.dm
@@ -33,6 +33,18 @@
/// What we grow into.
var/grow_as = /mob/living/basic/chicken
+/datum/emote/chick
+ mob_type_allowed_typecache = /mob/living/basic/chick
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/chick/chirp
+ key = "chirp"
+ key_third_person = "chirps"
+ message = "chirps!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ vary = TRUE
+ sound = 'sound/mobs/non-humanoids/chicken/chick_peep.ogg'
+
/mob/living/basic/chick/Initialize(mapload)
. = ..()
pixel_x = base_pixel_x + rand(-6, 6)
@@ -40,7 +52,7 @@
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
- AddElement(/datum/element/pet_bonus, "chirps!")
+ AddElement(/datum/element/pet_bonus, "chirp")
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5)
AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW)
diff --git a/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm b/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm
index 9508f8fae3be6..4f83608b9d64c 100644
--- a/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm
+++ b/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm
@@ -38,12 +38,24 @@ GLOBAL_VAR_INIT(chicken_count, 0)
///boolean deciding whether eggs laid by this chicken can hatch into chicks
var/fertile = TRUE
+/datum/emote/chicken
+ mob_type_allowed_typecache = /mob/living/basic/chicken
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/chicken/cluck
+ key = "cluck"
+ key_third_person = "clucks"
+ message = "clucks happily!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ vary = TRUE
+ sound = 'sound/mobs/non-humanoids/chicken/bagawk.ogg'
+
/mob/living/basic/chicken/Initialize(mapload)
. = ..()
GLOB.chicken_count++
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
AddElement(/datum/element/ai_retaliate)
- AddElement(/datum/element/pet_bonus, "clucks happily!")
+ AddElement(/datum/element/pet_bonus, "cluck")
AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW)
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5)
AddElement(/datum/element/animal_variety, "chicken", pick("brown", "black", "white"), modify_pixels = TRUE)
diff --git a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm
index fadac576ea599..5c771e72bad15 100644
--- a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm
+++ b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm
@@ -36,13 +36,25 @@
/// What kind of juice do we produce?
var/milked_reagent = /datum/reagent/consumable/milk
+/datum/emote/cow
+ mob_type_allowed_typecache = /mob/living/basic/cow
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/cow/moo
+ key = "moo"
+ key_third_person = "moos"
+ message = "moos happily!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ vary = TRUE
+ sound = 'sound/mobs/non-humanoids/cow/cow.ogg'
+
/mob/living/basic/cow/Initialize(mapload)
AddComponent(/datum/component/tippable, \
tip_time = 0.5 SECONDS, \
untip_time = 0.5 SECONDS, \
self_right_time = rand(25 SECONDS, 50 SECONDS), \
post_tipped_callback = CALLBACK(src, PROC_REF(after_cow_tipped)))
- AddElement(/datum/element/pet_bonus, "moos happily!")
+ AddElement(/datum/element/pet_bonus, "moo")
AddElement(/datum/element/swabable, CELL_LINE_TABLE_COW, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5)
setup_udder()
setup_eating()
diff --git a/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm b/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm
index e1e611a28c2a8..cedc39f64f3fc 100644
--- a/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm
+++ b/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm
@@ -1,6 +1,6 @@
/datum/ai_controller/basic_controller/cow
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_BASIC_MOB_TIP_REACTING = FALSE,
BB_BASIC_MOB_TIPPER = null,
)
@@ -11,7 +11,5 @@
planning_subtrees = list(
/datum/ai_planning_subtree/tip_reaction,
/datum/ai_planning_subtree/find_food,
- //attacking the food will eat it
- /datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/random_speech/cow,
)
diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm
index 28a727fdb1bce..de55865b5fada 100644
--- a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm
+++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm
@@ -1,7 +1,7 @@
/// Pretty basic, just click people to death. Also hunt and eat bananas.
/datum/ai_controller/basic_controller/gorilla
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_TARGET_MINIMUM_STAT = UNCONSCIOUS,
BB_EMOTE_KEY = "ooga",
BB_EMOTE_CHANCE = 40,
@@ -13,10 +13,10 @@
planning_subtrees = list(
/datum/ai_planning_subtree/run_emote,
- /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/attack_obstacle_in_path/gorilla,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
+ /datum/ai_planning_subtree/find_food,
)
/datum/ai_planning_subtree/attack_obstacle_in_path/gorilla
diff --git a/code/modules/mob/living/basic/farm_animals/pig.dm b/code/modules/mob/living/basic/farm_animals/pig.dm
index d0fbb5a82473a..c3cfc57ac0522 100644
--- a/code/modules/mob/living/basic/farm_animals/pig.dm
+++ b/code/modules/mob/living/basic/farm_animals/pig.dm
@@ -28,9 +28,20 @@
blood_volume = BLOOD_VOLUME_NORMAL
ai_controller = /datum/ai_controller/basic_controller/pig
+/datum/emote/pig
+ mob_type_allowed_typecache = /mob/living/basic/pig
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/pig/oink
+ key = "oink"
+ key_third_person = "oinks"
+ message = "oinks!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ vary = TRUE
+ sound = SFX_PIG_OINK
/mob/living/basic/pig/Initialize(mapload)
. = ..()
- AddElement(/datum/element/pet_bonus, "oinks!")
+ AddElement(/datum/element/pet_bonus, "oink")
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/ai_flee_while_injured)
make_tameable()
diff --git a/code/modules/mob/living/basic/farm_animals/pony.dm b/code/modules/mob/living/basic/farm_animals/pony.dm
index 29672e032c84b..a39fd328f1116 100644
--- a/code/modules/mob/living/basic/farm_animals/pony.dm
+++ b/code/modules/mob/living/basic/farm_animals/pony.dm
@@ -33,11 +33,23 @@
/// Greyscale color config; 1st color is body, 2nd is mane
var/list/ponycolors = list("#cc8c5d", "#cc8c5d")
+/datum/emote/pony
+ mob_type_allowed_typecache = /mob/living/basic/pony
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/pony/whicker
+ key = "whicker"
+ key_third_person = "whickers"
+ message = "whickers."
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ vary = TRUE
+ sound = 'sound/mobs/non-humanoids/pony/snort.ogg'
+
/mob/living/basic/pony/Initialize(mapload)
. = ..()
apply_colour()
- AddElement(/datum/element/pet_bonus, "whickers.")
+ AddElement(/datum/element/pet_bonus, "whicker")
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/ai_flee_while_injured)
AddElementTrait(TRAIT_WADDLING, INNATE_TRAIT, /datum/element/waddling)
diff --git a/code/modules/mob/living/basic/farm_animals/rabbit.dm b/code/modules/mob/living/basic/farm_animals/rabbit.dm
index dec48ea8be4af..c667ac311cdf9 100644
--- a/code/modules/mob/living/basic/farm_animals/rabbit.dm
+++ b/code/modules/mob/living/basic/farm_animals/rabbit.dm
@@ -39,10 +39,20 @@
/// passed to animal_varity as the prefix icon.
var/icon_prefix = "rabbit"
+/datum/emote/rabbit
+ mob_type_allowed_typecache = /mob/living/basic/rabbit
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/rabbit
+ key = "hop"
+ key_third_person = "hops"
+ message = "hops around happily!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+
/mob/living/basic/rabbit/Initialize(mapload)
. = ..()
AddElement(/datum/element/ai_retaliate)
- AddElement(/datum/element/pet_bonus, "hops around happily!")
+ AddElement(/datum/element/pet_bonus, "hop")
AddElement(/datum/element/animal_variety, icon_prefix, pick("brown", "black", "white"), TRUE)
if(prob(20)) // bunny
name = "bunny"
diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm
index 86ba1e003208f..3bf9d1d8f335a 100644
--- a/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm
+++ b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm
@@ -3,7 +3,7 @@
/datum/ai_controller/basic_controller/goliath
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_TARGET_MINIMUM_STAT = HARD_CRIT,
)
diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm
index b4de3d2321fe6..625dc4af90726 100644
--- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm
+++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm
@@ -157,6 +157,17 @@
/// Were we tamed? If yes, tame the mob we become when we grow up too.
var/was_tamed = FALSE
+/datum/emote/lobstrosity_juvenile
+ mob_type_allowed_typecache = /mob/living/basic/mining/lobstrosity/juvenile
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/lobstrosity_juvenile/chitter
+ key = "chitter"
+ key_third_person = "chitters"
+ message = "chitters pleasantly!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ sound = 'sound/mobs/non-humanoids/insect/chitter.ogg'
+
/mob/living/basic/mining/lobstrosity/juvenile/Initialize(mapload)
. = ..()
var/growth_step = 1000/(7 MINUTES) //It should take 7-ish minutes if you keep the happiness above 40% and at most 12
@@ -203,7 +214,7 @@
. = ..()
was_tamed = TRUE
// They are more pettable I guess
- AddElement(/datum/element/pet_bonus, "chitters pleasantly!")
+ AddElement(/datum/element/pet_bonus, "chitter")
REMOVE_TRAIT(src, TRAIT_MOB_HIDE_HAPPINESS, INNATE_TRAIT)
/mob/living/basic/mining/lobstrosity/juvenile/proc/ready_to_grow()
diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm
index de62b43e4a054..de6ca4a0cc1b4 100644
--- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm
+++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm
@@ -7,7 +7,7 @@
/datum/ai_controller/basic_controller/lobstrosity
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_TARGET_MINIMUM_STAT = HARD_CRIT,
BB_LOBSTROSITY_EXPLOIT_TRAITS = list(TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT),
@@ -45,7 +45,7 @@
///Ensure that juveline lobstrosities witll charge at things they can reach.
/datum/ai_controller/basic_controller/lobstrosity/juvenile
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_TARGET_MINIMUM_STAT = SOFT_CRIT,
BB_LOBSTROSITY_EXPLOIT_TRAITS = list(TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT),
diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm
index 8178df7b78c24..d9bada12ee8db 100644
--- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm
+++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm
@@ -1,5 +1,3 @@
-#define NEXT_EAT_COOLDOWN 45 SECONDS
-
/datum/ai_controller/basic_controller/raptor
blackboard = list(
BB_INTERACTIONS_WITH_OWNER = list(
@@ -34,16 +32,9 @@
/datum/ai_planning_subtree/find_and_hunt_target/play_with_owner/raptor,
)
-/datum/ai_controller/basic_controller/raptor/TryPossessPawn(atom/new_pawn)
+/datum/ai_controller/basic_controller/raptor/on_mob_eat()
. = ..()
- if(. & AI_CONTROLLER_INCOMPATIBLE)
- return
- RegisterSignal(new_pawn, COMSIG_MOB_ATE, PROC_REF(post_eat))
-
-/datum/ai_controller/basic_controller/raptor/proc/post_eat()
- SIGNAL_HANDLER
clear_blackboard_key(BB_RAPTOR_TROUGH_TARGET)
- set_blackboard_key(BB_RAPTOR_EAT_COOLDOWN, world.time + NEXT_EAT_COOLDOWN)
/datum/ai_controller/basic_controller/baby_raptor
blackboard = list(
@@ -62,5 +53,3 @@
/datum/ai_planning_subtree/express_happiness,
/datum/ai_planning_subtree/look_for_adult,
)
-
-#undef NEXT_EAT_COOLDOWN
diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm
index a8d91963ebfb7..2b88cc3282bd0 100644
--- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm
+++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm
@@ -56,7 +56,7 @@
hunt_range = 9
/datum/ai_planning_subtree/find_and_hunt_target/raptor_trough/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
- if(world.time < controller.blackboard[BB_RAPTOR_EAT_COOLDOWN])
+ if(world.time < controller.blackboard[BB_NEXT_FOOD_EAT])
return
return ..()
diff --git a/code/modules/mob/living/basic/pets/cat/cat.dm b/code/modules/mob/living/basic/pets/cat/cat.dm
index 7394d1fd5c5d8..d62edcceebede 100644
--- a/code/modules/mob/living/basic/pets/cat/cat.dm
+++ b/code/modules/mob/living/basic/pets/cat/cat.dm
@@ -45,6 +45,14 @@
/obj/item/food/deadmouse,
/obj/item/food/fishmeat,
)
+ ///list of pet commands we follow
+ var/static/list/pet_commands = list(
+ /datum/pet_command/idle,
+ /datum/pet_command/free,
+ /datum/pet_command/follow,
+ /datum/pet_command/perform_trick_sequence,
+ )
+
///item we are currently holding
var/obj/item/held_food
///mutable appearance for held item
@@ -74,10 +82,11 @@
/mob/living/basic/pet/cat/Initialize(mapload)
. = ..()
+ AddComponent(/datum/component/obeys_commands, pet_commands)
AddElement(/datum/element/cultist_pet, pet_cult_icon_state = cult_icon_state)
AddElement(/datum/element/wears_collar, collar_icon_state = collar_icon_state, collar_resting_icon_state = TRUE)
AddElement(/datum/element/ai_retaliate)
- AddElement(/datum/element/pet_bonus, null, /datum/mood_event/pet_animal, "purr")
+ AddElement(/datum/element/pet_bonus, "purr", /datum/mood_event/pet_animal)
AddElement(/datum/element/footstep, footstep_type = FOOTSTEP_MOB_CLAW)
add_cell_sample()
add_verb(src, /mob/living/proc/toggle_resting)
@@ -224,3 +233,9 @@
name = "Jerry"
desc = "Tom is VERY amused."
gender = MALE
+
+/mob/living/basic/pet/cat/tabby
+ icon_state = "cat"
+ icon_living = "cat"
+ icon_dead = "cat_dead"
+ held_state = "cat"
diff --git a/code/modules/mob/living/basic/pets/cat/cat_ai.dm b/code/modules/mob/living/basic/pets/cat/cat_ai.dm
index 8dde10495681d..2a2d3204bad5f 100644
--- a/code/modules/mob/living/basic/pets/cat/cat_ai.dm
+++ b/code/modules/mob/living/basic/pets/cat/cat_ai.dm
@@ -1,6 +1,7 @@
/datum/ai_controller/basic_controller/cat
blackboard = list(
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
+ BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_HOSTILE_MEOWS = list("Mawwww", "Mrewwww", "mhhhhng..."),
BB_BABIES_PARTNER_TYPES = list(/mob/living/basic/pet/cat),
BB_BABIES_CHILD_TYPES = list(/mob/living/basic/pet/cat/kitten),
@@ -9,6 +10,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
+ /datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/reside_in_home,
/datum/ai_planning_subtree/flee_target/from_flee_key/cat_struggle,
/datum/ai_planning_subtree/find_and_hunt_target/hunt_mice,
diff --git a/code/modules/mob/living/basic/pets/cat/kitten_ai.dm b/code/modules/mob/living/basic/pets/cat/kitten_ai.dm
index b694235a39ebc..4136aa0aa0151 100644
--- a/code/modules/mob/living/basic/pets/cat/kitten_ai.dm
+++ b/code/modules/mob/living/basic/pets/cat/kitten_ai.dm
@@ -3,10 +3,12 @@
blackboard = list(
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_HUNGRY_MEOW = list("mrrp...", "mraw..."),
+ BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_MAX_DISTANCE_TO_FOOD = 2,
)
planning_subtrees = list(
+ /datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/flee_target,
/datum/ai_planning_subtree/beg_human,
diff --git a/code/modules/mob/living/basic/pets/dog/_dog.dm b/code/modules/mob/living/basic/pets/dog/_dog.dm
index 1ff991941d327..b5259d275b530 100644
--- a/code/modules/mob/living/basic/pets/dog/_dog.dm
+++ b/code/modules/mob/living/basic/pets/dog/_dog.dm
@@ -40,6 +40,7 @@
/datum/pet_command/free,
/datum/pet_command/good_boy/dog,
/datum/pet_command/follow/dog,
+ /datum/pet_command/perform_trick_sequence,
/datum/pet_command/point_targeting/attack/dog,
/datum/pet_command/point_targeting/fetch,
/datum/pet_command/play_dead,
@@ -49,12 +50,22 @@
///icon state of our cult icon
var/cult_icon_state
+/datum/emote/dog
+ mob_type_allowed_typecache = /mob/living/basic/pet/dog
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/dog/woof
+ key = "woof"
+ key_third_person = "woof"
+ message = "woofs happily!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+
/mob/living/basic/pet/dog/Initialize(mapload)
. = ..()
AddElement(/datum/element/cultist_pet, pet_cult_icon_state = cult_icon_state)
AddElement(/datum/element/wears_collar, collar_icon_state = collar_icon_state)
ADD_TRAIT(src, TRAIT_WOUND_LICKER, INNATE_TRAIT)
- AddElement(/datum/element/pet_bonus, "woofs happily!")
+ AddElement(/datum/element/pet_bonus, "woof")
AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW)
AddElement(/datum/element/unfriend_attacker, untamed_reaction = "%SOURCE% fixes %TARGET% with a look of betrayal.")
AddComponent(/datum/component/tameable, food_types = list(/obj/item/food/meat/slab/human/mutant/skeleton, /obj/item/stack/sheet/bone), tame_chance = 30, bonus_tame_chance = 15, unique = FALSE)
diff --git a/code/modules/mob/living/basic/pets/fox.dm b/code/modules/mob/living/basic/pets/fox.dm
index a442f60715851..780b4e896e0d1 100644
--- a/code/modules/mob/living/basic/pets/fox.dm
+++ b/code/modules/mob/living/basic/pets/fox.dm
@@ -28,12 +28,31 @@
attack_sound = 'sound/items/weapons/bite.ogg'
attack_vis_effect = ATTACK_EFFECT_BITE
ai_controller = /datum/ai_controller/basic_controller/fox
+ ///list of our pet commands we follow
+ var/static/list/pet_commands = list(
+ /datum/pet_command/idle,
+ /datum/pet_command/free,
+ /datum/pet_command/follow,
+ /datum/pet_command/point_targeting/attack,
+ /datum/pet_command/perform_trick_sequence,
+ )
+
+/datum/emote/fox
+ mob_type_allowed_typecache = /mob/living/basic/pet/fox
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/fox/yap
+ key = "yap"
+ key_third_person = "yaps"
+ message = "yaps happily!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
/mob/living/basic/pet/fox/Initialize(mapload)
. = ..()
+ AddComponent(/datum/component/obeys_commands, pet_commands)
AddElement(/datum/element/cultist_pet)
AddElement(/datum/element/wears_collar)
- AddElement(/datum/element/pet_bonus, "pants and yaps happily!")
+ AddElement(/datum/element/pet_bonus, "yap")
AddElement(/datum/element/footstep, footstep_type = FOOTSTEP_MOB_CLAW)
AddElement(/datum/element/tiny_mob_hunter, MOB_SIZE_SMALL)
AddElement(/datum/element/ai_retaliate)
@@ -42,12 +61,14 @@
blackboard = list(
BB_ALWAYS_IGNORE_FACTION = TRUE,
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/of_size/ours_or_smaller,
+ BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
)
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
+ /datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/target_retaliate/to_flee,
/datum/ai_planning_subtree/flee_target/from_flee_key,
/datum/ai_planning_subtree/simple_find_target/not_while_observed,
diff --git a/code/modules/mob/living/basic/pets/gondolas/gondola.dm b/code/modules/mob/living/basic/pets/gondolas/gondola.dm
index 9e17d1e08a5e2..e607a13bf1e59 100644
--- a/code/modules/mob/living/basic/pets/gondolas/gondola.dm
+++ b/code/modules/mob/living/basic/pets/gondolas/gondola.dm
@@ -39,7 +39,7 @@
/mob/living/basic/pet/gondola/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_MUTE, INNATE_TRAIT)
- AddElement(/datum/element/pet_bonus, "smiles!")
+ AddElement(/datum/element/pet_bonus, "smile")
if(LAZYLEN(loot))
loot = string_list(loot)
AddElement(/datum/element/death_drops, loot)
diff --git a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm
index 1452dd18dee09..a978b750d5036 100644
--- a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm
+++ b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm
@@ -3,7 +3,7 @@
/datum/ai_controller/basic_controller/orbie
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_TRICK_NAME = "Trick",
)
@@ -13,7 +13,6 @@
planning_subtrees = list(
/datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/find_playmates,
- /datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/relay_pda_message,
/datum/ai_planning_subtree/pet_planning,
)
diff --git a/code/modules/mob/living/basic/pets/parrot/_parrot.dm b/code/modules/mob/living/basic/pets/parrot/_parrot.dm
index e61b052217909..e22948848eb1c 100644
--- a/code/modules/mob/living/basic/pets/parrot/_parrot.dm
+++ b/code/modules/mob/living/basic/pets/parrot/_parrot.dm
@@ -76,6 +76,13 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
var/static/list/edibles = list(
/obj/item/food/cracker,
)
+ ///list of commands we follow
+ var/static/list/pet_commands = list(
+ /datum/pet_command/idle,
+ /datum/pet_command/free,
+ /datum/pet_command/follow,
+ /datum/pet_command/perform_trick_sequence,
+ )
/// Tracks the times when we send a phrase through either being pet or attack to ensure it's not abused to flood
COOLDOWN_DECLARE(forced_speech_cooldown)
@@ -92,7 +99,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
AddElement(/datum/element/simple_flying)
AddComponent(/datum/component/listen_and_repeat, desired_phrases = get_static_list_of_phrases(), blackboard_key = BB_PARROT_REPEAT_STRING)
AddComponent(/datum/component/tameable, food_types = edibles, tame_chance = 100, bonus_tame_chance = 0)
-
+ AddComponent(/datum/component/obeys_commands, pet_commands)
RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attacking))
RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click))
RegisterSignal(src, COMSIG_ATOM_ATTACKBY_SECONDARY, PROC_REF(on_attacked)) // this means we could have a peaceful interaction, like getting a cracker
diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_ai/_parrot_controller.dm b/code/modules/mob/living/basic/pets/parrot/parrot_ai/_parrot_controller.dm
index 8a0fe5e157d93..2d6bccbc7036e 100644
--- a/code/modules/mob/living/basic/pets/parrot/parrot_ai/_parrot_controller.dm
+++ b/code/modules/mob/living/basic/pets/parrot/parrot_ai/_parrot_controller.dm
@@ -1,6 +1,7 @@
/datum/ai_controller/basic_controller/parrot
blackboard = list(
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_HOARD_LOCATION_RANGE = 9,
)
@@ -9,11 +10,12 @@
idle_behavior = /datum/idle_behavior/idle_random_walk/parrot
planning_subtrees = list(
+ /datum/ai_planning_subtree/parrot_as_in_repeat, // always get a witty oneliner in when you can
+ /datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/perch_on_target,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/hoard_items,
- /datum/ai_planning_subtree/parrot_as_in_repeat, // always get a witty oneliner in when you can
)
/datum/idle_behavior/idle_random_walk/parrot
diff --git a/code/modules/mob/living/basic/pets/penguin.dm b/code/modules/mob/living/basic/pets/penguin.dm
index c5829b210955e..2a1b78e9dd8c6 100644
--- a/code/modules/mob/living/basic/pets/penguin.dm
+++ b/code/modules/mob/living/basic/pets/penguin.dm
@@ -17,6 +17,15 @@
///the egg it carries
var/obj/carried_egg
+/datum/emote/penguin
+ mob_type_allowed_typecache = /mob/living/basic/pet/penguin
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/penguin/honk
+ key = "honk"
+ key_third_person = "honks"
+ message = "honks happily!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
/mob/living/basic/pet/penguin/Initialize(mapload)
. = ..()
@@ -24,7 +33,7 @@
AddElement(/datum/element/wears_collar)
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/ai_flee_while_injured)
- AddElement(/datum/element/pet_bonus, "honks happily!")
+ AddElement(/datum/element/pet_bonus, "honk")
AddElementTrait(TRAIT_WADDLING, INNATE_TRAIT, /datum/element/waddling)
if(!can_lay_eggs)
return
diff --git a/code/modules/mob/living/basic/pets/pet_designer.dm b/code/modules/mob/living/basic/pets/pet_designer.dm
new file mode 100644
index 0000000000000..a0cc7ca4018d9
--- /dev/null
+++ b/code/modules/mob/living/basic/pets/pet_designer.dm
@@ -0,0 +1,205 @@
+#define PET_OPTION_DOG "Dog"
+#define PET_OPTION_CAT "Cat"
+#define PET_OPTION_FOX "Fox"
+#define PET_OPTION_VERMIN "Vermin"
+#define PET_OPTION_BIRD "Bird"
+
+GLOBAL_LIST_INIT(pet_options, list(
+ PET_OPTION_DOG = list(
+ /mob/living/basic/pet/dog/corgi,
+ /mob/living/basic/pet/dog/pug,
+ /mob/living/basic/pet/dog/bullterrier,
+ /mob/living/basic/pet/dog/corgi/puppy,
+ /mob/living/basic/pet/dog/corgi/exoticcorgi,
+ ),
+ PET_OPTION_CAT = list(
+ /mob/living/basic/pet/cat/tabby,
+ /mob/living/basic/pet/cat,
+ /mob/living/basic/pet/cat/kitten,
+ ),
+ PET_OPTION_FOX = list(
+ /mob/living/basic/pet/fox,
+ ),
+ PET_OPTION_VERMIN = list(
+ /mob/living/basic/mothroach,
+ /mob/living/basic/spider/maintenance,
+ /mob/living/basic/mouse,
+ ),
+ PET_OPTION_BIRD = list(
+ /mob/living/basic/parrot,
+ ),
+))
+
+/datum/pet_customization
+ ///our selected path type
+ var/mob/living/basic/selected_path = /mob/living/basic/pet/dog/corgi
+ ///current selected specie
+ var/pet_specie = PET_OPTION_DOG
+ ///custom name to apply to our pet
+ var/custom_name
+ ///type of pet carrier to give our pet
+ var/pet_carrier_path
+ ///pet collar color to give our pet
+ var/pet_collar_type
+ ///our pet's gender
+ var/pet_gender = MALE
+ ///trick name of our pet!
+ var/pet_trick_name = "Trick"
+ ///our pet's trick moves
+ var/list/pet_trick_moves
+ ///our selected carrier
+ var/pet_carrier
+ ///our cached pet carrier icons
+ var/static/list/custom_pet_carriers
+ ///possible emotes our pet can run
+ var/static/list/pet_possible_emotes = list(
+ /datum/emote/flip,
+ /datum/emote/jump,
+ /datum/emote/spin,
+ )
+ ///list of carrier colors we can pick from
+ var/static/list/possible_colors = list(
+ "Blue" = COLOR_BLUE,
+ "Red" = COLOR_RED,
+ "Yellow" = COLOR_YELLOW,
+ "Green" = COLOR_GREEN,
+ )
+
+/datum/pet_customization/New(client/player_client)
+ . = ..()
+ if(isnull(custom_pet_carriers))
+ custom_pet_carriers = setup_pet_carriers()
+ pet_carrier = possible_colors[1]
+ GLOB.customized_pets[REF(player_client)] = src
+
+/datum/pet_customization/proc/setup_pet_carriers()
+ var/list/list_to_return = list()
+
+ var/obj/item/pet_carrier/demo_carrier = new()
+ demo_carrier.open = FALSE
+ demo_carrier.update_appearance()
+
+ for(var/color in possible_colors)
+ demo_carrier.set_greyscale(possible_colors[color])
+ list_to_return[color] = icon2base64(getFlatIcon(demo_carrier))
+ qdel(demo_carrier)
+ return list_to_return
+
+/datum/pet_customization/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "PetBuilder")
+ ui.open()
+
+/datum/pet_customization/ui_data(mob/user)
+ var/list/data = list()
+ data["pet_name"] = custom_name
+ data["pet_path"] = selected_path
+ data["pet_gender"] = pet_gender
+ data["pet_trick_name"] = pet_trick_name
+ data["pet_specie"] = pet_specie
+ data["pet_types"] = list()
+ data["pet_options"] = list()
+ for(var/pet_option in GLOB.pet_options)
+ data["pet_types"] += pet_option
+ data["pet_options"] += retrieve_pet_options(pet_option, GLOB.pet_options[pet_option])
+ data["pet_carrier"] = pet_carrier
+
+ data["carrier_options"] = list()
+ for(var/carrier_option in custom_pet_carriers)
+ data["carrier_options"] += list(list(
+ "carrier_color" = carrier_option,
+ "carrier_icon" = custom_pet_carriers[carrier_option],
+ ))
+
+ data["pet_possible_emotes"] = list()
+ for(var/datum/emote/emote as anything in pet_possible_emotes)
+ data["pet_possible_emotes"] += emote.key
+
+ return data
+
+/datum/pet_customization/ui_state(mob/user)
+ return GLOB.always_state
+
+/datum/pet_customization/proc/retrieve_pet_options(pet_specie, list/input_list)
+ var/list/pet_options = list()
+ for(var/mob/living/pet_type as anything in input_list)
+ pet_options += list(list(
+ "pet_specie" = pet_specie,
+ "pet_name" = pet_type::name,
+ "pet_icon" = pet_type:icon,
+ "pet_path" = pet_type,
+ "pet_icon_state" = pet_type::icon_state,
+ ))
+ return pet_options
+
+/datum/pet_customization/ui_act(action, params, datum/tgui/ui)
+ . = ..()
+ switch(action)
+ if("finalize_pet")
+
+ var/pet_type = text2path(params["selected_path"])
+ for(var/pet_category in GLOB.pet_options)
+ var/list/pet_list = GLOB.pet_options[pet_category]
+ if(pet_list.Find(pet_type))
+ selected_path = pet_type
+ break
+
+ var/trick_name = params["selected_trick_name"]
+ if(trick_name && sanitize_name(trick_name))
+ pet_trick_name = trick_name
+
+ var/pet_name = params["selected_pet_name"]
+ if(pet_name && sanitize_name(pet_name))
+ custom_name = pet_name
+
+ switch(params["selected_gender"])
+ if("male")
+ pet_gender = MALE
+ if("female")
+ pet_gender = FEMALE
+ if("neuter")
+ pet_gender = NEUTER
+
+ var/list/trick_moves = params["selected_trick_moves"]
+ if(length(trick_moves))
+ pet_trick_moves = trick_moves
+
+ var/selected_color = params["selected_carrier"]
+ if(!isnull(selected_color))
+ pet_carrier = selected_color
+
+ var/selected_specie = params["selected_specie"]
+ if(!isnull(selected_specie))
+ pet_specie = selected_specie
+ ui.close()
+
+ return TRUE
+
+/datum/pet_customization/proc/create_pet(mob/living/spawned, client/player_client)
+ var/obj/item/pet_carrier/carrier = new(get_turf(spawned))
+ carrier.open = FALSE
+ carrier.update_appearance()
+ var/final_color = possible_colors[pet_carrier] || COLOR_BLUE
+ carrier.set_greyscale(final_color)
+ var/mob/living/our_pet = new selected_path(get_turf(spawned)) //spawning these in nullspace leads to runtimes
+ our_pet.gender = pet_gender
+
+ if(custom_name)
+ our_pet.fully_replace_character_name(our_pet.name, custom_name)
+
+ if(pet_trick_name)
+ our_pet.ai_controller.set_blackboard_key(BB_TRICK_NAME, pet_trick_name)
+ if(pet_trick_moves)
+ our_pet.ai_controller.override_blackboard_key(BB_TRICK_SEQUENCE, pet_trick_moves)
+ our_pet.befriend(spawned)
+ carrier.add_occupant(our_pet)
+ spawned.put_in_hands(carrier, forced = TRUE)
+ GLOB.customized_pets -= REF(player_client)
+ qdel(src)
+
+#undef PET_OPTION_DOG
+#undef PET_OPTION_CAT
+#undef PET_OPTION_FOX
+#undef PET_OPTION_VERMIN
+#undef PET_OPTION_BIRD
diff --git a/code/modules/mob/living/basic/pets/sloth.dm b/code/modules/mob/living/basic/pets/sloth.dm
index 9cd7711aa0672..b1f5c61001adc 100644
--- a/code/modules/mob/living/basic/pets/sloth.dm
+++ b/code/modules/mob/living/basic/pets/sloth.dm
@@ -37,9 +37,19 @@ GLOBAL_DATUM(cargo_sloth, /mob/living/basic/sloth)
ai_controller = /datum/ai_controller/basic_controller/sloth
+/datum/emote/sloth
+ mob_type_allowed_typecache = /mob/living/basic/sloth
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/sloth/smile_slow
+ key = "ssmile"
+ key_third_person = "slowlysmiles"
+ message = "slowly smiles!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+
/mob/living/basic/sloth/Initialize(mapload)
. = ..()
- AddElement(/datum/element/pet_bonus, "slowly smiles!")
+ AddElement(/datum/element/pet_bonus, "ssmile")
AddElement(/datum/element/footstep, footstep_type = FOOTSTEP_MOB_CLAW)
AddElement(/datum/element/ai_retaliate)
AddComponent(/datum/component/tree_climber)
diff --git a/code/modules/mob/living/basic/ruin_defender/skeleton.dm b/code/modules/mob/living/basic/ruin_defender/skeleton.dm
index e6754a80a22da..5eb8fda152323 100644
--- a/code/modules/mob/living/basic/ruin_defender/skeleton.dm
+++ b/code/modules/mob/living/basic/ruin_defender/skeleton.dm
@@ -162,7 +162,7 @@
/// Skeletons mostly just beat people to death, but they'll also find and drink milk.
/datum/ai_controller/basic_controller/skeleton
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_TARGET_MINIMUM_STAT = HARD_CRIT,
BB_EMOTE_KEY = "rattles",
BB_EMOTE_CHANCE = 20,
diff --git a/code/modules/mob/living/basic/space_fauna/ant.dm b/code/modules/mob/living/basic/space_fauna/ant.dm
index 7fbbe03e631cd..3ae46b7f53947 100644
--- a/code/modules/mob/living/basic/space_fauna/ant.dm
+++ b/code/modules/mob/living/basic/space_fauna/ant.dm
@@ -36,10 +36,20 @@
ai_controller = /datum/ai_controller/basic_controller/ant
+/datum/emote/ant
+ mob_type_allowed_typecache = /mob/living/basic/ant
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/ant/clack
+ key = "clack"
+ key_third_person = "clacks"
+ message = "clacks happily!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+
/mob/living/basic/ant/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
- AddElement(/datum/element/pet_bonus, "clacks happily!")
+ AddElement(/datum/element/pet_bonus, "clack")
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW)
diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp.dm b/code/modules/mob/living/basic/space_fauna/carp/carp.dm
index f1c12cc3ce9e9..a315e253ecebc 100644
--- a/code/modules/mob/living/basic/space_fauna/carp/carp.dm
+++ b/code/modules/mob/living/basic/space_fauna/carp/carp.dm
@@ -81,6 +81,16 @@
/obj/structure/window,
))
+/datum/emote/carp
+ mob_type_allowed_typecache = /mob/living/basic/carp
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/carp/bloop
+ key = "bloop"
+ key_third_person = "bloops"
+ message = "bloops!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+
/mob/living/basic/carp/Initialize(mapload, mob/tamer)
ADD_TRAIT(src, TRAIT_FREE_HYPERSPACE_MOVEMENT, INNATE_TRAIT) //Need to set before init cause if we init in hyperspace we get dragged before the trait can be added
. = ..()
@@ -186,7 +196,7 @@
/mob/living/basic/carp/pet/Initialize(mapload)
. = ..()
AddElement(/datum/element/ai_retaliate)
- AddElement(/datum/element/pet_bonus, "bloops happily!")
+ AddElement(/datum/element/pet_bonus, "bloop")
/**
* Lia - Sometimes the pet of the Head of Security.
@@ -291,7 +301,7 @@
/mob/living/basic/carp/passive/Initialize(mapload)
. = ..()
AddComponent(/datum/component/ai_retaliate_advanced, CALLBACK(src, PROC_REF(on_attacked)))
- AddElement(/datum/element/pet_bonus, "bloops happily!")
+ AddElement(/datum/element/pet_bonus, "bloop")
ADD_TRAIT(src, TRAIT_PACIFISM, INNATE_TRAIT)
/// If someone slaps one of the school, scatter
diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm
index ae011f5b14a31..93ede010eb6d0 100644
--- a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm
+++ b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm
@@ -10,7 +10,7 @@
/datum/ai_controller/basic_controller/carp
blackboard = list(
BB_BASIC_MOB_STOP_FLEEING = TRUE,
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN,
BB_CARPS_FEAR_FISHERMAN = TRUE,
@@ -24,11 +24,11 @@
/datum/ai_planning_subtree/find_target_prioritize_traits,
/datum/ai_planning_subtree/make_carp_rift/panic_teleport,
/datum/ai_planning_subtree/flee_target/from_fisherman,
- /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/attack_obstacle_in_path/carp,
/datum/ai_planning_subtree/shortcut_to_target_through_carp_rift,
/datum/ai_planning_subtree/make_carp_rift/aggressive_teleport,
/datum/ai_planning_subtree/basic_melee_attack_subtree/no_fisherman,
+ /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/carp_migration,
)
@@ -36,7 +36,7 @@
/datum/ai_controller/basic_controller/carp/mega
blackboard = list(
BB_BASIC_MOB_STOP_FLEEING = TRUE,
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN,
BB_CARPS_FEAR_FISHERMAN = FALSE,
@@ -46,12 +46,12 @@
/datum/ai_planning_subtree/simple_find_nearest_target_to_flee,
/datum/ai_planning_subtree/make_carp_rift/panic_teleport,
/datum/ai_planning_subtree/flee_target,
- /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/find_target_prioritize_traits,
/datum/ai_planning_subtree/attack_obstacle_in_path/carp,
/datum/ai_planning_subtree/shortcut_to_target_through_carp_rift,
/datum/ai_planning_subtree/make_carp_rift/aggressive_teleport,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
+ /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/carp_migration,
)
/**
@@ -90,13 +90,13 @@
/datum/ai_planning_subtree/find_target_prioritize_traits,
/datum/ai_planning_subtree/make_carp_rift/panic_teleport,
/datum/ai_planning_subtree/flee_target/from_fisherman,
- /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/find_nearest_magicarp_spell_target,
/datum/ai_planning_subtree/targeted_mob_ability/magicarp,
/datum/ai_planning_subtree/attack_obstacle_in_path/carp,
/datum/ai_planning_subtree/shortcut_to_target_through_carp_rift,
/datum/ai_planning_subtree/make_carp_rift/aggressive_teleport,
/datum/ai_planning_subtree/basic_melee_attack_subtree/magicarp,
+ /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/carp_migration,
)
diff --git a/code/modules/mob/living/basic/space_fauna/snake/snake.dm b/code/modules/mob/living/basic/space_fauna/snake/snake.dm
index 78f7d86e0db3f..3125ae9d32351 100644
--- a/code/modules/mob/living/basic/space_fauna/snake/snake.dm
+++ b/code/modules/mob/living/basic/space_fauna/snake/snake.dm
@@ -73,7 +73,7 @@
/// Snakes are primarily concerned with getting those tasty, tasty mice, but aren't afraid to strike back at those who attack them
/datum/ai_controller/basic_controller/snake
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
)
ai_traits = STOP_MOVING_WHEN_PULLED
@@ -82,7 +82,7 @@
planning_subtrees = list(
/datum/ai_planning_subtree/target_retaliate,
- /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
+ /datum/ai_planning_subtree/find_food,
/datum/ai_planning_subtree/random_speech/snake,
)
diff --git a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.dm b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.dm
index ae971fd2558e5..18ae6fc3e7523 100644
--- a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.dm
+++ b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.dm
@@ -44,11 +44,13 @@
/datum/ai_controller/basic_controller/giant_spider/pest
blackboard = list(
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/of_size/ours_or_smaller, // Hunt mobs our size
+ BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic/of_size/larger, // Run away from mobs bigger than we are
)
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
+ /datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/target_retaliate/to_flee,
/datum/ai_planning_subtree/flee_target/from_flee_key,
/datum/ai_planning_subtree/simple_find_target,
diff --git a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm
index f293f1dcbaacd..1e78bd924a833 100644
--- a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm
+++ b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm
@@ -608,6 +608,6 @@
/mob/living/basic/spider/giant/sgt_araneus/Initialize(mapload)
. = ..()
- AddElement(/datum/element/pet_bonus, "chitters proudly!")
+ AddElement(/datum/element/pet_bonus, "chitter")
AddElement(/datum/element/ai_retaliate)
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
diff --git a/code/modules/mob/living/basic/space_fauna/spider/spider.dm b/code/modules/mob/living/basic/space_fauna/spider/spider.dm
index 118487f038392..195b814983301 100644
--- a/code/modules/mob/living/basic/space_fauna/spider/spider.dm
+++ b/code/modules/mob/living/basic/space_fauna/spider/spider.dm
@@ -49,6 +49,18 @@
/// If true then you shouldn't be told that you're a spider antagonist as soon as you are placed into this mob
var/apply_spider_antag = TRUE
+/datum/emote/spider
+ mob_type_allowed_typecache = /mob/living/basic/spider
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/spider/chitter
+ key = "chitter"
+ key_third_person = "chitters"
+ message = "chitters."
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ vary = TRUE
+ sound = 'sound/mobs/non-humanoids/insect/chitter.ogg'
+
/mob/living/basic/spider/Initialize(mapload)
. = ..()
add_traits(list(TRAIT_WEB_SURFER, TRAIT_FENCE_CLIMBER), INNATE_TRAIT)
@@ -171,10 +183,18 @@
response_harm_simple = "splat"
ai_controller = /datum/ai_controller/basic_controller/giant_spider/pest
apply_spider_antag = FALSE
+ ///list of pet commands we follow
+ var/static/list/pet_commands = list(
+ /datum/pet_command/idle,
+ /datum/pet_command/free,
+ /datum/pet_command/follow,
+ /datum/pet_command/perform_trick_sequence,
+ )
/mob/living/basic/spider/maintenance/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
AddElement(/datum/element/web_walker, /datum/movespeed_modifier/average_web)
AddElement(/datum/element/ai_retaliate)
+ AddComponent(/datum/component/obeys_commands, pet_commands)
AddElement(/datum/element/tiny_mob_hunter)
diff --git a/code/modules/mob/living/basic/vermin/lizard.dm b/code/modules/mob/living/basic/vermin/lizard.dm
index da68087d70ffa..5e3a07094a91e 100644
--- a/code/modules/mob/living/basic/vermin/lizard.dm
+++ b/code/modules/mob/living/basic/vermin/lizard.dm
@@ -46,16 +46,25 @@
/mob/living/basic/cockroach,
))
+/datum/emote/lizard
+ mob_type_allowed_typecache = /mob/living/basic/lizard
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/lizard/whicker
+ key = "tongue"
+ message = "sticks its tongue out contentedly!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+
/mob/living/basic/lizard/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
- AddElement(/datum/element/pet_bonus, "sticks its tongue out contentedly!")
+ AddElement(/datum/element/pet_bonus, "tongue")
AddElement(/datum/element/basic_eating, heal_amt = 5, food_types = edibles)
ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(edibles))
/datum/ai_controller/basic_controller/lizard
blackboard = list(
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
)
ai_traits = STOP_MOVING_WHEN_PULLED
@@ -63,7 +72,6 @@
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/find_food,
- /datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/random_speech/lizard,
)
diff --git a/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm b/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm
index 9659408b8b1aa..e4798ba2d1c6b 100644
--- a/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm
+++ b/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm
@@ -33,14 +33,32 @@
faction = list(FACTION_NEUTRAL)
ai_controller = /datum/ai_controller/basic_controller/mothroach
+ ///list of pet commands we follow
+ var/static/list/pet_commands = list(
+ /datum/pet_command/idle,
+ /datum/pet_command/free,
+ /datum/pet_command/follow,
+ /datum/pet_command/perform_trick_sequence,
+ )
+
+/datum/emote/mothroach
+ mob_type_allowed_typecache = /mob/living/basic/mothroach
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/mothroach/squeaks
+ key = "squeaks"
+ key_third_person = "squeaks"
+ message = "squeaks!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
/mob/living/basic/mothroach/Initialize(mapload)
. = ..()
var/static/list/food_types = list(/obj/item/clothing)
AddElement(/datum/element/basic_eating, food_types = food_types)
+ AddComponent(/datum/component/obeys_commands, pet_commands)
ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(food_types))
AddElement(/datum/element/ai_retaliate)
- AddElement(/datum/element/pet_bonus, "squeaks happily!")
+ AddElement(/datum/element/pet_bonus, "squeak")
add_verb(src, /mob/living/proc/toggle_resting)
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
diff --git a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm
index 5801d18321594..c9e8558ec5c45 100644
--- a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm
+++ b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm
@@ -1,40 +1,25 @@
-#define MOTHROACH_EAT_TIMER 1 MINUTES
-
/datum/ai_controller/basic_controller/mothroach
blackboard = list(
BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items,
+ BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
+ BB_EAT_FOOD_COOLDOWN = 1 MINUTES,
)
ai_traits = STOP_MOVING_WHEN_PULLED
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
+ /datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/find_food/mothroach,
/datum/ai_planning_subtree/target_retaliate/to_flee,
/datum/ai_planning_subtree/flee_target/from_flee_key,
- /datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/random_speech/mothroach,
)
-/datum/ai_controller/basic_controller/mothroach/TryPossessPawn(atom/new_pawn)
- . = ..()
- if(. & AI_CONTROLLER_INCOMPATIBLE)
- return
- RegisterSignal(new_pawn, COMSIG_MOB_ATE, PROC_REF(on_eaten))
-
-/datum/ai_controller/basic_controller/mothroach/proc/on_eaten(datum/source)
- SIGNAL_HANDLER
- set_blackboard_key(BB_MOTHROACH_NEXT_EAT, world.time + MOTHROACH_EAT_TIMER)
-
/datum/ai_planning_subtree/find_food/mothroach
finding_behavior = /datum/ai_behavior/find_and_set/in_list/mothroach_food
-/datum/ai_planning_subtree/find_food/mothroach/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
- if(world.time < controller.blackboard[BB_MOTHROACH_NEXT_EAT])
- return
- return ..()
-
/datum/ai_behavior/find_and_set/in_list/mothroach_food
/datum/ai_behavior/find_and_set/in_list/mothroach_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range)
@@ -43,5 +28,3 @@
found -= living_pawn.loc
if(length(found))
return pick(found)
-
-#undef MOTHROACH_EAT_TIMER
diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm
index cb62ad956f95c..a0c1faf971d06 100644
--- a/code/modules/mob/living/basic/vermin/mouse.dm
+++ b/code/modules/mob/living/basic/vermin/mouse.dm
@@ -36,6 +36,25 @@
var/contributes_to_ratcap = TRUE
/// Probability that, if we successfully bite a shocked cable, that we will die to it.
var/cable_zap_prob = 85
+ ///list of pet commands we follow
+ var/static/list/pet_commands = list(
+ /datum/pet_command/idle,
+ /datum/pet_command/free,
+ /datum/pet_command/follow,
+ /datum/pet_command/perform_trick_sequence,
+ )
+
+/datum/emote/mouse
+ mob_type_allowed_typecache = /mob/living/basic/mouse
+ mob_type_blacklist_typecache = list()
+
+/datum/emote/mouse/squeak
+ key = "squeak"
+ key_third_person = "squeaks"
+ message = "squeak!"
+ emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
+ vary = TRUE
+ sound = 'sound/mobs/non-humanoids/mouse/mousesqueek.ogg'
/mob/living/basic/mouse/Initialize(mapload, tame = FALSE, new_body_color)
. = ..()
@@ -55,6 +74,7 @@
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
+ AddComponent(/datum/component/obeys_commands, pet_commands)
AddElement(/datum/element/connect_loc, loc_connections)
make_tameable()
AddComponent(/datum/component/swarming, 16, 16) //max_x, max_y
@@ -270,7 +290,7 @@
. = ..()
// Tom fears no cable.
ADD_TRAIT(src, TRAIT_SHOCKIMMUNE, INNATE_TRAIT)
- AddElement(/datum/element/pet_bonus, "squeaks happily!")
+ AddElement(/datum/element/pet_bonus, "squeak")
/mob/living/basic/mouse/brown/tom/create_a_new_rat()
new /mob/living/basic/mouse/brown(loc, /* tame = */ tame) // dominant gene
@@ -383,9 +403,8 @@
/// The mouse AI controller
/datum/ai_controller/basic_controller/mouse
blackboard = list( // Always cowardly
- BB_CURRENT_HUNTING_TARGET = null, // cheese
- BB_LOW_PRIORITY_HUNTING_TARGET = null, // cable
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, // Use this to find people to run away from
+ BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_BASIC_MOB_FLEE_DISTANCE = 3,
)
@@ -393,6 +412,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
+ /datum/ai_planning_subtree/pet_planning,
// Top priority is to look for and execute hunts for cheese even if someone is looking at us
/datum/ai_planning_subtree/find_and_hunt_target/look_for_cheese,
// Next priority is see if anyone is looking at us
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index 9744bcbada7e5..dcf00435fba91 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -29,6 +29,8 @@
/obj/item/toy/toy_xeno,
/obj/item/sticker, //funny ~Jimmyl
/obj/item/toy/plush/rouny,
+ /obj/item/hand_item,
+ /obj/item/queen_promotion,
))
/mob/living/carbon/alien/Initialize(mapload)
diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm
index 05192c8918aaa..4293977edec62 100644
--- a/code/modules/mob/living/carbon/carbon_update_icons.dm
+++ b/code/modules/mob/living/carbon/carbon_update_icons.dm
@@ -1,7 +1,6 @@
/mob/living/carbon/update_obscured_slots(obscured_flags)
..()
- if(obscured_flags & (HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT|HIDEMUTWINGS))
- update_body()
+ update_body()
/// Updates features and clothing attached to a specific limb with limb-specific offsets
/mob/living/carbon/proc/update_features(feature_key)
diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm
index 10417b55a9410..c5e597818a4b8 100644
--- a/code/modules/mob/living/carbon/examine.dm
+++ b/code/modules/mob/living/carbon/examine.dm
@@ -219,6 +219,10 @@
. += "[t_He] [t_is] flushed and wheezing."
if (bodytemperature < dna.species.bodytemp_cold_damage_limit)
. += "[t_He] [t_is] shivering."
+ if(HAS_TRAIT(src, TRAIT_EVIL))
+ . += "[t_His] eyes radiate with a unfeeling, cold detachment. There is nothing but darkness within [t_his] soul."
+ living_user.add_mood_event("encountered_evil", /datum/mood_event/encountered_evil)
+ living_user.set_jitter_if_lower(15 SECONDS)
if(HAS_TRAIT(user, TRAIT_SPIRITUAL) && mind?.holy_role)
. += "[t_He] [t_has] a holy aura about [t_him]."
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 7366911cbf56c..7221c34797141 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -105,7 +105,7 @@
if(HAS_TRAIT(src, TRAIT_UNKNOWN))
to_chat(viewer, span_notice("You can't make out that ID anymore."))
return
- if(get_dist(viewer, src) > ID_EXAMINE_DISTANCE + 1) // leeway
+ if(!isobserver(viewer) && get_dist(viewer, src) > ID_EXAMINE_DISTANCE + 1) // leeway, ignored if the viewer is a ghost
to_chat(viewer, span_notice("You can't make out that ID from here."))
return
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 8ee7a43cf3245..f632621c116ea 100644
--- a/code/modules/mob/living/carbon/human/human_update_icons.dm
+++ b/code/modules/mob/living/carbon/human/human_update_icons.dm
@@ -72,8 +72,7 @@ There are several things that need to be remembered:
/mob/living/carbon/human/update_obscured_slots(obscured_flags)
..()
- if(obscured_flags & HIDEFACE)
- sec_hud_set_security_status()
+ sec_hud_set_security_status()
// SKYRAT EDIT ADDITION START - ERP Overlays
if(obscured_flags & HIDESEXTOY)
update_inv_lewd()
diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm
index 477eec5a6e90e..9d28872bacec3 100644
--- a/code/modules/mob/living/carbon/inventory.dm
+++ b/code/modules/mob/living/carbon/inventory.dm
@@ -441,6 +441,7 @@
if(offered_item.on_offered(src)) // see if the item interrupts with its own behavior
return
+ balloon_alert_to_viewers("offers something")
visible_message(span_notice("[src] is offering [offered ? "[offered] " : ""][offered_item]."), \
span_notice("You offer [offered ? "[offered] " : ""][offered_item]."), null, 2)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index e6db0cf654308..d9f13dd76c3c7 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -352,9 +352,12 @@
/mob/living/silicon/robot/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents)
if(same_z_layer || QDELING(src))
return ..()
- cut_overlay(eye_lights)
- SET_PLANE_EXPLICIT(eye_lights, PLANE_TO_TRUE(eye_lights.plane), src)
- add_overlay(eye_lights)
+
+ if(eye_lights)
+ cut_overlay(eye_lights)
+ SET_PLANE_EXPLICIT(eye_lights, PLANE_TO_TRUE(eye_lights.plane), src)
+ add_overlay(eye_lights)
+
return ..()
/mob/living/silicon/robot/proc/self_destruct(mob/usr)
diff --git a/code/modules/power/singularity/dark_matter_singularity.dm b/code/modules/power/singularity/dark_matter_singularity.dm
index 294c2063b1b98..870e298cf97cf 100644
--- a/code/modules/power/singularity/dark_matter_singularity.dm
+++ b/code/modules/power/singularity/dark_matter_singularity.dm
@@ -21,6 +21,9 @@
/obj/singularity/dark_matter/Initialize(mapload, starting_energy)
. = ..()
COOLDOWN_START(src, initial_explosion_immunity, 5 SECONDS)
+ var/datum/component/singularity/resolved_singularity = singularity_component.resolve()
+ resolved_singularity.chance_to_move_to_target = 100
+ addtimer(CALLBACK(src, PROC_REF(normalize_tracking)), 20 SECONDS)
/obj/singularity/dark_matter/examine(mob/user)
. = ..()
@@ -50,4 +53,9 @@
desc = "You managed to make a singularity from dark matter, which makes no sense at all, and then you threw a supermatter into it? Are you fucking insane? Fuck it, praise Lord Singuloth."
consumed_supermatter = TRUE
+///For 20 seconds, the singularity has buffed tracking to ensure it actually makes its way to the station, normalizes after 20 seconds
+/obj/singularity/dark_matter/proc/normalize_tracking()
+ var/datum/component/singularity/resolved_singularity = singularity_component.resolve()
+ resolved_singularity.chance_to_move_to_target = consumed_supermatter ? initial(resolved_singularity.chance_to_move_to_target) + DARK_MATTER_SUPERMATTER_CHANCE_BONUS : initial(resolved_singularity.chance_to_move_to_target)
+
#undef DARK_MATTER_SUPERMATTER_CHANCE_BONUS
diff --git a/code/modules/power/supermatter/supermatter_extra_effects.dm b/code/modules/power/supermatter/supermatter_extra_effects.dm
index 4f35c1abe7219..ffbbf566386dd 100644
--- a/code/modules/power/supermatter/supermatter_extra_effects.dm
+++ b/code/modules/power/supermatter/supermatter_extra_effects.dm
@@ -160,7 +160,7 @@
step_towards(movable_atom,center)
/proc/supermatter_anomaly_gen(turf/anomalycenter, type = FLUX_ANOMALY, anomalyrange = 5, has_changed_lifespan = TRUE)
- var/turf/local_turf = pick(orange(anomalyrange, anomalycenter))
+ var/turf/local_turf = pick(RANGE_TURFS(anomalyrange, anomalycenter))
if(!local_turf)
return
switch(type)
diff --git a/code/modules/projectiles/projectile/bullets/special.dm b/code/modules/projectiles/projectile/bullets/special.dm
index 2af0fe7b9cb9d..34f6c1e07187c 100644
--- a/code/modules/projectiles/projectile/bullets/special.dm
+++ b/code/modules/projectiles/projectile/bullets/special.dm
@@ -196,7 +196,7 @@
if(possible_victims.len)
return pick(possible_victims)
- var/list/static/prioritized_targets = list(/obj/structure/reagent_dispensers, /obj/item/grenade, /obj/structure/window)
+ var/static/list/prioritized_targets = list(/obj/structure/reagent_dispensers, /obj/item/grenade, /obj/structure/window)
for(var/iter_type in prioritized_targets)
for(var/already_coined_tries in 1 to 3)
var/atom/iter_type_check = locate(iter_type) in valid_targets
diff --git a/code/modules/reagents/chemistry/equilibrium.dm b/code/modules/reagents/chemistry/equilibrium.dm
index 6b43e441d483c..bc7cbd37f4854 100644
--- a/code/modules/reagents/chemistry/equilibrium.dm
+++ b/code/modules/reagents/chemistry/equilibrium.dm
@@ -381,7 +381,7 @@
holder.adjust_thermal_energy(heat_energy * SPECIFIC_HEAT_DEFAULT, 0, CHEMICAL_MAXIMUM_TEMPERATURE)
//Give a chance of sounds
- if(prob(5))
+ if(prob(5) && !HAS_TRAIT(holder.my_atom, TRAIT_SILENT_REACTIONS))
holder.my_atom.audible_message(span_notice("[icon2html(holder.my_atom, viewers(DEFAULT_MESSAGE_RANGE, src))] [reaction.mix_message]"))
if(reaction.mix_sound)
playsound(get_turf(holder.my_atom), reaction.mix_sound, 80, TRUE)
diff --git a/code/modules/reagents/chemistry/holder/reactions.dm b/code/modules/reagents/chemistry/holder/reactions.dm
index ebb3c0c10e92d..c5e7a1f8d0395 100644
--- a/code/modules/reagents/chemistry/holder/reactions.dm
+++ b/code/modules/reagents/chemistry/holder/reactions.dm
@@ -183,7 +183,7 @@
if(num_reactions)
SEND_SIGNAL(src, COMSIG_REAGENTS_REACTION_STEP, num_reactions, seconds_per_tick)
- if(length(mix_message)) //This is only at the end
+ if(length(mix_message) && !HAS_TRAIT(my_atom, TRAIT_SILENT_REACTIONS)) //This is only at the end
my_atom.audible_message(span_notice("[icon2html(my_atom, viewers(DEFAULT_MESSAGE_RANGE, src))] [mix_message.Join()]"))
if(!LAZYLEN(reaction_list))
@@ -210,9 +210,13 @@
stack_trace("The equilibrium datum currently processing in this reagents datum had a desynced holder to the ending reaction. src holder:[my_atom] | equilibrium holder:[equilibrium.holder.my_atom] || src type:[my_atom.type] | equilibrium holder:[equilibrium.holder.my_atom.type]")
LAZYREMOVE(reaction_list, equilibrium)
- var/reaction_message = equilibrium.reaction.mix_message
- if(equilibrium.reaction.mix_sound)
- playsound(get_turf(my_atom), equilibrium.reaction.mix_sound, 80, TRUE)
+ var/reaction_message = null
+
+ if (!HAS_TRAIT(my_atom, TRAIT_SILENT_REACTIONS))
+ reaction_message = equilibrium.reaction.mix_message
+ if(equilibrium.reaction.mix_sound)
+ playsound(get_turf(my_atom), equilibrium.reaction.mix_sound, 80, TRUE)
+
//SKYRAT EDIT ADDITION
//If the reaction pollutes, pollute it here if we have an atom
if(equilibrium.reaction.pollutant_type && my_atom)
@@ -220,6 +224,7 @@
if(my_turf) // reactions can happen in nullspace (like inside of a mob's stomach for instance).
my_turf.pollute_turf(equilibrium.reaction.pollutant_type, equilibrium.reaction.pollutant_amount * equilibrium.reacted_vol)
//SKYRAT EDIT END
+
qdel(equilibrium)
update_total()
SEND_SIGNAL(src, COMSIG_REAGENTS_REACTED, .)
@@ -263,7 +268,7 @@
if(result == reagent.type)
mix_message += end_reaction(equilibrium)
any_stopped = TRUE
- if(length(mix_message))
+ if(length(mix_message) && !HAS_TRAIT(my_atom, TRAIT_SILENT_REACTIONS))
my_atom.audible_message(span_notice("[icon2html(my_atom, viewers(DEFAULT_MESSAGE_RANGE, src))][mix_message.Join()]"))
return any_stopped
@@ -333,7 +338,7 @@
var/list/seen = viewers(4, get_turf(my_atom))
var/iconhtml = icon2html(cached_my_atom, seen)
if(cached_my_atom)
- if(!ismob(cached_my_atom)) // No bubbling mobs
+ if(!ismob(cached_my_atom) && !HAS_TRAIT(my_atom, TRAIT_SILENT_REACTIONS)) // No bubbling mobs
if(selected_reaction.mix_sound)
playsound(get_turf(cached_my_atom), selected_reaction.mix_sound, 80, TRUE)
my_atom.audible_message(span_notice("[iconhtml] [selected_reaction.mix_message]"))
diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index 8edfb38abc397..eab29727b3b25 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -121,8 +121,8 @@
SHOULD_CALL_PARENT(TRUE)
. = SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_MOB, exposed_mob, methods, reac_volume, show_message, touch_protection)
- if((methods & penetrates_skin) && exposed_mob.reagents) //smoke, foam, spray
- var/amount = round(reac_volume*clamp((1 - touch_protection), 0, 1), 0.1)
+ if(penetrates_skin & methods) // models things like vapors which penetrate the skin
+ var/amount = round(reac_volume * clamp((1 - touch_protection), 0, 1), 0.1)
if(amount >= 0.5)
exposed_mob.reagents.add_reagent(type, amount, added_purity = purity)
@@ -282,6 +282,10 @@ Primarily used in reagents/reaction_agents
purity = src.purity
return min(1-inverse_chem_val + purity + 0.01, 1) //Gives inverse reactions a 1% purity threshold for being 100% pure to appease players with OCD.
+///Called when feeding a fish. If TRUE is returned, a portion of reagent will be consumed.
+/datum/reagent/proc/used_on_fish(obj/item/fish/fish)
+ return FALSE
+
/**
* Input a reagent_list, outputs pretty readable text!
* Default output will be formatted as
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 70267be315c26..d6eec13cc552b 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -1036,7 +1036,7 @@
else
tips = world.file2list("strings/chemistrytips.txt")
var/message = pick(tips)
- send_tip_of_the_round(affected_mob, message)
+ send_tip_of_the_round(affected_mob, message, source = "Chemical-induced wisdom")
/datum/reagent/medicine/neurine
name = "Neurine"
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index b1758086444e2..ca55a19ade6a6 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -405,6 +405,7 @@
data["deciseconds_metabolized"] += (seconds_per_tick * 1 SECONDS * REM)
affected_mob.adjust_jitter_up_to(4 SECONDS * REM * seconds_per_tick, 20 SECONDS)
+ var/need_mob_update = FALSE
if(IS_CULTIST(affected_mob))
for(var/datum/action/innate/cult/blood_magic/BM in affected_mob.actions)
@@ -425,14 +426,23 @@
affected_mob.Unconscious(12 SECONDS)
to_chat(affected_mob, span_cult_large("[pick("Your blood is your bond - you are nothing without it", "Do not forget your place", \
"All that power, and you still fail?", "If you cannot scour this poison, I shall scour your meager life!")]."))
+ else if(HAS_TRAIT(affected_mob, TRAIT_EVIL) && SPT_PROB(25, seconds_per_tick)) //Congratulations, your committment to evil has now made holy water a deadly poison to you!
+ if(!IS_CULTIST(affected_mob) || affected_mob.mind?.holy_role != HOLY_ROLE_PRIEST)
+ affected_mob.emote("scream")
+ need_mob_update += affected_mob.adjustFireLoss(3 * REM * seconds_per_tick, updating_health = FALSE)
if(data["deciseconds_metabolized"] >= (1 MINUTES)) // 24 units
if(IS_CULTIST(affected_mob))
affected_mob.mind.remove_antag_datum(/datum/antagonist/cult)
affected_mob.Unconscious(10 SECONDS)
+ else if(HAS_TRAIT(affected_mob, TRAIT_EVIL)) //At this much holy water, you're probably going to fucking melt. good luck
+ if(!IS_CULTIST(affected_mob) || affected_mob.mind?.holy_role != HOLY_ROLE_PRIEST)
+ need_mob_update += affected_mob.adjustFireLoss(10 * REM * seconds_per_tick, updating_health = FALSE)
affected_mob.remove_status_effect(/datum/status_effect/jitter)
affected_mob.remove_status_effect(/datum/status_effect/speech/stutter)
holder?.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
+ if(need_mob_update)
+ return UPDATE_MOB_HEALTH
/datum/reagent/water/holywater/expose_turf(turf/exposed_turf, reac_volume)
. = ..()
@@ -583,6 +593,11 @@
if(reac_volume >= 1)
exposed_turf.MakeSlippery(lube_kind, 15 SECONDS, min(reac_volume * 2 SECONDS, 120))
+/datum/reagent/lube/used_on_fish(obj/item/fish/fish)
+ ADD_TRAIT(fish, TRAIT_FISH_FED_LUBE, type) //required for the lubefish mutation
+ addtimer(TRAIT_CALLBACK_REMOVE(fish, TRAIT_FISH_FED_LUBE, type), fish.feeding_frequency, TIMER_UNIQUE|TIMER_OVERRIDE)
+ return TRUE
+
///Stronger kind of lube. Applies TURF_WET_SUPERLUBE.
/datum/reagent/lube/superlube
name = "Super Duper Lube"
@@ -2478,6 +2493,11 @@
affected_mob.update_transform(RESIZE_DEFAULT_SIZE/current_size)
current_size = RESIZE_DEFAULT_SIZE
+/datum/reagent/growthserum/used_on_fish(obj/item/fish/fish)
+ ADD_TRAIT(fish, TRAIT_FISH_QUICK_GROWTH, type)
+ addtimer(TRAIT_CALLBACK_REMOVE(fish, TRAIT_FISH_QUICK_GROWTH, type), fish.feeding_frequency * 0.8, TIMER_UNIQUE|TIMER_OVERRIDE)
+ return TRUE
+
/datum/reagent/plastic_polymers
name = "Plastic Polymers"
description = "the petroleum based components of plastic."
diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
index a804a106f7353..c81eb5e1fb6a5 100644
--- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
@@ -312,6 +312,14 @@
affected_mob.electrocute_act(rand(5, 20), "Teslium in their body", 1, SHOCK_NOGLOVES) //SHOCK_NOGLOVES because it's caused from INSIDE of you
playsound(affected_mob, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
+/datum/reagent/teslium/used_on_fish(obj/item/fish/fish)
+ if(HAS_TRAIT_FROM(fish, TRAIT_FISH_ELECTROGENESIS, FISH_TRAIT_DATUM))
+ return FALSE
+ fish.add_traits(list(TRAIT_FISH_ON_TESLIUM, TRAIT_FISH_ELECTROGENESIS), type)
+ addtimer(TRAIT_CALLBACK_REMOVE(fish, TRAIT_FISH_ON_TESLIUM, type), fish.feeding_frequency * 0.75, TIMER_UNIQUE|TIMER_OVERRIDE)
+ addtimer(TRAIT_CALLBACK_REMOVE(fish, TRAIT_FISH_ELECTROGENESIS, type), fish.feeding_frequency * 0.75, TIMER_UNIQUE|TIMER_OVERRIDE)
+ return TRUE
+
/datum/reagent/teslium/on_mob_metabolize(mob/living/carbon/human/affected_mob)
. = ..()
if(!istype(affected_mob))
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 95f73e552be34..37451462bac2f 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -71,6 +71,11 @@
mytray.mutation_roll(user)
mytray.adjust_toxic(3) //It is still toxic, mind you, but not to the same degree.
+/datum/reagent/mutagen/used_on_fish(obj/item/fish/fish)
+ ADD_TRAIT(fish, TRAIT_FISH_MUTAGENIC, type)
+ addtimer(TRAIT_CALLBACK_REMOVE(fish, TRAIT_FISH_MUTAGENIC, type), fish.feeding_frequency * 0.8, TIMER_UNIQUE|TIMER_OVERRIDE)
+ return TRUE
+
#define LIQUID_PLASMA_BP (50+T0C)
#define LIQUID_PLASMA_IG (325+T0C)
@@ -333,7 +338,7 @@
/datum/reagent/toxin/mindbreaker/fish/on_new(data)
. = ..()
if(holder?.my_atom)
- RegisterSignals(holder.my_atom, list(COMSIG_ITEM_FRIED, TRAIT_FOOD_BBQ_GRILLED), PROC_REF(on_atom_cooked))
+ RegisterSignals(holder.my_atom, list(COMSIG_ITEM_FRIED, COMSIG_ITEM_BARBEQUE_GRILLED), PROC_REF(on_atom_cooked))
/datum/reagent/toxin/mindbreaker/fish/proc/on_atom_cooked(datum/source, cooking_time)
SIGNAL_HANDLER
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
index 69dda419d7cd3..0814834b25a51 100644
--- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
@@ -178,12 +178,12 @@
ghostie.apply_status_effect(/datum/status_effect/incapacitating/paralyzed/revenant, 2 SECONDS)
ghostie.apply_status_effect(/datum/status_effect/revenant/revealed, 10 SECONDS)
ghostie.adjust_health(50)
- for(var/mob/living/carbon/C in get_hearers_in_view(effective_size,T))
- if(IS_CULTIST(C))
- to_chat(C, span_userdanger("The divine explosion sears you!"))
- C.Paralyze(40)
- C.adjust_fire_stacks(5)
- C.ignite_mob()
+ for(var/mob/living/carbon/evil_motherfucker in get_hearers_in_view(effective_size,T))
+ if(IS_CULTIST(evil_motherfucker) || HAS_TRAIT(evil_motherfucker, TRAIT_EVIL))
+ to_chat(evil_motherfucker, span_userdanger("The divine explosion sears you!"))
+ evil_motherfucker.Paralyze(40)
+ evil_motherfucker.adjust_fire_stacks(5)
+ evil_motherfucker.ignite_mob()
..()
/datum/chemical_reaction/gunpowder
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index f6cafb535d808..42c37c50613e0 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -37,6 +37,8 @@
var/fill_icon_state = null
/// The icon file to take fill icon appearances from
var/fill_icon = 'icons/obj/medical/reagent_fillings.dmi'
+ ///The sound this container makes when picked up, dropped if there is liquid inside.
+ var/reagent_container_liquid_sound = null
/obj/item/reagent_containers/apply_fantasy_bonuses(bonus)
. = ..()
@@ -297,3 +299,13 @@
filling.color = mix_color_from_reagents(reagents.reagent_list)
. += filling
+
+/obj/item/reagent_containers/dropped(mob/user, silent)
+ . = ..()
+ if(reagent_container_liquid_sound && reagents.total_volume > 0)
+ playsound(src, reagent_container_liquid_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)
+
+/obj/item/reagent_containers/equipped(mob/user, slot, initial = FALSE)
+ . = ..()
+ if((slot & ITEM_SLOT_HANDS) && reagent_container_liquid_sound && reagents.total_volume > 0)
+ playsound(src, reagent_container_liquid_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)
diff --git a/code/modules/reagents/reagent_containers/cups/_cup.dm b/code/modules/reagents/reagent_containers/cups/_cup.dm
index 8a87661cfab77..de295778137b8 100644
--- a/code/modules/reagents/reagent_containers/cups/_cup.dm
+++ b/code/modules/reagents/reagent_containers/cups/_cup.dm
@@ -9,6 +9,7 @@
icon_state = "bottle"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi'
+ reagent_container_liquid_sound = SFX_DEFAULT_LIQUID_SLOSH
///Like Edible's food type, what kind of drink is this?
var/drink_type = NONE
diff --git a/code/modules/reagents/reagent_containers/cups/drinks.dm b/code/modules/reagents/reagent_containers/cups/drinks.dm
index c0882dbd30e18..3401f486f1201 100644
--- a/code/modules/reagents/reagent_containers/cups/drinks.dm
+++ b/code/modules/reagents/reagent_containers/cups/drinks.dm
@@ -227,6 +227,7 @@
var/mutable_appearance/cap_overlay
var/flip_chance = 10
custom_price = PAYCHECK_LOWER * 0.8
+ reagent_container_liquid_sound = SFX_PLASTIC_BOTTLE_LIQUID_SLOSH
/obj/item/reagent_containers/cup/glass/waterbottle/Initialize(mapload)
cap_overlay = mutable_appearance(cap_icon, cap_icon_state)
diff --git a/code/modules/reagents/reagent_containers/misc.dm b/code/modules/reagents/reagent_containers/misc.dm
index 8b13ab4a54beb..735fd1b9fb17a 100644
--- a/code/modules/reagents/reagent_containers/misc.dm
+++ b/code/modules/reagents/reagent_containers/misc.dm
@@ -128,6 +128,7 @@
has_variable_transfer_amount = FALSE
volume = 5
spillable = FALSE
+ reagent_container_liquid_sound = null
/obj/item/reagent_containers/cup/rag/Initialize(mapload)
. = ..()
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index a1792a9670db3..17ce2fea149f4 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -25,6 +25,7 @@
volume = 250
possible_transfer_amounts = list(5,10)
var/spray_sound = 'sound/effects/spray2.ogg'
+ reagent_container_liquid_sound = SFX_DEFAULT_LIQUID_SLOSH
/obj/item/reagent_containers/spray/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
return try_spray(interacting_with, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING
diff --git a/code/modules/religion/honorbound/honorbound_trauma.dm b/code/modules/religion/honorbound/honorbound_trauma.dm
index 6bc0879b12592..ed4ecde1592ba 100644
--- a/code/modules/religion/honorbound/honorbound_trauma.dm
+++ b/code/modules/religion/honorbound/honorbound_trauma.dm
@@ -73,6 +73,8 @@
guilty(attacked_mob, "for blasphemous magicks!")
if(HAS_TRAIT(attacked_mob, TRAIT_CULT_HALO))
guilty(attacked_mob, "for blasphemous worship!")
+ if(HAS_TRAIT(attacked_mob, TRAIT_EVIL))
+ guilty(attacked_mob, "an almost fanatical commitment to EEEEVIL!")
if(attacked_mob.mind)
var/datum/mind/guilty_conscience = attacked_mob.mind
if(guilty_conscience.has_antag_datum(/datum/antagonist/abductor))
diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm
index d7d0fa818441c..b54c4e09b2951 100644
--- a/code/modules/religion/rites.dm
+++ b/code/modules/religion/rites.dm
@@ -150,7 +150,8 @@
) = 9,
// Brain / Head
list(
- /obj/item/organ/internal/cyberimp/brain/anti_drop = 100,
+ /obj/item/organ/internal/cyberimp/brain/anti_drop = 50,
+ /obj/item/organ/internal/cyberimp/brain/connector = 50,
/obj/item/organ/internal/cyberimp/brain/anti_stun = 10,
) = 10,
// Misc
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 5daf936119076..c34411fff61cb 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -592,6 +592,23 @@
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
+/datum/design/cyberimp_connector
+ name = "CNS Skillchip Connector Implant"
+ desc = "This cybernetic adds a port to the back of your head, where you can remove or add skillchips at will."
+ id = "ci-connector"
+ build_type = PROTOLATHE | AWAY_LATHE | MECHFAB
+ construction_time = 6 SECONDS
+ materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT*6,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT*6,
+ /datum/material/titanium = SMALL_MATERIAL_AMOUNT*3,
+ )
+ build_path = /obj/item/organ/internal/cyberimp/brain/connector
+ category = list(
+ RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_MISC
+ )
+ departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
+
/datum/design/cyberimp_nutriment
name = "Nutriment Pump Implant"
desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are starving."
diff --git a/code/modules/research/techweb/nodes/cyborg_nodes.dm b/code/modules/research/techweb/nodes/cyborg_nodes.dm
index eeeed268be552..580b5380bb1ac 100644
--- a/code/modules/research/techweb/nodes/cyborg_nodes.dm
+++ b/code/modules/research/techweb/nodes/cyborg_nodes.dm
@@ -162,6 +162,7 @@
"ci-nutriment",
"ci-thrusters",
"ci-herculean",
+ "ci-connector",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm
index 89baa18720d7b..caaafd056423d 100644
--- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm
@@ -150,6 +150,10 @@ Slimecrossing Armor
slowdown = 4
var/hit_reflect_chance = 40
+/obj/item/clothing/suit/armor/heavy/adamantine/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
+
/obj/item/clothing/suit/armor/heavy/adamantine/IsReflect(def_zone)
if((def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) && prob(hit_reflect_chance))
return TRUE
diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm
index c23c370f47e93..9d181ba3255f8 100644
--- a/code/modules/shuttle/emergency.dm
+++ b/code/modules/shuttle/emergency.dm
@@ -559,7 +559,7 @@
color_override = "orange",
)
INVOKE_ASYNC(SSticker, TYPE_PROC_REF(/datum/controller/subsystem/ticker, poll_hearts))
- // SSmapping.mapvote() //If no map vote has been run yet, start one. - BUBBER EDIT we have our own map vote
+ // INVOKE_ASYNC(SSvote, TYPE_PROC_REF(/datum/controller/subsystem/vote, initiate_vote), /datum/vote/map_vote, vote_initiator_name = "Map Rotation", forced = TRUE) // BUBBER EDIT REMOVAL we have our own map vote
if(!is_reserved_level(z))
CRASH("Emergency shuttle did not move to transit z-level!")
diff --git a/code/modules/spells/spell_types/conjure/simian.dm b/code/modules/spells/spell_types/conjure/simian.dm
index b64a34f847ea7..1f1074cb981fb 100644
--- a/code/modules/spells/spell_types/conjure/simian.dm
+++ b/code/modules/spells/spell_types/conjure/simian.dm
@@ -98,7 +98,7 @@
weapon.attack_self(summoned_monkey)
// Fashionable ape wear, organised by tier
- var/list/static/monky_hats = list(
+ var/static/list/monky_hats = list(
null, // nothin here
/obj/item/clothing/head/costume/garland,
/obj/item/clothing/head/helmet/durathread,
diff --git a/code/modules/spells/spell_types/pointed/tie_shoes.dm b/code/modules/spells/spell_types/pointed/tie_shoes.dm
index b8efafaf3ba92..42c47779aea2d 100644
--- a/code/modules/spells/spell_types/pointed/tie_shoes.dm
+++ b/code/modules/spells/spell_types/pointed/tie_shoes.dm
@@ -46,7 +46,7 @@
return isliving(cast_on)
// We need to override this, as trying to change next_use_time in cast() will just result in it being overridden.
-/datum/action/cooldown/spell/touch/before_cast(atom/cast_on)
+/datum/action/cooldown/spell/pointed/untie_shoes/before_cast(atom/cast_on)
return ..() | SPELL_NO_IMMEDIATE_COOLDOWN
/datum/action/cooldown/spell/pointed/untie_shoes/cast(mob/living/carbon/cast_on)
diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm
index f71e29631b384..e9f3a88f481c3 100644
--- a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm
+++ b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm
@@ -40,7 +40,7 @@
icon_state = "brain_implant_antidrop"
var/active = FALSE
var/list/stored_items = list()
- slot = ORGAN_SLOT_BRAIN_ANTIDROP
+ slot = ORGAN_SLOT_BRAIN_CEREBELLUM
actions_types = list(/datum/action/item_action/organ_action/toggle)
/obj/item/organ/internal/cyberimp/brain/anti_drop/ui_action_click()
@@ -100,7 +100,7 @@
name = "CNS rebooter implant"
desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned."
icon_state = "brain_implant_rebooter"
- slot = ORGAN_SLOT_BRAIN_ANTISTUN
+ slot = ORGAN_SLOT_BRAIN_CNS
var/static/list/signalCache = list(
COMSIG_LIVING_STATUS_STUN,
@@ -179,6 +179,107 @@
organ_flags &= ~ORGAN_FAILING
implant_ready()
+/obj/item/organ/internal/cyberimp/brain/connector
+ name = "CNS skillchip connector implant"
+ desc = "This cybernetic adds a port to the back of your head, where you can remove or add skillchips at will."
+ icon_state = "brain_implant_connector"
+ slot = ORGAN_SLOT_BRAIN_CNS
+ actions_types = list(/datum/action/item_action/organ_action/use)
+
+/obj/item/organ/internal/cyberimp/brain/connector/ui_action_click()
+
+ to_chat(owner, span_warning("You start fiddling around with [src]..."))
+ playsound(owner, 'sound/items/taperecorder/tape_flip.ogg', 20, vary = TRUE) // asmr
+
+ if(!do_after(owner, 1.5 SECONDS, owner)) // othwerwise it doesnt appear
+ to_chat(owner, span_warning("You were interrupted!"))
+ return
+
+ if(organ_flags & ORGAN_FAILING)
+ var/holy_shit_my_brain = remove_brain()
+ if(holy_shit_my_brain)
+ to_chat(owner, span_warning("You take [holy_shit_my_brain] out of [src]. You stare at it for a moment in confusion."))
+ return
+
+ var/obj/item/skillchip/skillchip = owner.get_active_held_item()
+ if(skillchip)
+ if(istype(skillchip, /obj/item/skillchip))
+ insert_skillchip(skillchip)
+ else
+ to_chat(owner, span_warning("You try to insert [owner.get_active_held_item()] into [src], but it won't fit!")) // make it kill you if you shove a crayon inside or something
+ else // no inhand item, assume removal
+ var/obj/item/organ/internal/brain/chippy_brain = owner.get_organ_by_type(/obj/item/organ/internal/brain)
+ if(!chippy_brain)
+ CRASH("we using a brain implant wit no brain")
+ remove_skillchip(chippy_brain)
+
+/obj/item/organ/internal/cyberimp/brain/connector/proc/insert_skillchip(obj/item/skillchip/skillchip)
+ var/fail_string = owner.implant_skillchip(skillchip, force = FALSE)
+ if(fail_string)
+ to_chat(owner, span_warning(fail_string))
+ playsound(owner, 'sound/machines/buzz/buzz-sigh.ogg', 10, vary = TRUE)
+ return
+
+ var/refail_string = skillchip.try_activate_skillchip(silent = FALSE, force = FALSE)
+ if(refail_string)
+ to_chat(owner, span_warning(fail_string))
+ playsound(owner, 'sound/machines/buzz/buzz-two.ogg', 10, vary = TRUE)
+ return
+
+ // success!
+ playsound(owner, 'sound/machines/chime.ogg', 10, vary = TRUE)
+
+/obj/item/organ/internal/cyberimp/brain/connector/proc/remove_skillchip(obj/item/organ/internal/brain/chippy_brain)
+ var/obj/item/skillchip/skillchip = show_radial_menu(owner, owner, chippy_brain.skillchips)
+ if(skillchip)
+ owner.remove_skillchip(skillchip, silent = FALSE)
+ skillchip.forceMove(owner.drop_location())
+ owner.put_in_hands(skillchip, del_on_fail = FALSE)
+ playsound(owner, 'sound/machines/click.ogg', 10, vary = TRUE)
+ to_chat(owner, span_warning("You take [skillchip] out of [src]."))
+ return
+
+ to_chat(owner, span_warning("Your brain is empty!")) // heh
+
+/obj/item/organ/internal/cyberimp/brain/connector/emp_act(severity)
+ . = ..()
+ if((organ_flags & ORGAN_FAILING) || . & EMP_PROTECT_SELF)
+ return
+ organ_flags |= ORGAN_FAILING
+ var/loops = 1
+ if(severity != EMP_LIGHT)
+ loops = 2
+ for(var/i in 1 to loops)
+ // you either lose a chip or a bit of your brain
+ owner.visible_message(span_warning("Something falls to the ground from behind [owner]'s head."),\
+ span_boldwarning("You feel something fall off from behind your head."))
+ var/obj/item/organ/internal/brain/chippy_brain = owner.get_organ_by_type(ORGAN_SLOT_BRAIN)
+ var/obj/item/skillchip/skillchip = chippy_brain?.skillchips[1]
+ if(skillchip)
+ owner.remove_skillchip(skillchip, silent = TRUE)
+ skillchip.forceMove(owner.drop_location())
+ playsound(owner, 'sound/machines/terminal/terminal_eject.ogg', 25, TRUE)
+ else
+ remove_brain()
+ addtimer(CALLBACK(src, PROC_REF(reboot)), 90 / severity)
+
+/obj/item/organ/internal/cyberimp/brain/connector/proc/remove_brain(obj/item/organ/internal/brain/chippy_brain, severity = 1)
+ playsound(owner, 'sound/effects/meatslap.ogg', 25, TRUE)
+ if(!chippy_brain)
+ return
+ chippy_brain.apply_organ_damage(20 * severity)
+ chippy_brain.maxHealth -= 15 * severity // a bit of your brain fell off. again.
+ if(chippy_brain.damage >= chippy_brain.maxHealth)
+ chippy_brain.forceMove(owner.drop_location())
+ owner.visible_message(span_userdanger("[owner]'s brain falls off the back of [owner.p_their()] head!!!"), span_boldwarning("You feel like you're missing something."))
+ return chippy_brain
+
+ new /obj/effect/decal/cleanable/blood/gibs/up(get_turf(owner))
+ return FALSE
+
+/obj/item/organ/internal/cyberimp/brain/connector/proc/reboot()
+ organ_flags &= ~ORGAN_FAILING
+
//[[[[MOUTH]]]]
/obj/item/organ/internal/cyberimp/mouth
zone = BODY_ZONE_PRECISE_MOUTH
diff --git a/code/modules/tgui/states/standing.dm b/code/modules/tgui/states/standing.dm
new file mode 100644
index 0000000000000..5d6a49c401e9d
--- /dev/null
+++ b/code/modules/tgui/states/standing.dm
@@ -0,0 +1,17 @@
+/**
+ * tgui state: standing_state
+ *
+ * Checks that the user isn't incapacitated and is standing upright
+ */
+
+GLOBAL_DATUM_INIT(standing_state, /datum/ui_state/not_incapacitated_state/standing, new)
+
+/datum/ui_state/not_incapacitated_state/standing
+
+/datum/ui_state/not_incapacitated_state/standing/can_use_topic(src_object, mob/user)
+ if (!isliving(user))
+ return ..()
+ var/mob/living/living_user = user
+ if (living_user.body_position)
+ return UI_DISABLED
+ return ..()
diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm
index 234e810bc2282..a386f7ad17a1a 100644
--- a/code/modules/unit_tests/_unit_tests.dm
+++ b/code/modules/unit_tests/_unit_tests.dm
@@ -99,6 +99,7 @@
#include "bake_a_cake.dm"
#include "barsigns.dm"
#include "baseturfs.dm"
+#include "bee.dm"
#include "bespoke_id.dm"
#include "binary_insert.dm"
#include "bitrunning.dm"
@@ -118,6 +119,7 @@
#include "circuit_component_category.dm"
#include "client_colours.dm"
#include "closets.dm"
+#include "clothing_drops_items.dm"
#include "clothing_under_armor_subtype_check.dm"
#include "combat.dm"
#include "combat_stamina.dm"
@@ -133,6 +135,7 @@
#include "dcs_get_id_from_elements.dm"
#include "designs.dm"
#include "dismemberment.dm"
+#include "dna_infusion.dm"
#include "door_access.dm"
#include "dragon_expiration.dm"
#include "drink_icons.dm"
@@ -209,7 +212,6 @@
#include "operating_table.dm"
#include "orderable_items.dm"
#include "organ_bodypart_shuffle.dm"
-#include "organ_set_bonus.dm"
#include "organs.dm"
#include "orphaned_genturf.dm"
#include "outfit_sanity.dm"
diff --git a/code/modules/unit_tests/bee.dm b/code/modules/unit_tests/bee.dm
new file mode 100644
index 0000000000000..dad3a4d1a7372
--- /dev/null
+++ b/code/modules/unit_tests/bee.dm
@@ -0,0 +1,15 @@
+/// Test beegent transfer
+/datum/unit_test/beegent
+
+/datum/unit_test/beegent/Run()
+ var/mob/living/basic/bee/bee = allocate(__IMPLIED_TYPE__)
+ var/turf/bee_turf = get_turf(bee)
+ var/datum/reagent/picked = GLOB.chemical_reagents_list[/datum/reagent/toxin/fentanyl]
+ bee.assign_reagent(picked)
+ bee.death()
+ var/obj/item/trash/bee/dead_bee = locate() in bee_turf
+ TEST_ASSERT_NOTNULL(dead_bee, "The bee did not leave a corpse.")
+ TEST_ASSERT_EQUAL(dead_bee.beegent, picked, "The bee's corpse did not have the correct beegent assigned.")
+ TEST_ASSERT(dead_bee.reagents.has_reagent(/datum/reagent/toxin/fentanyl), "The bee's corpse did not contain any of the beegent.")
+ // clean up, we aren't allocated
+ QDEL_NULL(dead_bee)
diff --git a/code/modules/unit_tests/clothing_drops_items.dm b/code/modules/unit_tests/clothing_drops_items.dm
new file mode 100644
index 0000000000000..8f1653bf4b6d2
--- /dev/null
+++ b/code/modules/unit_tests/clothing_drops_items.dm
@@ -0,0 +1,53 @@
+/// Tests that removing a piece of clothing drops items that hold said piece of clothing
+/datum/unit_test/clothing_drops_items
+
+/datum/unit_test/clothing_drops_items/Run()
+ test_human()
+ test_android()
+
+/datum/unit_test/clothing_drops_items/proc/test_human()
+ var/list/dummy_items = allocate_items()
+ var/mob/living/carbon/human/consistent/dummy = allocate(__IMPLIED_TYPE__)
+
+ for(var/slot in dummy_items)
+ TEST_ASSERT(dummy.equip_to_slot_if_possible(dummy_items[slot], text2num(slot)), \
+ "[/datum/species/human::name] Dummy failed to equip one of the starting items ([dummy_items[slot]]). Test aborted.")
+
+ dummy.dropItemToGround(dummy.w_uniform)
+
+ for(var/slot in dummy_items)
+ var/obj/item/item = dummy_items[slot]
+ if(item.slot_flags & ITEM_SLOT_ICLOTHING)
+ continue
+ else if(item.slot_flags & (ITEM_SLOT_BACK|ITEM_SLOT_FEET))
+ TEST_ASSERT_EQUAL(item.loc, dummy, "[item] should not have been dropped when unequipping the jumpsuit from \a [/datum/species/human::name].")
+ else
+ TEST_ASSERT_EQUAL(item.loc, dummy.loc, "[item] should have been dropped when unequipping the jumpsuit from \a [/datum/species/human::name].")
+
+/datum/unit_test/clothing_drops_items/proc/test_android()
+ var/list/robo_dummy_items = allocate_items()
+ var/mob/living/carbon/human/consistent/robo_dummy = allocate(__IMPLIED_TYPE__)
+ robo_dummy.set_species(/datum/species/android)
+
+ for(var/slot in robo_dummy_items)
+ TEST_ASSERT(robo_dummy.equip_to_slot_if_possible(robo_dummy_items[slot], text2num(slot)), \
+ "[/datum/species/android::name] Dummy failed to equip one of the starting items ([robo_dummy_items[slot]]). Test aborted.")
+
+ robo_dummy.dropItemToGround(robo_dummy.w_uniform)
+
+ for(var/slot in robo_dummy_items)
+ var/obj/item/item = robo_dummy_items[slot]
+ if(item.slot_flags & ITEM_SLOT_ICLOTHING)
+ continue
+ TEST_ASSERT_EQUAL(item.loc, robo_dummy, "[item] should not have been dropped when unequipping the jumpsuit from \a [/datum/species/android::name].")
+
+/datum/unit_test/clothing_drops_items/proc/allocate_items()
+ return list(
+ "[ITEM_SLOT_ICLOTHING]" = allocate(/obj/item/clothing/under/color/rainbow), // do this one first, it holds everything
+ "[ITEM_SLOT_FEET]" = allocate(/obj/item/clothing/shoes/jackboots),
+ "[ITEM_SLOT_BELT]" = allocate(/obj/item/storage/belt/utility),
+ "[ITEM_SLOT_BACK]" = allocate(/obj/item/storage/backpack),
+ "[ITEM_SLOT_ID]" = allocate(/obj/item/card/id/advanced/gold/captains_spare),
+ "[ITEM_SLOT_RPOCKET]" = allocate(/obj/item/assembly/flash/handheld),
+ "[ITEM_SLOT_LPOCKET]" = allocate(/obj/item/toy/plush/lizard_plushie),
+ )
diff --git a/code/modules/unit_tests/dcs_check_list_arguments.dm b/code/modules/unit_tests/dcs_check_list_arguments.dm
index 67d7417062b27..769574cf95f29 100644
--- a/code/modules/unit_tests/dcs_check_list_arguments.dm
+++ b/code/modules/unit_tests/dcs_check_list_arguments.dm
@@ -11,7 +11,7 @@
*
* Most of the time, you won't encounter two different static lists with similar contents used as element args,
* meaning using static lists is accepted. However, should that happen, it's advised to replace the instances
- * with various string_x procs: lists, assoc_lists, assoc_nested_lists or numbers_list, depending on the type.
+ * with either string_list(), string_assoc_list(), string_assoc_nested_list() or string_numbers_list(), depending on the contents of the list.
*
* In the case of an element where the position of the contents of each datum list argument is important,
* ELEMENT_DONT_SORT_LIST_ARGS should be added to its flags, to prevent such issues where the contents are similar
@@ -51,5 +51,5 @@
TEST_FAIL("Found [length(bad_lists)] datum list arguments with similar contents for [element_type]. Contents: [json_encode(unsorted_list)].")
///Let's avoid sending the same instructions over and over, as it's just going to clutter the CI and confuse someone.
if(we_failed)
- TEST_FAIL("Ensure that each list is static or cached. string_lists() (as well as similar procs) is your friend here.\n\
+ TEST_FAIL("Ensure that each list is static or cached. string_list() (as well as similar procs) is your friend here.\n\
Check the documentation from dcs_check_list_arguments.dm for more information!")
diff --git a/code/modules/unit_tests/organ_set_bonus.dm b/code/modules/unit_tests/dna_infusion.dm
similarity index 87%
rename from code/modules/unit_tests/organ_set_bonus.dm
rename to code/modules/unit_tests/dna_infusion.dm
index 8e2c65270f779..0df63be644b98 100644
--- a/code/modules/unit_tests/organ_set_bonus.dm
+++ b/code/modules/unit_tests/dna_infusion.dm
@@ -1,3 +1,16 @@
+///Check that input types that aren't living mobs have the TRAIT_VALID_DNA_INFUSION trait
+/datum/unit_test/valid_dna_infusion
+
+/datum/unit_test/valid_dna_infusion/Run()
+ for(var/datum/infuser_entry/infuser_entry as anything in flatten_list(GLOB.infuser_entries))
+ for(var/input_type as anything in infuser_entry.input_obj_or_mob)
+ if(ispath(input_type, /mob/living))
+ continue
+ var/atom/movable/movable = allocate(input_type)
+ if(!HAS_TRAIT(movable, TRAIT_VALID_DNA_INFUSION))
+ //TEST_FAIL() doesn't early return the unit test so we can keep checking.
+ TEST_FAIL("[input_type] is in the 'input_obj_or_mob' list for [infuser_entry.type] but doesn't have TRAIT_VALID_DNA_INFUSION.")
+
/// Checks that all "organ_set_bonus" status effects have unique "id" vars.
/// Required to ensure that the status effects are treated as "unique".
/datum/unit_test/organ_set_bonus_id
diff --git a/code/modules/vehicles/mecha/mecha_movement.dm b/code/modules/vehicles/mecha/mecha_movement.dm
index dcd6f47c4fc05..a4b21190a1ec3 100644
--- a/code/modules/vehicles/mecha/mecha_movement.dm
+++ b/code/modules/vehicles/mecha/mecha_movement.dm
@@ -29,6 +29,11 @@
/obj/vehicle/sealed/mecha/proc/play_stepsound()
if(mecha_flags & QUIET_STEPS)
return
+
+ // if we are on the second step of the diagonal movement, don't play step sound
+ if(src.moving_diagonally == SECOND_DIAG_STEP)
+ return
+
playsound(src, stepsound, 40, TRUE)
// Do whatever you do to mobs to these fuckers too
@@ -131,9 +136,8 @@
break
//if we're not facing the way we're going rotate us
+ // if we're not strafing or if we are forced to rotate or if we are holding down the key
if(dir != direction && (!strafe || forcerotate || keyheld))
- if(dir != direction && !(mecha_flags & QUIET_TURNS) && !step_silent)
- playsound(src,turnsound,40,TRUE)
setDir(direction)
if(keyheld || !pivot_step) //If we pivot step, we don't return here so we don't just come to a stop
return TRUE
@@ -141,6 +145,11 @@
set_glide_size(DELAY_TO_GLIDE_SIZE(movedelay))
//Otherwise just walk normally
. = try_step_multiz(direction)
+
+ //dir and olddir are the current direction of the sprite and the old direction of the sprite respectively
+ if (dir != olddir && !(mecha_flags & QUIET_TURNS))
+ playsound(src, turnsound, 40, TRUE)
+
if(phasing)
use_energy(phasing_energy_drain)
if(strafe)
diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm
index d9fddd07f1731..21f61f9a98b28 100644
--- a/code/modules/vending/cola.dm
+++ b/code/modules/vending/cola.dm
@@ -36,6 +36,40 @@
extra_price = PAYCHECK_CREW
payment_department = ACCOUNT_SRV
+ var/static/list/spiking_booze = list(
+ // Your "common" spiking booze
+ /datum/reagent/consumable/ethanol/vodka = 5,
+ /datum/reagent/consumable/ethanol/beer = 5,
+ /datum/reagent/consumable/ethanol/whiskey = 5,
+ /datum/reagent/consumable/ethanol/gin = 5,
+ /datum/reagent/consumable/ethanol/rum = 5,
+ // A bit rarer, can be dangerous if you take too much
+ /datum/reagent/consumable/ethanol/thirteenloko = 3,
+ /datum/reagent/consumable/ethanol/absinthe = 3,
+ /datum/reagent/consumable/ethanol/hooch = 3,
+ /datum/reagent/consumable/ethanol/moonshine = 3,
+ // Gets funky here
+ /datum/reagent/consumable/ethanol/beepsky_smash = 1,
+ /datum/reagent/consumable/ethanol/gargle_blaster = 1,
+ /datum/reagent/consumable/ethanol/neurotoxin = 1,
+ )
+
+/obj/machinery/vending/cola/on_dispense(obj/item/vended_item)
+ // 35% chance that your drink will be safe, as safe pure acid and sugar that these drinks probably are can be
+ if(!onstation || !HAS_TRAIT(SSstation, STATION_TRAIT_SPIKED_DRINKS) || !prob(65))
+ return
+ // Don't fill booze with more booze
+ if (isnull(vended_item.reagents) || vended_item.reagents.has_reagent(/datum/reagent/consumable/ethanol, check_subtypes = TRUE))
+ return
+ var/removed_volume = vended_item.reagents.remove_all(rand(5, vended_item.reagents.maximum_volume * 0.5))
+ if (!removed_volume)
+ return
+ // Don't want bubbling sodas when we add some rum to cola
+ ADD_TRAIT(vended_item, TRAIT_SILENT_REACTIONS, VENDING_MACHINE_TRAIT)
+ vended_item.reagents.add_reagent(pick_weight(spiking_booze), removed_volume)
+ vended_item.reagents.handle_reactions()
+ REMOVE_TRAIT(vended_item, TRAIT_SILENT_REACTIONS, VENDING_MACHINE_TRAIT)
+
/obj/item/vending_refill/cola
machine_name = "Robust Softdrinks"
icon_state = "refill_cola"
diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm
index 98a77c7f40c3d..ce51c196746d2 100644
--- a/code/modules/vending/games.dm
+++ b/code/modules/vending/games.dm
@@ -45,7 +45,7 @@
/obj/item/stack/pipe_cleaner_coil/random = 10,
),
),
- list(
+ list(
"name" = "Fishing",
"icon" = "fish",
"products" = list(
@@ -54,6 +54,7 @@
/obj/item/storage/box/fishing_lines = 2,
/obj/item/storage/box/fishing_lures = 2,
/obj/item/book/manual/fish_catalog = 5,
+ /obj/item/fish_feed = 4,
/obj/item/fish_analyzer = 2,
/obj/item/fishing_rod/telescopic = 1,
),
@@ -96,6 +97,7 @@
/obj/item/clothing/shoes/wheelys/skishoes = 4,
/obj/item/instrument/musicalmoth = 1,
/obj/item/gun/ballistic/revolver/russian = 1, //the most dangerous game
+ /obj/item/skillchip/acrobatics = 1,
)
premium = list(
/obj/item/disk/holodisk = 5,
diff --git a/html/changelogs/archive/2024-11.yml b/html/changelogs/archive/2024-11.yml
index 416ad6175c7a9..8a01e45b0f0f0 100644
--- a/html/changelogs/archive/2024-11.yml
+++ b/html/changelogs/archive/2024-11.yml
@@ -431,3 +431,146 @@
NullDagaf:
- rscadd: added bellies
- rscadd: added butts
+ Absolucy:
+ - bugfix: Allow dot radio prefixes to also work with the tgui-say radio prefix display.
+ Ben10Omintrix:
+ - code_imp: animals' food hunting behavior has been refactored, please report any
+ bugs
+ - rscadd: adds a new station trait, "bring your pet to work" day
+ - bugfix: fixes ashdrake arena attack not clearing out lavaland walls
+ Cruix:
+ - bugfix: Fixed chameleon clothing sometimes making you bald or hiding other parts
+ of your sprite.
+ DATA-xPUNGED:
+ - bugfix: Xeno queens can once again promote Drones to Praetorians
+ - bugfix: They can also once again do hand emotes
+ - bugfix: Ghosts can now see the details of an ID from any distance
+ - bugfix: Server Hopping should fade your screen into black, as it should.
+ EEASAS:
+ - bugfix: adds plasma to wawastation's xenobio
+ EnterTheJake:
+ - bugfix: Dark matter singularity no longer gets stuck on other z levels when summoned.
+ - bugfix: Space Phase now makes the Heretic Space proof.
+ EuSouAFazer:
+ - balance: '[TGC] Rebalances nearly every card in the game.'
+ - balance: '[TGC] Several keywords had their effects modified.'
+ - bugfix: '[TGC] Black Gaia is no longer an "Artifact", Fryer no longer mentions
+ tapping it.'
+ - spellcheck: '[TGC] Replaced "Tap this card:" with just "Tap:" alongside other
+ wording improvements'
+ - spellcheck: '[TGC] Mana has been replaced with Plasma. This is a completely cosmetic
+ change.'
+ - refactor: '[TGC] Merged many, many redudant card subtypes (the mechanic, not the
+ byond code stuff) into more comprehensive ones.'
+ FlufflesTheDog:
+ - bugfix: Mops and similar work properly on multi-z stations
+ Ghommie:
+ - bugfix: Fish like slimefish, unmarine bonemass and deepfryer fish can now be used
+ for DNA infusions.
+ - rscadd: The fishing skillchip now grants an action that dispenses fishing tips.
+ - rscadd: You can buy a fishing rod pre-equipped with a rescue hook from the mining
+ order console.
+ - balance: Paramedics can get a rescue fishing hook as a heirloom.
+ - bugfix: fixed fish infusion. Whoopsies.
+ - rscadd: Feeding fish certain reagents may have some effects. Mutagen for increased
+ evolution probability. Growth serum for faster growth. Teslium for electrogenesis.
+ - bugfix: The fishing portal generator (fish-porter 3000) now correctly links with
+ lava turfs from lavaland.
+ Hardly3D:
+ - spellcheck: fixes a small error in text when adjusting kitsune masks
+ Iajret:
+ - bugfix: health analyzers will show if your heart is missing once again
+ Jewelry-x:
+ - bugfix: fixed reagents not being applied correctly by venomous mobs
+ - bugfix: dead borgs no longer become invisible upon changing z level
+ - bugfix: the ghost "t-ray view" no longer requires a double press to activate a
+ second time.
+ - qol: renamed "t-ray view" to "t-ray scan" for clarity.
+ - bugfix: fixed mech step sound playing twice diagonally
+ - bugfix: fixed turn sound playing every time you move diagonally, now only plays
+ when the sprite turns
+ KazooBard:
+ - rscadd: More cardboard cutout icons (Pirate, ninja, changeling, heretic, abductor)
+ Mamaii:
+ - rscadd: shower will give felinids negative mood effect
+ - bugfix: fixed shower hater status effect alert not showing
+ Melbert:
+ - bugfix: Fixed medipens injecting 2x their contents
+ - bugfix: Fixes stuff staying on your body after removing your clothes
+ - bugfix: Dead bees maintain their color and reagents
+ Qwertytoforty:
+ - bugfix: Anomalies no longer spawn in objects or mobs from the supermatter.
+ SmArtKar:
+ - bugfix: Untie shoes should have its cooldown increased correctly when casting
+ it from a long distance
+ - qol: Jetpack movement near walls should be much smoother
+ - spellcheck: Fixed a typo in multiple lives component
+ - balance: You can no longer view operating computer UI while lying down
+ - rscadd: New station trait "Spiked Drinks" that will add booze to most sodas has
+ been added to rotation.
+ - bugfix: Ghosts can no longer cut people's tethers
+ StrangeWeirdKitten:
+ - admin: The Law Panel now properly logs and communicates law edits.
+ Striders13:
+ - balance: replaced gas mask fov with pepperspray applying tint to gas masks, making
+ the wearer blind until washed off.
+ SyncIt21:
+ - bugfix: you can drop/put drone tools back in the toolbox
+ - bugfix: you cannot dump the contents of the drone toolbox
+ YakumoChen:
+ - spellcheck: Proofreads some faxes sent during radioactive nebulae
+ ZephyrTFA:
+ - qol: map votes are now winner take all instead of weighted.
+ Zydras, RimiNosha:
+ - map: Biodome got a ton of fixes and tweaks, send feedback to RimiNosha so more
+ can be done!
+ carlarctg:
+ - rscadd: Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip
+ allows you to bypass the emote cooldown when flipping or spinning. However,
+ if used too often, it will lower the chip's integrity and cause malfunctions.
+ - rscadd: Added the Chipped quirk. It allows you to spawn with one base skillchip.
+ (not the one above)
+ - rscadd: Added the Chip Connector quirk. It contains a new implant, the chip connector,
+ which allows you to install and take out skillchips at any time.
+ - code_imp: Renamed the organ slots for brain implants and made the connector implant
+ take the CNS slot.
+ - rscadd: you can use lizards to get lizard organs in the dna infuser
+ grungussuss:
+ - sound: plate armor now makes sound when moving around in it
+ - sound: helmets and their visors make sounds now
+ - code_imp: cleaned up laser tag helmet code a bit
+ - sound: ballistics have new handling sounds
+ - sound: gas analyzer now has handling sounds
+ - sound: reagent containers now make sounds if there is liquid in them when picked
+ up or dropped
+ - sound: fire extinguishers now make sounds when dropped or picked up
+ - bugfix: a lot of items that shouldn't slosh when picked up will no longer slosh
+ - balance: all chainsaws can now behead people
+ - bugfix: removed a few var edits from maps
+ - sound: medical, jani, soulstone, grenade belts got sounds
+ - rscadd: a lot of basic mobs and pets got new emotes
+ - refactor: emotes triggered by petting pets work differently now, please report
+ any oddities with these behaviors.
+ - sound: new emotes for basic mobs got sounds
+ - qol: offering an item displays a balloon alert
+ - sound: cards have new handling sounds
+ - bugfix: snore emote works properly now
+ junkgle01:
+ - image: resprited surplus limbs
+ necromanceranne:
+ - rscadd: Fundamentally Evil quirk. You might act normal, but you know deep down
+ that you totally don't give a shit about anyone but yourself. Empaths better
+ watch out.
+ - bugfix: Pyrokinesis/Cryokinesis cast range matches its projectile range.
+ - code_imp: Pyrokinesis and Cindikinesis are now their own types and not subtypes
+ of Cryokinesis and Geladikinesis. This allows you to not have to mutate yourself
+ in a specific order to not lock yourself out of the other mutation.
+ unit0016:
+ - bugfix: Shuttles that land next to plasma turfs no longer ruin the mass hallucination
+ that is Icebox having Plasma and not just super-deadly; spiky basalt deltas.
+ You're welcome; unreality fans.
+ vinylspiders:
+ - bugfix: fixes a bunch of improper static list declarations
+ wonderinghost:
+ - rscadd: Adds a few lights
+ - bugfix: removes the darkspot in wawa med
diff --git a/icons/hud/lobby/signup_button.dmi b/icons/hud/lobby/signup_button.dmi
index e015fa71948a3..26d32e9af8384 100644
Binary files a/icons/hud/lobby/signup_button.dmi and b/icons/hud/lobby/signup_button.dmi differ
diff --git a/icons/mob/augmentation/surplus_augments.dmi b/icons/mob/augmentation/surplus_augments.dmi
index 0fafab0533694..82e83ec27d76b 100644
Binary files a/icons/mob/augmentation/surplus_augments.dmi and b/icons/mob/augmentation/surplus_augments.dmi differ
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index ebcfea5967596..f38ce00161941 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index b8fd65ec07206..4639b290fe371 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi
index a9366894d7bf3..06ed0e7058d1d 100644
Binary files a/icons/obj/medical/organs/organs.dmi and b/icons/obj/medical/organs/organs.dmi differ
diff --git a/icons/obj/pet_carrier.dmi b/icons/obj/pet_carrier.dmi
index 0a2b4f6c430e9..366fddd414412 100644
Binary files a/icons/obj/pet_carrier.dmi and b/icons/obj/pet_carrier.dmi differ
diff --git a/modular_skyrat/modules/automapper/code/area_spawn_subsystem.dm b/modular_skyrat/modules/automapper/code/area_spawn_subsystem.dm
index 89fd12bd40744..63bd3bab57b61 100644
--- a/modular_skyrat/modules/automapper/code/area_spawn_subsystem.dm
+++ b/modular_skyrat/modules/automapper/code/area_spawn_subsystem.dm
@@ -263,7 +263,7 @@ SUBSYSTEM_DEF(area_spawn)
/// See code/__DEFINES/~skyrat_defines/automapper.dm
var/mode = AREA_SPAWN_MODE_OPEN
/// Map blacklist, this is used to determine what maps we should not spawn on.
- var/list/blacklisted_stations = list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test", "Blueshift")
+ var/list/blacklisted_stations = list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test", "Blueshift", "Biodome")
/// If failing to find a suitable area is OK, then this should be TRUE or CI will fail.
/// Should probably be true if the target_areas are random, such as ruins.
var/optional = FALSE
diff --git a/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm b/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm
index eb9ab470ebf2d..13a7ced1ba5bf 100644
--- a/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm
+++ b/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm
@@ -55,7 +55,6 @@
clothing_flags = MASKINTERNALS
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
- has_fov = FALSE
greyscale_config = /datum/greyscale_config/clown_mask
greyscale_config_worn = /datum/greyscale_config/clown_mask/worn
greyscale_colors = "#FFFFFF#F20018#0000FF#00CC00"
@@ -80,7 +79,6 @@
icon_state = "respirator"
inhand_icon_state = "sechailer"
w_class = WEIGHT_CLASS_SMALL
- has_fov = FALSE
clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEFACIALHAIR|HIDESNOUT
flags_cover = MASKCOVERSMOUTH
diff --git a/modular_skyrat/modules/implants/code/augments_internal.dm b/modular_skyrat/modules/implants/code/augments_internal.dm
index ea4158bfc2386..1d52cedeacf74 100644
--- a/modular_skyrat/modules/implants/code/augments_internal.dm
+++ b/modular_skyrat/modules/implants/code/augments_internal.dm
@@ -3,7 +3,7 @@
desc = "This implant will automatically attempt to jolt you awake when it detects you have fallen unconscious outside of REM sleeping cycles. Has a short cooldown. Conflicts with the CNS Rebooter, making them incompatible with eachother."
icon_state = "brain_implant_rebooter"
implant_color = "#0356fc"
- slot = ORGAN_SLOT_BRAIN_ANTISTUN //One or the other, not both.
+ slot = ORGAN_SLOT_BRAIN_CNS //One or the other, not both.
var/cooldown
/obj/item/organ/internal/cyberimp/brain/anti_sleep/on_life(seconds_per_tick, times_fired)
diff --git a/modular_skyrat/modules/synths/code/bodyparts/brain.dm b/modular_skyrat/modules/synths/code/bodyparts/brain.dm
index 266ff17255057..824c3df27e05f 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/brain.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/brain.dm
@@ -38,7 +38,7 @@
to_chat(owner, span_warning("Alert: Electromagnetic damage taken in central processing unit. Error Code: 401-YT"))
apply_organ_damage(SYNTH_ORGAN_LIGHT_EMP_DAMAGE, SYNTH_EMP_BRAIN_DAMAGE_MAXIMUM, required_organ_flag = ORGAN_ROBOTIC)
-/obj/item/organ/internal/brain/synth/apply_organ_damage(damage_amount, maximumm, required_organ_flag)
+/obj/item/organ/internal/brain/synth/apply_organ_damage(damage_amount, maximum = maxHealth, required_organ_flag = NONE)
. = ..()
if(owner && damage > 0 && (world.time - last_message_time) > SYNTH_BRAIN_DAMAGE_MESSAGE_INTERVAL)
diff --git a/modular_zubbers/code/game/objects/effects/landmarks.dm b/modular_zubbers/code/game/objects/effects/landmarks.dm
index 17945051bceed..9b51680912549 100644
--- a/modular_zubbers/code/game/objects/effects/landmarks.dm
+++ b/modular_zubbers/code/game/objects/effects/landmarks.dm
@@ -20,3 +20,9 @@
/datum/controller/subsystem/job/
var/list/latejoin_override_trackers = list()
+
+/obj/effect/landmark/navigate_destination/cryo
+ location = "Cryopods"
+
+/obj/effect/landmark/navigate_destination/dockpublicmining
+ location = "Public Mining"
diff --git a/modular_zubbers/code/modules/nyamagotchi/nyamagotchi.dm b/modular_zubbers/code/modules/nyamagotchi/nyamagotchi.dm
index 6fea8b7104da3..6b8e985858cea 100644
--- a/modular_zubbers/code/modules/nyamagotchi/nyamagotchi.dm
+++ b/modular_zubbers/code/modules/nyamagotchi/nyamagotchi.dm
@@ -2,12 +2,12 @@
#define ANIMAL_ALIVE 1
#define ANIMAL_DEAD 2
-#define MEOW_NORMAL 'sound/creatures/cat/cat_meow1.ogg'
+#define MEOW_NORMAL 'sound/mobs/non-humanoids/cat/cat_meow1.ogg'
#define MEOW_SAD 'modular_zubbers/code/modules/nyamagotchi/sound/cat_sad.ogg'
#define MEOW_CRITICAL 'modular_zubbers/code/modules/nyamagotchi/sound/cat_alert.ogg'
#define EAT_FOOD 'modular_zubbers/code/modules/nyamagotchi/sound/cat_eat.ogg'
-#define PURR_PLAY 'sound/creatures/cat/cat_purr1.ogg'
-#define PURR_SLEEP 'sound/creatures/cat/cat_purr3.ogg'
+#define PURR_PLAY 'sound/mobs/non-humanoids/cat/cat_purr1.ogg'
+#define PURR_SLEEP 'sound/mobs/non-humanoids/cat/cat_purr3.ogg'
/obj/item/toy/nyamagotchi
name = "Nyamagotchi"
diff --git a/modular_zubbers/code/modules/~donator/mothdonator.dm b/modular_zubbers/code/modules/~donator/mothdonator.dm
index 41aec317dcb4b..d4b4cafe82b58 100644
--- a/modular_zubbers/code/modules/~donator/mothdonator.dm
+++ b/modular_zubbers/code/modules/~donator/mothdonator.dm
@@ -32,45 +32,8 @@
if(held_mob != null)
held_mob.desc = desc
-/mob/living/basic/mothroach/pet
- name = "pet mothroach"
- desc = "A domestic mothroach that has learnt commands."
-
- ai_controller = /datum/ai_controller/basic_controller/mothroach/pet
-
- // doesn't include attack bc mothroaches are prolly too weak for that
- var/static/list/pet_commands = list(
- /datum/pet_command/idle,
- /datum/pet_command/free,
- /datum/pet_command/good_boy,
- /datum/pet_command/follow,
- /datum/pet_command/point_targeting/fetch,
- /datum/pet_command/play_dead,
- )
-
-/mob/living/basic/mothroach/pet/Initialize(mapload)
- . = ..()
- AddComponent(/datum/component/obeys_commands, pet_commands)
-
-/mob/living/basic/mothroach/pet/gib()
- // Peoples' bespoke pets probably shouldn't be gibbable.
- // This is both for RP reasons (don't force people to RP permanent pet death) and to prevent griefing.
- return
-
-/datum/ai_controller/basic_controller/mothroach/pet
- blackboard = list(
- BB_VISION_RANGE = AI_DOG_VISION_RANGE,
- BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
- )
- planning_subtrees = list(
- /datum/ai_planning_subtree/random_speech/mothroach,
- /datum/ai_planning_subtree/pet_planning,
- )
-
-
-
/// == DONATOR PET: Mr. Fluff, Central's Mothroach, ckey centralsmith ==
-/mob/living/basic/mothroach/pet/mr_fluff
+/mob/living/basic/mothroach/mr_fluff
name = "Mr. Fluff"
desc = "Central's beloved pet mothroach, Mr. Fluff. He looks so happy to be here!"
gender = MALE
@@ -84,8 +47,8 @@
desc = "Central's beloved pet mothroach, Mr. Fluff. He looks so happy to be here!"
icon = 'modular_zubbers/icons/mob/donator_pets.dmi'
icon_state = "mr_fluff"
+ starting_pet = /mob/living/basic/mothroach/mr_fluff
- starting_pet = /mob/living/basic/mothroach/pet/mr_fluff
//FIND A BETTER SPOT FOR THIS
/datum/preference/choiced/pet_gender
category = PREFERENCE_CATEGORY_MANUALLY_RENDERED
diff --git a/modular_zubbers/master_files/code/game/objects/effects/spawners/random/decoration.dm b/modular_zubbers/master_files/code/game/objects/effects/spawners/random/decoration.dm
new file mode 100644
index 0000000000000..1c85f7cac58ab
--- /dev/null
+++ b/modular_zubbers/master_files/code/game/objects/effects/spawners/random/decoration.dm
@@ -0,0 +1,23 @@
+/obj/effect/spawner/random/decoration/carpet/luxury
+ name = "5x full stack bar floor spawner"
+ spawn_loot_count = 5
+ loot = list(
+ /obj/item/stack/tile/carpet{amount=60},
+ /obj/item/stack/tile/carpet/black{amount=60},
+ /obj/item/stack/tile/carpet/blue{amount=60},
+ /obj/item/stack/tile/carpet/cyan{amount=60},
+ /obj/item/stack/tile/carpet/executive{amount=60},
+ /obj/item/stack/tile/carpet/orange{amount=60},
+ /obj/item/stack/tile/carpet/purple{amount=60},
+ /obj/item/stack/tile/carpet/red{amount=60},
+ /obj/item/stack/tile/carpet/royalblack{amount=60},
+ /obj/item/stack/tile/carpet/royalblue{amount=60},
+ /obj/item/stack/tile/carpet/star{amount=60},
+ /obj/item/stack/tile/carpet/stellar{amount=60},
+ /obj/item/stack/tile/iron{amount=60},
+ /obj/item/stack/tile/bamboo/tatami{amount=60},
+ /obj/item/stack/tile/bamboo/tatami/black{amount=60},
+ /obj/item/stack/tile/bamboo/tatami/purple{amount=60},
+ /obj/item/stack/tile/glass/sixty,
+ /obj/item/stack/tile/grass{amount=60},
+ )
diff --git a/sound/items/handling/armor_rustle/plate_armor/attribution.txt b/sound/items/handling/armor_rustle/plate_armor/attribution.txt
new file mode 100644
index 0000000000000..681f995687fb3
--- /dev/null
+++ b/sound/items/handling/armor_rustle/plate_armor/attribution.txt
@@ -0,0 +1,2 @@
+plate armor rustle:
+armor.wav by juryduty -- https://freesound.org/s/180231/ -- License: Creative Commons 0
diff --git a/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle1.ogg b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle1.ogg
new file mode 100644
index 0000000000000..0d5d521ad5b1b
Binary files /dev/null and b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle1.ogg differ
diff --git a/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle2.ogg b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle2.ogg
new file mode 100644
index 0000000000000..dbbf25bbc3658
Binary files /dev/null and b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle2.ogg differ
diff --git a/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle3.ogg b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle3.ogg
new file mode 100644
index 0000000000000..074e1c61197b6
Binary files /dev/null and b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle3.ogg differ
diff --git a/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle4.ogg b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle4.ogg
new file mode 100644
index 0000000000000..6a105b85ac525
Binary files /dev/null and b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle4.ogg differ
diff --git a/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle5.ogg b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle5.ogg
new file mode 100644
index 0000000000000..b2069180364e1
Binary files /dev/null and b/sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle5.ogg differ
diff --git a/sound/items/handling/gas_analyzer/attribution.txt b/sound/items/handling/gas_analyzer/attribution.txt
new file mode 100644
index 0000000000000..a2960bacfbb94
--- /dev/null
+++ b/sound/items/handling/gas_analyzer/attribution.txt
@@ -0,0 +1,2 @@
+gas_analyzer handling sounds made by sadboysuss
+license: CC-BY-SA
\ No newline at end of file
diff --git a/sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg b/sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg
new file mode 100644
index 0000000000000..779a600dee956
Binary files /dev/null and b/sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg differ
diff --git a/sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg b/sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg
new file mode 100644
index 0000000000000..dc3f5988ae869
Binary files /dev/null and b/sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg differ
diff --git a/sound/items/handling/helmet/attribution.txt b/sound/items/handling/helmet/attribution.txt
new file mode 100644
index 0000000000000..78383b32fa3bf
--- /dev/null
+++ b/sound/items/handling/helmet/attribution.txt
@@ -0,0 +1,8 @@
+visor_up and visor_down are:
+Bike helmet visor.wav by Didi0508 -- https://freesound.org/s/541921/ -- License: Attribution NonCommercial 4.0
+
+helmet drop and equip:
+helmet motorbike put on a head by cupido-1 -- https://freesound.org/s/614199/ -- License: Creative Commons 0
+
+helmet pickup:
+helmet_grabbing_and_handling_sound by Artninja -- https://freesound.org/s/725314/ -- License: Attribution 4.0
diff --git a/sound/items/handling/helmet/helmet_drop1.ogg b/sound/items/handling/helmet/helmet_drop1.ogg
new file mode 100644
index 0000000000000..8892e120e039e
Binary files /dev/null and b/sound/items/handling/helmet/helmet_drop1.ogg differ
diff --git a/sound/items/handling/helmet/helmet_equip1.ogg b/sound/items/handling/helmet/helmet_equip1.ogg
new file mode 100644
index 0000000000000..379ad6ce866b8
Binary files /dev/null and b/sound/items/handling/helmet/helmet_equip1.ogg differ
diff --git a/sound/items/handling/helmet/helmet_pickup1.ogg b/sound/items/handling/helmet/helmet_pickup1.ogg
new file mode 100644
index 0000000000000..b28def3a51ecf
Binary files /dev/null and b/sound/items/handling/helmet/helmet_pickup1.ogg differ
diff --git a/sound/items/handling/helmet/visor_down1.ogg b/sound/items/handling/helmet/visor_down1.ogg
new file mode 100644
index 0000000000000..df93db6b7cfb8
Binary files /dev/null and b/sound/items/handling/helmet/visor_down1.ogg differ
diff --git a/sound/items/handling/helmet/visor_down2.ogg b/sound/items/handling/helmet/visor_down2.ogg
new file mode 100644
index 0000000000000..1662f7cfbfecf
Binary files /dev/null and b/sound/items/handling/helmet/visor_down2.ogg differ
diff --git a/sound/items/handling/helmet/visor_down3.ogg b/sound/items/handling/helmet/visor_down3.ogg
new file mode 100644
index 0000000000000..7d2d2b2a6ae98
Binary files /dev/null and b/sound/items/handling/helmet/visor_down3.ogg differ
diff --git a/sound/items/handling/helmet/visor_up1.ogg b/sound/items/handling/helmet/visor_up1.ogg
new file mode 100644
index 0000000000000..bb498d6d66368
Binary files /dev/null and b/sound/items/handling/helmet/visor_up1.ogg differ
diff --git a/sound/items/handling/helmet/visor_up2.ogg b/sound/items/handling/helmet/visor_up2.ogg
new file mode 100644
index 0000000000000..ffa485833e325
Binary files /dev/null and b/sound/items/handling/helmet/visor_up2.ogg differ
diff --git a/sound/items/handling/id_card/attribution.txt b/sound/items/handling/id_card/attribution.txt
new file mode 100644
index 0000000000000..1bb71cf8f7ee1
--- /dev/null
+++ b/sound/items/handling/id_card/attribution.txt
@@ -0,0 +1,2 @@
+id_card handling sounds made by sadboysuss
+license: CC-BY-SA
\ No newline at end of file
diff --git a/sound/items/handling/id_card/id_card_drop1.ogg b/sound/items/handling/id_card/id_card_drop1.ogg
new file mode 100644
index 0000000000000..81cfbb50e435c
Binary files /dev/null and b/sound/items/handling/id_card/id_card_drop1.ogg differ
diff --git a/sound/items/handling/id_card/id_card_pickup1.ogg b/sound/items/handling/id_card/id_card_pickup1.ogg
new file mode 100644
index 0000000000000..cbd01a1189f5a
Binary files /dev/null and b/sound/items/handling/id_card/id_card_pickup1.ogg differ
diff --git a/sound/items/handling/reagent_containers/default/attribution.txt b/sound/items/handling/reagent_containers/default/attribution.txt
new file mode 100644
index 0000000000000..102c46ad5919c
--- /dev/null
+++ b/sound/items/handling/reagent_containers/default/attribution.txt
@@ -0,0 +1,2 @@
+default_liquid_slosh:
+Liquid bottle shaking long.mp3 by Hope-Sounds -- https://freesound.org/s/502668/ -- License: Creative Commons 0
diff --git a/sound/items/handling/reagent_containers/default/default_liquid_slosh1.ogg b/sound/items/handling/reagent_containers/default/default_liquid_slosh1.ogg
new file mode 100644
index 0000000000000..2177effd93077
Binary files /dev/null and b/sound/items/handling/reagent_containers/default/default_liquid_slosh1.ogg differ
diff --git a/sound/items/handling/reagent_containers/default/default_liquid_slosh2.ogg b/sound/items/handling/reagent_containers/default/default_liquid_slosh2.ogg
new file mode 100644
index 0000000000000..a641635ff0c07
Binary files /dev/null and b/sound/items/handling/reagent_containers/default/default_liquid_slosh2.ogg differ
diff --git a/sound/items/handling/reagent_containers/default/default_liquid_slosh3.ogg b/sound/items/handling/reagent_containers/default/default_liquid_slosh3.ogg
new file mode 100644
index 0000000000000..89eecf36337ad
Binary files /dev/null and b/sound/items/handling/reagent_containers/default/default_liquid_slosh3.ogg differ
diff --git a/sound/items/handling/reagent_containers/default/default_liquid_slosh4.ogg b/sound/items/handling/reagent_containers/default/default_liquid_slosh4.ogg
new file mode 100644
index 0000000000000..feb7c0d29702e
Binary files /dev/null and b/sound/items/handling/reagent_containers/default/default_liquid_slosh4.ogg differ
diff --git a/sound/items/handling/reagent_containers/default/default_liquid_slosh5.ogg b/sound/items/handling/reagent_containers/default/default_liquid_slosh5.ogg
new file mode 100644
index 0000000000000..b2ba3ee73c99b
Binary files /dev/null and b/sound/items/handling/reagent_containers/default/default_liquid_slosh5.ogg differ
diff --git a/sound/items/handling/reagent_containers/plastic_bottle/attribution.txt b/sound/items/handling/reagent_containers/plastic_bottle/attribution.txt
new file mode 100644
index 0000000000000..dd3b21b412e39
--- /dev/null
+++ b/sound/items/handling/reagent_containers/plastic_bottle/attribution.txt
@@ -0,0 +1,2 @@
+plastic_bottle_liquid_slosh:
+liquid in bottle shaking by mrrap4food -- https://freesound.org/s/470606/ -- License: Creative Commons 0
diff --git a/sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh1.ogg b/sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh1.ogg
new file mode 100644
index 0000000000000..597a7b2fb5f8a
Binary files /dev/null and b/sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh1.ogg differ
diff --git a/sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh2.ogg b/sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh2.ogg
new file mode 100644
index 0000000000000..4f8eb03293f34
Binary files /dev/null and b/sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh2.ogg differ
diff --git a/sound/creatures/cat/attribution.txt b/sound/mobs/non-humanoids/cat/attribution.txt
similarity index 100%
rename from sound/creatures/cat/attribution.txt
rename to sound/mobs/non-humanoids/cat/attribution.txt
diff --git a/sound/creatures/cat/cat_meow1.ogg b/sound/mobs/non-humanoids/cat/cat_meow1.ogg
similarity index 100%
rename from sound/creatures/cat/cat_meow1.ogg
rename to sound/mobs/non-humanoids/cat/cat_meow1.ogg
diff --git a/sound/creatures/cat/cat_meow2.ogg b/sound/mobs/non-humanoids/cat/cat_meow2.ogg
similarity index 100%
rename from sound/creatures/cat/cat_meow2.ogg
rename to sound/mobs/non-humanoids/cat/cat_meow2.ogg
diff --git a/sound/creatures/cat/cat_meow3.ogg b/sound/mobs/non-humanoids/cat/cat_meow3.ogg
similarity index 100%
rename from sound/creatures/cat/cat_meow3.ogg
rename to sound/mobs/non-humanoids/cat/cat_meow3.ogg
diff --git a/sound/creatures/cat/cat_purr1.ogg b/sound/mobs/non-humanoids/cat/cat_purr1.ogg
similarity index 100%
rename from sound/creatures/cat/cat_purr1.ogg
rename to sound/mobs/non-humanoids/cat/cat_purr1.ogg
diff --git a/sound/creatures/cat/cat_purr2.ogg b/sound/mobs/non-humanoids/cat/cat_purr2.ogg
similarity index 100%
rename from sound/creatures/cat/cat_purr2.ogg
rename to sound/mobs/non-humanoids/cat/cat_purr2.ogg
diff --git a/sound/creatures/cat/cat_purr3.ogg b/sound/mobs/non-humanoids/cat/cat_purr3.ogg
similarity index 100%
rename from sound/creatures/cat/cat_purr3.ogg
rename to sound/mobs/non-humanoids/cat/cat_purr3.ogg
diff --git a/sound/creatures/cat/cat_purr4.ogg b/sound/mobs/non-humanoids/cat/cat_purr4.ogg
similarity index 100%
rename from sound/creatures/cat/cat_purr4.ogg
rename to sound/mobs/non-humanoids/cat/cat_purr4.ogg
diff --git a/sound/creatures/cat/oranges_meow1.ogg b/sound/mobs/non-humanoids/cat/oranges_meow1.ogg
similarity index 100%
rename from sound/creatures/cat/oranges_meow1.ogg
rename to sound/mobs/non-humanoids/cat/oranges_meow1.ogg
diff --git a/strings/fishing_tips.txt b/strings/fishing_tips.txt
index 44e7f32284ade..479769c44de47 100644
--- a/strings/fishing_tips.txt
+++ b/strings/fishing_tips.txt
@@ -43,7 +43,10 @@ The legendary fishing hat isn't just cosmetic. Space carps (as well as young lob
Have you ever heard a lobster or crab talk? Well, neither have I, but they say they're quite the fishy punsters.
You can get an experiscanner from science to perform fish scanning experiments, which can unlock more modules for the fishing portal, as well as fishing technology nodes (better equipment) to research.
Fish is, of course, edible. Is it safe to eat raw? Well, if you've strong stomach, otherwise your best option is to cook it for a at least half a spessman minute if you don't want to catch nasty diseases.
-After researching the Advanced Fishing Technology Node, you can print special fishing gloves that let you fish without having to carry around a fishing rod. There's one pair that even trains athletics on top of fishing.You can get an experiscanner from science to perform fish scanning experiments, which can unlock more modules for the fishing portal, as well as fishing technology nodes (better equipment) for research.
-If you have enough credits, you can buy a set of fishing lures from cargo. Each lure allows you to catch different species of fish and won't get consumed, however they need to be spun at intervals to work.
+After researching the Advanced Fishing Technology Node, you can print special fishing gloves that let you fish without having to carry around a fishing rod. There's one pair that even trains athletics on top of fishing. You can get an experiscanner from science to perform fish scanning experiments, which can unlock more modules for the fishing portal, as well as fishing technology nodes (better equipment) for research.
+If you have enough credits, you can buy a set of fishing lures from cargo (or the library vending machine). Each lure allows you to catch different species of fish and won't get consumed, however they need to be spun at intervals to work.
Various clothing and handheld items, as well as chairs you sit on, can make fishing easier (or sometimes harder). A trained fisherman can tell what can help and what won't, so keep an eye out.
This may sound silly, but (live) squids and their ink sacs can be used as weapons to temporarily blind foes.
+Got a bioelectricity generator aquarium but no electrogenic fish? Worry not, you can always feed your fish some teslium or liquid electricity to temporarily grant them (slightly less powerful) eletrogenesis. It'll also gradually hurt them however.
+Fish can grow in size and weight if you fed them somewhat frequently. Giving them growth serum (from fly amanita) will also boost the rate at which they grow.
+Feeding a fish mutagen can triple the probability of generating evolved offsprings, provided it has an evolution.
diff --git a/strings/tcg/keywords.json b/strings/tcg/keywords.json
index 854ac936fef1e..869dc8dbe607a 100644
--- a/strings/tcg/keywords.json
+++ b/strings/tcg/keywords.json
@@ -1,18 +1,18 @@
{
- "Asimov": "Creatures possessing this trait cannot attack or defend against creatures with the Human subtype",
+ "Asimov": "Does not deal damage to other creature cards, only to players.",
"Blocker": "The creature cannot declare attacks, but can defend",
- "Changeling": "This creature possesses all creature subtypes simultaneously. Any effects which affect a specific subtype apply to Changelings",
- "Clockwork": "The creature can copy a single keyword on another creature on the field, until they lose the clockwork keyword or leave the field",
- "Deadeye": "This creature can always hit opponents, regardless of effects or immunities",
+ "Changeling": "This creature possesses all creature subtypes simultaneously, even outside of the field. Any effects which affect a specific subtype apply to Changelings",
+ "Clockwork": "On Summon: The creature can copy a single keyword on another creature on the field, until they lose the clockwork keyword or leave the field",
+ "Deadeye": "The following effect triggers when the creature damages the opponent.",
"Faction": "Groupings of cards that can often share effects and traits together",
"First Strike": "This creature has attack priority in combat",
- "Fury": "The creature must attack at every possibility",
- "Graytide": "When this creature enters the battlefield, it gains +1/+1 for the number of creatures on your side of the field with Graytide, until the end of the turn",
+ "Fury": "This creature is not tapped when it kills another unit in combat.",
+ "Graytide": "This creature gains +1/+1 for the number of other creatures on your side of the field with Graytide.",
"Hivemind": "The creature enters combat with a hivemind token on it.The first time this card would take damage, remove that token instead. This does not apply to immediate removal effects, only points of damage",
"Holy": "Immunity to all event cards",
"Immunity": "The creature cannot be affected by card effects or combat of its immunity type. This includes both friendly and opposing effects",
"On Equip": "This effect is activated once its item cost is paid and it enters the battlefield, equipping itself to a chosen card on your side of the field (Unless otherwise stated)",
"On Summon": "This effect is activated once its creature cost is paid and it enters the battlefield",
- "Squad Tactics": "When this creature attacks an opponent's creature and defeats it in combat, the owner of the defeated card takes 1 lifeshard of damage from combat",
- "Taunt": "All opposing creature attacks must be directed towards the creature with Taunt"
+ "Squad Tactics": "This effect is activated when a card is added to your hand.",
+ "Taunt": "The following effect triggers when this card is on the field and any other card is added to your hand."
}
diff --git a/strings/tcg/set_one.json b/strings/tcg/set_one.json
index de24543a66b96..73851198cd267 100644
--- a/strings/tcg/set_one.json
+++ b/strings/tcg/set_one.json
@@ -13,9 +13,9 @@
"id": "AI",
"name": "AI",
"desc": "The latest generation of NT's top secret artificial intelligence project, this time with actual human brains in a jar! Don't tell the press though.",
- "rules": "{$Asimov}",
+ "rules": "{$Asimov} {$Fury}",
"icon_state": "ai",
- "power": "3",
+ "power": "5",
"resolve": "6",
"faction": "Science",
"summoncost": "5",
@@ -29,14 +29,14 @@
"id": "stickman",
"name": "Angry Stickman",
"desc": "Sure, he's flat and crudely drawn, but watch out! He's a menace!",
- "rules": "{$On Summon}: If another 'Angry Stickman' card has been destroyed, you may summon it for at double cost. This ability may be activated only once per turn.",
+ "rules": "{$On Summon}: You can pay 1 plasma to summon an Angry Stickman from the discard pile.",
"icon_state": "angry_stickman",
"power": "1",
"resolve": "1",
"faction": "Xeno",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Construct",
+ "cardsubtype": "Wizardry",
"rarity": "uncommon",
"summon_icon_file": "icons/mob/simple/animal.dmi",
"summon_icon_state": "stickman"
@@ -45,7 +45,7 @@
"id": "changeling",
"name": "Armoured Changeling",
"desc": "The strange creatures known as changelings have been known to develop natural armour as a defense mechanism when in combat.",
- "rules": "{$Changeling}",
+ "rules": "{$Changeling} {$Deadeye}: Add 1 creature with Changeling from your Deck to your hand.",
"icon_state": "armored_changeling",
"power": "2",
"resolve": "8",
@@ -61,14 +61,14 @@
"id": "assistant",
"name": "Staff Assistant",
"desc": "The lowest ladder on the Nanotrasen Employment Ladder, Staff Assistants are employed to help out with tasks deemed 'too menial for robots'.",
- "rules": "{$Graytide}, for every card with '{$Graytide}', this card has +1/+1 on the field.",
+ "rules": "{$Graytide}. The buff this card gains from Graytide is doubled.",
"icon_state": "assistant",
"power": "1",
"resolve": "1",
"faction": "Service",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Maintenance Service",
"rarity": "common",
"summon_icon_state": "Assistant"
},
@@ -76,14 +76,14 @@
"id": "atmos_tech",
"name": "Atmospheric Technician",
"desc": "The Atmospheric Technicians are tasked with keeping the station's air clean, breathable, and, most importantly, devoid of plasma.",
- "rules": "{$On Summon}: Search your deck for an Atmospherics Battlefield card, and add it to your hand. Shuffle your deck afterward.",
+ "rules": "{$On Summon}: Search your deck for a Battlefield card, and add it to your hand. Shuffle your deck afterward.",
"icon_state": "atmos_tech",
- "power": "2",
- "resolve": "3",
+ "power": "3",
+ "resolve": "2",
"faction": "Engineering",
- "summoncost": "4",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Human Engineer",
+ "cardsubtype": "Atmospherics Engineering",
"rarity": "common",
"summon_icon_state": "Atmospheric Technician"
},
@@ -91,14 +91,14 @@
"id": "bartender",
"name": "Bartender",
"desc": "Prior to the introduction of on-station psychologists, the Bartender served to alleviate many employees' woes and fears. Remember, always drink responsibly.",
- "rules": "",
+ "rules": "All your other creatures gain +1 power.",
"icon_state": "bartender",
- "power": "3",
+ "power": "2",
"resolve": "2",
"faction": "Service",
- "summoncost": "3",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Service Bar",
"rarity": "common",
"summon_icon_state": "Bartender"
},
@@ -106,14 +106,14 @@
"id": "botanist",
"name": "Botanist",
"desc": "The Botanist is in charge of keeping the station's food supply happy, healthy, and preferably not laced with hallucinogens.",
- "rules": "",
+ "rules": "Start of turn: Heal 1 lifeshard.",
"icon_state": "botanist",
- "power": "1",
- "resolve": "4",
+ "power": "0",
+ "resolve": "3",
"faction": "Service",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Service Bar Plant",
"rarity": "common",
"summon_icon_state": "Botanist"
},
@@ -121,14 +121,14 @@
"id": "captain",
"name": "Captain",
"desc": "Every Captain is expected to lay down their life for their assigned station. Any Captain who returns to Centcom alive without permission is ceremonially executed before being cloned and stripped of rank.",
- "rules": "Tap this card: inflict -1/-1 to an opposing creature card.",
+ "rules": "Tap: Reduce the power of all opponent creatures to 0 for this turn.",
"icon_state": "captain",
"power": "5",
"resolve": "5",
"faction": "Command",
"summoncost": "7",
"cardtype": "Creature",
- "cardsubtype": "Human Commander",
+ "cardsubtype": "Command",
"rarity": "rare",
"summon_icon_state": "Captain"
},
@@ -138,26 +138,26 @@
"desc": "A heavily customized Apadyne Technologies Mk.2 R.I.O.T. Suit, rebuilt and refitted to Nanotrasen's highest standards for issue to Station Captains.",
"rules": "{$On Equip}: tap the equipped card for 2 turns, without triggering the target card's effects.",
"icon_state": "captain_hardsuit",
- "power": "-1",
- "resolve": "5",
+ "power": "0",
+ "resolve": "4",
"faction": "Command",
- "summoncost": "3",
+ "summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Command",
"rarity": "epic"
},
{
"id": "cargo_tech",
"name": "Cargo Technician",
"desc": "The grunts of Cargo. Any reports that Cargo Technicians are frequently overcome by revolutionary fervour are exaggerated.",
- "rules": "Once per turn, you may give 'Cargo Technician' -1/0 until the start of your next turn and gain 1 mana.",
+ "rules": "Tap: Gain 1 plasma.",
"icon_state": "cargo_tech",
- "power": "3",
- "resolve": "1",
+ "power": "1",
+ "resolve": "2",
"faction": "Cargo",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Cargo Maintenance",
"rarity": "common",
"summon_icon_state": "Cargo Technician"
},
@@ -170,23 +170,23 @@
"power": "2",
"resolve": "2",
"faction": "Service",
- "summoncost": "2",
+ "summoncost": "3",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Service Wizardry",
"rarity": "common"
},
{
"id": "chemist",
"name": "Chemist",
"desc": "Chemists are encouraged to not set up illicit methamphetamine factories on the company's dime.",
- "rules": "Tap this card: flip a coin. If heads: a friendly Medical {$Faction} card gains 0/+2. If tails, an opponents creature of your choice gains +2/0.",
+ "rules": "Tap: Give another unit +2/+2. Destroy it at the end of the turn.",
"icon_state": "chemist",
"power": "0",
"resolve": "3",
"faction": "Medical",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Human Doctor",
+ "cardsubtype": "Medical",
"rarity": "common",
"summon_icon_state": "Chemist"
},
@@ -194,14 +194,14 @@
"id": "CE",
"name": "Chief Engineer",
"desc": "The Chief Engineer is in charge of keeping the station powered and intact.",
- "rules": "If a battlefield card would otherwise be destroyed by an opponent's card effect, you may sacrifice an Engineering faction card of yours in play to negate the battlefield's destruction.",
+ "rules": "Battlefield cards you control cannot be destroyed.",
"icon_state": "ce",
- "power": "3",
- "resolve": "6",
+ "power": "2",
+ "resolve": "2",
"faction": "Engineering",
- "summoncost": "5",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Engineer",
+ "cardsubtype": "Command Engineer",
"rarity": "uncommon",
"summon_icon_state": "Chief Engineer"
},
@@ -209,14 +209,14 @@
"id": "ce_suit",
"name": "Nakamura Engineering R.I.G.Suit (Advanced)",
"desc": "An updated version of Nakamura Engineering's R.I.G.Suit, fitted with advanced radiation shielding and extra armour.",
- "rules": "Tap this card: tap the equipped creature. The equipped creature avoids the effects of the active battlefield until removed from the field.",
+ "rules": "On Equip: Tap the equipped creature. It gains Immunity from Battlefields.",
"icon_state": "ce_hardsuit",
- "power": "0",
- "resolve": "3",
+ "power": "1",
+ "resolve": "2",
"faction": "Engineering",
- "summoncost": "3",
+ "summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Engineering Syndicate Cybersun",
"rarity": "rare"
},
{
@@ -230,7 +230,7 @@
"faction": "Medical",
"summoncost": "5",
"cardtype": "Creature",
- "cardsubtype": "Human Doctor",
+ "cardsubtype": "Medical Command",
"rarity": "common",
"summon_icon_state": "Chief Medical Officer"
},
@@ -238,28 +238,28 @@
"id": "cmo_suit",
"name": "DeForest Medical Corporation 'Lifesaver' Carapace",
"desc": "An advanced voidsuit designed for emergency medical personnel. Features include a built-in medical HUD and advanced medical gauntlets.",
- "rules": "Tap this card: tap the equipped creature and re-equip 'DeForest Medical Corporation 'Lifesaver' Carapace' on a different creature on your side of the field. This effect may be activated once per turn.",
+ "rules": "Once per turn: equip 'DeForest Medical Corporation 'Lifesaver' Carapace' on a different creature on your side of the field.",
"icon_state": "cmo_hardsuit",
"power": "1",
"resolve": "3",
"faction": "Medical",
- "summoncost": "3",
+ "summoncost": "2",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Medical",
"rarity": "uncommon"
},
{
"id": "chrono",
"name": "Chrono Legionnaire",
"desc": "Currently in the earliest stages of development, the Chrono Legionnaire project is expected to weaponize time itself.",
- "rules": "If this card is destroyed or discarded, flip 3 coins. If the result has 2 or more heads, add this card back to your hand. Otherwise, send it to your graveyard.",
+ "rules": "If this card is destroyed flip a coin. If the result is heads, add this card back to your hand.",
"icon_state": "chrono_legionnaire",
- "power": "6",
- "resolve": "2",
+ "power": "3",
+ "resolve": "3",
"faction": "Security",
- "summoncost": "4",
+ "summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Soldier",
+ "cardsubtype": "Wizardry Maintenance",
"rarity": "epic",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "chrono"
@@ -268,14 +268,14 @@
"id": "sloth",
"name": "Citrus",
"desc": "Cargo's happy sloth pal. Known for his cute sweater and always getting in the way.",
- "rules": "Tap this card: Tap an opponent's card until the start of your next turn",
+ "rules": "Tap: Tap an opponent's card until the start of your next turn",
"icon_state": "citrus",
"power": "0",
"resolve": "3",
"faction": "Cargo",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Sloth",
+ "cardsubtype": "Cargo Animal",
"rarity": "common",
"summon_icon_file": "icons/mob/simple/pets.dmi",
"summon_icon_state": "cool_sloth"
@@ -286,12 +286,12 @@
"desc": "Every Nanotrasen station has a clown on board, as high command believes that a source of entertainment will reduce instances of murder-suicide on board Spinward Stations. The results of this hypothesis are, as of yet, unproven.",
"rules": "{$Taunt}",
"icon_state": "clown",
- "power": "2",
- "resolve": "4",
+ "power": "1",
+ "resolve": "3",
"faction": "Service",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Clown",
+ "cardsubtype": "Bar Maintenance Abomination Clown",
"rarity": "common",
"summon_icon_state": "Clown"
},
@@ -306,7 +306,7 @@
"faction": "Service",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon Clown",
+ "cardsubtype": "Silicon Bar Clown",
"rarity": "uncommon",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "clown"
@@ -321,7 +321,7 @@
"resolve": "0",
"faction": "Service",
"summoncost": "1",
- "cardtype": "Equipment",
+ "cardtype": "Clown",
"cardsubtype": "Armour",
"rarity": "epic"
},
@@ -329,7 +329,7 @@
"id": "abductor_armour",
"name": "Abductor Combat Armour",
"desc": "Recovered from the strange alien species known as the Abductors, this armour is made from an extremely tough yet flexible material that has been dubbed as Alien Alloy by researchers.",
- "rules": "{$On Equip}: give the equipped unit Effect {$Immunity} and Spell {$Immunity}.",
+ "rules": "{$On Equip}: give the equipped unit Holy.",
"icon_state": "abductor_combat",
"power": "1",
"resolve": "3",
@@ -350,7 +350,7 @@
"faction": "Service",
"summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Bar Plants",
"rarity": "common",
"summon_icon_state": "Cook"
},
@@ -365,21 +365,21 @@
"faction": "Syndicate",
"summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Wizardry",
"rarity": "rare"
},
{
"id": "curator",
"name": "Curator",
"desc": "In Nanotrasen polls, the Curator has ranked as the most pointless job on station, much to the ire of the Curator's union. Thankfully, we don't have to listen to them.",
- "rules": "{$On Summon}: Draw 1 card: if it's an event card, discard it.",
+ "rules": "{$On Summon}: Draw 1 card.",
"icon_state": "curator",
"power": "1",
"resolve": "1",
"faction": "Service",
- "summoncost": "2",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Worker",
+ "cardsubtype": "Wizardry",
"rarity": "common",
"summon_icon_state": "Curator"
},
@@ -394,7 +394,7 @@
"faction": "Science",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon Corgi",
+ "cardsubtype": "Silicon Animal",
"rarity": "rare",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "borgi"
@@ -405,26 +405,26 @@
"desc": "The most advanced set of armour available for purchase from Apadyne Technologies, the Mk.3 R.I.O.T. Carapace is issued to Nanotrasen's most elite forces.",
"rules": "{$On Equip}: if the equipped creature is of the Security faction, it gains {$Taunt}.",
"icon_state": "deathsquad",
- "power": "3",
- "resolve": "3",
+ "power": "2",
+ "resolve": "1",
"faction": "Security",
- "summoncost": "1",
+ "summoncost": "2",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Security ERT",
"rarity": "epic"
},
{
"id": "det",
"name": "Detective",
"desc": "Nanotrasen hires nothing but the best detectives to investigate crime on our stations. A penchant for cigarettes and outdated fashion isn't mandatory, but is appreciated.",
- "rules": "{$Deadeye}",
+ "rules": "{$Deadeye}: Draw 1 card. Cannot be attacked if you have other untapped creatures.",
"icon_state": "detective",
"power": "3",
"resolve": "2",
"faction": "Security",
- "summoncost": "5",
+ "summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Officer",
+ "cardsubtype": "Maintenance Bar",
"rarity": "uncommon",
"summon_icon_state": "Detective"
},
@@ -437,9 +437,9 @@
"power": "5",
"resolve": "5",
"faction": "Syndicate",
- "summoncost": "7",
+ "summoncost": "8",
"cardtype": "Creature",
- "cardsubtype": "Syndicate Soldier",
+ "cardsubtype": "Syndicate Cybersun",
"rarity": "rare",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "syndicate_stormtrooper_sword"
@@ -448,14 +448,14 @@
"id": "engiborg",
"name": "Cyborg (Engineering Shell)",
"desc": "A common sight on Nanotrasen Stations, Engineering Shells maintain critical station systems in hazardous conditions.",
- "rules": "{$Asimov}",
+ "rules": "{$Asimov} Tap: Draw 1 card.",
"icon_state": "borg_engi",
"power": "2",
"resolve": "2",
"faction": "Engineering",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon",
+ "cardsubtype": "Silicon Engineering Atmosian",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "engineer"
@@ -464,41 +464,41 @@
"id": "ert_command",
"name": "NT P.A.V. Suit (Command)",
"desc": "Issued to members of Emergency Response Teams, the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a sidearm holster and a sleek blue finish.",
- "rules": "While equipped, give the equipped unit {$Squad Tactics} and {$First Strike}.",
+ "rules": "While equipped, give the equipped unit {$First Strike}.",
"icon_state": "ert_command",
- "power": "2",
- "resolve": "2",
+ "power": "0",
+ "resolve": "0",
"faction": "Command",
"summoncost": "2",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Command ERT",
"rarity": "rare"
},
{
"id": "ert_engi",
"name": "NT P.A.V. Suit (Engineering)",
"desc": "Issued to members of Emergency Response Teams, the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a welding screen and a flashy yellow finish.",
- "rules": "While equipped, give the equipped unit {$Squad Tactics}.",
+ "rules": "While equipped, give the equipped unit {$Squad Tactics}: Gain +1/+1 until the end of the turn.",
"icon_state": "ert_engi",
"power": "1",
"resolve": "1",
"faction": "Engineering",
"summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "ERT Atmospherics",
"rarity": "uncommon"
},
{
"id": "ert_med",
"name": "NT P.A.V. Suit (Medical)",
"desc": "Issued to members of Emergency Response Teams, the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a sterile coating and a calming white finish.",
- "rules": "While equipped, give the equipped unit {$Squad Tactics}.",
+ "rules": "Whenever the equipped unit deals damage it heals you (the player) for that amount.",
"icon_state": "ert_med",
"power": "1",
- "resolve": "2",
+ "resolve": "1",
"faction": "Medical",
"summoncost": "2",
- "cardtype": "Equipment",
+ "cardtype": "ERT Medical",
"cardsubtype": "Armour",
"rarity": "uncommon"
},
@@ -506,28 +506,28 @@
"id": "ert_sec",
"name": "NT P.A.V. Suit (Security)",
"desc": "Issued to members of Emergency Response Teams, the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with bulletproof padding and an intimidating red finish.",
- "rules": "While equipped, give the equipped unit {$Squad Tactics}.",
+ "rules": "While equipped, give the equipped unit {$Fury}.",
"icon_state": "ert_sec",
- "power": "2",
- "resolve": "1",
+ "power": "-1",
+ "resolve": "0",
"faction": "Security",
"summoncost": "2",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "ERT Security",
"rarity": "uncommon"
},
{
"id": "explorer",
"name": "Explorer",
"desc": "The Nanotrasen Explorers Corps boldly goes where humanity has never gone before. Or would, if they weren't buried under mounds of bureaucracy.",
- "rules": "You may tap this card: Flip a coin, if heads, gain 4 mana this turn, if tails, tap this card for 2 turns.",
+ "rules": "Tap: Flip a coin, if heads, gain 1 plasma.",
"icon_state": "explorer",
"power": "2",
"resolve": "2",
"faction": "Cargo",
- "summoncost": "2",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Explorer",
+ "cardsubtype": "Atmospherics",
"rarity": "legendary",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "explorer"
@@ -541,7 +541,7 @@
"power": "3",
"resolve": "3",
"faction": "Science",
- "summoncost": "2",
+ "summoncost": "1",
"cardtype": "Creature",
"cardsubtype": "Silicon",
"rarity": "common",
@@ -552,14 +552,14 @@
"id": "geneticist",
"name": "Geneticist",
"desc": "Geneticists are tasked with manipulating human DNA to produce special effects. Nanotrasen maintains a strict 'no superhero' policy for mutations, following the Superhero Civil War of 2150.",
- "rules": "You may tap this card and pay 3 mana: Give a friendly creature {$Hivemind} until this card leaves the field.",
+ "rules": "Tap: Give a friendly creature {$Hivemind} until this card leaves the field.",
"icon_state": "geneticist",
- "power": "3",
- "resolve": "4",
+ "power": "2",
+ "resolve": "3",
"faction": "Science",
"summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Scientist",
+ "cardsubtype": "Science Abomination",
"rarity": "common",
"summon_icon_state": "Geneticist"
},
@@ -567,14 +567,14 @@
"id": "med_geneticist",
"name": "Geneticist",
"desc": "Geneticists are tasked with manipulating human DNA to produce special effects. Nanotrasen maintains a strict 'no superhero' policy for mutations, following the Superhero Civil War of 2150.",
- "rules": "{$Graytide}, {$Hivemind}",
+ "rules": "All friendly creatures everywhere gain {$Hivemind} while this card is on the field.",
"icon_state": "geneticist_med",
- "power": "3",
- "resolve": "6",
+ "power": "2",
+ "resolve": "3",
"faction": "Medical",
- "summoncost": "8",
+ "summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Doctor",
+ "cardsubtype": "Science Abomination",
"rarity": "misprint",
"summon_icon_state": "Geneticist"
},
@@ -582,14 +582,14 @@
"id": "spookian",
"name": "Ghost Ian",
"desc": "Oh my god! Ian's dead!",
- "rules": "{$On Summon}: Search your deck for a battlefield, and add it to your hand. Shuffle your deck afterwards.",
+ "rules": "When destroyed: Add this card back to your hand.",
"icon_state": "ian_ghost",
"power": "1",
"resolve": "1",
"faction": "Service",
- "summoncost": "3",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Spirit Corgi",
+ "cardsubtype": "Wizardry Animal",
"rarity": "epic",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "ghost"
@@ -598,14 +598,14 @@
"id": "HOP",
"name": "Head of Personnel",
"desc": "The head of the Cargo and Service Departments, guardian of all access, and Ian's lovable, yet dumb, sidekick.",
- "rules": "Once per turn: Select a friendly creature card. That card gains {$Changeling}.",
+ "rules": "Tap: Another animal you control gains Holy and cannot be damaged for the rest of this turn.",
"icon_state": "hop",
- "power": "4",
- "resolve": "3",
+ "power": "2",
+ "resolve": "2",
"faction": "Service",
- "summoncost": "7",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Commander",
+ "cardsubtype": "Command Animal",
"rarity": "uncommon",
"summon_icon_state": "Head of Personnel"
},
@@ -613,14 +613,14 @@
"id": "HOS",
"name": "Head of Security",
"desc": "Nanotrasen hires most heads of staff based on their qualifications as being amicable, good at conflict resolution, ability to handle high-stakes situations, humanity, and desire to learn. Heads of Security only need a highschool degree.",
- "rules": "{$On Summon}: Select a card type. That card type now costs 1 extra mana to summon. This effect persists until Head of Security is removed from the battlefield.",
+ "rules": "Must declare a direct attack when attacking (but can still be blocked). {$Deadeye}: Deal 3 damage to your opponent or a unit. {$Fury} ",
"icon_state": "hos",
"power": "4",
- "resolve": "4",
+ "resolve": "6",
"faction": "Security",
"summoncost": "7",
"cardtype": "Creature",
- "cardsubtype": "Human Officer",
+ "cardsubtype": "Command Security",
"rarity": "uncommon",
"summon_icon_state": "Head of Security"
},
@@ -628,28 +628,28 @@
"id": "hos_suit",
"name": "Apadyne Technologies 'Tyrant' Class Hardshell",
"desc": "The distinctive shape of the Tyrant Class Hardshell is caused, in part, by the large amount of kevlar reinforcement and the ablative armour layer. Perhaps more importantly, it also looks rad.",
- "rules": "Grant the equip card {$Fury} until this card is removed from play.",
+ "rules": "When the equipped card destroys a creature: It deals 1 damage to another creature.",
"icon_state": "hos_hardsuit",
- "power": "4",
- "resolve": "2",
+ "power": "1",
+ "resolve": "1",
"faction": "Security",
- "summoncost": "5",
+ "summoncost": "3",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Command Security",
"rarity": "rare"
},
{
"id": "ian",
"name": "Ian",
"desc": "This adorable corgi has become the defacto mascot of the Spinward Stations to many. He comes in many forms, many sizes, and many shapes, but he's still just as lovable. Hand wash only.",
- "rules": "{$Holy}, You may Sacrifice this card on the field: Play a Command card from your hand for free.",
+ "rules": "{$Holy} On destroyed: Both players can summon a creature from their hand for free.",
"icon_state": "ian",
"power": "0",
"resolve": "3",
"faction": "Service",
- "summoncost": "4",
+ "summoncost": "5",
"cardtype": "Creature",
- "cardsubtype": "Corgi",
+ "cardsubtype": "Animal",
"rarity": "common",
"summon_icon_file": "icons/mob/simple/pets.dmi",
"summon_icon_state": "corgi"
@@ -658,28 +658,28 @@
"id": "inquisitor_suit",
"name": "Inquisitor's Hardsuit",
"desc": "Nanotrasen officially doesn't believe in ghosts, magic, or anything that can't be solved with science. When you see someone show up in one of these, let that remind you of that fact.",
- "rules": "Apply {$First Strike} to the equip creature.",
+ "rules": "Shuffle into the opponent's deck any creatures destroyed by battle with the equipped creature. The shuffled card's on destruction effects do not activate.",
"icon_state": "inquisitor",
- "power": "2",
- "resolve": "2",
+ "power": "1",
+ "resolve": "1",
"faction": "Service",
- "summoncost": "4",
+ "summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Wizardry ERT",
"rarity": "epic"
},
{
"id": "intern",
"name": "Intern",
"desc": "All Nanotrasen interns come with 3 things: A resume, a desire to learn, and vague promises that they're getting paid at some point. So don't be too rough on them.",
- "rules": "{$First Strike}",
+ "rules": "{$First Strike} {$Graytide}",
"icon_state": "intern",
"power": "1",
"resolve": "1",
"faction": "Command",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "ERT Maintenance",
"rarity": "common",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "intern"
@@ -688,14 +688,14 @@
"id": "jannie",
"name": "Janitor",
"desc": "A true testament to futility, they clean and they clean and they clean, knowing that there's no way they can clean it all. Yet, they persevere, knowing that without them, the crew would simply give in to their base animalistic nature.",
- "rules": "{$Taunt}",
+ "rules": "{$Taunt} {$Deadeye}: Shuffle a card from the opponent's discard pile to their deck.",
"icon_state": "janitor",
"power": "1",
- "resolve": "1",
+ "resolve": "2",
"faction": "Service",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Maintenance",
"rarity": "common",
"summon_icon_state": "Janitor"
},
@@ -703,14 +703,14 @@
"id": "jannieborg",
"name": "Cyborg (Custodial Shell)",
"desc": "A powerful, state of the act cleaning machine. They exist to eradicate stains, snag garbage, and replace lights, forever. We are legally obligated by the Janitor's Union to state that these machines are no replacement for a flesh-and-blood janitor.",
- "rules": "{$Asimov}, you may tap this card: Tap an opponent's Human Creature as well.",
+ "rules": "{$Asimov} {$Deadeye}: Shuffle up to 3 cards from the opponent's discard pile to their deck.",
"icon_state": "borg_janitor",
"power": "1",
"resolve": "3",
"faction": "Service",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon",
+ "cardsubtype": "Silicon Maintenance",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "janitor"
@@ -719,14 +719,14 @@
"id": "lawyer",
"name": "Lawyer",
"desc": "Nanotrasen knows the value of a good lawyer. That's why they're all working hard at our home offices defending us from frivolous labor suits from lazy no-good employees who should be working hard instead of slacking off reading trading cards.",
- "rules": "When an opponent attacks with a creature with 3 or more power, this card gains {$Taunt}.",
+ "rules": "When an opponent attacks with a creature with 3 or less power, this card gains {$Taunt}.",
"icon_state": "lawyer",
"power": "0",
"resolve": "4",
"faction": "Service",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Service Security",
"rarity": "common",
"summon_icon_state": "Lawyer"
},
@@ -734,7 +734,7 @@
"id": "legion",
"name": "Legion",
"desc": "They are the cursed, damned souls of civilizations born and lost in the flames of Indecipheres, conglomerated into a lump of emaciated bodies, wandering the realms they used to rule... or something along those lines, anyway.",
- "rules": "When Legion is destroyed, search your deck for a human card, and summon it to the battlefield. Shuffle your deck afterward.",
+ "rules": "When Legion is destroyed, search your deck for a creature card costing 3 or less and add it to your hand. Shuffle your deck afterward.",
"icon_state": "legion",
"power": "2",
"resolve": "1",
@@ -750,14 +750,14 @@
"id": "medborg",
"name": "Cyborg (Medical Shell)",
"desc": "A state of the art medical shell, for when biological life just can't take care of itself. Comes equipped with built-in surgical equipment and all the medicated lollipops you could ever want.",
- "rules": "{$Asimov}, you may tap this card and pay 2 mana: Reset a card's resolve to its original value.",
+ "rules": "{$Asimov} Tap: Reset a card's resolve to its original value (if possible) and heal it (if possible).",
"icon_state": "borg_medical",
"power": "2",
"resolve": "3",
"faction": "Medical",
- "summoncost": "4",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon Doctor",
+ "cardsubtype": "Silicon Medical",
"rarity": "uncommon",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "medical"
@@ -766,14 +766,14 @@
"id": "doc",
"name": "Medical Doctor",
"desc": "Nanotrasen's doctors are well known for their ability to treat almost any ailment known to mankind... as well as causing a fair few in the process.",
- "rules": "You may tap this card: Select a card that has less attack than this card from your graveyard, and summon it to your side of the field.",
+ "rules": "Tap: Add a card from your discard pile to your hand, except another 'Medical Doctor'.",
"icon_state": "md",
- "power": "2",
+ "power": "1",
"resolve": "3",
"faction": "Medical",
"summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Doctor",
+ "cardsubtype": "Medical",
"rarity": "common",
"summon_icon_state": "Medical Doctor"
},
@@ -781,14 +781,14 @@
"id": "mime",
"name": "Mime",
"desc": "Si vous regardez attentivement dans les yeux d'un mime, vous pouvez voir le tourment sans fin derrière leur façade silencieuse. C'est vraiment tragique.",
- "rules": "You may tap this card: Pick an opponent's card and nullify its effect until it leaves play.",
+ "rules": "Tap: Target creature and all its attached equipment loses all its effect text until this card leaves the field.",
"icon_state": "mime",
- "power": "2",
+ "power": "0",
"resolve": "1",
"faction": "Service",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Mime",
+ "cardsubtype": "Bar",
"rarity": "uncommon",
"summon_icon_state": "Mime"
},
@@ -796,14 +796,14 @@
"id": "miningborg",
"name": "Cyborg (Mining Shell)",
"desc": "Fitted with a drill and tracks, the Mining Shell is designed to hold up to the rigors of mining, be that on the hellish surface of Indecipheres, or in the silent vacuum of the asteroid belt.",
- "rules": "{$Asimov}, at the end of your turn, if this card is not tapped, you may tap this card at the start of your next turn to gain 1 mana.",
+ "rules": "{$Asimov} At the start of your turn: Tap: Gain 2 plasma.",
"icon_state": "borg_miner",
"power": "3",
- "resolve": "1",
+ "resolve": "2",
"faction": "Cargo",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon Miner",
+ "cardsubtype": "Silicon Cargo",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "minerOLD"
@@ -812,14 +812,14 @@
"id": "monkey",
"name": "Monkey",
"desc": "Nanotrasen seeks to phase out animal testing by 2570, in accordance with new TerraGov legislation. This will be replaced with more ethical solutions, such as computer simulations, or experimentation on Staff Assistants.",
- "rules": "{$Graytide}, this card is considered Human with a Geneticist on your side of the field.",
+ "rules": "{$Graytide} {$Squad Tactics}: Deal 1 damage to your opponent.",
"icon_state": "monkey",
"power": "1",
"resolve": "1",
"faction": "Science",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Primate",
+ "cardsubtype": "Animal Science",
"rarity": "common",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "monkey"
@@ -828,14 +828,14 @@
"id": "nukeop",
"name": "Nuclear Operative",
"desc": "The frontline grunts of the syndicate army, Nuclear Operatives are typically well trained and equipped for their grim duty.",
- "rules": "{$Squad Tactics}",
+ "rules": "On Play: Gain +1/+1 until the end of the turn",
"icon_state": "nukie_red",
- "power": "4",
- "resolve": "2",
+ "power": "3",
+ "resolve": "3",
"faction": "Syndicate",
- "summoncost": "4",
+ "summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Syndicate Soldier",
+ "cardsubtype": "Syndicate Cybersun",
"rarity": "rare",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "syndicate_space_shotgun"
@@ -851,7 +851,7 @@
"faction": "Medical",
"summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Doctor",
+ "cardsubtype": "Medical",
"rarity": "common",
"summon_icon_state": "Paramedic"
},
@@ -859,14 +859,14 @@
"id": "peaceborg",
"name": "Cyborg (Peacekeeper Shell)",
"desc": "After the unilateral phasing out of Security Shells in 2554 following mass reports of cyborg-on-human violence, the Peacekeeper Shell was introduced as a stopgap solution until the problems could be resolved.",
- "rules": "{$Asimov}, this card loses -1 power for every creature on your opponent's side of the field",
+ "rules": "{$Asimov} {$Taunt} {$Blocker} When damaged: Return this card to the hand.",
"icon_state": "borg_peace",
"power": "3",
"resolve": "3",
"faction": "Security",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon Officer",
+ "cardsubtype": "Silicon Security",
"rarity": "uncommon",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "peace"
@@ -875,14 +875,14 @@
"id": "plasma_engi",
"name": "Station Engineer (Plasmaman)",
"desc": "The ever industrious plasmamen are well suited to engineering work, due to their natural radiation resistance.",
- "rules": "{$Immunity} to Battlefields",
+ "rules": "{$Immunity} to Battlefields. When this creature dies deal 1 damage to all other creatures.",
"icon_state": "engi_plasma",
"power": "2",
"resolve": "4",
"faction": "Engineering",
- "summoncost": "5",
+ "summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Plasmaman Engineer",
+ "cardsubtype": "Atmospherics",
"rarity": "common",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "plasmaman"
@@ -891,14 +891,14 @@
"id": "QM",
"name": "Quartermaster",
"desc": "Every Nanotrasen station has a Quartermaster, who controls the flow of cargo to and from the station, and by extension to and from the hands of the crew. He's not given the distinction of being a head, though. His job isn't hard enough.",
- "rules": "Pay 3 mana and tap this card: All card cards on your side of the field gain +1/+1 until the end of this turn.",
+ "rules": "You cannot be damaged while this unit is on the field. Holy.",
"icon_state": "qm",
- "power": "3",
- "resolve": "3",
+ "power": "0",
+ "resolve": "7",
"faction": "Cargo",
"summoncost": "6",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Cargo Command",
"rarity": "uncommon",
"summon_icon_state": "Quartermaster"
},
@@ -906,14 +906,14 @@
"id": "qm_head",
"name": "Quartermaster",
"desc": "Every Nanotrasen station has a Quartermaster, who controls the flow of cargo to and from the station, and by extension to and from the hands of the crew.",
- "rules": "Pay 8 mana and permanently tap this card: All cargo cards on your side of the field gain +2/+2 until this card leaves play.",
+ "rules": "You cannot be damaged while this unit is on the field. Holy.",
"icon_state": "qm_head",
- "power": "6",
- "resolve": "6",
+ "power": "7",
+ "resolve": "7",
"faction": "Cargo",
- "summoncost": "10",
+ "summoncost": "6",
"cardtype": "Creature",
- "cardsubtype": "Human Employee",
+ "cardsubtype": "Cargo Command",
"rarity": "misprint",
"summon_icon_state": "Quartermaster"
},
@@ -921,14 +921,14 @@
"id": "rabbit_pai",
"name": "Personal AI Device (Rabbit Shell)",
"desc": "Personal AI Devices are able to take the form of many household pets, to provide a homely sense of comfort and companionship to their owners.",
- "rules": "This card may steal the {$Asimov} keyword off of another friendly silicon creature.",
+ "rules": "Tap: Remove the {$Asimov} keyword off of another friendly silicon creature.",
"icon_state": "pai_rabbit",
"power": "0",
"resolve": "1",
"faction": "Science",
- "summoncost": "2",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Silicon Rabbit",
+ "cardsubtype": "Silicon Creature",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/pai.dmi",
"summon_icon_state": "rabbit"
@@ -937,14 +937,14 @@
"id": "drone_pai",
"name": "Personal AI Device (Drone Shell)",
"desc": "The most basic Personal AI shell, the Drone Shell resembles the old maintainance drones used on Nanotrasen Stations prior to 'the incident', and is perfect for the tech-savvy AI-owner.",
- "rules": "You may pay 1 mana and tap this card: a silicon card may attack one additional time this turn.",
+ "rules": "Tap this card: Add a silicon card from your discard pile to your hand.",
"icon_state": "pai_drone",
"power": "2",
"resolve": "4",
"faction": "Science",
- "summoncost": "5",
+ "summoncost": "4",
"cardtype": "Creature",
- "cardsubtype": "Silicon Drone",
+ "cardsubtype": "Silicon",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/pai.dmi",
"summon_icon_state": "repairbot"
@@ -953,14 +953,14 @@
"id": "RD",
"name": "Research Director",
"desc": "The Research Director is the head of the Science Division, and is responsible for, shockingly, directing research.",
- "rules": "Once per turn, you may tap all Science faction cards in play, activate the effect of an event card twice.",
+ "rules": "Tap: The effect of the next event or instant card you activate this turn is played twice.",
"icon_state": "rd",
"power": "2",
"resolve": "5",
"faction": "Science",
- "summoncost": "7",
+ "summoncost": "6",
"cardtype": "Creature",
- "cardsubtype": "Human Scientist",
+ "cardsubtype": "Science Command",
"rarity": "uncommon",
"summon_icon_state": "Research Director"
},
@@ -968,28 +968,28 @@
"id": "rd_suit",
"name": "Nakamura Engineering B.O.M.B.Suit",
"desc": "The Nakamura Engineering B.O.M.B.Suit is an innovative combination of a R.I.G.Suit and a bomb suit, perfect for toxins research.",
- "rules": "Reduces all battlefield damage to the equipped creature by 2.",
+ "rules": "Damage to the equipped creature cannot exceed 2.",
"icon_state": "rd_hardsuit",
"power": "0",
"resolve": "0",
"faction": "Science",
"summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Science",
"rarity": "rare"
},
{
"id": "roboticist",
"name": "Roboticist",
"desc": "The roboticist's work is as close as Nanotrasen legally allows its employees to come to necromancy.",
- "rules": "If a {$Asimov} card on your side of the field is destroyed, you may pay 2 mana and tap this card: Return that card to your hand.",
+ "rules": "On Play: Add a Silicon from your deck to your hand.",
"icon_state": "roboticist",
"power": "2",
"resolve": "2",
"faction": "Science",
"summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Scientist",
+ "cardsubtype": "Science Silicon",
"rarity": "uncommon",
"summon_icon_state": "Roboticist"
},
@@ -997,14 +997,14 @@
"id": "runtime",
"name": "Runtime",
"desc": "Runtime is the CMO's personal feline companion, and is well known for her laziness. It's said that opening a tin of tuna anywhere on the station will bring her running.",
- "rules": "You may sacrifice this card: reduce the cost of summoning a medical faction card this turn by 2 mana.",
+ "rules": "Sacrifice this card: reduce the cost of summoning your next medical faction card this turn by 2 mana.",
"icon_state": "runtime",
"power": "0",
"resolve": "1",
"faction": "Medical",
- "summoncost": "3",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Cat",
+ "cardsubtype": "Animal Medical",
"rarity": "uncommon",
"summon_icon_file": "icons/mob/simple/pets.dmi",
"summon_icon_state": "cat"
@@ -1013,14 +1013,14 @@
"id": "scientist",
"name": "Scientist",
"desc": "Rumours that Nanotrasen hires 'mad scientists' are greatly exaggerated. Scientists are regularly screened to ensure that their insanity remains within acceptable limits.",
- "rules": "When this card is targeted by an opponent's single target event, you gain 1 lifeshard.",
+ "rules": "{$On Summon}: Destroy a creature with 4 or more power.",
"icon_state": "scientist",
"power": "1",
- "resolve": "2",
+ "resolve": "3",
"faction": "Science",
- "summoncost": "4",
+ "summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Scientist",
+ "cardsubtype": "Science",
"rarity": "common",
"summon_icon_state": "Scientist"
},
@@ -1028,14 +1028,14 @@
"id": "secborg",
"name": "Cyborg (Security Shell)",
"desc": "Following an incident in 2554, the Security Cyborg Shell was unilaterally phased out and replaced by the Peacekeeper. Nonetheless, many units remain in service with various other organisations such as private militaries.",
- "rules": "{$Asimov}, when this card targets a human creature, deal 1 damage to it after the battle resolves.",
+ "rules": "{$Asimov} When this attacks deal 1 damage to the blocker before the battle resolves (ignoring Asimov).",
"icon_state": "borg_sec",
"power": "4",
"resolve": "2",
"faction": "Security",
- "summoncost": "6",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon Officer",
+ "cardsubtype": "Silicon Security",
"rarity": "epic",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "sec"
@@ -1044,14 +1044,14 @@
"id": "sec_officer",
"name": "Security Officer",
"desc": "Nanotrasen would like to remind all employees to support their station security team; remember, the boys in red keep you safe!",
- "rules": "{$Squad Tactics}",
+ "rules": "{$Squad Tactics}: Heal this unit to full resolve.",
"icon_state": "sec",
- "power": "2",
- "resolve": "2",
+ "power": "3",
+ "resolve": "3",
"faction": "Security",
"summoncost": "3",
"cardtype": "Creature",
- "cardsubtype": "Human Officer",
+ "cardsubtype": "Security",
"rarity": "common",
"summon_icon_state": "Security Officer"
},
@@ -1061,26 +1061,26 @@
"desc": "Fashioned from paranormally reinforced brass, the Ratvar Cult's clockwork armour is as beautiful as it is heretical.",
"rules": "While equipped, give the equipped unit {$Clockwork}.",
"icon_state": "clock_cultist",
- "power": "2",
- "resolve": "2",
+ "power": "0",
+ "resolve": "0",
"faction": "Syndicate",
- "summoncost": "4",
+ "summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Armour",
+ "cardsubtype": "Wizardry",
"rarity": "epic"
},
{
"id": "beercanborg",
- "name": "Cyborg (Service Shell- Beercan)",
+ "name": "Cyborg (Service Shell - Beercan)",
"desc": "Despite being based on the Medical Shell, this particular Service Shell is tasked with destroying livers, rather than healing them.",
- "rules": "{$Asimov}, you may discard this card: draw one Service {$Faction} card from your deck, then shuffle.",
+ "rules": "{$Asimov} All enemy creatures gain {$Fury} and -1 Resolve while this is on the field.",
"icon_state": "borg_serv_can",
"power": "1",
"resolve": "1",
"faction": "Service",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Silicon",
+ "cardsubtype": "Silicon Bar",
"rarity": "uncommon",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "kent"
@@ -1089,46 +1089,46 @@
"id": "flamboyantborg",
"name": "Cyborg (Service Shell- Flamboyant)",
"desc": "Sometimes a cyborg just needs to show a bit of flamboyance, you know?",
- "rules": "{$Asimov}, gains +2/+2 when it's the only card on your side of the field.",
+ "rules": "{$Asimov}, gains +2/+2 and loses {$Asimov} when it's the only card on your side of the field.",
"icon_state": "borg_serv_pink",
"power": "0",
"resolve": "1",
"faction": "Service",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Silicon",
+ "cardsubtype": "Silicon Bar",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "brobot"
},
{
"id": "skirtborg",
- "name": "Cyborg (Service Shell- Skirted)",
+ "name": "Cyborg (Service Shell - Skirted)",
"desc": "The Service Shell is intended to be the most human of the Cyborg Shells, due to its outwardly social role- none exemplify this better than the Skirted Shell, showing that even robots can't escape fashion norms.",
- "rules": "{$Asimov}",
+ "rules": "{$Asimov} On Play: You (the player) heal 1 for every creature on your side of the field.",
"icon_state": "borg_serv_skirt",
"power": "0",
"resolve": "3",
"faction": "Service",
- "summoncost": "1",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon",
+ "cardsubtype": "Silicon Bar",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "service_f"
},
{
"id": "classicborg",
- "name": "Cyborg (Service Shell- Classic)",
+ "name": "Cyborg (Service Shell - Classic)",
"desc": "The classic Service Shell, the Classic Shell is what most crewmembers think of when they think of a 'useless robot that serves drinks'.",
- "rules": "{$Asimov}, for every piece of equipment in play, gain +1 temporary resolve during the opponent's turn. That temporary resolve is lost at the start of your turn.",
+ "rules": "{$Asimov}, for every equipment in play gain +1 resolve during the opponent's turn only.",
"icon_state": "borg_serv_suit",
"power": "1",
"resolve": "1",
"faction": "Service",
"summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Silicon",
+ "cardsubtype": "Silicon Bar",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "service_m"
@@ -1137,14 +1137,14 @@
"id": "stylinborg",
"name": "Cyborg (Service Shell- Ritzy)",
"desc": "Ooh, isn't this robot one cool cat?",
- "rules": "{$Asimov}",
+ "rules": "{$Asimov} On Play: Remove {$Asimov} from a creature.",
"icon_state": "borg_serv_tux",
"power": "1",
"resolve": "2",
"faction": "Service",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Silicon",
+ "cardsubtype": "Silicon Bar",
"rarity": "common",
"summon_icon_file": "icons/mob/silicon/robots.dmi",
"summon_icon_state": "tophat"
@@ -1153,14 +1153,14 @@
"id": "miner",
"name": "Shaft Miner",
"desc": "When the station needs materials, these are the guys who risk their lives, bravely pioneering the wastes of Indecipheres, to bring them in.",
- "rules": "Once per turn, you may pay 1 mana and tap this card: Draw one card from your deck, and either discard it, or send it to the bottom of your deck.",
+ "rules": "Tap: Look at the top 3 cards of your deck, choose one to add to your hand and shuffle the rest back into your deck.",
"icon_state": "miner",
"power": "5",
"resolve": "3",
"faction": "Cargo",
- "summoncost": "5",
+ "summoncost": "4",
"cardtype": "Creature",
- "cardsubtype": "Human Miner",
+ "cardsubtype": "Cargo",
"rarity": "rare",
"summon_icon_state": "Shaft Miner"
},
@@ -1168,14 +1168,14 @@
"id": "engi",
"name": "Station Engineer",
"desc": "Station Engineers maintain the intricate and delicate web of machinery that keeps you, and everyone else aboard your station, alive. No pressure there, then.",
- "rules": "Tap this card: Reduce the damage a card would take this turn from a battlefield to zero.",
+ "rules": "{$Graytide} Tap: Destroy or return to the hand a Battlefield card on the field.",
"icon_state": "engi",
"power": "2",
"resolve": "2",
"faction": "Engineering",
- "summoncost": "4",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Human Engineer",
+ "cardsubtype": "Atmospherics Maintenance",
"rarity": "common",
"summon_icon_state": "Station Engineer"
},
@@ -1183,14 +1183,14 @@
"id": "swarmer",
"name": "Swarmer",
"desc": "Leading researchers theorise that Swarmers were designed as some kind of vanguard for an alien invasion force, which seemingly has never materialised.",
- "rules": "{$Graytide}, {$Immunity} to Engineering creature cards.",
+ "rules": "{$Graytide}, {$Squad Tactics}: Create a 1/1 'Swarmer Spawn' token.",
"icon_state": "swarmer",
"power": "0",
"resolve": "1",
"faction": "Syndicate",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Robot",
+ "cardsubtype": "Silicon Maintenance",
"rarity": "rare",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
"summon_icon_state": "swarmer"
@@ -1199,14 +1199,14 @@
"id": "viro",
"name": "Virologist",
"desc": "Officially, the virologist is present on station to deal with novel diseases and ailments that originate from deep space. As everyone knows, this is not what the virologist actually does.",
- "rules": "",
+ "rules": "On Play: Gain +3 Power until the end of this turn.",
"icon_state": "viro",
- "power": "5",
+ "power": "1",
"resolve": "1",
"faction": "Medical",
- "summoncost": "3",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Doctor",
+ "cardsubtype": "Medical",
"rarity": "common",
"summon_icon_state": "Virologist"
},
@@ -1214,10 +1214,10 @@
"id": "warden",
"name": "Warden",
"desc": "The Warden is tasked with the herculean (and futile) feat of defending the armory and brig, and never leaving his post, no matter the situation.",
- "rules": "{$Squad Tactics}, {$Blocker}",
+ "rules": "{$Holy}, {$Blocker}",
"icon_state": "warden",
"power": "2",
- "resolve": "4",
+ "resolve": "6",
"faction": "Security",
"summoncost": "4",
"cardtype": "Creature",
@@ -1234,7 +1234,7 @@
"power": "2",
"resolve": "3",
"faction": "Xeno",
- "summoncost": "4",
+ "summoncost": "3",
"cardtype": "Creature",
"cardsubtype": "Xenomorph",
"series": "coreset2020",
@@ -1246,14 +1246,14 @@
"id": "tough_choices",
"name": "Tough Choices",
"desc": "Every Nanotrasen employee will, at some point, be forced to make a tough choice. Make sure you make the right one!",
- "rules": "Draw the top three cards from your deck. Summon one at no cost, and discard the other two.",
+ "rules": "Draw the top three cards from your deck. Choose one to add to your hand and discard the other two.",
"icon_state": "tough_choices",
"power": "0",
"resolve": "0",
"faction": "Syndicate",
- "summoncost": "2",
+ "summoncost": "1",
"cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardsubtype": "Security",
"series": "coreset2020",
"rarity": "common"
},
@@ -1261,14 +1261,14 @@
"id": "bsa_barrage",
"name": "Bluespace Barrage",
"desc": "The officers at Centcom are well known for their ability to hit targets extremely accurately with their bluespace artillery, especially when stupid pictures show up at their fax machine.",
- "rules": "Destroy any creature on the opponent's battlefield. If your opponent has no creatures, deal 2 damage directly to them.",
+ "rules": "The opponent chooses a creature they control. It is destroyed. If your opponent has no creatures, deal 5 damage directly to them.",
"icon_state": "bsa_barrage",
"power": "0",
"resolve": "0",
"faction": "Security",
- "summoncost": "3",
- "cardtype": "Event",
- "cardsubtype": "Instant",
+ "summoncost": "4",
+ "cardtype": "Instant",
+ "cardsubtype": "Command ERT",
"series": "coreset2020",
"rarity": "uncommon"
},
@@ -1282,8 +1282,8 @@
"resolve": "0",
"faction": "Science",
"summoncost": "1",
- "cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardtype": "Instant",
+ "cardsubtype": "Silicon",
"series": "coreset2020",
"rarity": "common"
},
@@ -1291,14 +1291,14 @@
"id": "adrenals",
"name": "Adrenals",
"desc": "A potent mixture of stimulants, designed to enhance a soldier's ability in the field. Technically illegal in Terragov territory, but since when has that stopped anyone?",
- "rules": "Grant +2/+1 to a Creature card that you control.",
+ "rules": "Grant +2/+1 to a Creature card that you control until the end of this turn.",
"icon_state": "adrenals",
"power": "+2",
"resolve": "+1",
"faction": "Medical",
"summoncost": "1",
- "cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardtype": "Instant",
+ "cardsubtype": "Medical Security",
"series": "coreset2020",
"rarity": "common"
},
@@ -1311,7 +1311,7 @@
"power": "0",
"resolve": "0",
"faction": "Engineering",
- "summoncost": "3",
+ "summoncost": "1",
"cardtype": "Battlefield",
"cardsubtype": "Atmospherics",
"series": "coreset2020",
@@ -1321,14 +1321,14 @@
"id": "psych",
"name": "Psychologist",
"desc": "The psychologist is the newest addition to Nanotrasen's medical workforce, quickly settling into their role as the job that does nothing valuable.",
- "rules": "",
+ "rules": "Tap: Destroy an equipment card on the field.",
"icon_state": "psych",
"power": "1",
"resolve": "1",
"faction": "Medical",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Human Doctor",
+ "cardsubtype": "Medical",
"series": "coreset2020",
"rarity": "common",
"summon_icon_state": "Psychologist"
@@ -1343,8 +1343,8 @@
"resolve": "0",
"faction": "Security",
"summoncost": "2",
- "cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardtype": "Instant",
+ "cardsubtype": "Security",
"series": "coreset2020",
"rarity": "uncommon"
},
@@ -1359,7 +1359,7 @@
"faction": "Science",
"summoncost": "3",
"cardtype": "Battlefield",
- "cardsubtype": "Anomaly",
+ "cardsubtype": "Wizardry Science",
"series": "coreset2020",
"rarity": "common"
},
@@ -1374,7 +1374,7 @@
"faction": "Science",
"summoncost": "3",
"cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardsubtype": "Science",
"series": "coreset2020",
"rarity": "uncommon"
},
@@ -1389,7 +1389,7 @@
"faction": "Cargo",
"summoncost": "2",
"cardtype": "Battlefield",
- "cardsubtype": "Event",
+ "cardsubtype": "Cargo",
"series": "coreset2020",
"rarity": "common"
},
@@ -1403,7 +1403,7 @@
"resolve": "0",
"faction": "Service",
"summoncost": "0",
- "cardtype": "Artifact",
+ "cardtype": "Equipment",
"cardsubtype": "Plant",
"series": "coreset2020",
"rarity": "legendary"
@@ -1419,7 +1419,7 @@
"faction": "Security",
"summoncost": "2",
"cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardsubtype": "Security Maintenance",
"series": "coreset2020",
"rarity": "common"
},
@@ -1432,9 +1432,9 @@
"power": "2",
"resolve": "3",
"faction": "Syndicate",
- "summoncost": "3",
+ "summoncost": "2",
"cardtype": "Creature",
- "cardsubtype": "Spirit",
+ "cardsubtype": "Wizardry",
"series": "coreset2020",
"rarity": "rare",
"summon_icon_file": "icons/mob/simple/mob.dmi",
@@ -1444,14 +1444,14 @@
"id": "re_education",
"name": "Re-Education",
"desc": "Nobody ever seems to return from re-education. Probably best not to question it.",
- "rules": "Destroy any creature on the opponent's battlefield.",
+ "rules": "Destroy a creature on the opponent's battlefield.",
"icon_state": "re_education",
"power": "0",
"resolve": "0",
"faction": "Security",
- "summoncost": "2",
- "cardtype": "Event",
- "cardsubtype": "Instant",
+ "summoncost": "5",
+ "cardtype": "Instant",
+ "cardsubtype": "Security",
"series": "coreset2020",
"rarity": "uncommon"
},
@@ -1459,14 +1459,14 @@
"id": "immoral_surgeon",
"name": "Immoral Surgeon",
"desc": "Remember, the Hippocratic oath is only a suggestion.",
- "rules": "2 Mana- You may tap Immoral Surgeon and give a creature +1/+1.",
+ "rules": "Tap: Give a creature +1/-1.",
"icon_state": "immoral_surgeon",
"power": "2",
- "resolve": "4",
+ "resolve": "1",
"faction": "Medical",
- "summoncost": "4",
+ "summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Lizard Doctor",
+ "cardsubtype": "Medical",
"series": "coreset2020",
"rarity": "uncommon",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
@@ -1476,14 +1476,14 @@
"id": "botanist_plant",
"name": "Committed Botanist",
"desc": "When you've grown the plants, nurtured the plants, and harvested the plants, there's only one place to go from there... becoming the plant.",
- "rules": "While Committed Botanist is on your battlefield, you can play Plant and Service cards at half their cost, rounded up.",
+ "rules": "While Committed Botanist is on your battlefield you can play Plant cards at half their cost, rounded up.",
"icon_state": "botanist_plant",
"power": "2",
"resolve": "3",
"faction": "Service",
"summoncost": "4",
"cardtype": "Creature",
- "cardsubtype": "Plant Worker",
+ "cardsubtype": "Plant Bar",
"series": "coreset2020",
"rarity": "rare",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
@@ -1493,14 +1493,14 @@
"id": "scientist_moth",
"name": "Scientist (Moth)",
"desc": "Moths are a common sight in Nanotrasen research departments, acting as integral ideas guys for new clothing designs and lighting innovations.",
- "rules": "",
+ "rules": "Enemy creatures cannot block this unit if it is attacking directly.",
"icon_state": "scientist_moth",
"power": "2",
"resolve": "2",
"faction": "Science",
"summoncost": "1",
"cardtype": "Creature",
- "cardsubtype": "Moth Scientist",
+ "cardsubtype": "Scientist",
"series": "coreset2020",
"rarity": "common",
"summon_icon_file": "icons/obj/toys/tcgsummons.dmi",
@@ -1510,14 +1510,14 @@
"id": "inducer",
"name": "Inducer",
"desc": "The inducer is a marvelous piece of tech, allowing the recharging of an internal cell without opening a machine.",
- "rules": "Pay 3 lifeshards: Gain 3 mana this turn.",
+ "rules": "Pay 2 lifeshards to gain 1 plasma.",
"icon_state": "inducer",
"power": "0",
"resolve": "0",
"faction": "Engineering",
"summoncost": "0",
"cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardsubtype": "Science",
"series": "coreset2020",
"rarity": "common"
},
@@ -1525,7 +1525,7 @@
"id": "fryer",
"name": "Deep Fryer",
"desc": "God bless the United States of Space America.",
- "rules": "For 2 mana: Tap this card and destroy an opposing equipment card.",
+ "rules": "Destroy an opposing equipment card.",
"icon_state": "fryer",
"power": "0",
"resolve": "0",
@@ -1540,14 +1540,14 @@
"id": "sleeping_carp",
"name": "Scroll of the Sleeping Carp",
"desc": "Created by the long-extinct Carp Monks of Space Tibet, the Sleeping Carp style has been kept alive by dedicated practitioners, and even found its way into the Syndicate's training regime.",
- "rules": "{$On Equip}: Your opponent must show you one card in their hand of their choice.",
+ "rules": "{$On Equip}: Your opponent must show you their entire hand.",
"icon_state": "sleeping_carp",
- "power": "3",
+ "power": "1",
"resolve": "1",
"faction": "Syndicate",
- "summoncost": "3",
+ "summoncost": "1",
"cardtype": "Equipment",
- "cardsubtype": "Weapon",
+ "cardsubtype": "Syndicate",
"series": "coreset2020",
"rarity": "epic"
},
@@ -1555,14 +1555,14 @@
"id": "nuclear_option",
"name": "The Nuclear Option",
"desc": "The Gorlex Marauders are well known for their nuclear weapons, and their nuke first, second, third and fourth policy with regards to deploying them.",
- "rules": "Destroy the active battlefield card. Deal 2 damage to all creatures on both battlefields.",
+ "rules": "Destroy the active battlefield card. Destroy all creatures on both battlefields.",
"icon_state": "nuclear_option",
"power": "0",
"resolve": "0",
"faction": "Syndicate",
- "summoncost": "3",
- "cardtype": "Event",
- "cardsubtype": "Instant",
+ "summoncost": "5",
+ "cardtype": "Instant",
+ "cardsubtype": "Atmospherics Syndicate",
"series": "coreset2020",
"rarity": "rare"
},
@@ -1570,14 +1570,14 @@
"id": "bepis",
"name": "B.E.P.I.S. Chamber",
"desc": "Created as an automated investment machine for a venture capitalism company, the B.E.P.I.S. ended up in the hands of Nanotrasen's research division after bankrupting the original creators... and 27 other corporations.",
- "rules": "Flip a coin. If heads, gain 2 mana. If tails, lose up to 2 mana.",
+ "rules": "Flip a coin. If heads, gain 4 mana.",
"icon_state": "bepis",
"power": "0",
"resolve": "0",
"faction": "Science",
- "summoncost": "0",
+ "summoncost": "2",
"cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardsubtype": "Clown Science",
"series": "coreset2020",
"rarity": "common"
},
@@ -1591,8 +1591,8 @@
"resolve": "0",
"faction": "Medical",
"summoncost": "3",
- "cardtype": "Event",
- "cardsubtype": "Instant",
+ "cardtype": "Instant",
+ "cardsubtype": "Clown Medical",
"series": "coreset2020",
"rarity": "uncommon"
},
@@ -1600,14 +1600,14 @@
"id": "disco_inferno",
"name": "Disco Inferno",
"desc": "(Burn baby burn) burn that mother down y'all\n(Burn baby burn) Disco Inferno\n(Burn baby burn) burn that mother down",
- "rules": "For 2 mana: Tap this card permanantly. While tapped, all active creatures take 3 damage during the first play phase of each turn. This card is destroyed after 2 turns of being tapped.",
+ "rules": "All active creatures take 3 damage during the first play phase of each turn. This card is destroyed after this effect triggers 4 times.",
"icon_state": "disco_inferno",
"power": "0",
"resolve": "0",
"faction": "Science",
"summoncost": "4",
"cardtype": "Battlefield",
- "cardsubtype": "Shuttle",
+ "cardsubtype": "Science Atmosian",
"series": "coreset2020",
"rarity": "uncommon"
}
diff --git a/strings/tcg/set_two.json b/strings/tcg/set_two.json
index 02331326deaee..935fbfaf840c1 100644
--- a/strings/tcg/set_two.json
+++ b/strings/tcg/set_two.json
@@ -1,6 +1,6 @@
{
"templates": [
- {
+ {
"template": "default",
"icon": "icons/runtime/tcg/xenos.dmi",
"series": "resinfront",
@@ -13,12 +13,12 @@
"id": "xenoborg",
"name": "Xenoborg",
"desc": "With a mini-gun in one hand and a rocket launcher in the other, the Xenoborg is a failed hybridization of a Xenomorph and a cyborg.",
- "rules": "{$Asimov}. Once per turn, you may sacrifice a silicon card, and pay the difference between that card's summon cost and this card's summon cost to summon this card from your hand.",
+ "rules": "You may sacrifice a silicon, reducing the cost of this card by the sacrificed creature's plasma cost, to summon this card from your hand.",
"icon_state": "xeno_borg",
"power": 7,
"resolve": 5,
"faction": "Science",
- "summoncost": 6,
+ "summoncost": 5,
"cardtype": "Creature",
"cardsubtype": "Silicon Xenomorph",
"rarity": "epic",
@@ -28,10 +28,10 @@
"id": "sentinel",
"name": "Xenomorph Sentinel",
"desc": "The juices from a Sentinel's neurotoxin gland pair brilliantly with a Pan-Galactic Gargle Blaster.",
- "rules": "{$Hivemind}",
+ "rules": "{$Hivemind} {$Taunt} {$Blocker}",
"icon_state": "xeno_sentinel",
"power": 5,
- "resolve": 3,
+ "resolve": 2,
"faction": "Xeno",
"summoncost": 4,
"cardtype": "Creature",
@@ -43,12 +43,12 @@
"id": "drone",
"name": "Xenomorph Drone",
"desc": "Rarely seen on the frontline, the Drone is your average worker that lays the foundation of the hive.",
- "rules": "{$Hivemind}. Tap this card: you may summon a Xeno faction creature for 1 less mana this turn.",
+ "rules": "{$Hivemind}. Tap: Summon a Xeno faction creature for 1 less mana.",
"icon_state": "xeno_drone",
"power": 1,
"resolve": 1,
"faction": "Xeno",
- "summoncost": 2,
+ "summoncost": 1,
"cardtype": "Creature",
"cardsubtype": "Xenomorph",
"rarity": "common",
@@ -63,7 +63,7 @@
"power": 6,
"resolve": 3,
"faction": "Xeno",
- "summoncost": 5,
+ "summoncost": 4,
"cardtype": "Creature",
"cardsubtype": "Xenomorph",
"rarity": "uncommon",
@@ -73,10 +73,10 @@
"id": "spitter",
"name": "Xenomorph Spitter",
"desc": "While their acid gland is too dangerous to mix with alcohol (not that it stops the marines), a Spitter's acid is useful for industry as it can melt almost anything with ease.",
- "rules": "{$Hivemind}. Tap this card: draw the top 2 cards of your deck, you may re-arrange their order, then return them to the top of your deck.",
+ "rules": "{$Hivemind}. Tap: Draw the top 2 cards of your deck then discard any that weren't Xenomorph.",
"icon_state": "xeno_spitter",
- "power": 3,
- "resolve": 3,
+ "power": 2,
+ "resolve": 1,
"faction": "Xeno",
"summoncost": 3,
"cardtype": "Creature",
@@ -103,12 +103,12 @@
"id": "praetorian",
"name": "Xenomorph Praetorian",
"desc": "The Praetorian is the Queen's royal guard, never seen far from the Queen's chambers.",
- "rules": "{$Hivemind}. If you have 2 or more other Xeno cards on your field alongside this card, you may sacrifice 3 Xeno cards and add Xenomorph Queen to your hand from your deck.",
+ "rules": "{$Hivemind}. {On Summon}: Add a Xenomorph Queen card to your hand from your deck.",
"icon_state": "xeno_praetorian",
- "power": 3,
- "resolve": 6,
+ "power": 2,
+ "resolve": 3,
"faction": "Xeno",
- "summoncost": 5,
+ "summoncost": 2,
"cardtype": "Creature",
"cardsubtype": "Xenomorph",
"rarity": "rare",
@@ -118,7 +118,7 @@
"id": "hivelord",
"name": "Xenomorph Hivelord",
"desc": "The Hivelord is the last word in construction, capable of building entire hives in a matter of seconds.",
- "rules": "{$Hivemind}. For two mana, tap this card and summon a 0/2 Resin Wall counter creature. Each Resin Wall has {$Blocker}.",
+ "rules": "{$Hivemind}. Tap; summon a 0/2 Resin Wall counter creature. Each Resin Wall has {$Blocker}.",
"icon_state": "xeno_hivelord",
"power": 1,
"resolve": 3,
@@ -133,7 +133,7 @@
"id": "boiler",
"name": "Xenomorph Boiler",
"desc": "The Boiler is a long-range artillery machine, capable of spewing clouds of acid that melt everything in seconds.",
- "rules": "{$Hivemind}. If this card attacks, it is tapped for an additional turn before it is untapped.",
+ "rules": "{$Hivemind}. This creatures' direct attacks cannot be blocked..",
"icon_state": "xeno_boiler",
"power": 6,
"resolve": 2,
@@ -150,7 +150,7 @@
"desc": "With large scythe claws for hands, the furious Ravager goes berserk at the sight of fire.",
"rules": "{$Hivemind}, {$Fury}",
"icon_state": "xeno_ravager",
- "power": 4,
+ "power": 2,
"resolve": 2,
"faction": "Xeno",
"summoncost": 3,
@@ -181,9 +181,9 @@
"rules": "{$Hivemind}, {$Blocker}",
"icon_state": "xeno_defender",
"power": 1,
- "resolve": 2,
+ "resolve": 1,
"faction": "Xeno",
- "summoncost": 2,
+ "summoncost": 0,
"cardtype": "Creature",
"cardsubtype": "Xenomorph",
"rarity": "common",
@@ -193,10 +193,10 @@
"id": "warrior",
"name": "Xenomorph Warrior",
"desc": "Warriors exhibit greater cruelty than other Xeno strains, enjoying snapping a victim's limbs before finishing them off.",
- "rules": "{$Hivemind}",
+ "rules": "{$Hivemind} {$First Strike}",
"icon_state": "xeno_warrior",
- "power": 4,
- "resolve": 4,
+ "power": 3,
+ "resolve": 3,
"faction": "Xeno",
"summoncost": 4,
"cardtype": "Creature",
@@ -208,12 +208,12 @@
"id": "queen",
"name": "Xenomorph Queen (Resin Frontier)",
"desc": "The ruler of the hive. Organs from a Queen fetch a high price amongst researchers and less-than-moral surgeons.",
- "rules": "For 2 mana, tap the equipped creature and summon a 1/1 Xenomorph Brood counter creature, with {$Hivemind}.",
+ "rules": "If the equipped card is a Xenomorph give it {$Taunt} {$First Strike} {$Blocker}.",
"icon_state": "xeno_queen",
- "power": 5,
- "resolve": 5,
+ "power": 0,
+ "resolve": 0,
"faction": "Xeno",
- "summoncost": 5,
+ "summoncost": 3,
"cardtype": "Equipment",
"cardsubtype": "Armour",
"rarity": "epic"
@@ -222,7 +222,7 @@
"id": "carrier",
"name": "Xenomorph Carrier",
"desc": "Carriers are like the Easter Bunny except the eggs they hide will kill you.",
- "rules": "{$Hivemind}, {$Squad Tactics}",
+ "rules": "{$Hivemind}, {$Deadeye}: Add one Xenomorph from your Deck to your hand.",
"icon_state": "xeno_carrier",
"power": 2,
"resolve": 2,
@@ -237,7 +237,7 @@
"id": "defiler",
"name": "Xenomorph Defiler",
"desc": "Instead of utilizing eggs, the Defiler prefers to inject an unknown chemical in their victim, causing a devastating infection.",
- "rules": "{$Hivemind}. When this card attacks a target enemy creature, calculate damage as though the target creature has this card's power subtracted from it first.",
+ "rules": "{$Hivemind}. While this creature is on the field all enemy creatures lose 1 power.",
"icon_state": "xeno_defiler",
"power": 1,
"resolve": 3,
@@ -255,7 +255,7 @@
"rules": "{$Hivemind}, {$Changeling}",
"icon_state": "xeno_predalien",
"power": 4,
- "resolve": 3,
+ "resolve": 2,
"faction": "Xeno",
"summoncost": 3,
"cardtype": "Creature",
@@ -267,12 +267,12 @@
"id": "shrike",
"name": "Xenomorph Shrike",
"desc": "It is unknown why Shrikes are able to lead a Hive, but their hives are always much smaller than a Queen's.",
- "rules": "{$Hivemind}. If Xenomorph Queen would be destroyed, you may re-equip Xenomorph Queen on this card instead, once per game.",
+ "rules": "{$Hivemind}. Tap: Add Xenomorph Queen from your discard pile to your hand.",
"icon_state": "xeno_shrike",
- "power": 3,
+ "power": 2,
"resolve": 1,
"faction": "Xeno",
- "summoncost": 2,
+ "summoncost": 1,
"cardtype": "Creature",
"cardsubtype": "Xenomorph",
"rarity": "rare",
@@ -297,7 +297,7 @@
"id": "hivemind",
"name": "Xenomorph Hivemind",
"desc": "Recently discovered to have sapience, this pulsating orb will dig into the earth and rapidly spread resin throughout planets.",
- "rules": "Defender",
+ "rules": "{$Blocker} Tap: Add 1 Xenomorph creature from your Deck to your hand.",
"icon_state": "xeno_hivemind",
"power": 0,
"resolve": 1,
@@ -312,7 +312,7 @@
"id": "screecher",
"name": "Xenomorph Screecher",
"desc": "The Screecher's screeches are more psychologically damaging than the resulting hearing damage.",
- "rules": "{$Deadeye}",
+ "rules": "{$Deadeye}: All tapped enemy creatures take 1 damage.",
"icon_state": "xeno_screecher",
"power": 3,
"resolve": 2,
@@ -327,12 +327,12 @@
"id": "creep",
"name": "Xenomorph Creep",
"desc": "This special Hunter strain prioritizes stalking its target. It evolves into a strain of Hunter that is (mercifully) rarely seen aboard space stations.",
- "rules": "Tap this card: Until the start of your next turn, this card has immunity to Xeno Creatures.",
+ "rules": "Tap this card: Until the start of your next turn, this card has immunity to creatures.",
"icon_state": "xeno_creep",
- "power": 4,
- "resolve": 3,
+ "power": 2,
+ "resolve": 2,
"faction": "Xeno",
- "summoncost": 5,
+ "summoncost": 1,
"cardtype": "Creature",
"cardsubtype": "Xenomorph",
"rarity": "common",
diff --git a/tgstation.dme b/tgstation.dme
index f641cf622df0c..402b451a3c51d 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1040,6 +1040,7 @@
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\climb_tree.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\emote_with_target.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\find_parent.dm"
+#include "code\datums\ai\basic_mobs\basic_ai_behaviors\interact_with_target.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\nearest_targeting.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\pick_up_item.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\pull_target.dm"
@@ -1212,6 +1213,7 @@
#include "code\datums\components\chuunibyou.dm"
#include "code\datums\components\cleaner.dm"
#include "code\datums\components\clickbox.dm"
+#include "code\datums\components\clothing_dirt.dm"
#include "code\datums\components\clothing_fov_visor.dm"
#include "code\datums\components\codeword_hearing.dm"
#include "code\datums\components\combo_attacks.dm"
@@ -1915,6 +1917,7 @@
#include "code\datums\quirks\neutral_quirks\borg_ready.dm"
#include "code\datums\quirks\neutral_quirks\colorist.dm"
#include "code\datums\quirks\neutral_quirks\deviant_tastes.dm"
+#include "code\datums\quirks\neutral_quirks\evil.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"
@@ -1933,6 +1936,8 @@
#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\chip_connector.dm"
+#include "code\datums\quirks\positive_quirks\chipped.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"
@@ -2045,6 +2050,7 @@
#include "code\datums\status_effects\debuffs\stamcrit.dm"
#include "code\datums\status_effects\debuffs\static_vision.dm"
#include "code\datums\status_effects\debuffs\strandling.dm"
+#include "code\datums\status_effects\debuffs\temperature_over_time.dm"
#include "code\datums\status_effects\debuffs\terrified.dm"
#include "code\datums\status_effects\debuffs\tower_of_babel.dm"
#include "code\datums\status_effects\debuffs\tox_vomit.dm"
@@ -2056,6 +2062,7 @@
#include "code\datums\storage\subtypes\backpack.dm"
#include "code\datums\storage\subtypes\bag_of_holding.dm"
#include "code\datums\storage\subtypes\cards.dm"
+#include "code\datums\storage\subtypes\drone.dm"
#include "code\datums\storage\subtypes\duffel_bag.dm"
#include "code\datums\storage\subtypes\extract_inventory.dm"
#include "code\datums\storage\subtypes\fish_case.dm"
@@ -3911,6 +3918,7 @@
#include "code\modules\client\preferences\blindfold_color.dm"
#include "code\modules\client\preferences\body_type.dm"
#include "code\modules\client\preferences\broadcast_login_logout.dm"
+#include "code\modules\client\preferences\chipped.dm"
#include "code\modules\client\preferences\clothing.dm"
#include "code\modules\client\preferences\darkened_flash.dm"
#include "code\modules\client\preferences\food_allergy.dm"
@@ -4646,9 +4654,11 @@
#include "code\modules\library\random_books.dm"
#include "code\modules\library\skill_learning\skill_station.dm"
#include "code\modules\library\skill_learning\skillchip.dm"
+#include "code\modules\library\skill_learning\generic_skillchips\acrobatics.dm"
#include "code\modules\library\skill_learning\generic_skillchips\matrix_taunt.dm"
+#include "code\modules\library\skill_learning\generic_skillchips\misc.dm"
+#include "code\modules\library\skill_learning\generic_skillchips\musical.dm"
#include "code\modules\library\skill_learning\generic_skillchips\point.dm"
-#include "code\modules\library\skill_learning\generic_skillchips\rod_suplex.dm"
#include "code\modules\library\skill_learning\job_skillchips\_job.dm"
#include "code\modules\library\skill_learning\job_skillchips\chef.dm"
#include "code\modules\library\skill_learning\job_skillchips\clown.dm"
@@ -4656,6 +4666,7 @@
#include "code\modules\library\skill_learning\job_skillchips\janitor.dm"
#include "code\modules\library\skill_learning\job_skillchips\miner.dm"
#include "code\modules\library\skill_learning\job_skillchips\psychologist.dm"
+#include "code\modules\library\skill_learning\job_skillchips\research_director.dm"
#include "code\modules\library\skill_learning\job_skillchips\roboticist.dm"
#include "code\modules\library\skill_learning\job_skillchips\station_engineer.dm"
#include "code\modules\lighting\lighting_area.dm"
@@ -5096,6 +5107,7 @@
#include "code\modules\mob\living\basic\pets\fox.dm"
#include "code\modules\mob\living\basic\pets\penguin.dm"
#include "code\modules\mob\living\basic\pets\pet.dm"
+#include "code\modules\mob\living\basic\pets\pet_designer.dm"
#include "code\modules\mob\living\basic\pets\sloth.dm"
#include "code\modules\mob\living\basic\pets\cat\bread_cat_ai.dm"
#include "code\modules\mob\living\basic\pets\cat\cat.dm"
@@ -6266,6 +6278,7 @@
#include "code\modules\tgui\states\physical.dm"
#include "code\modules\tgui\states\reverse_contained.dm"
#include "code\modules\tgui\states\self.dm"
+#include "code\modules\tgui\states\standing.dm"
#include "code\modules\tgui\states\zlevel.dm"
#include "code\modules\tgui_input\alert.dm"
#include "code\modules\tgui_input\checkboxes.dm"
@@ -9383,6 +9396,7 @@
#include "modular_zubbers\master_files\code\datums\quirks\positive_quirks\self_aware.dm"
#include "modular_zubbers\master_files\code\datums\quirks\positive_quirks\skittish.dm"
#include "modular_zubbers\master_files\code\datums\traits\slow.dm"
+#include "modular_zubbers\master_files\code\game\objects\effects\spawners\random\decoration.dm"
#include "modular_zubbers\master_files\code\modules\client\preferences\hypnopref.dm"
#include "modular_zubbers\master_files\code\modules\client\preferences\obscurity_examine.dm"
#include "modular_zubbers\master_files\code\modules\client\preferences\scaling_method.dm"
diff --git a/tgui/packages/tgui-say/TguiSay.tsx b/tgui/packages/tgui-say/TguiSay.tsx
index fbee44f00f9e2..c06e72405d4f1 100644
--- a/tgui/packages/tgui-say/TguiSay.tsx
+++ b/tgui/packages/tgui-say/TguiSay.tsx
@@ -206,7 +206,8 @@ export class TguiSay extends Component<{}, State> {
// Is it a valid prefix?
const prefix = typed
.slice(0, 3)
- ?.toLowerCase() as keyof typeof RADIO_PREFIXES;
+ ?.toLowerCase()
+ ?.replace('.', ':') as keyof typeof RADIO_PREFIXES;
if (!RADIO_PREFIXES[prefix] || prefix === this.currentPrefix) {
return;
}
diff --git a/tgui/packages/tgui/interfaces/LootPanel/IconDisplay.tsx b/tgui/packages/tgui/interfaces/LootPanel/IconDisplay.tsx
index fb792f907f28e..a214a0a969e26 100644
--- a/tgui/packages/tgui/interfaces/LootPanel/IconDisplay.tsx
+++ b/tgui/packages/tgui/interfaces/LootPanel/IconDisplay.tsx
@@ -4,11 +4,18 @@ import { SearchItem } from './types';
type Props = {
item: SearchItem;
+ size: Size;
+};
+
+type Size = {
+ height: number;
+ width: number;
};
export function IconDisplay(props: Props) {
const {
item: { icon, icon_state },
+ size: { height, width },
} = props;
const fallback =