diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 6cfc2416f55ab..953aa99c0b2a0 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,7 +17,7 @@ ## Changelog - + :cl: add: Added new mechanics or gameplay changes diff --git a/.github/guides/AUTODOC.md b/.github/guides/AUTODOC.md index bcc92e10e59f3..fef5d62c668e2 100644 --- a/.github/guides/AUTODOC.md +++ b/.github/guides/AUTODOC.md @@ -40,7 +40,7 @@ public functions rely on to implement logic When documenting a proc, we give a short one line description (as this is shown next to the proc definition in the list of all procs for a type or global namespace), then a longer paragraph which will be shown when the user clicks on -the proc to jump to it's definition +the proc to jump to its definition ``` /** * Short description of the proc @@ -59,7 +59,7 @@ just going to be the typepath of the class, as dmdoc uses that by default Then we give a short oneline description of the class -Finally we give a longer multi paragraph description of the class and it's details +Finally we give a longer multi paragraph description of the class and its details ``` /** * # Classname (Can be omitted if it's just going to be the typepath) diff --git a/.github/guides/STANDARDS.md b/.github/guides/STANDARDS.md index 4716fa1b655c4..9c6496e0c4dc9 100644 --- a/.github/guides/STANDARDS.md +++ b/.github/guides/STANDARDS.md @@ -100,11 +100,11 @@ While we normally encourage (and in some cases, even require) bringing out of da ### RegisterSignal() #### PROC_REF Macros -When referencing procs in RegisterSignal, Callback and other procs you should use PROC_REF, TYPE_PROC_REF and GLOBAL_PROC_REF macros. +When referencing procs in RegisterSignal, Callback and other procs you should use PROC_REF, TYPE_PROC_REF and GLOBAL_PROC_REF macros. They ensure compilation fails if the reffered to procs change names or get removed. The macro to be used depends on how the proc you're in relates to the proc you want to use: -PROC_REF if the proc you want to use is defined on the current proc type or any of it's ancestor types. +PROC_REF if the proc you want to use is defined on the current proc type or any of its ancestor types. Example: ``` /mob/proc/funny() @@ -129,7 +129,7 @@ Example: /mob/subtype/proc/do_something() var/obj/thing/x = new() // we're referring to /obj/thing proc inside /mob/subtype proc - RegisterSignal(x, COMSIG_FAKE, TYPE_PROC_REF(/obj/thing, funny)) + RegisterSignal(x, COMSIG_FAKE, TYPE_PROC_REF(/obj/thing, funny)) ``` GLOBAL_PROC_REF if the proc you want to use is a global proc. @@ -154,7 +154,7 @@ All procs that are registered to listen for signals using `RegisterSignal()` mus ``` This is to ensure that it is clear the proc handles signals and turns on a lint to ensure it does not sleep. -Any sleeping behaviour that you need to perform inside a `SIGNAL_HANDLER` proc must be called asynchronously (e.g. with `INVOKE_ASYNC()`) or be redone to work asynchronously. +Any sleeping behaviour that you need to perform inside a `SIGNAL_HANDLER` proc must be called asynchronously (e.g. with `INVOKE_ASYNC()`) or be redone to work asynchronously. #### `override` @@ -280,7 +280,7 @@ Good: off_overlay = iconstate2appearance(icon, "off") broken_overlay = icon2appearance(broken_icon) if (stat & broken) - add_overlay(broken_overlay) + add_overlay(broken_overlay) return if (is_on) add_overlay(on_overlay) @@ -304,7 +304,7 @@ Bad: if (isnull(our_overlays)) our_overlays = list("on" = iconstate2appearance(overlay_icon, "on"), "off" = iconstate2appearance(overlay_icon, "off"), "broken" = iconstate2appearance(overlay_icon, "broken")) if (stat & broken) - add_overlay(our_overlays["broken"]) + add_overlay(our_overlays["broken"]) return ... ``` @@ -391,7 +391,7 @@ At its best, it can make some very common patterns easy to use, and harder to me some_code() if (do_something_else()) . = TRUE // Uh oh, what's going on! - + // even // more // code @@ -468,7 +468,7 @@ Meaning: to_chat(world, uh_oh()) ``` -...will print `woah!`. +...will print `woah!`. For this reason, it is acceptable for `.` to be used in places where consumers can reasonably continue in the event of a runtime. @@ -494,7 +494,7 @@ If you are using `.` in this case (or for another case that might be acceptable, . = ..() if (. == BIGGER_SUPER_ATTACK) return BIGGER_SUPER_ATTACK // More readable than `.` - + // Due to how common it is, most uses of `. = ..()` do not need a trailing `return .` ``` diff --git a/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_lower.dmm b/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_lower.dmm index 3d9b5410eea39..57d82ac5f87d8 100644 --- a/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_lower.dmm +++ b/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_lower.dmm @@ -504,7 +504,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /turf/open/floor/stone/icemoon, /area/ruin/unpowered/primitive_catgirl_den) "lZ" = ( @@ -1336,7 +1336,7 @@ /turf/open/misc/dirt/icemoon, /area/ruin/unpowered/primitive_catgirl_den) "Hi" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /turf/open/misc/dirt/icemoon, /area/ruin/unpowered/primitive_catgirl_den) "Hv" = ( @@ -1935,6 +1935,11 @@ /obj/item/ammo_casing/arrow, /turf/open/misc/dirt/icemoon, /area/ruin/unpowered/primitive_catgirl_den) +"VZ" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/smartfridge/drying/rack, +/turf/open/misc/dirt/icemoon, +/area/ruin/unpowered/primitive_catgirl_den) "WM" = ( /obj/structure/mineral_door/wood/large_gate{ dir = 8 @@ -3614,7 +3619,7 @@ gY wM eS pa -Ug +VZ oJ oJ sS diff --git a/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_upper.dmm b/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_upper.dmm index 1f7e407ed3a8e..e50a330f102ea 100644 --- a/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_upper.dmm +++ b/_maps/RandomRuins/IceRuins/skyrat/icemoon_underground_icewalker_upper.dmm @@ -831,7 +831,7 @@ /turf/open/floor/wood/icemoon, /area/ruin/unpowered/primitive_catgirl_den) "Ej" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /turf/open/floor/stone/icemoon, /area/ruin/unpowered/primitive_catgirl_den) "Ez" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 657683e20ec8b..b99f9df9681bb 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -806,16 +806,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/bar) -"gK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/structure/cable, -/turf/open/floor/mineral/plastitanium, -/area/ruin/syndicate_lava_base/cargo) "gO" = ( /obj/structure/sign/departments/cargo, /turf/closed/wall/mineral/plastitanium/nodiagonal, @@ -1738,6 +1728,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/syndicate_lava_base/engineering) +"nI" = ( +/obj/structure/table/wood, +/obj/machinery/light/small/directional/east, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/item/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/cup/glass/shaker, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/turf/open/floor/wood, +/area/ruin/syndicate_lava_base/bar) "nK" = ( /obj/machinery/door/airlock/public/glass{ name = "Bar" @@ -3062,15 +3067,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/ruin/syndicate_lava_base/arrivals) -"Fq" = ( -/obj/machinery/firealarm/directional/west, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/ruin/syndicate_lava_base/engineering) "Ft" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/firedoor, @@ -3159,6 +3155,15 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/bar) +"GI" = ( +/obj/machinery/firealarm/directional/west, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/ruin/syndicate_lava_base/engineering) "GV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3474,21 +3479,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/cargo) -"Lk" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/east, -/obj/structure/window/reinforced/spawner/directional/north{ - pixel_y = 1 - }, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/book/manual/wiki/barman_recipes, -/obj/item/reagent_containers/cup/glass/shaker, -/obj/machinery/computer/security/telescreen/entertainment/directional/east, -/turf/open/floor/wood, -/area/ruin/syndicate_lava_base/bar) "Ll" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3822,6 +3812,16 @@ }, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/arrivals) +"QG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndicate_lava_base/cargo) "QN" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -4034,6 +4034,34 @@ /obj/effect/mapping_helpers/airalarm/syndicate_access, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/main) +"TM" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/item/turbine_parts/rotor{ + current_tier = 3 + }, +/obj/item/turbine_parts/stator{ + current_tier = 2 + }, +/obj/item/turbine_parts/compressor{ + current_tier = 3 + }, +/obj/item/pipe_dispenser, +/obj/structure/closet/crate/engineering, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30 + }, +/obj/item/stack/sheet/plastitaniumglass{ + amount = 15 + }, +/obj/item/holosign_creator/atmos, +/obj/item/circuitboard/machine/thermomachine, +/obj/item/circuitboard/machine/thermomachine, +/turf/open/floor/iron, +/area/ruin/syndicate_lava_base/engineering) "TN" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/east, @@ -4403,31 +4431,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/engineering) -"YJ" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/item/turbine_parts/rotor{ - current_tier = 3 - }, -/obj/item/turbine_parts/stator{ - current_tier = 2 - }, -/obj/item/turbine_parts/compressor{ - current_tier = 3 - }, -/obj/item/pipe_dispenser, -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/mineral/plastitanium{ - amount = 30 - }, -/obj/item/stack/sheet/plastitaniumglass{ - amount = 15 - }, -/turf/open/floor/iron, -/area/ruin/syndicate_lava_base/engineering) "YP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -5662,7 +5665,7 @@ jy ka ue kM -Lk +nI lC To TN @@ -6314,7 +6317,7 @@ Bu kV lp Dr -Fq +GI mF Cj Lp @@ -6494,7 +6497,7 @@ ab dy dy eE -gK +QG dy gd dy @@ -6611,7 +6614,7 @@ ju ju TO JE -YJ +TM ta vB LW diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm index 1c4f402f49d1f..7e885840c40e5 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm @@ -211,7 +211,9 @@ /obj/item/storage/toolbox/syndicate, /obj/item/pipe_dispenser, /obj/item/rpd_upgrade/unwrench, +/obj/item/circuitboard/machine/emitter, /obj/structure/rack, +/obj/item/circuitboard/machine/emitter, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/testlab) "uT" = ( diff --git a/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_ash_walker1_skyrat.dmm b/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_ash_walker1_skyrat.dmm index f870375de6268..6d8c3d0ed0ae3 100644 --- a/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_ash_walker1_skyrat.dmm +++ b/_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_ash_walker1_skyrat.dmm @@ -1041,7 +1041,7 @@ /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "MR" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 843592aa00e3e..ec4126fafe58f 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -45,6 +45,15 @@ "ak" = ( /turf/closed/wall/rust, /area/ruin/space/ancientstation/charlie/bridge) +"al" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/monitor, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "ao" = ( /obj/structure/alien/weeds, /mob/living/basic/alien/drone, @@ -59,20 +68,6 @@ /obj/structure/alien/weeds/node, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/ai) -"ar" = ( -/obj/effect/decal/cleanable/robot_debris, -/obj/structure/alien/weeds, -/obj/structure/closet/crate, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/plasteel{ - amount = 30 - }, -/obj/item/stack/sheet/mineral/diamond, -/turf/open/floor/iron/dark, -/area/ruin/space/ancientstation/delta/ai) "as" = ( /turf/closed/wall, /area/ruin/space/ancientstation/charlie/bridge) @@ -226,16 +221,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/bridge) -"bh" = ( -/obj/machinery/modular_computer/preset/research/away{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/window/brigdoor/right/directional/east, -/turf/open/floor/iron/dark, -/area/ruin/space/ancientstation/delta/ai) "bi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -249,6 +234,12 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/bridge) +"bl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "bm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue, @@ -291,31 +282,6 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/bridge) -"bv" = ( -/obj/structure/alien/weeds, -/obj/structure/closet/crate/engineering{ - name = "camera assembly crate" - }, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/stack/cable_coil, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/dark, -/area/ruin/space/ancientstation/delta/ai) "bw" = ( /obj/machinery/door/airlock/engineering{ name = "Gravity Generator" @@ -375,6 +341,20 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/mining) +"bH" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/charlie/engie) "bJ" = ( /turf/closed/wall, /area/ruin/space/ancientstation/beta/atmos) @@ -451,17 +431,6 @@ /obj/structure/sign/poster/official/science, /turf/closed/wall/rust, /area/ruin/space/ancientstation/delta/hall) -"cd" = ( -/obj/machinery/door/airlock/command{ - name = "Beta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/hall) "ce" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -761,17 +730,26 @@ /obj/structure/alien/weeds, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/hall) +"dg" = ( +/obj/machinery/door/airlock/science{ + name = "Biolab" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor/closed, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/white/textured_large, +/area/ruin/space/ancientstation/delta/biolab) "dh" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/ancientstation/delta/hall) -"dj" = ( -/obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/beta/mining) "dk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -913,6 +891,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hydro) +"dT" = ( +/obj/machinery/modular_computer/preset/research/away{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/brigdoor/right/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/ai) "dU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -929,6 +917,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"dW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light_switch/directional/west{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine/airless, +/area/ruin/space/ancientstation/beta/supermatter) "dX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -985,35 +981,11 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/bridge) -"ek" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/obj/structure/closet/crate/bin, -/obj/effect/spawner/random/trash/garbage, -/obj/effect/spawner/random/trash/garbage, -/obj/effect/spawner/random/trash/garbage, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) -"el" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "em" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) -"en" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "eo" = ( /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, @@ -1111,18 +1083,6 @@ "eJ" = ( /turf/closed/wall, /area/ruin/space/ancientstation/charlie/sec) -"eK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/item/chair{ - pixel_y = -8; - pixel_x = 13 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "eL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1332,6 +1292,12 @@ /obj/machinery/light/small/broken/directional/east, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/ai) +"fy" = ( +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 1 + }, +/turf/open/floor/iron/dark/airless, +/area/ruin/space/ancientstation/beta/supermatter) "fE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1456,18 +1422,6 @@ "ga" = ( /turf/closed/wall, /area/ruin/space/ancientstation/beta/mining) -"gc" = ( -/obj/machinery/door/window/brigdoor/right/directional/west{ - name = "Plasma Canister Storage" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/space/ancientstation/beta/atmos) "gg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/west, @@ -1569,11 +1523,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) -"gM" = ( -/obj/machinery/rnd/production/circuit_imprinter/offstation, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/white, -/area/ruin/space/ancientstation/delta/rnd) "gP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/operating/oldstation{ @@ -1638,6 +1587,19 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/sec) +"hf" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/crowbar, +/obj/machinery/door/window/right/directional/north{ + req_access = list("away_general") + }, +/obj/item/paper/fluff/ruins/oldstation/apc_note, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/item/card/id/away/old/equipment, +/obj/item/stock_parts/power_store/battery/high, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "hh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/xenoblood/xgibs/core, @@ -1777,6 +1739,15 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) +"hR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine/airless, +/area/ruin/space/ancientstation/beta/supermatter) "hS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/purple/anticorner/contrasted, @@ -1828,26 +1799,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"ib" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Delta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ - dir = 4 - }, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/hall) "ic" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/transit_tube_pod{ @@ -1936,15 +1887,6 @@ /obj/effect/turf_decal/tile/red/anticorner/contrasted, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/sec) -"io" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/folder/white, -/obj/item/reagent_containers/cup/beaker, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/dropper, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/delta/rnd) "ip" = ( /obj/machinery/chem_master, /obj/effect/decal/cleanable/dirt, @@ -2039,6 +1981,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/ruin/space/ancientstation/delta/rnd) +"iH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/structure/fluff/broken_canister_frame, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "iI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2087,6 +2040,14 @@ }, /turf/open/floor/iron/airless, /area/ruin/space/ancientstation/beta/hall) +"iS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine/airless, +/area/ruin/space/ancientstation/beta/supermatter) "iU" = ( /obj/machinery/power/terminal{ dir = 4 @@ -2115,6 +2076,16 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/rnd) +"jc" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "je" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -2195,26 +2166,35 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"jB" = ( -/obj/structure/table, +"jy" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, -/obj/item/paper/fluff/ruins/oldstation, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) +"jz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) +"jB" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/item/paper/fluff/ruins/oldstation, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/dorms) "jE" = ( /turf/closed/wall/rust, /area/ruin/space/ancientstation/beta/hall) -"jF" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/table, -/obj/machinery/door/window/brigdoor/right/directional/east, -/obj/item/computer_disk, -/turf/open/floor/iron/dark, -/area/ruin/space/ancientstation/delta/ai) "jH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/south, @@ -2290,13 +2270,6 @@ /obj/machinery/door/window/left/directional/east, /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) -"jP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, -/obj/item/storage/backpack/duffelbag/sec, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/dorms) "jU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/public/glass{ @@ -2327,11 +2300,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hydro) -"jZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/pipedispenser, -/turf/open/floor/iron/airless, -/area/ruin/space/ancientstation/beta/hall) "kb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -2716,14 +2684,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) -"lz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 - }, -/obj/machinery/computer/apc_control/away, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "lB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/east, @@ -2938,27 +2898,12 @@ /obj/structure/cable, /turf/template_noop, /area/ruin/space/solars/ancientstation/charlie/solars) -"mz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, -/obj/item/storage/backpack/industrial, -/obj/item/storage/backpack/messenger/eng, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/dorms) "mA" = ( /obj/machinery/conveyor{ id = "beta" }, /turf/open/floor/plating, /area/ruin/space/ancientstation/beta/mining) -"mB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/mining) "mC" = ( /turf/closed/wall/rust, /area/ruin/space/ancientstation/charlie/storage) @@ -2977,12 +2922,6 @@ }, /turf/open/floor/plating, /area/ruin/space/ancientstation/beta/mining) -"mF" = ( -/obj/machinery/shower/directional/west{ - has_water_reclaimer = 0 - }, -/turf/open/floor/pod/dark, -/area/ruin/space/ancientstation/delta/biolab) "mG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3022,13 +2961,6 @@ /obj/machinery/mineral/processing_unit_console, /turf/closed/wall, /area/ruin/space/ancientstation/beta/mining) -"mP" = ( -/obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/beta/supermatter) "mR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3102,24 +3034,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) -"nb" = ( -/obj/machinery/door/airlock/command{ - name = "Beta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/hall) "nc" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -3129,25 +3043,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) -"nd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Delta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/hall) "nf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, @@ -3157,17 +3052,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) -"ng" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/structure/fluff/broken_canister_frame, -/obj/effect/decal/cleanable/plasma, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "nk" = ( /turf/closed/wall, /area/ruin/space/ancientstation/charlie/dorms) @@ -3220,27 +3104,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/atmos) -"nC" = ( -/obj/structure/closet/crate, -/obj/item/cautery{ - pixel_x = 4 - }, -/obj/item/hemostat, -/obj/item/circular_saw, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/retractor, -/obj/item/surgical_drapes, -/obj/machinery/light/small/broken/directional/west, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath/medical, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/obj/item/tank/internals/anesthetic/pure, -/turf/open/floor/iron/airless, -/area/ruin/space/ancientstation/beta/medbay) "nD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/optable, @@ -3248,6 +3111,15 @@ /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron/airless, /area/ruin/space/ancientstation/beta/medbay) +"nG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/machinery/door/window/brigdoor/right/directional/east, +/obj/item/computer_disk, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/ai) "nI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/science, @@ -3306,6 +3178,11 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/rnd) +"nT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/pipedispenser, +/turf/open/floor/iron/airless, +/area/ruin/space/ancientstation/beta/hall) "nU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, @@ -3322,12 +3199,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"oa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/reagent_containers/condiment/enzyme, -/turf/open/floor/iron/cafeteria, -/area/ruin/space/ancientstation/charlie/kitchen) "ob" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3669,12 +3540,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/mining) -"qk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "ql" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3716,17 +3581,20 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"qx" = ( -/obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/beta/supermatter) "qF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2{ dir = 4 }, /turf/closed/wall, /area/ruin/space/ancientstation/beta/atmos) +"qH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/charlie/engie) "qK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/portable_atmospherics/scrubber, @@ -3748,14 +3616,12 @@ /obj/effect/mapping_helpers/airalarm/away_general_access, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"qQ" = ( +"qT" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, /obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/catwalk_floor, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, /area/ruin/space/ancientstation/charlie/engie) "rc" = ( /obj/effect/decal/cleanable/dirt, @@ -3817,6 +3683,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) +"rw" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/engine/n2, +/area/ruin/space/ancientstation/beta/atmos) "rC" = ( /obj/effect/decal/cleanable/blood/xtracks{ dir = 8 @@ -3904,6 +3774,17 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) +"se" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/catwalk_floor, +/area/ruin/space/ancientstation/charlie/engie) "si" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, @@ -3971,6 +3852,15 @@ "sA" = ( /turf/closed/wall, /area/ruin/space/ancientstation/beta/gravity) +"sF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/catwalk_floor, +/area/ruin/space/ancientstation/beta/mining) "sJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4045,6 +3935,16 @@ }, /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) +"tg" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/beta/mining) "tm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/mapping_helpers/damaged_window, @@ -4054,6 +3954,14 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/ruin/space/ancientstation/beta/hall) +"tw" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to Distro" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/charlie/hall) "tz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4146,6 +4054,11 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/sec) +"ue" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "uj" = ( /turf/closed/wall/r_wall, /area/ruin/space/ancientstation/delta/proto) @@ -4191,6 +4104,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) +"uq" = ( +/obj/machinery/light/small/red/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/charlie/engie) "ur" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/suit_storage_unit/void_old/jetpack, @@ -4310,6 +4227,17 @@ dir = 1 }, /area/ruin/space/ancientstation/delta/biolab) +"vh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/item/tank/internals/oxygen{ + pixel_x = 1 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "vk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4391,6 +4319,14 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/supermatter) +"vQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/official/safety_internals/directional/north, +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/hall) "vS" = ( /obj/structure/table/glass, /obj/item/reagent_containers/cup/bottle/silver{ @@ -4434,19 +4370,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"wg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/structure/closet/crate/secure/weapon{ - req_access = list("away_sec") - }, -/obj/item/spess_knife, -/obj/item/clothing/suit/armor/vest/old, -/obj/item/gun/ballistic/rifle/boltaction, -/obj/item/ammo_box/strilka310, -/obj/item/ammo_box/strilka310, -/turf/open/floor/plating, -/area/ruin/space/ancientstation/delta/hall) "wi" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/command{ @@ -4553,6 +4476,10 @@ }, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/supermatter) +"wI" = ( +/obj/machinery/atmospherics/components/unary/airlock_pump, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/beta/mining) "wJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/old{ @@ -4597,11 +4524,6 @@ /obj/machinery/light/broken/directional/north, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"wR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/charlie/engie) "wS" = ( /obj/item/stack/rods, /obj/machinery/atmospherics/components/unary/vent_scrubber{ @@ -4610,6 +4532,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/supermatter) +"xd" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/folder/white, +/obj/item/reagent_containers/cup/beaker, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/dropper, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/delta/rnd) "xi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -4684,6 +4615,14 @@ }, /turf/open/floor/engine, /area/ruin/space/ancientstation/delta/biolab) +"xS" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/airless, +/area/ruin/space/ancientstation/beta/supermatter) "xT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -4693,16 +4632,31 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) -"xY" = ( -/obj/effect/turf_decal/caution/stand_clear, -/obj/effect/turf_decal/stripes/line, +"xW" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor{ - id = "Beta Secure Storage"; - name = "Secure Storage" - }, -/turf/open/floor/iron/textured_large, -/area/ruin/space/ancientstation/beta/supermatter) +/obj/structure/table, +/obj/item/reagent_containers/condiment/enzyme, +/turf/open/floor/iron/cafeteria, +/area/ruin/space/ancientstation/charlie/kitchen) +"xX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) +"xY" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor{ + id = "Beta Secure Storage"; + name = "Secure Storage" + }, +/turf/open/floor/iron/textured_large, +/area/ruin/space/ancientstation/beta/supermatter) "yc" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -4712,13 +4666,6 @@ /obj/structure/table, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) -"yk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/space/ancientstation/charlie/hall) "yq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4804,21 +4751,18 @@ }, /turf/open/floor/iron/airless, /area/ruin/space/ancientstation/beta/medbay) -"zj" = ( -/obj/machinery/door/airlock/science{ - name = "Biolab" +"zm" = ( +/obj/machinery/door/window/brigdoor/right/directional/west{ + name = "Plasma Canister Storage" }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/closed, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2{ dir = 4 }, -/turf/open/floor/iron/white/textured_large, -/area/ruin/space/ancientstation/delta/biolab) +/turf/open/floor/plating, +/area/ruin/space/ancientstation/beta/atmos) "zn" = ( /obj/machinery/door/airlock/engineering{ name = "Gravity Generator" @@ -4919,22 +4863,27 @@ }, /turf/template_noop, /area/space/nearstation) -"zX" = ( +"zU" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/machinery/door/airlock/command{ + name = "Delta Station Access" + }, +/obj/machinery/door/poddoor{ + id = "ancient" }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) -"zZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ dir = 4 }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/away/general, /turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) +/area/ruin/space/ancientstation/charlie/hall) "Aa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -5009,6 +4958,13 @@ "Ax" = ( /turf/closed/mineral/plasma, /area/ruin/space/ancientstation/beta/hall) +"Az" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "AA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random/dead, @@ -5046,6 +5002,23 @@ "AK" = ( /turf/closed/wall, /area/ruin/space/ancientstation/beta/medbay) +"AM" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/stripes/line, +/obj/structure/tank_dispenser/plasma, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) +"AO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/sign/warning/vacuum/directional/west, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "AT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5146,14 +5119,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) -"By" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/monitor, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "Bz" = ( /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) @@ -5192,9 +5157,31 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/ruin/space/ancientstation/delta/rnd) -"BP" = ( +"BR" = ( +/obj/machinery/shower/directional/west{ + has_water_reclaimer = 0 + }, +/turf/open/floor/pod/dark, +/area/ruin/space/ancientstation/delta/biolab) +"BS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/structure/closet/crate/secure/weapon{ + req_access = list("away_sec") + }, +/obj/item/spess_knife, +/obj/item/clothing/suit/armor/vest/old, +/obj/item/gun/ballistic/rifle/boltaction, +/obj/item/ammo_box/strilka310, +/obj/item/ammo_box/strilka310, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/delta/hall) +"BT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/engine/airless, +/turf/open/floor/catwalk_floor/airless, /area/ruin/space/ancientstation/beta/supermatter) "Cc" = ( /obj/effect/decal/cleanable/dirt, @@ -5222,17 +5209,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"Cm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/item/tank/internals/oxygen{ - pixel_x = 1 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "Cq" = ( /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) @@ -5261,6 +5237,27 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/kitchen) +"Ct" = ( +/obj/structure/closet/crate, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/item/hemostat, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/retractor, +/obj/item/surgical_drapes, +/obj/machinery/light/small/broken/directional/west, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath/medical, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/item/tank/internals/anesthetic/pure, +/turf/open/floor/iron/airless, +/area/ruin/space/ancientstation/beta/medbay) "CA" = ( /obj/effect/turf_decal/tile/purple/anticorner/contrasted{ dir = 4 @@ -5277,15 +5274,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/atmos) -"CF" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored{ - dir = 8; - chamber_id = "beta-n2" - }, -/turf/open/floor/engine/n2, -/area/ruin/space/ancientstation/beta/atmos) "CK" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/cup/beaker/oldstation, @@ -5457,10 +5445,6 @@ /obj/effect/mapping_helpers/damaged_window, /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/dorms) -"Ed" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/engine/n2, -/area/ruin/space/ancientstation/beta/atmos) "Eg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -5602,6 +5586,22 @@ /obj/machinery/space_heater, /turf/open/floor/plating/rust, /area/ruin/space/ancientstation/delta/hall) +"Fm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/tank/internals/oxygen{ + pixel_y = -8; + pixel_x = 8 + }, +/obj/item/tank/internals/oxygen{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "Fo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/glass, @@ -5624,6 +5624,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/diagonal, /area/ruin/space/ancientstation/beta/gravity) +"Ft" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vatgrower, +/turf/open/floor/engine, +/area/ruin/space/ancientstation/delta/biolab) "Fv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -5643,6 +5649,18 @@ /obj/item/stack/rods, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) +"FF" = ( +/obj/machinery/door/airlock/command{ + name = "Beta Station Access" + }, +/obj/machinery/door/poddoor{ + id = "ancient" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/hall) "FJ" = ( /obj/structure/alien/weeds, /obj/machinery/light/small/broken/directional/west, @@ -5739,13 +5757,6 @@ /obj/effect/decal/cleanable/food/flour, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"Gb" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/turf_decal/stripes/line, -/obj/structure/tank_dispenser/plasma, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "Gd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -5788,10 +5799,6 @@ /obj/structure/closet/firecloset/full, /turf/open/floor/plating, /area/ruin/space/ancientstation/delta/hall) -"Gt" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/space/ancientstation/charlie/engie) "Gv" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -5799,14 +5806,20 @@ "Gz" = ( /turf/closed/wall/rust, /area/ruin/space/ancientstation/delta/hall) +"GA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/binary/tank_compressor{ + dir = 8 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "GH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"GJ" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine/airless, -/area/ruin/space/ancientstation/beta/supermatter) "GK" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Storage Room" @@ -5826,16 +5839,6 @@ }, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) -"GP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "GX" = ( /turf/closed/wall/rust, /area/ruin/space/ancientstation/delta/biolab) @@ -5896,6 +5899,15 @@ initial_gas_mix = "co2=6;o2=16;n2=82;TEMP=293.15" }, /area/ruin/space/ancientstation/delta/hall) +"Ht" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/apc_control/away, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "Hw" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -5931,6 +5943,11 @@ /obj/machinery/door/firedoor/closed, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) +"HF" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, +/area/ruin/space/ancientstation/beta/supermatter) "HG" = ( /obj/structure/grille/broken, /turf/open/floor/plating/airless, @@ -5996,6 +6013,15 @@ dir = 4 }, /area/ruin/space/ancientstation/delta/biolab) +"Ib" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "Ic" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -6018,13 +6044,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/rust, /area/ruin/space/ancientstation/delta/hall) -"Im" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light_switch/directional/west{ - pixel_x = -24 - }, -/turf/open/floor/engine/airless, -/area/ruin/space/ancientstation/beta/supermatter) "Ip" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kitchen/fork{ @@ -6133,13 +6152,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"IZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "Ja" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -6176,6 +6188,14 @@ /obj/structure/lattice, /turf/template_noop, /area/space/nearstation) +"Jk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/storage/backpack/industrial, +/obj/item/storage/backpack/messenger/eng, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/dorms) "Jo" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -6195,6 +6215,20 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"Js" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/alien/weeds, +/obj/structure/closet/crate, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/plasteel{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/diamond, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/ai) "Jw" = ( /obj/effect/decal/cleanable/glass, /obj/structure/closet/firecloset, @@ -6276,16 +6310,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"JI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/binary/tank_compressor{ - dir = 8 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "JJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance_hatch{ @@ -6311,10 +6335,6 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/ruin/space/ancientstation/delta/hall) -"JR" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/delta/hall) "JT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -6417,6 +6437,18 @@ /obj/effect/mapping_helpers/broken_machine, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/dorms) +"Kr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/storage/backpack/duffelbag/sec, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/dorms) +"Kt" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, +/area/ruin/space/ancientstation/delta/hall) "Ku" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -6506,6 +6538,12 @@ /obj/item/paper/guides/jobs/engi/gravity_gen, /turf/open/floor/iron/diagonal, /area/ruin/space/ancientstation/beta/gravity) +"KW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/ruin/space/ancientstation/delta/hall) "KX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6515,6 +6553,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) +"Lb" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/hall) "Lc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -6539,6 +6583,18 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"Lg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/door/airlock/external/glass/ruin, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/charlie/engie) "Lh" = ( /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine/o2, @@ -6656,6 +6712,26 @@ /obj/effect/decal/cleanable/generic, /turf/open/floor/iron/white/textured_large, /area/ruin/space/ancientstation/delta/biolab) +"LO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/command{ + name = "Delta Station Access" + }, +/obj/machinery/door/poddoor{ + id = "ancient" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/hall) "LS" = ( /obj/structure/table, /obj/item/stack/sheet/glass, @@ -6725,6 +6801,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) +"Mh" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, +/area/ruin/space/ancientstation/beta/mining) "Mr" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -6846,11 +6927,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/ruin/space/ancientstation/beta/supermatter) -"Ni" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/official/safety_internals/directional/north, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/delta/hall) "Np" = ( /obj/effect/decal/cleanable/blood/xtracks{ dir = 10 @@ -6862,9 +6938,19 @@ /obj/machinery/power/energy_accumulator/grounding_rod{ anchored = 1 }, -/obj/structure/window/plasma/spawner/directional/west, -/turf/open/floor/engine/airless, -/area/ruin/space/ancientstation/beta/supermatter) +/obj/structure/window/plasma/spawner/directional/west, +/turf/open/floor/engine/airless, +/area/ruin/space/ancientstation/beta/supermatter) +"Nu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/charlie/engie) "Nx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -6894,9 +6980,6 @@ /obj/structure/table_frame, /turf/open/floor/iron/airless, /area/ruin/space/ancientstation/beta/medbay) -"NC" = ( -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/beta/supermatter) "ND" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/portable_atmospherics/pump, @@ -6955,6 +7038,25 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/textured_half, /area/ruin/space/ancientstation/beta/supermatter) +"NV" = ( +/obj/machinery/door/airlock/command{ + name = "Beta Station Access" + }, +/obj/machinery/door/poddoor{ + id = "ancient" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/hall) "NW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor{ @@ -7022,6 +7124,14 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) +"Oi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/storage/backpack/science, +/obj/item/storage/backpack/messenger/science, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/dorms) "Ol" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/east, @@ -7129,6 +7239,11 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) +"Pa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine/airless, +/area/ruin/space/ancientstation/beta/supermatter) "Pd" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7160,13 +7275,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/sec) -"Po" = ( -/obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/delta/hall) "Pq" = ( /obj/machinery/door/airlock/science, /obj/effect/decal/cleanable/dirt, @@ -7320,12 +7428,6 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/hall) -"Qm" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vatgrower, -/turf/open/floor/engine, -/area/ruin/space/ancientstation/delta/biolab) "Qp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ @@ -7404,11 +7506,23 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/rnd) +"QW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/charlie/engie) "QZ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) +"Re" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/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, +/area/ruin/space/ancientstation/delta/hall) "Rf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -7423,12 +7537,25 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/atmos) +"Rg" = ( +/obj/machinery/rnd/production/circuit_imprinter/offstation, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/ruin/space/ancientstation/delta/rnd) "Rm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm/directional/north, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"Rs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "Rv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -7656,14 +7783,6 @@ "Td" = ( /turf/closed/mineral/random, /area/ruin/space/ancientstation/beta/hall) -"Tf" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/space/ancientstation/charlie/engie) "Tg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -7697,6 +7816,14 @@ /obj/structure/sign/warning/electric_shock/directional/south, /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/storage) +"Tn" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine/airless, +/area/ruin/space/ancientstation/beta/supermatter) "Tq" = ( /obj/structure/alien/weeds, /obj/machinery/light/small/broken/directional/east, @@ -7823,13 +7950,19 @@ /obj/structure/cable, /turf/open/floor/iron/solarpanel/airless, /area/ruin/space/solars/ancientstation/charlie/solars) -"Ui" = ( -/obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +"Uc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/delta/hall) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/mining) "Uj" = ( /obj/structure/girder, /turf/closed/mineral/random, @@ -7869,9 +8002,6 @@ /obj/item/soap/nanotrasen, /turf/open/floor/iron/white, /area/ruin/space/ancientstation/charlie/hall) -"Us" = ( -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/beta/mining) "Uu" = ( /turf/closed/mineral/plasma, /area/space/nearstation) @@ -7897,11 +8027,6 @@ "UJ" = ( /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) -"UN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/engine/airless, -/area/ruin/space/ancientstation/beta/supermatter) "UP" = ( /turf/closed/mineral/random, /area/space/nearstation) @@ -7969,6 +8094,18 @@ /obj/machinery/griddle, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) +"Vq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/charlie/engie) "Vw" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -8023,11 +8160,6 @@ }, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) -"VU" = ( -/obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/beta/mining) "VV" = ( /turf/open/floor/plating, /area/ruin/space/ancientstation/delta/hall) @@ -8035,15 +8167,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine, /area/ruin/space/ancientstation/delta/biolab) -"Wa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/catwalk_floor, -/area/ruin/space/ancientstation/charlie/engie) "Wd" = ( /obj/effect/decal/cleanable/blood/xtracks{ dir = 5 @@ -8059,15 +8182,6 @@ /obj/structure/lattice/catwalk, /turf/template_noop, /area/space/nearstation) -"Wn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "Wp" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -8133,6 +8247,15 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"WT" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored{ + dir = 8; + chamber_id = "beta-n2" + }, +/turf/open/floor/engine/n2, +/area/ruin/space/ancientstation/beta/atmos) "WV" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -8186,6 +8309,17 @@ /obj/effect/mapping_helpers/apc/away_general_access, /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) +"Xr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/charlie/engie) "Xs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/transit_tube/station/reverse/flipped{ @@ -8227,22 +8361,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/n2, /area/ruin/space/ancientstation/beta/atmos) -"XB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/tank/internals/oxygen{ - pixel_y = -8; - pixel_x = 8 - }, -/obj/item/tank/internals/oxygen{ - pixel_x = -4; - pixel_y = 4 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "XD" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Custodial Closet" @@ -8252,11 +8370,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) -"XJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ruin/space/ancientstation/charlie/engie) "XK" = ( /obj/machinery/door/airlock/atmos/glass{ name = "Station Atmospherics" @@ -8381,14 +8494,6 @@ /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/ai) -"Yo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, -/obj/item/storage/backpack/science, -/obj/item/storage/backpack/messenger/science, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/dorms) "Yp" = ( /turf/closed/mineral/plasma, /area/ruin/space/ancientstation/beta/atmos) @@ -8442,19 +8547,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/rust, /area/ruin/space/ancientstation/charlie/hall) -"YC" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/item/crowbar, -/obj/machinery/door/window/right/directional/north{ - req_access = list("away_general") - }, -/obj/item/paper/fluff/ruins/oldstation/apc_note, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, -/obj/item/card/id/away/old/equipment, -/obj/item/stock_parts/power_store/battery/high, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "YD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -8526,6 +8618,18 @@ /obj/machinery/light/small/broken/directional/east, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/ai) +"YT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/item/chair{ + pixel_y = -8; + pixel_x = 13 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "YW" = ( /turf/open/floor/iron/textured_half, /area/ruin/space/ancientstation/beta/supermatter) @@ -8631,6 +8735,31 @@ }, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) +"ZW" = ( +/obj/structure/alien/weeds, +/obj/structure/closet/crate/engineering{ + name = "camera assembly crate" + }, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/stack/cable_coil, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/ai) "ZZ" = ( /obj/structure/transit_tube{ dir = 4; @@ -9944,8 +10073,8 @@ Rf mH mH mH -qk -GP +bl +jc bJ aa aa @@ -9991,7 +10120,7 @@ zi NP NB oE -nC +Ct Ck aa aa @@ -10001,9 +10130,9 @@ Uu SZ Uu Yp -Gb -XB -Cm +AM +Fm +vh kK Ln ny @@ -10011,7 +10140,7 @@ nz fR nB nK -JI +GA mH aa aa @@ -10077,7 +10206,7 @@ nA UW kW HA -ng +iH bJ nr aa @@ -10199,7 +10328,7 @@ gJ Ax Ax kQ -jZ +nT Sf Cj VF @@ -10272,8 +10401,8 @@ ND bJ TB Kf -gc -CF +zm +WT XA bJ UP @@ -10339,7 +10468,7 @@ bJ CU Lh Zg -Ed +rw OS bJ aa @@ -10405,7 +10534,7 @@ bJ Bs Lh Gi -Ed +rw Ze bJ nr @@ -10459,9 +10588,9 @@ Hj rJ uw wn -BP -Im -UN +Pa +dW +hR SK Jg Jg @@ -10527,7 +10656,7 @@ Hj vY Sk wo -GJ +Tn Vl cx cx @@ -10593,11 +10722,11 @@ iv Qi ZD Hj -Hj -qx -NC -NC -mP +iS +xS +BT +fy +HF Jg aa aa @@ -11163,12 +11292,12 @@ aa aa aa aa -VU -Us -Us -dj -mB -mG +Mh +wI +sF +tg +Uc +cm cm gh mM @@ -11177,10 +11306,10 @@ mZ RR aa aa -aa -aa -aa -aa +JB +JB +JB +my dH dH my @@ -11250,7 +11379,7 @@ aa my aa aa -my +aa aa Jg aa @@ -11316,7 +11445,7 @@ aa my aa aa -JB +aa aa Jg aa @@ -11377,12 +11506,12 @@ aa aa aa aa -aa -Ma -qQ +eI Ma +qT +eI +aa aa -JB aa Jg aa @@ -11443,12 +11572,12 @@ aa aa aa aa -aa Ma -wR +QW +qH Ma aa -JB +aa aa Jg aa @@ -11509,9 +11638,9 @@ aa aa aa aa -aa Ma -wR +uq +se Ma aa aa @@ -11575,9 +11704,9 @@ aa Ma Ma eI -Ma +dl eI -Wa +Lg eI Ma eI @@ -11639,11 +11768,11 @@ mS jE aa Ma -By -eK +al +YT fc -Wn -Tf +AO +bH YM hl lo @@ -11705,15 +11834,15 @@ mS jE dl eI -lz +Ht ju hm Yi -Gt +Nu Yi hm em -ek +Ib dl eI Ox @@ -11771,11 +11900,11 @@ mS kQ oy em -em +kJ em fe fE -fE +Vq fE fe em @@ -11837,17 +11966,17 @@ mY kQ AX em -ju +ue eM pn fF -XJ +Xr wL QZ hP em em -IZ +Az Ox iV fI @@ -11903,17 +12032,17 @@ mY kQ lJ oP -en -zZ -zX -el +Rs +jy +jz +xX kJ WA ho pF Cc Rx -YC +hf Ox FN fI @@ -11964,8 +12093,8 @@ aT hi hi hi -cd -nb +FF +NV hi eI eI @@ -12119,7 +12248,7 @@ JJ XZ Ga HL -yk +tw hT aT aa @@ -12249,11 +12378,11 @@ wb bR aG nk -Yo +Oi gZ kN Mt -mz +Jk nk nk aa @@ -12569,7 +12698,7 @@ dR Sr dz fi -oa +xW GN ht ht @@ -12781,7 +12910,7 @@ ks uS jB Kk -jP +Kr aG nk aa @@ -13021,7 +13150,7 @@ aT aT aT bX -nd +LO bX eJ eJ @@ -13037,7 +13166,7 @@ eJ eJ eJ hM -ib +zU bX aT hi @@ -13755,7 +13884,7 @@ zL UP bE bE -Po +Kt bE bE hF @@ -13821,7 +13950,7 @@ Fo Hr cs Gz -Ni +vQ bE Ac TV @@ -13887,7 +14016,7 @@ LH Bu Ej Gz -JR +KW Gz Ac Ik @@ -13953,7 +14082,7 @@ XD Gz Gz bE -Ui +Lb Gz bE Gz @@ -14019,7 +14148,7 @@ MS EE cD Dg -cD +Re yq cD TA @@ -14266,8 +14395,8 @@ ad ag aM NS -bh -jF +dT +nG cz cz ad @@ -14287,7 +14416,7 @@ oe WV ca hY -io +xd iE Yf wx @@ -14347,7 +14476,7 @@ wx BN fa hh -gM +Rg oH of WV @@ -15075,7 +15204,7 @@ NG GX GX yr -zj +dg rp rp rp @@ -15144,7 +15273,7 @@ OE UR rp CK -Qm +Ft Xy vy rp @@ -15188,10 +15317,10 @@ aa aa ad ad -ar +Js be bp -bv +ZW cY ad ad @@ -15206,7 +15335,7 @@ wK UH ae GX -mF +BR AT rp vy @@ -15215,7 +15344,7 @@ Wd Np rp jg -wg +BS yx bE Jg diff --git a/_maps/RandomRuins/SpaceRuins/waystation.dmm b/_maps/RandomRuins/SpaceRuins/waystation.dmm index 38f8fcbac8cdd..312eb4d9bca59 100644 --- a/_maps/RandomRuins/SpaceRuins/waystation.dmm +++ b/_maps/RandomRuins/SpaceRuins/waystation.dmm @@ -1264,7 +1264,7 @@ }, /obj/structure/table/reinforced, /obj/machinery/button/door/directional/north{ - desc = "A door remote control switch. From the looks of it, It seems to be broken after being pressed too hard, it's bloody handprint still visible."; + desc = "A door remote control switch. From the looks of it, It seems to be broken after being pressed too hard, its bloody handprint still visible."; name = "Vault Lockdown" }, /obj/item/modular_computer/laptop/preset/civilian, diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 5c60d2760ffb9..e7b4707b78c7c 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -5,10 +5,24 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"aal" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - N2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "aan" = ( /obj/effect/landmark/carpspawn, /turf/open/space/basic, /area/space) +"aao" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "aap" = ( /obj/structure/sign/warning/pods/directional/north, /obj/effect/decal/cleanable/dirt/dust, @@ -29,20 +43,19 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"aaR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "aaZ" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/blue, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"abc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Gas"; + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "abh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52,15 +65,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"abs" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "abt" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -71,12 +75,6 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, /area/station/hallway/primary/port) -"abE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "abJ" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -110,12 +108,6 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"acX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "adh" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -160,12 +152,21 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) -"aep" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 +"ael" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"aem" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "aeu" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -190,6 +191,24 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/science/genetics) +"aeG" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"aeH" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "aeX" = ( /obj/structure/window/spawner/directional/east, /obj/item/kirbyplants/random, @@ -199,6 +218,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/lobby) +"afa" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"afm" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "afu" = ( /obj/structure/chair/wood{ dir = 8 @@ -235,17 +266,16 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"afK" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/reagent_dispensers/fueltank/large, -/obj/machinery/camera/directional/south{ - c_tag = "Engineering - storage" +"afZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "agb" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -369,12 +399,10 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"aiJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +"aiI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "aiK" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -385,10 +413,11 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) -"aki" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer4{ - dir = 1 +"ajg" = ( +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - upper" }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) "ako" = ( @@ -437,13 +466,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"alg" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/structure/cable, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "als" = ( /obj/machinery/holopad, /turf/open/floor/iron/kitchen/small, @@ -464,6 +486,15 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/solars/starboard/aft) +"amb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "amh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -476,15 +507,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"amr" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Cooling Loop Bypass" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "amE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -541,9 +563,6 @@ /obj/machinery/telecomms/server/presets/supply, /turf/open/floor/circuit, /area/station/tcommsat/server) -"aoc" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/atmos/pumproom) "aoj" = ( /obj/structure/railing{ dir = 8 @@ -566,13 +585,6 @@ /obj/item/storage/lockbox/medal, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"aoB" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "aoL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -668,14 +680,6 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"arj" = ( -/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) "ark" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/full, @@ -690,12 +694,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/storage) -"arw" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "arH" = ( /obj/effect/turf_decal/siding/thinplating/terracotta{ dir = 8 @@ -742,6 +740,13 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) +"asf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2O to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ask" = ( /obj/structure/cable, /obj/machinery/door/airlock/public/glass{ @@ -755,19 +760,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"asn" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/misc/asteroid, -/area/station/maintenance/hallway/abandoned_command) -"asO" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/engineering/atmos/pumproom) "asS" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -859,6 +851,14 @@ dir = 8 }, /area/station/maintenance/starboard/greater) +"atZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "auc" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -905,15 +905,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"auL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage below"; - name = "Secure Storage" - }, -/turf/open/floor/plating/rust, -/area/station/engineering/main) "auO" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, @@ -937,6 +928,16 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) +"avd" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - Central Aft" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ave" = ( /turf/open/space, /area/space) @@ -965,12 +966,6 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"avK" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "avN" = ( /obj/structure/table/glass, /obj/effect/decal/cleanable/dirt, @@ -981,11 +976,22 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) +"avP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "avR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"avT" = ( +/obj/structure/cable, +/obj/structure/reflector/single/anchored, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "avU" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -1040,6 +1046,12 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) +"awH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "awL" = ( /obj/structure/chair{ dir = 4 @@ -1084,24 +1096,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/cargo/storage) -"axn" = ( -/obj/structure/rack, -/obj/item/clothing/neck/petcollar, -/obj/item/flashlight/flare/candle{ - pixel_x = 10 - }, -/obj/item/flashlight/flare/candle{ - pixel_x = 8; - pixel_y = 1 - }, -/obj/item/screwdriver{ - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/maintenance/department/engine/atmos) "axq" = ( /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) @@ -1296,6 +1290,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) +"azW" = ( +/obj/machinery/computer/atmos_control/nitrogen_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "azZ" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white/small, @@ -1591,6 +1595,13 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"aFH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) "aFR" = ( /turf/open/floor/plating, /area/station/security/tram) @@ -1616,10 +1627,6 @@ dir = 4 }, /area/station/science/ordnance/testlab) -"aGn" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/maintenance/disposal/incinerator) "aGq" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -1776,6 +1783,15 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/small, /area/station/engineering/main) +"aJb" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aJq" = ( /turf/closed/mineral/random/stationside, /area/space/nearstation) @@ -1786,6 +1802,16 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"aJP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "aJV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -1816,6 +1842,13 @@ dir = 8 }, /area/station/construction/mining/aux_base) +"aKm" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "aKx" = ( /obj/machinery/holopad, /turf/open/floor/iron/dark/small, @@ -1933,13 +1966,9 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) -"aMJ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) +"aNd" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aNj" = ( /obj/machinery/door/airlock/public{ name = "Arcade" @@ -1980,6 +2009,13 @@ "aNL" = ( /turf/closed/wall, /area/station/science/ordnance/bomb) +"aNO" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "aNX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2001,6 +2037,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"aOa" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine) "aOh" = ( /obj/machinery/status_display/ai/directional/south, /obj/effect/turf_decal/tile/neutral{ @@ -2116,6 +2158,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/dark, /area/station/medical/cryo) +"aQx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - North Corridor" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "aQF" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -2124,6 +2180,12 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) +"aQX" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "aQZ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -2162,6 +2224,14 @@ dir = 4 }, /area/station/maintenance/starboard/greater) +"aRx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aRC" = ( /obj/structure/table, /obj/item/flashlight/lamp/green{ @@ -2187,13 +2257,6 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"aSf" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/item/kirbyplants/organic/plant22, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "aSt" = ( /obj/effect/spawner/random/structure/closet_private, /obj/machinery/light/small/directional/north, @@ -2202,10 +2265,6 @@ "aSy" = ( /turf/closed/wall/r_wall, /area/station/science/xenobiology) -"aSF" = ( -/obj/machinery/power/supermatter_crystal/engine, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "aSI" = ( /obj/effect/turf_decal/delivery, /obj/structure/closet/emcloset, @@ -2278,6 +2337,11 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"aTB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "aTG" = ( /obj/structure/table/reinforced, /obj/machinery/requests_console/directional/east{ @@ -2290,12 +2354,30 @@ /obj/machinery/recharger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"aUb" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) "aUA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/smooth_edge, /area/station/maintenance/starboard/greater) +"aUB" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "aUJ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -2426,14 +2508,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"aXc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 9 - }, -/obj/machinery/meter/monitored/distro_loop, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "aXC" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -2483,10 +2557,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/rec) -"aYu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "aYv" = ( /obj/structure/transport/linear/tram, /obj/effect/turf_decal/stripes/white/line{ @@ -2517,6 +2587,17 @@ }, /turf/open/floor/carpet, /area/station/service/library) +"aZp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "aZG" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/siding/wood{ @@ -2533,13 +2614,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"aZP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "aZS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2549,13 +2623,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"baf" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "bah" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -2615,6 +2682,10 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"bbB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/supermatter) "bbK" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -2658,6 +2729,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) +"bcG" = ( +/obj/structure/railing, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs/old{ + dir = 4 + }, +/area/station/engineering/break_room) "bcK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2680,6 +2760,16 @@ /obj/structure/falsewall, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"bdU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/computer/atmos_control/oxygen_tank{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bed" = ( /obj/structure/railing/corner{ dir = 1 @@ -2741,6 +2831,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) +"bfU" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Air to Distro staging" + }, +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - lower" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bgg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2830,16 +2929,39 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"bhO" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Transit Tube Station" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"bhE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"bhH" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +/obj/machinery/door/airlock/command{ + name = "Telecomms Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) +"bhN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "biB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/smooth_large, @@ -2892,13 +3014,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bjA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix Outlet Pump" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "bjL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, @@ -2998,6 +3113,14 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"blt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bly" = ( /obj/structure/closet/crate/miningcar, /turf/open/floor/iron, @@ -3078,14 +3201,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"bnd" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Filter" - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "bnn" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -3111,11 +3226,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bnp" = ( -/obj/structure/table, -/obj/item/stack/sheet/iron/fifty, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "bnr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -3198,6 +3308,12 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"boB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "boI" = ( /obj/machinery/mecha_part_fabricator/maint{ name = "forgotten exosuit fabricator" @@ -3243,12 +3359,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"bpk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos) "bpl" = ( /obj/machinery/flasher/directional/north{ id = "IsolationFlash" @@ -3295,6 +3405,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"bqc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bqd" = ( /obj/item/reagent_containers/cup/bottle/ammonia, /obj/structure/steam_vent, @@ -3405,6 +3521,10 @@ /obj/vehicle/ridden/scooter/skateboard/hoverboard, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"brA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "brD" = ( /obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/tile/neutral{ @@ -3412,6 +3532,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"brG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "brZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -3467,6 +3591,13 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bta" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "btG" = ( /obj/structure/rack, /obj/effect/turf_decal/delivery/white, @@ -3505,6 +3636,12 @@ /obj/structure/chair/stool/bamboo, /turf/open/floor/carpet/lone, /area/station/service/chapel/office) +"bud" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "buf" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -3515,12 +3652,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security) -"bun" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/computer/atmos_control/plasma_tank, -/turf/open/floor/iron, -/area/station/engineering/atmos) "buA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3534,6 +3665,24 @@ dir = 8 }, /area/station/science/xenobiology) +"buI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/storage/belt/utility{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/item/storage/belt/utility{ + pixel_x = 6 + }, +/obj/item/storage/belt/utility{ + pixel_x = -2; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "buJ" = ( /obj/effect/spawner/random/vending/snackvend, /obj/machinery/bluespace_vendor/directional/south, @@ -3568,11 +3717,6 @@ "bvt" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/department/electrical) -"bvJ" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/railing, -/turf/open/floor/iron, -/area/station/engineering/atmos) "bvK" = ( /obj/effect/turf_decal/siding/red{ dir = 9 @@ -3617,14 +3761,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"bwP" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/engine/vacuum, -/area/station/maintenance/disposal/incinerator) "bxa" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -3650,11 +3786,6 @@ /obj/machinery/food_cart, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"bxB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution/stand_clear, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "bxI" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -3676,29 +3807,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"byi" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) -"byo" = ( -/obj/machinery/power/energy_accumulator/tesla_coil/anchored, -/obj/structure/window/reinforced/plasma/spawner/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "byq" = ( /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/small, /area/station/medical/morgue) +"byt" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "byv" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -3735,6 +3853,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"byR" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "byU" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -3743,6 +3870,14 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"bzc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "bzj" = ( /obj/machinery/rnd/production/techfab/department/service, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -3754,6 +3889,15 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) +"bzF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "bzZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -3828,18 +3972,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) -"bBM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "bBN" = ( /obj/structure/window/spawner/directional/east, /obj/structure/table/wood, @@ -3900,12 +4032,6 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"bCp" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/engineering/atmos/pumproom) "bCs" = ( /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/dark/side{ @@ -3947,12 +4073,12 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"bDf" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 +"bDg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 }, /turf/open/floor/iron, -/area/station/engineering/atmos) +/area/station/engineering/atmos/project) "bDh" = ( /obj/effect/turf_decal/siding/yellow{ dir = 5 @@ -4000,11 +4126,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"bDI" = ( -/obj/item/radio/intercom/directional/east, -/obj/structure/closet/toolcloset, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/break_room) "bDN" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -4012,15 +4133,18 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) +"bDQ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "bEd" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"bEh" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/main) "bEw" = ( /obj/structure/sign/directions/supply{ dir = 1; @@ -4040,6 +4164,18 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, /area/station/science/lower) +"bEG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - HFR" + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "bEN" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -4153,20 +4289,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/secondary/recreation) -"bGI" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "bGL" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron, @@ -4178,13 +4300,14 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/office) -"bGW" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 +"bGX" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/engineering/atmos) +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "bGY" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -4281,16 +4404,26 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) -"bJA" = ( -/obj/item/kirbyplants/random, -/obj/structure/disposalpipe/segment{ +"bJH" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 }, -/obj/machinery/light_switch/directional/south, /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/herringbone, -/area/station/commons/dorms) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "bJK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -4342,6 +4475,18 @@ }, /turf/open/floor/iron/white/small, /area/station/security/warden) +"bKK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "bKN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/brigdoor/left/directional/west{ @@ -4365,6 +4510,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"bLp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bLS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4389,12 +4541,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"bLZ" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/purple/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "bMc" = ( /obj/structure/table, /obj/item/rcl/pre_loaded, @@ -4485,19 +4631,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"bNX" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/cubicle) "bOa" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/frame/machine, @@ -4530,6 +4663,23 @@ }, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"bPd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) +"bPk" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "bPy" = ( /obj/structure/cable, /obj/machinery/light/small/directional/west, @@ -4543,19 +4693,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) -"bPA" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "HFR Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "bPU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, /turf/open/floor/iron, @@ -4655,12 +4792,10 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"bRP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix Outlet Pump" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"bSk" = ( +/obj/machinery/air_sensor/engine_chamber, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "bSo" = ( /turf/open/space/basic, /area/space/nearstation) @@ -4709,22 +4844,10 @@ }, /turf/open/floor/iron/textured_half, /area/station/cargo/miningoffice) -"bTO" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) -"bUe" = ( -/obj/structure/table, -/obj/item/hfr_box/body/waste_output, -/obj/item/hfr_box/body/moderator_input, -/obj/item/hfr_box/body/fuel_input, -/obj/item/hfr_box/body/interface, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) +"bTI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "bUr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/blue{ @@ -4760,12 +4883,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"bUL" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "bUO" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -4946,6 +5063,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/fore/greater) +"bYV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "bZa" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/white{ @@ -5013,18 +5142,24 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"caf" = ( -/obj/machinery/power/terminal, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"caj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ +"cag" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ dir = 4 }, -/obj/machinery/firealarm/directional/south, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, /turf/open/floor/iron, -/area/station/engineering/atmos) +/area/station/engineering/atmos/office) "cam" = ( /obj/machinery/flasher/directional/east{ id = "AI"; @@ -5039,16 +5174,21 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"caD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"cax" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/bot{ + dir = 1 }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/service/chapel/office) +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"cay" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "caI" = ( /obj/structure/cable, /obj/effect/decal/cleanable/glass, @@ -5077,13 +5217,11 @@ /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) "cbh" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/computer/station_alert{ - dir = 1 +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "cbi" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom/directional/north{ @@ -5141,13 +5279,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) -"cbF" = ( -/obj/effect/turf_decal/arrows/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "cbH" = ( /obj/structure/cable, /obj/item/kirbyplants/random, @@ -5187,6 +5318,12 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"ccA" = ( +/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/smooth_large, +/area/station/engineering/storage_shared) "ccD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5196,15 +5333,6 @@ }, /turf/open/floor/iron, /area/station/security/tram) -"ccF" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/command{ - name = "Telecomms Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "ccG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -5237,6 +5365,14 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"cdC" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/departments/exodrone/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "cdY" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -5249,6 +5385,13 @@ /obj/structure/window/spawner/directional/south, /turf/open/space/basic, /area/space/nearstation) +"ceN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "ceP" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -5460,6 +5603,12 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"civ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ciR" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/command_all, @@ -5495,16 +5644,26 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"cjD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/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/engineering/atmos) "cjR" = ( /obj/structure/disposalpipe/segment, /obj/structure/plasticflaps/opaque, /turf/open/floor/iron, /area/station/maintenance/port/lesser) -"cjT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +"cjS" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "cjY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5568,6 +5727,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"ckR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ckV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5613,15 +5782,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) -"clJ" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Cold Loop to Gas" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "clV" = ( /obj/structure/table, /obj/effect/mapping_helpers/broken_floor, @@ -5719,13 +5879,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"cnv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) +"cnC" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "cnG" = ( /obj/machinery/suit_storage_unit/rd, /turf/open/floor/iron/dark/small, @@ -5760,6 +5918,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white/small, /area/station/medical/cryo) +"cor" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "cow" = ( /turf/closed/wall, /area/station/engineering/lobby) @@ -5799,16 +5961,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"cpI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/atmos) "cpJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/transit_tube/horizontal, @@ -5842,15 +5994,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"cqd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Engineering - Supermatter Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "cqn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/camera/autoname/directional/north, @@ -6075,6 +6218,15 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/prison/rec) +"cvc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma/five, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "cvk" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -6145,6 +6297,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) +"cwj" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "cwt" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -6194,15 +6352,6 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood, /area/station/service/chapel) -"cxF" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "cxO" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -6291,6 +6440,13 @@ dir = 8 }, /area/station/service/janitor) +"czu" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "cAb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6305,12 +6461,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) -"cAi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "cAj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6362,24 +6512,15 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/robotics/mechbay) -"cAA" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/green{ +"cAv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 }, -/obj/structure/lattice, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space/basic, -/area/space/nearstation) -"cAN" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Gas to Cold Loop"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/office) "cAZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -6388,6 +6529,16 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"cBd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cBl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "cBw" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/structure/filingcabinet/chestdrawer, @@ -6418,10 +6569,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"cCt" = ( -/obj/machinery/camera/directional/west, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "cCv" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/siding/wideplating_new/terracotta, @@ -6450,16 +6597,30 @@ }, /turf/open/misc/asteroid/airless, /area/space/nearstation) -"cCJ" = ( -/obj/structure/reflector/single/anchored{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "cCM" = ( /obj/structure/cable, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"cCP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/cable, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"cCV" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "cCW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6498,6 +6659,18 @@ /obj/structure/thermoplastic, /turf/open/floor/tram, /area/station/security/tram) +"cDu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Network Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/iron/dark/textured_half, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "cDy" = ( /obj/structure/cable, /turf/open/floor/iron/white/side{ @@ -6540,14 +6713,13 @@ dir = 1 }, /area/station/maintenance/starboard/greater) -"cDK" = ( +"cDV" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/light/no_nightlight/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "cEn" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -6678,12 +6850,14 @@ "cGj" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) -"cGH" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +"cGG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cGI" = ( /obj/machinery/firealarm/directional/south, /obj/structure/closet/secure_closet/medical3, @@ -6692,6 +6866,17 @@ /obj/item/clothing/mask/surgical, /turf/open/floor/iron/small, /area/station/medical/storage) +"cGV" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/storage) +"cHh" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/east, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "cHp" = ( /obj/effect/turf_decal/siding/dark_red/corner{ dir = 4 @@ -6712,6 +6897,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"cHt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 9 + }, +/obj/machinery/meter/monitored/distro_loop, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "cHC" = ( /obj/structure/chair{ pixel_y = -2 @@ -6769,17 +6962,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"cHT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "cHX" = ( /obj/structure/filingcabinet, /obj/item/folder/documents, @@ -6853,6 +7035,10 @@ "cKk" = ( /turf/closed/mineral/random/stationside, /area/station/ai_monitored/turret_protected/aisat/maint) +"cKm" = ( +/obj/machinery/camera/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "cKt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -6861,6 +7047,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"cKy" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/atmospheric_sanity/ignore_area, +/turf/open/floor/iron, +/area/station/engineering/hallway) "cKL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -6881,10 +7076,13 @@ /obj/structure/marker_beacon/indigo, /turf/open/space/basic, /area/space/nearstation) -"cLj" = ( -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) +"cLw" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "cLD" = ( /obj/structure/window/spawner/directional/north, /obj/effect/turf_decal/siding/thinplating_new/dark{ @@ -6944,13 +7142,6 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"cMa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "cMq" = ( /turf/open/floor/plating/airless, /area/space/nearstation) @@ -6972,6 +7163,10 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"cMG" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "cMS" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/north, @@ -6997,17 +7192,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"cNr" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/requests_console/directional/north{ - name = "Atmospherics Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) "cNR" = ( /obj/structure/chair/office{ dir = 4 @@ -7038,11 +7222,6 @@ /obj/structure/window/spawner/directional/west, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/recreation/entertainment) -"cOj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "cOC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7056,6 +7235,25 @@ dir = 1 }, /area/station/science/xenobiology) +"cOI" = ( +/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) +"cOJ" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "cON" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -7064,10 +7262,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"cOP" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "cOW" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, @@ -7103,23 +7297,6 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"cPI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"cPM" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "cPN" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/showroomfloor, @@ -7161,16 +7338,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"cQI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "cQN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7188,6 +7355,14 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"cQV" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage" + }, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/engineering/main) "cRc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7207,6 +7382,22 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/lobby) +"cRo" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "HFR Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "cRw" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue, @@ -7258,6 +7449,10 @@ /obj/structure/flora/bush/sparsegrass, /turf/open/floor/grass, /area/station/service/chapel) +"cSc" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "cSk" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/closet/l3closet, @@ -7342,6 +7537,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"cTK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "cTX" = ( /obj/machinery/computer/crew{ dir = 4 @@ -7351,6 +7550,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"cTY" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "cUf" = ( /obj/structure/sign/directions/engineering{ dir = 1; @@ -7424,15 +7632,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) -"cVp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos/office) "cVx" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 4 @@ -7458,6 +7657,16 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/execution/education) +"cVO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/chapel/office) "cVQ" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -7506,6 +7715,15 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"cXg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cXh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7648,6 +7866,15 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"cZj" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cZk" = ( /obj/structure/chair{ dir = 1 @@ -7814,13 +8041,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"dcf" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "N2O to Pure" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "dcx" = ( /obj/effect/turf_decal/siding/white{ dir = 10 @@ -7861,12 +8081,13 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"dcR" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) +"dcK" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "dcS" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 4 @@ -7878,12 +8099,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) -"dda" = ( -/obj/machinery/light/small/directional/south{ - dir = 4 - }, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "dde" = ( /obj/structure/chair{ dir = 1; @@ -7970,12 +8185,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"det" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos) "dex" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -8019,6 +8228,10 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/psychology) +"dfd" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "dff" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/east, @@ -8026,6 +8239,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"dfj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/command{ + name = "Telecomms Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-north" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "dfo" = ( /obj/structure/cable, /obj/machinery/status_display/ai/directional/north, @@ -8036,15 +8263,13 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/grass, /area/station/cargo/storage) -"dgk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/railing{ +"dfT" = ( +/obj/effect/turf_decal/bot{ dir = 1 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "dgm" = ( /obj/structure/railing/corner{ dir = 1 @@ -8094,12 +8319,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"dhs" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "dhu" = ( /obj/structure/flora/bush/sparsegrass{ pixel_x = -5; @@ -8138,6 +8357,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"dhG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos) "dhH" = ( /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) @@ -8145,15 +8371,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"dif" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "dim" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8165,9 +8382,19 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"dio" = ( -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine) +"din" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/railing/corner, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "dis" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -8186,6 +8413,17 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/dark/small, /area/station/medical/medbay/lobby) +"dix" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - project room" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "diF" = ( /obj/machinery/door/airlock/public/glass{ name = "Barber" @@ -8263,25 +8501,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/small, /area/station/security/brig) -"djj" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_y = 12 - }, -/obj/item/multitool{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/machinery/light/no_nightlight/directional/east, -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "djO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8292,6 +8511,19 @@ /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"djX" = ( +/obj/structure/table, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker; + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "djY" = ( /obj/machinery/door/airlock/public/glass{ name = "Dorms" @@ -8312,6 +8544,10 @@ }, /turf/open/floor/stone, /area/station/service/chapel) +"dkv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dkz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8333,15 +8569,12 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/hallway/secondary/construction) -"dlw" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 +"dlj" = ( +/obj/structure/reflector/single/anchored{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "dlx" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/rock/pile/style_random, @@ -8421,20 +8654,6 @@ dir = 1 }, /area/station/security/prison/safe) -"dnc" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Air to External Air Ports" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "dng" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -8446,6 +8665,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"dny" = ( +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "dnK" = ( /obj/item/kirbyplants/random, /obj/item/storage/briefcase{ @@ -8496,6 +8719,14 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/brig) +"doc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Mix" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dof" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -8504,13 +8735,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"doi" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "doj" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/medical/coldroom) -"dok" = ( -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "don" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8570,44 +8805,23 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"dpH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "dpR" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 }, /turf/open/floor/tram, /area/station/security/tram) -"dpZ" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/structure/rack, -/obj/item/circuitboard/machine/thermomachine{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/circuitboard/machine/thermomachine{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "dqj" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/aft) -"dqz" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "dqB" = ( /obj/structure/table, /obj/item/clothing/head/utility/chefhat, @@ -8659,11 +8873,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/station/engineering/main) -"drK" = ( -/obj/machinery/space_heater, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "drO" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -8731,14 +8940,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/security/lockers) -"dsS" = ( -/obj/machinery/power/energy_accumulator/tesla_coil/anchored, -/obj/structure/window/reinforced/plasma/spawner/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/cable, -/obj/machinery/camera/directional/west, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "dsU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -8758,13 +8959,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"dtr" = ( -/obj/structure/cable, -/obj/structure/reflector/single/anchored{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "dtv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8856,14 +9050,6 @@ }, /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/ai) -"duN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/mapping_helpers/apc/cell_10k, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "duT" = ( /obj/structure/closet/wardrobe/white, /obj/machinery/light/small/directional/west, @@ -8947,6 +9133,12 @@ "dxf" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) +"dxv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dxw" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/light/warm/directional/east, @@ -8986,12 +9178,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) -"dxW" = ( -/obj/structure/closet/radiation, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/light/small/directional/east, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/break_room) "dxZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -9036,6 +9222,9 @@ dir = 4 }, /area/station/hallway/primary/central/fore) +"dyI" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "dyO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9053,6 +9242,21 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"dzh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/pipe_dispenser{ + pixel_y = -7; + pixel_x = 2 + }, +/obj/item/pipe_dispenser{ + pixel_y = 5; + pixel_x = -2 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dzi" = ( /obj/structure/table/wood, /obj/item/book/granter/action/spell/smoke/lesser{ @@ -9071,13 +9275,6 @@ /obj/item/radio/intercom/chapel/directional/east, /turf/open/floor/iron/terracotta/diagonal, /area/station/service/chapel/office) -"dzu" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - initialize_directions = 8 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "dzE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -9086,6 +9283,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"dzH" = ( +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "dAn" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -9094,6 +9295,15 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"dAu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "dAz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -9145,10 +9355,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/evidence) -"dBe" = ( -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "dBh" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -9192,6 +9398,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"dBT" = ( +/obj/effect/turf_decal/box/white{ + color = "#EFB341" + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "dCe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9243,16 +9455,6 @@ dir = 8 }, /area/station/security/office) -"dDc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "dDd" = ( /obj/structure/table, /obj/item/exodrone{ @@ -9288,12 +9490,6 @@ /obj/effect/landmark/start/janitor, /turf/open/floor/iron/white/small, /area/station/service/janitor) -"dDD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "dDF" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -9330,16 +9526,17 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"dDW" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Recreation" +"dEc" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/iron/textured_half, -/area/station/commons/fitness/recreation/entertainment) +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/camera/directional/north{ + c_tag = "Atmospherics - Central Fore" + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dEq" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9350,6 +9547,17 @@ /obj/machinery/vending/cigarette, /turf/open/floor/iron/kitchen/small, /area/station/security/breakroom) +"dEw" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/space/basic, +/area/space/nearstation) +"dEy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "dEF" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -9375,21 +9583,24 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"dFn" = ( -/obj/machinery/light/small/directional/south{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ +"dFA" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) -"dFs" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/railing{ + dir = 8 }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos) +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"dFG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "dFN" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/north, @@ -9404,20 +9615,12 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "dFY" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) -"dGL" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) -"dGV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/closed/wall, -/area/station/engineering/atmos/storage/gas) +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "dHk" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 8 @@ -9433,6 +9636,18 @@ }, /turf/open/floor/tram, /area/station/security/tram) +"dHx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - turbine" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "dHL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9447,6 +9662,13 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"dHW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "dIt" = ( /obj/structure/cable, /obj/machinery/button/door/directional/east{ @@ -9481,12 +9703,27 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"dJn" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "dJv" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, /turf/open/floor/wood/tile, /area/station/service/bar) +"dJB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dJT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9550,6 +9787,15 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"dKY" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "dLn" = ( /obj/structure/chair/office, /turf/open/floor/iron/dark/herringbone, @@ -9572,9 +9818,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) -"dLN" = ( -/turf/open/floor/wood, -/area/station/engineering/main) "dLQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -9696,6 +9939,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/tools) +"dOP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "dOT" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -9750,6 +10000,14 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) +"dPW" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "dQi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -9766,12 +10024,6 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) -"dQq" = ( -/obj/machinery/air_sensor/incinerator_tank, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/engine/vacuum, -/area/station/maintenance/disposal/incinerator) "dQE" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -9895,6 +10147,10 @@ "dTd" = ( /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"dTe" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/station/cargo/boutique) "dTg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9903,6 +10159,13 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"dTo" = ( +/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) "dTB" = ( /obj/structure/broken_flooring/pile/directional/east, /obj/effect/decal/cleanable/dirt, @@ -9913,14 +10176,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"dTC" = ( -/obj/structure/closet/radiation, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "dTH" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/trimline/neutral/line, @@ -9933,6 +10188,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"dTQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/chapel/office) "dTW" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/shuttle/mining{ @@ -9941,10 +10201,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"dUv" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrogen_input, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos) "dUw" = ( /obj/structure/railing{ dir = 4 @@ -9987,10 +10243,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"dVu" = ( -/obj/structure/reflector/single/anchored, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "dVQ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -10161,6 +10413,17 @@ /obj/effect/landmark/start/cook, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"dYv" = ( +/obj/structure/closet/radiation, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"dYE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dYI" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -10343,12 +10606,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"ece" = ( -/obj/structure/reflector/box/anchored{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "ecf" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -10392,12 +10649,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"ecT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos) "ecY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -10483,12 +10734,6 @@ dir = 8 }, /area/station/cargo/storage) -"eef" = ( -/obj/effect/turf_decal/box/white{ - color = "#52B4E9" - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "eem" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10511,13 +10756,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"efj" = ( -/obj/machinery/power/energy_accumulator/grounding_rod/anchored, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +"efi" = ( +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/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, +/area/station/engineering/main) "efm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10525,22 +10772,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"efv" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) -"efx" = ( -/obj/effect/turf_decal/box/white{ - color = "#EFB341" - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "efy" = ( /obj/item/kirbyplants/organic/plant21, /obj/machinery/status_display/ai/directional/west, @@ -10580,10 +10811,6 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"efX" = ( -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "egb" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -10605,13 +10832,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"egB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ - dir = 1 +"egC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "egG" = ( /obj/effect/landmark/start/medical_doctor, /obj/item/radio/intercom/directional/south, @@ -10626,11 +10853,51 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"egL" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "egN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) +"ehd" = ( +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/west, +/obj/structure/table/greyscale, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/cut{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Office" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "ehf" = ( /obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10660,13 +10927,6 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/iron/dark, /area/station/medical/paramedic) -"ehY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/layer_manifold/orange{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "ehZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -10733,16 +10993,6 @@ "eiU" = ( /turf/open/floor/plating/rust, /area/station/maintenance/department/engine/atmos) -"ejk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Fuel Pipe" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ejn" = ( /obj/item/stack/cable_coil/five, /obj/effect/decal/cleanable/cobweb, @@ -10754,20 +11004,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/bitrunning/den) -"ejr" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ejx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -10810,6 +11046,12 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/main) +"ejO" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "ekr" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 1 @@ -10881,19 +11123,22 @@ }, /turf/open/floor/plating, /area/station/service/kitchen) +"elc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/mechbay) "elh" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, /obj/structure/sign/warning/cold_temp/directional/west, /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"elk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "eln" = ( /obj/structure/flora/tree/jungle/small/style_5, /turf/open/floor/grass, @@ -10983,13 +11228,11 @@ "emd" = ( /turf/open/floor/iron, /area/station/medical/chemistry) -"eml" = ( -/obj/structure/reagent_dispensers/fueltank/large, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) +"emg" = ( +/obj/effect/spawner/random/structure/crate_loot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "emn" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -11006,6 +11249,15 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"emF" = ( +/obj/machinery/light/warm/dim, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "ena" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed{ @@ -11030,21 +11282,26 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"enB" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/main) "enE" = ( /obj/item/cultivator/rake, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"enF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "enG" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) @@ -11073,6 +11330,18 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/security/brig/entrance) +"eog" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 + }, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"eok" = ( +/obj/machinery/air_sensor/nitrogen_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "eoz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11098,6 +11367,11 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/circuit, /area/station/tcommsat/server) +"epm" = ( +/obj/machinery/light/no_nightlight/directional/east, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos) "epn" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/full, @@ -11131,17 +11405,14 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"eqk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/security/glass{ - name = "Security Office" +"eqr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Fuel Pipe to Incinerator"; + dir = 1 }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/security/checkpoint/science) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "eqz" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -11219,11 +11490,6 @@ /obj/machinery/computer/records/security, /turf/open/floor/iron/small, /area/station/security/office) -"esj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "esr" = ( /obj/effect/turf_decal/tile/blue, /obj/structure/cable, @@ -11319,6 +11585,13 @@ /obj/machinery/seed_extractor, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"eue" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "eul" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -11375,6 +11648,13 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"evj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "evq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11397,6 +11677,13 @@ dir = 4 }, /area/station/science/xenobiology) +"evw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "evA" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -11408,6 +11695,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/maintenance/department/engine) +"evQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/orange{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"evW" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ewt" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/south, @@ -11416,14 +11714,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) -"ewy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "ewF" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -11438,6 +11728,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"exF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "exM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11482,18 +11781,27 @@ dir = 1 }, /area/station/ai_monitored/turret_protected/aisat/maint) +"eyW" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) +"eyY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "eyZ" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"ezh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "ezi" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/cafeteria, @@ -11549,10 +11857,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"ezU" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "ezV" = ( /obj/machinery/computer/security/telescreen/prison/directional/south, /turf/open/floor/iron/dark, @@ -11609,6 +11913,26 @@ /obj/machinery/light/floor, /turf/open/floor/noslip, /area/station/medical/medbay/central) +"eAE" = ( +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -2; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 30; + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "eAK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -11675,13 +11999,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) -"eBW" = ( -/obj/machinery/power/energy_accumulator/grounding_rod/anchored, -/obj/structure/window/reinforced/plasma/spawner/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "eCf" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -11691,13 +12008,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"eCm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/railing, -/turf/open/floor/iron, -/area/station/engineering/atmos) "eCJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -11824,6 +12134,21 @@ /obj/item/stamp/head/hos, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"eEj" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/atmos/office) +"eEn" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "eEq" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/corner, @@ -11836,16 +12161,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"eEU" = ( -/obj/structure/table, -/obj/item/stack/rods/fifty, -/obj/item/wrench, -/obj/item/storage/box/lights/mixed, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "eFc" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/firealarm/directional/west, @@ -11859,6 +12174,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) +"eFi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "eFk" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11976,14 +12297,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/prison/mess) -"eGP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/camera/directional/south{ - c_tag = "Engineering Supermatter Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "eGT" = ( /obj/structure/table, /obj/machinery/fax{ @@ -12063,6 +12376,13 @@ /obj/structure/cable, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) +"eHS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Filter" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "eIp" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12149,6 +12469,11 @@ /obj/effect/turf_decal/stripes/asteroid/end, /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) +"eKd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/light/small/directional/west, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "eKf" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/donkpocketpizza, @@ -12171,13 +12496,6 @@ /obj/effect/mapping_helpers/mail_sorting/service/library, /turf/open/floor/wood/parquet, /area/station/service/library) -"eKK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "eKP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12193,12 +12511,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"eLj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "eLn" = ( /obj/machinery/door/airlock/glass{ name = "Gold Standard Law Firm" @@ -12226,6 +12538,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"eLF" = ( +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"eMa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "eMc" = ( /obj/machinery/flasher/portable, /obj/effect/turf_decal/stripes/line{ @@ -12292,6 +12619,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) +"eNP" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9"; + pixel_y = -15 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "eNU" = ( /obj/structure/table/reinforced, /obj/item/phone{ @@ -12328,6 +12663,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/holodeck/rec_center) +"eOY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "eOZ" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/airalarm/directional/north, @@ -12357,15 +12699,6 @@ /obj/structure/flora/grass/jungle/a/style_4, /turf/open/floor/grass, /area/station/service/chapel) -"ePE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "ePP" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -12429,19 +12762,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"eQG" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "eQQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12457,10 +12777,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"eRc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/engineering/atmos) "eRy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -12471,19 +12787,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"eRR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) -"eRU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "eRX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12531,14 +12834,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"eTe" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Fuel Pipe to Incinerator"; - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "eTi" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 4 @@ -12568,12 +12863,6 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/tile, /area/station/service/bar) -"eTL" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "eTT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12589,17 +12878,6 @@ /obj/effect/turf_decal/tile/dark_red, /turf/open/floor/iron, /area/station/security/execution/transfer) -"eUf" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "eUg" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, @@ -12612,15 +12890,13 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"eUv" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/light/no_nightlight/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"eUx" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/closet/toolcloset, +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "eUC" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -12650,6 +12926,13 @@ /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"eUY" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "eUZ" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 1 @@ -12693,6 +12976,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"eVC" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "eVH" = ( /obj/structure/window/spawner/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -12736,12 +13024,13 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"eWx" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ - dir = 8 +"eWr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "eWB" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -12780,19 +13069,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"eXl" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/railing/corner, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "eXo" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/server) @@ -12817,18 +13093,6 @@ }, /turf/open/floor/stone, /area/station/maintenance/aft) -"eXM" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "eXR" = ( /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 @@ -12902,9 +13166,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/maintenance/port/lesser) -"eZa" = ( -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "eZi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -12927,6 +13188,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) +"fap" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "fav" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/computer/security/telescreen/entertainment/directional/west, @@ -13020,13 +13287,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"fbY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 1 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "fca" = ( /obj/structure/flora/bush/lavendergrass/style_random, /obj/structure/flora/bush/flowers_br/style_random, @@ -13048,6 +13308,18 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"fcE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos/glass{ + name = "Distro Access" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) "fcU" = ( /obj/structure/window/spawner/directional/south, /obj/structure/flora/bush/large/style_random{ @@ -13061,12 +13333,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"fdg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos) "fdi" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line{ @@ -13081,10 +13347,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"fdo" = ( -/obj/machinery/door/poddoor/incinerator_atmos_main, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "fds" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -13135,10 +13397,6 @@ }, /turf/open/floor/plating, /area/station/science/robotics/lab) -"fen" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "feo" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/effect/turf_decal/tile/yellow, @@ -13146,6 +13404,19 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"feu" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/firealarm/directional/north, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) +"fex" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "feL" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -13174,6 +13445,28 @@ }, /turf/open/floor/plating, /area/station/service/janitor) +"ffK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"ffL" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "fgk" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/status_display/door_timer{ @@ -13236,6 +13529,10 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) +"fgX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "fho" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/implanter{ @@ -13291,14 +13588,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"fih" = ( -/obj/structure/chair/office, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "fii" = ( /obj/effect/spawner/random/trash/graffiti{ pixel_x = -32; @@ -13341,6 +13630,16 @@ /obj/structure/chair/sofa/bench/right, /turf/open/floor/stone, /area/station/service/chapel) +"fjf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fjh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "fjp" = ( /obj/machinery/door/airlock{ id_tag = "Cabin1"; @@ -13394,9 +13693,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"fkp" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/atmos/project) "fkq" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced/spawner/directional/north, @@ -13407,6 +13703,10 @@ /obj/item/mod/module/signlang_radio, /turf/open/floor/iron/small, /area/station/medical/storage) +"fkr" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "fkF" = ( /obj/structure/table/wood, /obj/item/pen/red{ @@ -13450,13 +13750,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/aft) -"fln" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "flo" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -13475,6 +13768,16 @@ /obj/structure/flora/bush/flowers_yw/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"flx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Genetics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "flD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/corner{ @@ -13482,13 +13785,6 @@ }, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"flE" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Canister Storage" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/storage/gas) "flM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13500,11 +13796,6 @@ /obj/item/flashlight/lantern, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) -"fmc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "fme" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -13556,10 +13847,6 @@ /obj/effect/landmark/start/depsec/science, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"fnu" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "fnw" = ( /obj/structure/chair{ pixel_y = -2 @@ -13618,6 +13905,26 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"foh" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - entrance" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"fos" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "fot" = ( /obj/effect/turf_decal/trimline/white/line, /obj/effect/turf_decal/trimline/white/mid_joiner, @@ -13630,20 +13937,6 @@ /obj/machinery/vending/security, /turf/open/floor/iron, /area/station/security/lockers) -"fox" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "engsm"; - name = "Radiation Shutters Control"; - req_access = list("engineering") - }, -/obj/structure/cable, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "foI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13665,12 +13958,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"fpb" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "fpg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -13759,6 +14046,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"frn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/machinery/computer/atmos_control/carbon_tank, +/turf/open/floor/iron, +/area/station/engineering/atmos) "frC" = ( /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/dark/smooth_large, @@ -13776,6 +14069,16 @@ /obj/machinery/door/window/brigdoor/right/directional/north, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/customs) +"frZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "fsk" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -13829,14 +14132,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"fsN" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Storage" - }, -/turf/open/floor/iron/smooth_half{ - dir = 8 - }, -/area/station/engineering/main) "fsT" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -13851,22 +14146,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/aft) -"ftl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/machinery/camera/directional/south{ - c_tag = "atmospherics - upper" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"ftn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "fts" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13912,15 +14191,16 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"ftF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 +"ftT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Decontamination A" }, -/obj/machinery/camera/directional/south{ - c_tag = "atmospherics - lower" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "ftX" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -13934,6 +14214,11 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"ful" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "fun" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14005,6 +14290,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor, /area/station/command/heads_quarters/ce) +"fvv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/arrows/white{ + color = "#0000FF"; + pixel_y = 15 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "fvz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14046,18 +14339,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"fwe" = ( -/obj/machinery/suit_storage_unit/engine, +"fwr" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, /obj/effect/turf_decal/bot{ dir = 1 }, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) -"fwD" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fwF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -14090,6 +14385,10 @@ dir = 1 }, /area/station/science/lobby) +"fwV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fwZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood, @@ -14105,6 +14404,13 @@ "fxi" = ( /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"fxp" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "fxF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14258,10 +14564,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"fzW" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/air_input, -/turf/open/floor/engine/air, -/area/station/engineering/atmos) "fAr" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/barricade/wooden/crude, @@ -14286,6 +14588,12 @@ /obj/effect/spawner/random/structure/furniture_parts, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"fAD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fAJ" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -14426,10 +14734,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"fDe" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/n2, +"fDf" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Incinerator Access" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, /area/station/engineering/atmos) "fDg" = ( /obj/structure/cable, @@ -14447,10 +14762,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fDq" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/atmos) "fDI" = ( /turf/open/floor/iron, /area/station/hallway/primary/aft) @@ -14467,18 +14778,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fDO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/closed/wall, -/area/station/engineering/atmos/storage/gas) -"fDP" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "fDQ" = ( /obj/machinery/flasher/directional/north, /turf/open/floor/iron/dark/smooth_large, @@ -14532,15 +14831,19 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/engineering/lobby) -"fEg" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "fEq" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"fEs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "fEC" = ( /turf/closed/wall, /area/station/maintenance/port/lesser) @@ -14551,6 +14854,16 @@ }, /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) +"fEM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cytology) "fEU" = ( /obj/structure/table, /obj/item/multitool{ @@ -14563,15 +14876,6 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"fEW" = ( -/obj/machinery/light/small/directional/south{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos) "fEX" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -14667,15 +14971,13 @@ }, /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"fGi" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Distro Staging to Distro" - }, +"fGf" = ( /obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) +/obj/machinery/modular_computer/preset/engineering{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "fGk" = ( /obj/machinery/smartfridge, /obj/machinery/door/poddoor/shutters/preopen{ @@ -14726,10 +15028,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fHy" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "fHD" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -14773,12 +15071,15 @@ /obj/machinery/vending/wardrobe/science_wardrobe, /turf/open/floor/iron/white, /area/station/science/research) -"fHZ" = ( +"fIe" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 6 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "fIf" = ( /obj/structure/filingcabinet/filingcabinet, /obj/machinery/airalarm/directional/west, @@ -14798,14 +15099,16 @@ /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"fIO" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 +"fIP" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/machinery/shower/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/main) +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fJe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "fJl" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -14813,6 +15116,11 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/science/xenobiology) +"fJn" = ( +/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/engineering/break_room) "fJs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14827,12 +15135,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"fJH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "fJK" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -14893,6 +15195,7 @@ cycle_id = "sci-entrance" }, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) "fKx" = ( @@ -14916,11 +15219,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/science/lower) -"fKW" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "fLf" = ( /obj/structure/cable/layer3, /obj/structure/cable, @@ -15090,6 +15388,16 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) +"fMB" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "fMQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -15220,6 +15528,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) +"fOK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fOQ" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, @@ -15238,6 +15553,16 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"fPK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fPO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -15282,6 +15607,21 @@ /obj/structure/cable, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"fPZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/box/mousetraps{ + pixel_x = -5 + }, +/obj/item/storage/box/mousetraps{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/small, +/area/station/service/janitor) "fQA" = ( /obj/effect/spawner/random/structure/chair_maintenance{ dir = 8 @@ -15304,15 +15644,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fRh" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Air to Distro staging" - }, -/obj/machinery/camera/directional/north{ - c_tag = "atmospherics - lower" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "fRl" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ @@ -15352,15 +15683,22 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"fRI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/misc/asteroid, +/area/station/maintenance/hallway/abandoned_command) "fRJ" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"fRS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, +"fRM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos) "fRV" = ( @@ -15394,12 +15732,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"fSi" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "fSx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -15476,17 +15808,22 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"fTJ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/atmospherics_engine) "fTM" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"fTV" = ( -/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/engineering/break_room) "fUb" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -15572,13 +15909,6 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"fUZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/caution/stand_clear, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "fVl" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -15619,15 +15949,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fVZ" = ( -/obj/effect/turf_decal/arrows/white{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "fWi" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 1 @@ -15636,16 +15957,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"fWp" = ( -/obj/machinery/light/no_nightlight/directional/east, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"fWq" = ( -/obj/machinery/air_sensor/air_tank, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/air, -/area/station/engineering/atmos) "fWr" = ( /obj/structure/closet/crate, /obj/structure/barricade/wooden/crude, @@ -15731,13 +16042,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"fXZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "fYe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wood{ @@ -15768,11 +16072,6 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) -"fYR" = ( -/obj/machinery/air_sensor/oxygen_tank, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) "fYU" = ( /obj/effect/spawner/random/structure/crate_loot, /obj/item/pickaxe, @@ -15859,15 +16158,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"gan" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Mech Bay" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/mechbay) "gaF" = ( /obj/machinery/stasis{ dir = 4 @@ -15914,6 +16204,21 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/white/small, /area/station/science/lab) +"gbf" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/smes{ + capacity = 1.8e+008; + charge = 2e+005 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"gbh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gbj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/floor, @@ -15956,6 +16261,11 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"gbT" = ( +/obj/structure/table, +/obj/item/storage/bag/construction, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "gcg" = ( /obj/structure/chair{ name = "Defense" @@ -16047,10 +16357,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/ordnance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"get" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "geu" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -16162,13 +16468,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"gfV" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "gfZ" = ( /obj/structure/window/spawner/directional/west, /obj/effect/turf_decal/sand/plating, @@ -16211,9 +16510,24 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ggz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "ggJ" = ( -/obj/effect/turf_decal/bot/left, -/turf/open/floor/engine, +/obj/machinery/light/no_nightlight/directional/east, +/obj/structure/sign/poster/official/nanotrasen_logo/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, /area/station/engineering/atmospherics_engine) "ggN" = ( /obj/effect/turf_decal/stripes/white/line{ @@ -16327,9 +16641,10 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"gin" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, -/turf/closed/wall/r_wall, +"gip" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2, /area/station/engineering/atmos) "giq" = ( /obj/effect/spawner/structure/window/reinforced, @@ -16368,11 +16683,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"gje" = ( -/obj/structure/table, -/obj/item/storage/bag/construction, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "gjg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16389,6 +16699,12 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/holodeck/rec_center) +"gjE" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "gjL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ @@ -16407,6 +16723,12 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/wood/tile, /area/station/command/bridge) +"gjU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gkq" = ( /obj/structure/transport/linear/tram, /obj/effect/turf_decal/stripes/white/corner, @@ -16450,9 +16772,10 @@ dir = 8 }, /area/station/engineering/main) -"gla" = ( -/turf/open/floor/iron/grimy, -/area/station/service/janitor) +"glo" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "gls" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16518,23 +16841,44 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/cryo) -"gmC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"gmv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/north, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) -"gnm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 + }, +/turf/open/floor/wood, /area/station/engineering/atmospherics_engine) "gnA" = ( /obj/structure/cable, /obj/machinery/light/small/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"gnB" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"gnK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "gnL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -16550,15 +16894,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"gnP" = ( -/obj/structure/table, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "gnQ" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/effect/spawner/structure/window, @@ -16582,16 +16917,6 @@ }, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) -"gog" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "gom" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -16629,6 +16954,12 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/dock) +"goS" = ( +/obj/machinery/incident_display/delam/directional/north, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "goT" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -16665,17 +16996,6 @@ "gpI" = ( /turf/closed/wall, /area/station/command/heads_quarters/ce) -"gpJ" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Project Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gpL" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -16728,14 +17048,6 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"gqn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "gqs" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -16750,6 +17062,11 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"gqS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "grm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -16782,13 +17099,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"grY" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gsh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -16797,12 +17107,6 @@ }, /turf/open/floor/iron/white/side, /area/station/science/lobby) -"gss" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "gsv" = ( /obj/effect/turf_decal/siding{ dir = 1 @@ -16862,6 +17166,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) +"guh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "atmos to engine" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "gun" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/red{ @@ -16869,12 +17179,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"guv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "guz" = ( /obj/structure/cable, /obj/item/kirbyplants/random, @@ -16897,22 +17201,9 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"guP" = ( -/obj/structure/cable, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "guY" = ( /turf/closed/wall, /area/station/service/chapel/storage) -"gvs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "gvV" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/office{ @@ -16929,6 +17220,14 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"gwf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "gwl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17005,6 +17304,12 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"gxd" = ( +/obj/structure/reflector/single/anchored{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "gxg" = ( /obj/effect/turf_decal/siding/red{ dir = 9 @@ -17032,6 +17337,15 @@ /obj/structure/filingcabinet/employment, /turf/open/floor/wood/tile, /area/station/service/lawoffice) +"gxo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "gxq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17068,14 +17382,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"gxv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "gxx" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -17084,6 +17390,15 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"gxA" = ( +/obj/structure/table, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/core, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "gxL" = ( /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, @@ -17110,6 +17425,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"gya" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "gyc" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -17134,6 +17457,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"gyj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "gyr" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/smooth, @@ -17161,11 +17495,6 @@ /obj/structure/table/wood, /turf/open/floor/stone, /area/station/service/bar) -"gzd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "gzs" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -17199,6 +17528,16 @@ "gzF" = ( /turf/closed/wall/r_wall, /area/station/security/prison/rec) +"gzM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "gzY" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -17216,14 +17555,13 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"gAz" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/arrows/white{ - color = "#0000FF"; - pixel_y = 15 +"gAy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ + dir = 8 }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "gAA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17245,15 +17583,12 @@ /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "gAQ" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/camera/directional/west{ - c_tag = "atmospherics - storage" +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gAR" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -17263,6 +17598,10 @@ }, /turf/open/floor/iron, /area/station/security/warden) +"gAV" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "gBg" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -17335,6 +17674,30 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) +"gBB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter/room) +"gBK" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "gBT" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/secure_safe/caps_spare, @@ -17432,12 +17795,6 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"gDl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gDp" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -17490,12 +17847,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"gEz" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gEG" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -17580,19 +17931,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"gFQ" = ( -/obj/structure/table, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/core, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) -"gFW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "gFX" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -17656,6 +17994,13 @@ /obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/bar) +"gGy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "gGB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17666,6 +18011,10 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"gGO" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "gGQ" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -17697,6 +18046,12 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"gHm" = ( +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "gHD" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, @@ -17780,6 +18135,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"gIR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "gIS" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/bottle/holywater, @@ -17810,6 +18179,12 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/carpet/royalblue, /area/station/command/corporate_suite) +"gJw" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gJD" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -17883,12 +18258,6 @@ }, /turf/open/floor/iron/small, /area/station/service/barber) -"gKR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "gKT" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -17915,15 +18284,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"gLr" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/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/herringbone, -/area/station/commons/dorms) "gLs" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 8 @@ -18000,12 +18360,6 @@ }, /turf/open/floor/iron/dark, /area/station/tcommsat/server) -"gMp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/obj/effect/turf_decal/tile/dark/fourcorners, -/obj/machinery/computer/atmos_control/carbon_tank, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gMq" = ( /obj/machinery/vending/clothing, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -18066,6 +18420,13 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) +"gMV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gMX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18075,10 +18436,22 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"gNa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gNb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"gNg" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "gNs" = ( /obj/machinery/duct, /turf/open/floor/iron/showroomfloor, @@ -18188,6 +18561,11 @@ /obj/machinery/computer/security/telescreen/minisat/directional/south, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) +"gPv" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "gPN" = ( /obj/structure/fermenting_barrel, /turf/open/floor/plating, @@ -18219,6 +18597,13 @@ /obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"gQy" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "gQG" = ( /obj/structure/window/spawner/directional/east, /obj/structure/closet/crate, @@ -18320,27 +18705,12 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"gSB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "gSD" = ( /obj/machinery/mass_driver/chapelgun{ dir = 8 }, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"gSN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "gSX" = ( /obj/machinery/computer/piratepad_control/civilian{ dir = 1 @@ -18377,13 +18747,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"gTj" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/machinery/shower/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/break_room) "gTH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -18448,17 +18811,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/hallway/primary/aft) -"gUg" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Engine Coolant Bypass"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "gUk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -18502,6 +18854,16 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/security/medical) +"gUM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"gUQ" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) "gUV" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/south{ @@ -18590,6 +18952,10 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"gXl" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/storage/gas) "gXs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -18597,11 +18963,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"gXB" = ( -/obj/machinery/air_sensor/carbon_tank, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos) "gXL" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -18628,16 +18989,21 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/construction) +"gXT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gYq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) -"gYH" = ( -/obj/machinery/vending/wardrobe/robo_wardrobe, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/augments) "gZh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/holopad, @@ -18719,6 +19085,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hal" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "haq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -18731,22 +19103,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"hav" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/railing/corner, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"haM" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/break_room) "haO" = ( /obj/effect/turf_decal/stripes/white/end, /obj/machinery/door/poddoor/shutters{ @@ -18805,17 +19161,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"hbC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "hbG" = ( /obj/machinery/light_switch/directional/west, /obj/machinery/camera/autoname/directional/north, @@ -19078,13 +19423,6 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"hdY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "hdZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -19109,10 +19447,6 @@ "hem" = ( /turf/closed/wall, /area/station/hallway/primary/fore) -"hez" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/engineering/main) "heB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/box/red/corners, @@ -19201,6 +19535,13 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hfm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "hfC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19345,13 +19686,12 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"hht" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ +"hhr" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) "hhL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19372,17 +19712,6 @@ /obj/machinery/holopad, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"hil" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Engine Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) "hiq" = ( /obj/structure/closet{ name = "Evidence Closet 1" @@ -19456,6 +19785,12 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"hkd" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "hkk" = ( /obj/machinery/computer/records/medical{ dir = 4 @@ -19487,13 +19822,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) -"hkv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/obj/structure/lattice, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "hky" = ( /obj/item/kirbyplants/organic/applebush, /obj/effect/turf_decal/tile/red{ @@ -19553,21 +19881,13 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"hlk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"hlx" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/computer/atmos_control/nocontrol/master{ +"hlC" = ( +/obj/effect/spawner/structure/window, +/obj/effect/turf_decal/bot{ dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/light/no_nightlight/directional/south, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) +/turf/open/floor/plating, +/area/station/engineering/main) "hlE" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 @@ -19775,46 +20095,17 @@ "hop" = ( /turf/closed/wall, /area/station/service/chapel/funeral) -"hoq" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "atmos to engine" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "hoG" = ( /obj/structure/cable, /obj/effect/landmark/start/scientist, /turf/open/floor/iron, /area/station/science/research) -"hoK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/airalarm/directional/west, -/obj/structure/cable, -/obj/effect/mapping_helpers/airalarm/link{ - chamber_id = "engine" - }, -/obj/effect/mapping_helpers/airalarm/engine_access, -/obj/effect/mapping_helpers/airalarm/tlv_no_checks, -/obj/machinery/meter, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering Supermatter Port" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "hoN" = ( /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, /area/station/hallway/secondary/dock) -"hoO" = ( -/obj/item/radio/intercom/directional/east, -/obj/structure/closet/toolcloset, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/main) "hoQ" = ( /obj/structure/window/spawner/directional/east, /obj/structure/flora/bush/flowers_yw/style_random, @@ -19880,33 +20171,6 @@ dir = 8 }, /area/station/science/lobby) -"hqf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_x = -20; - pixel_y = -2 - }, -/obj/item/storage/box/lights/mixed{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 5; - pixel_y = 1 - }, -/turf/open/floor/iron/small, -/area/station/service/janitor) "hqH" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_containers/cup/watering_can/wood, @@ -19921,13 +20185,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"hqP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "hqS" = ( /turf/closed/wall, /area/station/security/prison/work) @@ -20074,13 +20331,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/secondary/command) -"hsS" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "hsZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -20091,34 +20341,16 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/station/security/tram) -"htk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange{ +"htg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "htp" = ( /turf/closed/wall, /area/station/service/barber) -"htz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/rack, -/obj/item/storage/belt/utility{ - pixel_x = -3; - pixel_y = -4 - }, -/obj/item/storage/belt/utility{ - pixel_x = 6 - }, -/obj/item/storage/belt/utility{ - pixel_x = -2; - pixel_y = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "htM" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -20266,13 +20498,6 @@ }, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"hwk" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "hwn" = ( /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/showroomfloor, @@ -20329,16 +20554,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"hxa" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "hxj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20387,6 +20602,17 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"hxZ" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-north" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "hyb" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -20468,6 +20694,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"hzO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "hzV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -20524,18 +20754,47 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/execution/transfer) -"hBi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/bot{ +"hBh" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/camera/directional/south{ - c_tag = "atmospherics - turbine" +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_x = -20; + pixel_y = -2 }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +/obj/item/storage/box/lights/mixed{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 5; + pixel_y = 1 + }, +/turf/open/floor/iron/small, +/area/station/service/janitor) +"hBi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to External Air Ports" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "hBq" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -20616,16 +20875,6 @@ "hCr" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/command/storage/eva) -"hCx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "hCB" = ( /obj/structure/table, /obj/item/paper_bin, @@ -20649,6 +20898,10 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/aft) +"hCT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "hCX" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -20664,6 +20917,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"hDd" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "hDg" = ( /obj/structure/chair/stool/directional/east, /obj/effect/decal/cleanable/dirt/dust, @@ -20683,20 +20943,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"hDi" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark/fourcorners, -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "hDt" = ( /obj/structure/toilet{ pixel_y = 8 @@ -20704,6 +20950,13 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"hDu" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/power/emitter, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "hDz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, @@ -20788,6 +21041,24 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"hFd" = ( +/obj/structure/rack, +/obj/item/clothing/neck/petcollar, +/obj/item/flashlight/flare/candle{ + pixel_x = 10 + }, +/obj/item/flashlight/flare/candle{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/screwdriver{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/engine/atmos) "hFp" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -20821,6 +21092,10 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"hFO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "hGb" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/storage) @@ -20978,6 +21253,12 @@ /obj/structure/sign/warning/no_smoking/circle/directional/east, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"hKf" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "hKs" = ( /obj/effect/turf_decal/box/corners, /obj/effect/turf_decal/stripes/white/line{ @@ -21000,11 +21281,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"hKS" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/light/no_nightlight/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "hKT" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron, @@ -21043,14 +21319,16 @@ "hLc" = ( /turf/open/floor/plating, /area/station/science/xenobiology) -"hLe" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) "hLm" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/cargo/office) +"hLx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hLD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/tank/air{ @@ -21112,13 +21390,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) -"hMk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/meter/monitored/distro_loop, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "hMr" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -21139,28 +21410,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/glass, /area/station/hallway/primary/central/aft) -"hMZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/structure/table, -/obj/item/radio/intercom/directional/south, -/obj/item/clothing/head/cone{ - pixel_y = 5; - pixel_x = -6 - }, -/obj/item/clothing/head/cone{ - pixel_y = 7; - pixel_x = -6 - }, -/obj/item/pipe_dispenser{ - pixel_y = 9; - pixel_x = 14 +"hMQ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + initialize_directions = 8 }, -/obj/item/cigarette{ - pixel_y = 2 +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 }, -/turf/open/floor/iron/small, +/turf/open/floor/wood, /area/station/engineering/atmos/pumproom) +"hMX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hNb" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -21184,6 +21447,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hNq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hNv" = ( /obj/machinery/netpod, /obj/machinery/light_switch/directional/north, @@ -21385,6 +21655,20 @@ /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hQG" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hRc" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, @@ -21427,13 +21711,16 @@ /turf/open/misc/sandy_dirt, /area/station/security/tram) "hSz" = ( -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter) +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "hSK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/white{ @@ -21467,6 +21754,11 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hTz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hTD" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 @@ -21570,6 +21862,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"hVz" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage/gas) "hVJ" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, @@ -21615,6 +21912,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/science/genetics) +"hWa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hWk" = ( /obj/machinery/vending/coffee, /obj/structure/extinguisher_cabinet/directional/south, @@ -21665,12 +21969,6 @@ }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"hWQ" = ( -/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ - dir = 4 - }, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "hWU" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -21681,6 +21979,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"hXc" = ( +/obj/machinery/light/small/directional/east, +/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_large, +/area/station/engineering/main) "hXf" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Hull Breach Emergency Storage" @@ -21698,13 +22003,15 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) -"hXw" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ +"hXv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "hXU" = ( /turf/closed/wall, /area/station/security/execution/education) @@ -21815,13 +22122,6 @@ /obj/machinery/brm, /turf/open/floor/iron, /area/station/cargo/miningfoundry) -"hZF" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 10 - }, -/turf/open/space/basic, -/area/space/nearstation) "hZP" = ( /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/north, @@ -21873,6 +22173,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"iaB" = ( +/obj/machinery/computer/turbine_computer{ + mapping_id = "main_turbine" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "iaH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -21907,9 +22214,6 @@ dir = 8 }, /area/station/maintenance/starboard/greater) -"iaZ" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/supermatter) "ibe" = ( /obj/effect/turf_decal/bot_white, /obj/structure/closet/crate/freezer, @@ -21954,6 +22258,20 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"ibP" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) +"ibX" = ( +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "icc" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -21978,6 +22296,11 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) +"icF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "icN" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22121,13 +22444,6 @@ /obj/machinery/telecomms/message_server/preset, /turf/open/floor/circuit, /area/station/tcommsat/server) -"ieL" = ( -/obj/structure/cable, -/obj/machinery/modular_computer/preset/engineering{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "ieY" = ( /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, @@ -22144,12 +22460,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"iff" = ( -/obj/structure/sign/poster/official/moth_piping/directional/north, -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/closet/firecloset, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "ifg" = ( /obj/structure/chair/sofa/bench/right, /obj/machinery/light/dim/directional/north, @@ -22208,12 +22518,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"ifP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "ifU" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -22240,14 +22544,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/office) -"igt" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "igD" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -22330,26 +22626,12 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) -"ihz" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - initialize_directions = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "ihC" = ( /obj/structure/bodycontainer/morgue{ dir = 1 }, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) -"ihJ" = ( -/obj/effect/turf_decal/box/white, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "ihZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22381,6 +22663,24 @@ }, /turf/open/space/basic, /area/space) +"iiE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "engine" + }, +/obj/effect/mapping_helpers/airalarm/engine_access, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/meter, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering Supermatter Port" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iiI" = ( /obj/structure/table/reinforced, /obj/structure/disposalpipe/segment, @@ -22403,15 +22703,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ijs" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ijz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, @@ -22482,6 +22773,14 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"ikC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ikH" = ( /obj/structure/table/bronze, /obj/machinery/computer/security/wooden_tv{ @@ -22506,12 +22805,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"ikI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ikU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -22591,14 +22884,19 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"ilT" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ilW" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"imb" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "imj" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "permaouter"; @@ -22623,14 +22921,12 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"imK" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ +"imO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/bot{ - dir = 1 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "ina" = ( @@ -22697,6 +22993,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) +"ioQ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - entrance" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "ioR" = ( /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/west, @@ -22765,6 +23072,11 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ipq" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "ipr" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/closet/wardrobe/miner, @@ -22818,6 +23130,12 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"ipN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ipP" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/corner{ @@ -22940,13 +23258,6 @@ /obj/structure/closet/toolcloset, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"irt" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 6 - }, -/turf/open/space/basic, -/area/space/nearstation) "irQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22954,6 +23265,13 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/hop) +"irR" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "isi" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new{ @@ -22971,6 +23289,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"isC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "isD" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -23005,15 +23333,6 @@ }, /turf/closed/wall, /area/station/hallway/primary/port) -"isM" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "isQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23030,6 +23349,13 @@ "itb" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) +"itr" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green, +/turf/open/floor/iron, +/area/station/engineering/atmos) "itw" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -23079,6 +23405,13 @@ /obj/structure/table/wood, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) +"iua" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "iuc" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "AISat Maintenance" @@ -23156,6 +23489,16 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"ivs" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ivz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line{ @@ -23182,19 +23525,6 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"ivF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"ivX" = ( -/obj/machinery/computer/atmos_control/nitrous_tank, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ivY" = ( /obj/structure/table/reinforced, /obj/effect/spawner/random/techstorage/tcomms_all, @@ -23211,6 +23541,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"iwR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "ixl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23321,15 +23658,13 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"ize" = ( -/obj/machinery/atmospherics/components/binary/pump/off{ - name = "O2 To Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"izf" = ( +/obj/structure/sign/warning/engine_safety/directional/north, +/obj/machinery/light/cold/dim/directional/north, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "izh" = ( /obj/item/shovel, /turf/open/floor/plating, @@ -23384,6 +23719,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor, /area/station/engineering/atmos/storage/gas) +"izF" = ( +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "izP" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -23595,6 +23934,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"iCx" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "iCF" = ( /obj/structure/railing, /obj/structure/sign/poster/official/random/directional/north, @@ -23602,6 +23948,16 @@ dir = 8 }, /area/station/engineering/main) +"iCJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/server) "iDk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -23627,15 +23983,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white, /area/station/security/medical) -"iDz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "iDA" = ( /obj/structure/chair/comfy/black{ dir = 4 @@ -23665,10 +24012,35 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"iDP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"iEi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/textured_half, +/area/station/service/chapel/office) "iEk" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/command/bridge) +"iEo" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "iEA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, @@ -23723,6 +24095,12 @@ /obj/structure/window/spawner/directional/east, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) +"iFB" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "iFD" = ( /obj/effect/turf_decal/plaque{ icon_state = "L5"; @@ -23822,19 +24200,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"iHc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 +"iHa" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Gas to Cold Loop"; + dir = 1 }, -/obj/structure/railing/corner{ - dir = 8 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"iHe" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iHg" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external{ @@ -23868,6 +24243,17 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"iHE" = ( +/obj/structure/chair/office, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "iHM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23892,17 +24278,6 @@ /obj/effect/turf_decal/siding/end, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) -"iIj" = ( -/obj/structure/closet/crate{ - name = "Materials Crate" - }, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/machinery/light/cold/dim/directional/west, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) "iIs" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -24047,14 +24422,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"iJw" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "iJz" = ( /obj/structure/table/glass, /obj/item/reagent_containers/cup/bottle/multiver{ @@ -24122,12 +24489,6 @@ dir = 1 }, /area/station/command/heads_quarters/hop) -"iKi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "iKm" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24147,14 +24508,6 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"iLd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "iLe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24359,12 +24712,6 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/security/tram) -"iNQ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "iNS" = ( /obj/structure/chair{ dir = 1 @@ -24485,6 +24832,13 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"iPd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "iPj" = ( /obj/structure/cable, /turf/open/floor/circuit/green, @@ -24575,16 +24929,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"iQZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Decontamination A" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "iRk" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -24667,6 +25011,12 @@ "iSr" = ( /turf/open/floor/iron, /area/station/security/execution/transfer) +"iSt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "iSD" = ( /turf/open/misc/dirt/station, /area/station/service/chapel) @@ -24678,13 +25028,6 @@ /obj/structure/sign/warning/pods/directional/west, /turf/open/floor/iron/checker, /area/station/security/breakroom) -"iTd" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "iTe" = ( /obj/effect/turf_decal/siding/red{ dir = 6 @@ -24772,6 +25115,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"iUp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "iUH" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera/autoname/directional/south, @@ -24828,17 +25177,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"iVC" = ( -/obj/machinery/light/no_nightlight/directional/east, -/obj/structure/sign/poster/official/nanotrasen_logo/directional/east, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "iVE" = ( /obj/structure/cable, /obj/machinery/telecomms/hub/preset, @@ -24953,6 +25291,18 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"iWD" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25006,13 +25356,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"iXh" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) "iXi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25073,15 +25416,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/stone, /area/station/service/bar/backroom) -"iXZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "iYh" = ( /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, @@ -25100,12 +25434,6 @@ /obj/machinery/photocopier, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"iYy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "iYC" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -25128,6 +25456,21 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/processing) +"iZs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "iZu" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/item/kirbyplants/random, @@ -25328,6 +25671,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"jbE" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "jbV" = ( /obj/machinery/photocopier, /turf/open/floor/iron/dark, @@ -25399,11 +25749,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) -"jcK" = ( -/obj/machinery/air_sensor/nitrous_tank, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos) "jcU" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -25421,10 +25766,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"jde" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "jdp" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -25435,6 +25776,21 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/station/service/library) +"jdR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"jdX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jeh" = ( /turf/open/floor/noslip, /area/station/security/tram) @@ -25452,6 +25808,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"jeF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "jeG" = ( /obj/machinery/portable_atmospherics/canister/plasma, /obj/effect/turf_decal/stripes/white/line{ @@ -25460,25 +25822,20 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"jeV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage below"; + name = "Secure Storage" + }, +/turf/open/floor/plating/rust, +/area/station/engineering/main) "jeW" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/departments/medbay/alt/directional/west, /turf/open/floor/plating, /area/station/medical/medbay/lobby) -"jfa" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/obj/item/radio/intercom/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/hangover, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) -"jfm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "jfs" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -25501,11 +25858,6 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"jfx" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "jfA" = ( /obj/structure/table, /obj/item/folder/yellow, @@ -25515,6 +25867,9 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"jfB" = ( +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "jfE" = ( /obj/structure/closet/secure_closet/evidence, /obj/machinery/light/dim/directional/north, @@ -25557,13 +25912,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"jgJ" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/main) "jgQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -25571,6 +25919,14 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) +"jhj" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "jhm" = ( /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) @@ -25581,10 +25937,21 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"jhB" = ( +/obj/structure/sign/warning/electric_shock, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "jhC" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"jhF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jhY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -25643,15 +26010,6 @@ /obj/structure/sign/poster/random/directional/north, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"jiv" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "jiw" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -25659,12 +26017,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"jiy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/station/engineering/supermatter/room) "jiB" = ( /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, @@ -25675,11 +26027,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jiP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "jiR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine/vacuum, @@ -25714,13 +26061,6 @@ "jjq" = ( /turf/closed/wall, /area/station/cargo/warehouse) -"jjD" = ( -/obj/structure/sign/warning/engine_safety/directional/north, -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "jjI" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/siding/thinplating/dark, @@ -25740,17 +26080,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/medical/chemistry) -"jjT" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) -"jko" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos) "jkz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -25837,11 +26166,6 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/stone, /area/station/service/chapel) -"jlF" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "jlL" = ( /obj/structure/closet/secure_closet/engineering_chief, /obj/item/storage/briefcase/secure, @@ -25907,15 +26231,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"jms" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - 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/wood, -/area/station/engineering/atmos/office) "jmF" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/turf_decal/stripes/line{ @@ -25929,6 +26244,16 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"jmN" = ( +/obj/structure/table, +/obj/item/stack/rods/fifty, +/obj/item/wrench, +/obj/item/storage/box/lights/mixed, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jmV" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plating, @@ -25980,17 +26305,12 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"jnB" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/storage/gas) +"jnI" = ( +/obj/machinery/air_sensor/incinerator_tank, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "jnN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -26152,13 +26472,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"jqI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/turf/open/floor/plating, -/area/station/engineering/atmos) "jqK" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -26194,6 +26507,22 @@ /obj/structure/cable, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"jrv" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"jrD" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "jrG" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 @@ -26280,12 +26609,6 @@ /obj/effect/turf_decal/siding/thinplating/terracotta, /turf/open/floor/iron, /area/station/commons/dorms) -"jsV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "jsX" = ( /obj/structure/steam_vent, /turf/open/floor/plating, @@ -26321,6 +26644,12 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"jtG" = ( +/obj/structure/table, +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "jtI" = ( /turf/open/floor/iron/white/side{ dir = 4 @@ -26385,18 +26714,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"jvy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/camera/directional/north{ - c_tag = "atmospherics - HFR" - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "jvB" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -26411,16 +26728,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"jvF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "jvN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -26505,19 +26812,6 @@ }, /turf/open/floor/iron, /area/station/security) -"jwB" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) -"jwH" = ( -/obj/machinery/air_sensor/nitrogen_tank, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos) "jwU" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/sign/poster/random/directional/south, @@ -26597,6 +26891,10 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"jya" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "jyd" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, @@ -26640,6 +26938,16 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"jyF" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/shower/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/break_room) "jyG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26669,17 +26977,6 @@ dir = 4 }, /area/station/command/heads_quarters/captain/private) -"jyV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "jyY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ @@ -26764,6 +27061,10 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/security/tram) +"jBg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "jBo" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 6 @@ -26822,6 +27123,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"jCH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jCP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26847,6 +27154,9 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) +"jDi" = ( +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "jDm" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown{ @@ -27016,15 +27326,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"jFl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos/office) "jFm" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/spawner/random/vending/snackvend, @@ -27081,9 +27382,10 @@ /turf/open/floor/iron, /area/station/security) "jGu" = ( -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/atmos/office) +/obj/effect/mapping_helpers/broken_floor, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "jGy" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/vending/wardrobe/bar_wardrobe, @@ -27204,6 +27506,17 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/security/tram) +"jHJ" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"jHM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "jHU" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -27241,14 +27554,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"jIk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Distro to Waste" - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "jIl" = ( /obj/effect/turf_decal/siding/red{ dir = 10 @@ -27261,24 +27566,16 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"jIo" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/machinery/button/door/directional/west{ - id = "Secure Storage below"; - name = "Secure engineering storage"; - pixel_y = 24; - req_access = list("engine_equip") - }, -/turf/open/floor/iron/corner{ - dir = 8 - }, -/area/station/engineering/main) "jIy" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"jIA" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jIB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -27357,13 +27654,6 @@ }, /turf/open/floor/wood, /area/station/engineering/main) -"jJO" = ( -/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) "jJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27403,18 +27693,6 @@ dir = 1 }, /area/station/science/xenobiology) -"jKo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage top"; - name = "Secure Storage" - }, -/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/smooth_large, -/area/station/engineering/storage_shared) "jKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27461,16 +27739,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"jLh" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "jLl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27490,6 +27758,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"jLv" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jLB" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27547,6 +27822,12 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"jMp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "jMC" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 8 @@ -27566,33 +27847,15 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jMR" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - Central Aft" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"jMT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"jMW" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 +"jMQ" = ( +/obj/machinery/atmospherics/components/binary/pump/off{ + name = "O2 To Pure" }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ dir = 4 }, -/obj/item/radio/intercom/directional/north, /turf/open/floor/iron, -/area/station/engineering/atmos/project) +/area/station/engineering/atmos) "jMX" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -27630,6 +27893,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"jNu" = ( +/obj/machinery/air_sensor/air_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "jNw" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -27683,20 +27951,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"jOm" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Unfiltered" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"jOn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "jOs" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/lavendergrass/style_2, @@ -27777,14 +28031,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"jQo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "jQv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -27885,21 +28131,24 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"jRU" = ( -/obj/structure/railing, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/stairs/old{ - dir = 4 - }, -/area/station/engineering/break_room) "jSl" = ( /obj/structure/filingcabinet/filingcabinet, /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"jSm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "jSn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed, @@ -27920,12 +28169,13 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) -"jSF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ +"jSE" = ( +/obj/effect/turf_decal/bot{ dir = 1 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jSJ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -27962,6 +28212,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"jTf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "jTh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28010,14 +28266,11 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/holodeck/rec_center) -"jTP" = ( -/obj/machinery/light/small/directional/south{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 +"jTD" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 8 }, -/turf/open/floor/engine/n2o, +/turf/open/floor/iron, /area/station/engineering/atmos) "jTU" = ( /obj/structure/disposalpipe/segment{ @@ -28035,6 +28288,14 @@ dir = 1 }, /area/station/hallway/primary/aft) +"jTW" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jUc" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/east, @@ -28085,15 +28346,23 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"jUU" = ( +"jUy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jUA" = ( +/obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light_switch/directional/south, /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/grimy, -/area/station/service/janitor) +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "jVe" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -28169,6 +28438,19 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"jWm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - upper" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jWr" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "jWs" = ( /turf/open/floor/iron/dark, /area/station/security/processing) @@ -28193,13 +28475,11 @@ /obj/effect/landmark/start/bitrunner, /turf/open/floor/iron, /area/station/cargo/storage) -"jWH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Waste" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"jWC" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "jWO" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/camera/autoname/directional/south, @@ -28239,17 +28519,6 @@ /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"jXr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/command/glass{ - name = "Telecommunications Server Room" - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "jXA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28279,11 +28548,15 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) -"jXJ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/white/side, -/area/station/hallway/primary/central/aft) +"jXH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jXQ" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -18; @@ -28416,18 +28689,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"jZP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Distro Access" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "kam" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/disposal/delivery_chute{ @@ -28492,14 +28753,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"kaN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/turf/open/floor/iron, -/area/station/engineering/atmos) "kaP" = ( /obj/structure/lattice, /obj/structure/grille, @@ -28533,19 +28786,18 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) -"kby" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Gas"; - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "kbI" = ( /obj/structure/table/glass, /obj/machinery/cell_charger, /obj/item/stock_parts/power_store/cell, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) +"kbL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kci" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28590,6 +28842,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"kdv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "kdH" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -28625,12 +28882,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"kej" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/main) "kel" = ( /obj/machinery/light/cold/directional/south, /obj/machinery/modular_computer/preset/id{ @@ -28753,18 +29004,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"kgp" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/shower/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/main) "kgu" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/components/unary/passive_vent, @@ -28926,6 +29165,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kiP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "kiQ" = ( /obj/structure/cable, /obj/machinery/power/smes/super/full, @@ -28957,6 +29202,25 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"kjs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/glasses/meson{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "kjw" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -28991,21 +29255,8 @@ /turf/open/floor/plating, /area/station/maintenance/department/bridge) "kjW" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Distro Access" - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/station/engineering/atmos/pumproom) "kkd" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ @@ -29087,6 +29338,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"klg" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/engineering/atmos) "klF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -29099,6 +29356,13 @@ dir = 4 }, /area/station/science/xenobiology) +"klG" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "klH" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -29193,6 +29457,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"kmL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/structure/table, +/obj/item/radio/intercom/directional/south, +/obj/item/clothing/head/cone{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/item/clothing/head/cone{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/pipe_dispenser{ + pixel_y = 9; + pixel_x = 14 + }, +/obj/item/cigarette{ + pixel_y = 2 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "kmP" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -29287,19 +29573,6 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"koI" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) -"kpg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "kpF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/hangover, @@ -29459,6 +29732,14 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"krb" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos/glass{ + name = "Project Room" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/atmos) "krd" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/machinery/newscaster/directional/north, @@ -29615,6 +29896,19 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"ksM" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/hallway) "ksN" = ( /obj/structure/transit_tube/station/dispenser, /obj/effect/decal/cleanable/dirt, @@ -29628,6 +29922,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) +"kti" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1; + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "ktl" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -29656,26 +29960,17 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"ktJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "ktM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/cargo/office) -"ktQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/box/mousetraps{ - pixel_x = -5 - }, -/obj/item/storage/box/mousetraps{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/small, -/area/station/service/janitor) "ktT" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -29710,19 +30005,22 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/office) -"kuk" = ( -/obj/machinery/light/warm/dim, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "kuq" = ( /obj/machinery/computer/cargo/request, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) +"kut" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "kux" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -29739,13 +30037,6 @@ /obj/structure/closet/secure_closet/miner, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"kuA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "kuE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29773,14 +30064,6 @@ /obj/structure/chair, /turf/open/floor/iron, /area/station/commons/storage/tools) -"kvc" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Mix" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "kvl" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -29790,6 +30073,9 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kvz" = ( +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "kvD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -29829,36 +30115,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kwa" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) -"kwk" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "kws" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/firealarm/directional/west, @@ -29931,6 +30187,16 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"kxE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Genetics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "kxF" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, @@ -29979,6 +30245,16 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"kyE" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "kyN" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/small, @@ -29994,6 +30270,17 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kzs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/security/checkpoint/science) "kzv" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -30042,6 +30329,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) +"kAz" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/obj/machinery/camera/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "kAJ" = ( /obj/structure/closet/wardrobe/mixed, /obj/effect/turf_decal/siding/wideplating/dark, @@ -30101,6 +30396,19 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"kCq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "kCy" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -30166,15 +30474,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"kDr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "kDs" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet/purple, @@ -30187,6 +30486,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/dorms) +"kEo" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/engineering/main) "kEs" = ( /obj/machinery/door/airlock/external/glass{ name = "Supply Door Airlock" @@ -30223,20 +30526,15 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"kES" = ( -/obj/machinery/computer/atmos_control/nocontrol/incinerator{ +"kEW" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ dir = 8 }, -/obj/machinery/firealarm/directional/east, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"kFf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kFg" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/siding/wood, @@ -30246,16 +30544,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/command/heads_quarters/qm) -"kFl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/no_nightlight/directional/north, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "kFq" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -30276,6 +30564,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"kFA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "kFD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/autolathe, @@ -30303,6 +30598,11 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/sorting) +"kFK" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "kFU" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron, @@ -30350,13 +30650,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/parquet, /area/station/service/library) -"kGF" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/atmos/office) "kGY" = ( /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/bot, @@ -30366,6 +30659,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"kHd" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "kHi" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -30398,6 +30697,19 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"kHp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "kHL" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -30576,6 +30888,7 @@ cycle_id = "sci-entrance" }, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) "kKD" = ( @@ -30597,17 +30910,36 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"kKX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "kLo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"kLr" = ( +/obj/structure/table, +/obj/item/hfr_box/body/waste_output, +/obj/item/hfr_box/body/moderator_input, +/obj/item/hfr_box/body/fuel_input, +/obj/item/hfr_box/body/interface, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "kLS" = ( /turf/open/floor/iron/stairs{ dir = 1 }, /area/station/medical/treatment_center) +"kMe" = ( +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "kMm" = ( /obj/structure/chair/sofa/right/brown{ dir = 1 @@ -30650,6 +30982,16 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"kNv" = ( +/obj/machinery/air_sensor/mix_tank, +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Mix" + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) +"kNx" = ( +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "kNz" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/small, @@ -30690,6 +31032,15 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kOh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Mech Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/mechbay) "kOm" = ( /obj/structure/cable, /turf/closed/wall/r_wall, @@ -30705,6 +31056,13 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/fore) +"kOH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "kOR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30719,10 +31077,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"kOU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "kOV" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -30811,6 +31165,14 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/cargo/storage) +"kRi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kRt" = ( /obj/machinery/monkey_recycler, /obj/effect/turf_decal/siding/white{ @@ -30854,6 +31216,16 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/plating, /area/station/hallway/secondary/dock) +"kRV" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "kSb" = ( /turf/open/floor/wood, /area/station/command/heads_quarters/qm) @@ -30880,20 +31252,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"kSr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/command/heads_quarters/rd) "kSv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -30993,11 +31351,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) -"kTZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "kUa" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -31009,12 +31362,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/funeral) -"kUo" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "kUF" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -31028,16 +31375,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"kUN" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) "kVb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/medical/central) -"kVc" = ( -/obj/effect/turf_decal/sand/plating, -/turf/closed/wall/r_wall, -/area/space/nearstation) "kVe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -31049,10 +31395,6 @@ /obj/structure/chair/sofa/bench/left, /turf/open/floor/stone, /area/station/service/chapel) -"kVi" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos) "kVn" = ( /obj/structure/disposalpipe/segment, /obj/structure/table/reinforced, @@ -31072,6 +31414,12 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"kVB" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "kWd" = ( /obj/machinery/door/airlock{ name = "Room 2" @@ -31092,12 +31440,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/small, /area/station/security/office) -"kWt" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input{ - dir = 1 - }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos) "kWF" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31126,6 +31468,13 @@ dir = 8 }, /area/station/hallway/secondary/dock) +"kWY" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "kXn" = ( /turf/closed/wall/r_wall, /area/station/engineering/gravity_generator) @@ -31136,12 +31485,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"kXr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "kXu" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/red{ @@ -31255,6 +31598,18 @@ /obj/structure/flora/grass/jungle/b/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"kZr" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/shower/directional/east, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/main) "kZv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -31385,13 +31740,6 @@ /obj/machinery/light/floor, /turf/open/floor/grass, /area/station/hallway/primary/central/fore) -"lbk" = ( -/obj/machinery/camera/directional/north{ - c_tag = "atmospherics - upper" - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lbl" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -31423,10 +31771,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"lbI" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "lbO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31464,24 +31808,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"lcu" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/office) "lcw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -31493,13 +31819,6 @@ /obj/effect/landmark/navigate_destination/chemfactory, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"lcx" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lcC" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -31538,6 +31857,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"ldl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/holy/directional/south, +/obj/machinery/light/cold/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "ldq" = ( /turf/closed/wall, /area/station/maintenance/department/science/xenobiology) @@ -31556,6 +31883,14 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) +"ldG" = ( +/obj/machinery/door/airlock/external/glass{ + name = "ATMOS PROJECT Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ldJ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -31566,12 +31901,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/security/brig) -"ldO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "lee" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, @@ -31692,6 +32021,15 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"lfq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro Staging to Distro" + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "lfs" = ( /obj/effect/landmark/start/assistant, /turf/open/floor/iron/half, @@ -31727,16 +32065,6 @@ /obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"lgb" = ( -/obj/machinery/computer/atmos_control/nitrogen_tank{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lgf" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, @@ -31827,6 +32155,10 @@ dir = 1 }, /area/station/hallway/primary/aft) +"lgD" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "lgG" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -31901,10 +32233,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"lhE" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, -/turf/open/floor/engine/vacuum, -/area/station/maintenance/disposal/incinerator) "lhP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -31942,11 +32270,6 @@ /obj/effect/landmark/navigate_destination/kitchen, /turf/open/floor/wood, /area/station/hallway/primary/central/aft) -"liB" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange, -/turf/open/space/basic, -/area/space/nearstation) "liG" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -31972,16 +32295,6 @@ /obj/effect/landmark/start/chaplain, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"liK" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "liL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32014,16 +32327,6 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"liV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "liX" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -32032,21 +32335,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/rust, /area/station/maintenance/department/engine/atmos) -"liY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/caution/stand_clear, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"lje" = ( -/obj/machinery/computer/turbine_computer{ - mapping_id = "main_turbine" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "ljg" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 1 @@ -32199,6 +32487,15 @@ /obj/structure/flora/rock/pile/jungle/style_4, /turf/open/floor/grass, /area/station/service/chapel) +"lkN" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "lkR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32272,12 +32569,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) -"llZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/bamboo, -/obj/structure/cable, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "lmb" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -32300,6 +32591,13 @@ /obj/structure/flora/bush/flowers_pp/style_2, /turf/open/floor/grass, /area/station/service/chapel) +"lmo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix Outlet Pump" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "lmv" = ( /obj/structure/disposalpipe/segment, /obj/item/kirbyplants/random, @@ -32308,6 +32606,9 @@ "lmz" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lmJ" = ( +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "lmR" = ( /obj/structure/dresser, /obj/structure/sign/poster/contraband/random/directional/east, @@ -32472,6 +32773,15 @@ /obj/machinery/holopad, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"lps" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/computer/atmos_control/nocontrol/master{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "lpC" = ( /turf/open/floor/plating, /area/station/service/chapel/funeral) @@ -32561,11 +32871,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) -"lqv" = ( -/obj/machinery/air_sensor/plasma_tank, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "lqC" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) @@ -32608,6 +32913,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) +"lrQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lsh" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -32617,9 +32927,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/service/barber) -"lsx" = ( -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) +"lst" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"lsF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lsO" = ( /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/white/side{ @@ -32675,12 +32996,6 @@ dir = 1 }, /area/station/engineering/storage/tech) -"ltM" = ( -/obj/structure/lattice/catwalk, -/obj/structure/marker_beacon/indigo, -/obj/machinery/atmospherics/pipe/smart/simple/orange, -/turf/open/space/basic, -/area/space/nearstation) "ltP" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/siding/wood{ @@ -32697,6 +33012,16 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"ltU" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "luc" = ( /obj/machinery/door/airlock{ id_tag = "ShowerToilet1"; @@ -32747,19 +33072,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"luK" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"luM" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input{ - dir = 1 - }, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "luP" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -32814,6 +33126,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"lvy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "lvA" = ( /obj/structure/table/wood/fancy/red, /obj/item/clothing/head/costume/witchwig{ @@ -32903,6 +33225,20 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"lwK" = ( +/turf/closed/wall/r_wall/rust, +/area/station/engineering/atmos/storage) +"lwO" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Engine Room" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/turf/open/floor/catwalk_floor, +/area/station/engineering/supermatter/room) "lwW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -32922,6 +33258,10 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/explab) +"lxm" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "lxo" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -33015,13 +33355,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"lyT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "lyY" = ( /obj/structure/bed, /obj/item/bedsheet/red, @@ -33275,6 +33608,15 @@ /obj/effect/mapping_helpers/airlock/access/all/security/detective, /turf/open/floor/iron/textured_half, /area/station/security/detectives_office) +"lCb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lCg" = ( /obj/structure/chair{ dir = 4 @@ -33297,18 +33639,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"lCi" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_1" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor, -/area/station/engineering/main) "lCt" = ( /obj/effect/turf_decal/siding/red{ dir = 1 @@ -33347,17 +33677,18 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/coroner, /turf/open/floor/plating, /area/station/medical/morgue) -"lDc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/command{ - name = "Telecomms Server Room" +"lCT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"lDo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/indigo, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "lDp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33391,15 +33722,6 @@ /obj/item/clothing/head/utility/welding, /turf/open/floor/iron, /area/station/science/robotics/lab) -"lDP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "lEa" = ( /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) @@ -33420,9 +33742,6 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron/dark, /area/station/cargo/office) -"lEn" = ( -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "lEs" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -33493,26 +33812,6 @@ "lER" = ( /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"lEW" = ( -/obj/item/stack/sheet/plasteel{ - amount = 10; - pixel_x = -2; - pixel_y = 2 - }, -/obj/structure/table, -/obj/item/stack/sheet/rglass{ - amount = 30; - pixel_x = 2; - pixel_y = -2 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "lFg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -33616,6 +33915,19 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"lHd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lHe" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/carpet/donk, @@ -33650,10 +33962,6 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"lHv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos) "lHz" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) @@ -33750,15 +34058,6 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/qm) -"lIo" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Decontamination B" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "lIq" = ( /obj/structure/table/wood/fancy/green, /obj/item/paperplane{ @@ -33811,6 +34110,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"lJq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "lJB" = ( /obj/item/radio/intercom/directional/north{ broadcasting = 1; @@ -33822,20 +34125,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"lJJ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lJV" = ( /obj/structure/bed, /obj/effect/decal/cleanable/dirt, @@ -33858,6 +34147,16 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"lKs" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Recreation" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/iron/textured_half, +/area/station/commons/fitness/recreation/entertainment) "lKA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -33897,10 +34196,6 @@ /obj/effect/landmark/start/bitrunner, /turf/open/floor/iron/dark/smooth_half, /area/station/cargo/bitrunning/den) -"lKT" = ( -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "lKV" = ( /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) @@ -34144,10 +34439,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"lPb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lPf" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/storage/gas) @@ -34219,17 +34510,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"lQD" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - Central Fore" - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lQR" = ( /obj/effect/turf_decal/caution{ dir = 4 @@ -34237,6 +34517,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/terracotta/small, /area/station/security/checkpoint/escape) +"lQU" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lQZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -34284,11 +34569,22 @@ dir = 8 }, /area/station/science/xenobiology) -"lRq" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/firealarm/directional/south, +"lRy" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, -/area/station/engineering/atmos/project) +/area/station/engineering/atmos) +"lRK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "lRM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34343,6 +34639,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"lSy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "lSI" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34425,6 +34725,24 @@ }, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"lTV" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/obj/item/storage/pill_bottle/potassiodide{ + pixel_y = 12; + pixel_x = -6 + }, +/obj/item/pen/screwdriver, +/obj/item/radio/intercom/directional/west, +/obj/item/geiger_counter{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/storage/gas) "lUl" = ( /obj/effect/turf_decal/plaque{ icon_state = "L1"; @@ -34490,18 +34808,6 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/plating, /area/station/cargo/sorting) -"lUZ" = ( -/obj/machinery/atmospherics/components/binary/crystallizer{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "lVg" = ( /obj/structure/transit_tube/horizontal, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34606,6 +34912,11 @@ }, /turf/open/floor/carpet/donk, /area/station/command/heads_quarters/qm) +"lWV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lWY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -34708,14 +35019,6 @@ /obj/item/banner/cargo, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/qm) -"lYa" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/departments/exodrone/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lYf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -34762,16 +35065,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/qm) -"lYC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "lYF" = ( /obj/effect/turf_decal/siding/yellow{ dir = 9 @@ -34832,11 +35125,14 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) -"lZl" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/unary/bluespace_sender, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) +"lZr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "lZt" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -34897,15 +35193,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"lZN" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/iron/smooth_half{ - dir = 8 - }, -/area/station/maintenance/department/engine/atmos) "lZP" = ( /obj/structure/table, /obj/item/clothing/head/fedora/det_hat/minor{ @@ -34941,13 +35228,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"mah" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "mak" = ( /obj/machinery/computer/communications{ dir = 1 @@ -34971,6 +35251,17 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"maK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "maL" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -34992,16 +35283,17 @@ /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"mbM" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - Central Aft" +"mbP" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/requests_console/directional/north{ + name = "Atmospherics Requests Console" }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "mbV" = ( /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/eighties/red, @@ -35048,6 +35340,12 @@ /obj/machinery/holopad, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"mct" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "mcv" = ( /obj/effect/turf_decal/siding/brown, /obj/structure/table/reinforced/plastitaniumglass, @@ -35118,11 +35416,6 @@ }, /turf/open/floor/wood, /area/station/cargo/miningfoundry) -"med" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel/fifty, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "meh" = ( /obj/structure/railing{ dir = 4 @@ -35190,6 +35483,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/smooth_edge, /area/station/maintenance/starboard/greater) +"mfM" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/closed/wall, +/area/station/engineering/atmos/storage/gas) "mfP" = ( /obj/structure/hedge, /obj/machinery/light_switch/directional/west, @@ -35215,12 +35512,23 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"mgO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +"mgF" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Project Room" }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mgR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mgW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35257,6 +35565,14 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) +"mib" = ( +/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) "mid" = ( /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, @@ -35301,6 +35617,12 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"mjc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mjf" = ( /obj/structure/table/reinforced/rglass, /obj/machinery/door/window/left/directional/west{ @@ -35320,6 +35642,12 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"mjt" = ( +/obj/machinery/computer/atmos_control/nitrous_tank, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mjF" = ( /obj/structure/table/glass, /obj/item/clothing/suit/costume/cyborg_suit, @@ -35477,10 +35805,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mlH" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/engineering/supermatter) "mlK" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -35599,15 +35923,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/central/lesser) -"mno" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark/fourcorners, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/no_nightlight/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "mnw" = ( /obj/effect/spawner/random/vending/colavend, /obj/machinery/firealarm/directional/east, @@ -35679,6 +35994,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) +"mok" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "mos" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, @@ -35699,14 +36022,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"mpe" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "External Gas to Loop" +"moN" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/binary/volume_pump, +/obj/structure/railing{ + dir = 1 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "mpk" = ( /obj/machinery/airalarm/directional/south, /turf/open/floor/circuit/green, @@ -35752,12 +36075,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"mqr" = ( -/obj/structure/bed, -/obj/item/bedsheet/purple, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/grimy, -/area/station/service/janitor) "mqz" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -35853,6 +36170,15 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central/fore) +"mss" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Cooling Loop Bypass" + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "msy" = ( /obj/machinery/door/airlock/mining/glass{ name = "Cargo Bay" @@ -36038,6 +36364,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/engine, /area/station/science/xenobiology) +"mwK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "mwN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -36065,6 +36400,15 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/warden) +"mxp" = ( +/obj/structure/table, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "mxM" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, @@ -36196,6 +36540,16 @@ /obj/item/stock_parts/subspace/amplifier, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) +"mzs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mzx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage) "mzz" = ( /obj/structure/hedge, /obj/machinery/camera/directional/east, @@ -36253,16 +36607,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mBh" = ( -/obj/structure/table, -/obj/machinery/camera/directional/east{ - c_tag = "atmospherics - HFR" - }, -/obj/item/stack/rods/fifty, -/obj/item/stack/rods/fifty, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "mBo" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -36282,14 +36626,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"mCl" = ( -/obj/structure/tank_dispenser, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/light/cold/dim/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "mCt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36303,16 +36639,6 @@ dir = 4 }, /area/station/hallway/secondary/construction) -"mCy" = ( -/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) "mCF" = ( /turf/open/floor/iron/dark/side, /area/station/hallway/secondary/construction) @@ -36384,6 +36710,12 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) +"mDS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "mDW" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -36394,22 +36726,6 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) -"mDZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Robotics Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/lab) -"mEa" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) "mEq" = ( /obj/structure/closet/crate/wooden{ name = "Alms Box" @@ -36417,12 +36733,6 @@ /obj/effect/spawner/random/entertainment/money_medium, /turf/open/floor/iron/dark/smooth_corner, /area/station/maintenance/starboard/greater) -"mEt" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "mEy" = ( /obj/machinery/conveyor{ dir = 8; @@ -36579,6 +36889,15 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"mGs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "mGM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, @@ -36591,21 +36910,6 @@ /obj/structure/sink/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"mGO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/turf_decal/caution/stand_clear, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"mGV" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/main) "mGY" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/smooth, @@ -36625,17 +36929,29 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/virology) +"mHf" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "mHh" = ( /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/maintenance/central/lesser) -"mHj" = ( -/obj/machinery/power/energy_accumulator/grounding_rod/anchored, -/obj/structure/window/reinforced/plasma/spawner/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +"mHy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, /obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"mHG" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "mHZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36644,19 +36960,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) -"mIe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating/corner{ - 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/wood, -/area/station/engineering/atmos/storage) "mIg" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/catwalk_floor/iron_dark, @@ -36845,6 +37148,10 @@ dir = 1 }, /area/station/hallway/primary/aft) +"mKh" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/engineering/atmos) "mKm" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line, @@ -36936,6 +37243,15 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"mLZ" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "mMp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37125,6 +37441,10 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"mPB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mPJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -37168,6 +37488,9 @@ dir = 8 }, /area/station/command/heads_quarters/hos) +"mRl" = ( +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "mRB" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/end, @@ -37188,13 +37511,16 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"mRQ" = ( -/obj/structure/closet/crate/solarpanel_small, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "mSa" = ( /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"mSl" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "mSA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -37210,16 +37536,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"mSN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/computer/atmos_control/oxygen_tank{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "mSQ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -37323,6 +37639,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"mUe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mUg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37379,6 +37700,13 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mUY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mVc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37392,11 +37720,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) -"mVi" = ( -/obj/machinery/igniter/incinerator_atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/turf/open/floor/engine/vacuum, -/area/station/maintenance/disposal/incinerator) "mVm" = ( /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 1 @@ -37451,6 +37774,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/lower) +"mWB" = ( +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "mWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/heat_exchanging/simple, @@ -37475,14 +37801,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"mWU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/railing/corner, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "mWY" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench/left{ @@ -37643,12 +37961,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mZj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "mZA" = ( /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/door/airlock/public/glass{ @@ -37711,16 +38023,14 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"naS" = ( -/obj/structure/marker_beacon/fuchsia, -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space/nearstation) "nbF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/science/robotics/augments) +"nbH" = ( +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "nbL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37731,9 +38041,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"nbY" = ( -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "ncb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -37753,13 +38060,6 @@ }, /turf/open/floor/plating, /area/station/service/janitor) -"ncj" = ( -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "nck" = ( /obj/machinery/fax{ fax_name = "Engineering Lobby"; @@ -37817,12 +38117,11 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) -"ndh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"ndm" = ( +/obj/structure/marker_beacon/fuchsia, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "ndp" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -37848,11 +38147,6 @@ /obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron, /area/station/security/tram) -"ndO" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "ndY" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -37892,6 +38186,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) +"nfn" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "nfG" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -37905,13 +38211,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/holodeck/rec_center) -"ngn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "ngq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38144,14 +38443,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security) -"njZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "nki" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/cold/dim/directional/west, @@ -38203,6 +38494,11 @@ /obj/machinery/vending/wardrobe/sec_wardrobe, /turf/open/floor/iron/dark, /area/station/security/lockers) +"nlj" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nlk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38222,10 +38518,12 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"nlp" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) +"nlt" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nlC" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron/white/corner{ @@ -38239,6 +38537,9 @@ }, /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) +"nlR" = ( +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "nlS" = ( /turf/open/floor/iron/white/small, /area/station/medical/virology) @@ -38283,10 +38584,6 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/main) -"nmR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "nmX" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -38316,6 +38613,22 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) +"nnp" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "N2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"nnz" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "noe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -38427,10 +38740,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/lawoffice) -"npW" = ( -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "npZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -38439,6 +38748,21 @@ /obj/structure/sign/departments/court/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"nqa" = ( +/obj/machinery/door/airlock/grunge{ + name = "Janitorial Closet" + }, +/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/effect/mapping_helpers/airlock/access/any/service/janitor, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/janitor) "nqd" = ( /obj/machinery/shower/directional/east, /obj/effect/turf_decal/trimline/blue/end{ @@ -38457,14 +38781,6 @@ }, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"nqA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "nqJ" = ( /obj/structure/sink/directional/south, /obj/effect/turf_decal/siding/wood, @@ -38472,10 +38788,17 @@ /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) "nqN" = ( -/obj/effect/spawner/random/structure/crate_loot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "nqV" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -38510,6 +38833,10 @@ /obj/effect/landmark/start/botanist, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"nrn" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "nrp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/flashlight/lantern/on, @@ -38746,6 +39073,15 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white/small, /area/station/science/lab) +"nuL" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/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/herringbone, +/area/station/commons/dorms) "nuO" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38815,17 +39151,6 @@ }, /turf/open/floor/iron/recharge_floor, /area/station/maintenance/port/aft) -"nvQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) -"nwe" = ( -/obj/structure/cable, -/obj/structure/reflector/single/anchored, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "nwj" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -38841,6 +39166,19 @@ /obj/effect/spawner/random/trash/bin, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"nwK" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "HFR Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "nwN" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -39004,18 +39342,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"nzj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) -"nzx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "nzA" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39068,6 +39394,25 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) +"nAJ" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"nAW" = ( +/obj/machinery/atmospherics/components/binary/crystallizer{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "nBq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39105,6 +39450,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"nBP" = ( +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter) "nCe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39119,18 +39472,6 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"nCp" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Incinerator Access" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/engineering/atmos) "nCt" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -39202,9 +39543,9 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) -"nDP" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, +"nDJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) "nDQ" = ( /obj/structure/chair{ @@ -39259,6 +39600,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/cytology) +"nEG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + 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/wood, +/area/station/engineering/atmos/storage) "nEY" = ( /obj/structure/closet/firecloset, /obj/effect/decal/cleanable/dirt, @@ -39293,6 +39647,10 @@ /obj/machinery/telecomms/server/presets/command, /turf/open/floor/circuit, /area/station/tcommsat/server) +"nFv" = ( +/obj/machinery/light/no_nightlight/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nFD" = ( /obj/structure/cable, /obj/effect/spawner/structure/window, @@ -39316,25 +39674,6 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"nFK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"nFT" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "nFU" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -39357,14 +39696,6 @@ /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"nGc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/machinery/power/apc/auto_name/directional/west{ - areastring = "/area/station/science/ordnance/freezerchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "nGe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -39375,6 +39706,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"nGf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nGi" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -39461,6 +39799,18 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"nHH" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nHI" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -39578,19 +39928,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"nJp" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"nJx" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine) "nJG" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -39619,6 +39956,15 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"nKe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nKj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39633,20 +39979,36 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"nKO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 +"nLk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" }, -/obj/machinery/portable_atmospherics/canister, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/command/heads_quarters/rd) "nLH" = ( /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, /area/station/cargo/warehouse) +"nLJ" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nLM" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -39660,6 +40022,13 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"nMk" = ( +/obj/machinery/power/emitter/welded{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "nMn" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -39721,11 +40090,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"nNm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "nNz" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -39751,18 +40115,19 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"nNI" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "nNZ" = ( /obj/structure/tank_dispenser, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"nOD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/machinery/power/apc/auto_name/directional/west{ + areastring = "/area/station/science/ordnance/freezerchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nOH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39788,6 +40153,10 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/brig/entrance) +"nPl" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "nPt" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39855,6 +40224,17 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/lockers) +"nQc" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nQj" = ( /obj/structure/toilet/greyscale{ dir = 8 @@ -39944,6 +40324,12 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"nRa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "nRd" = ( /obj/structure/cable, /obj/effect/spawner/structure/window, @@ -40008,11 +40394,9 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"nSP" = ( -/obj/structure/cable, -/obj/machinery/power/emitter/welded, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +"nST" = ( +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine) "nSY" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -40028,18 +40412,6 @@ }, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/central/fore) -"nTf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating/corner, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "nTi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40088,12 +40460,26 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) +"nTP" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "nUd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"nUh" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nUo" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -40121,10 +40507,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/cargo/boutique) -"nUN" = ( -/obj/structure/closet/radiation, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "nUQ" = ( /obj/structure/chair{ dir = 8 @@ -40152,15 +40534,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/janitor) -"nVb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "nVg" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -40214,6 +40587,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/tcommsat/server) +"nVU" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) +"nWa" = ( +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "nWh" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, @@ -40230,13 +40616,6 @@ /obj/structure/hedge, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"nWH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Ports" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "nWV" = ( /obj/effect/spawner/random/entertainment/arcade{ dir = 1 @@ -40258,6 +40637,15 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/pharmacy) +"nXv" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -1; + pixel_y = -3 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "nXx" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -40295,17 +40683,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/cytology) -"nYg" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/cubicle) "nYk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -40381,6 +40758,14 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"nZF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nZG" = ( /obj/machinery/vending/wardrobe/chef_wardrobe, /turf/open/floor/iron/kitchen/small, @@ -40444,6 +40829,19 @@ /obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"obb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "obe" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/disposalpipe/segment{ @@ -40480,15 +40878,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/hallway/secondary/dock) -"obV" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "obW" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -40518,12 +40907,15 @@ /obj/machinery/computer/records/security, /turf/open/floor/iron, /area/station/security/brig/entrance) -"odg" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/obj/machinery/atmospherics/pipe/smart/simple/orange, -/turf/open/space/basic, -/area/space/nearstation) +"ocZ" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "odh" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/plating, @@ -40566,6 +40958,14 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) +"oer" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "External Gas to Loop" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oev" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40623,6 +41023,10 @@ }, /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/medical/central) +"ofx" = ( +/obj/effect/turf_decal/sand/plating, +/turf/closed/wall/r_wall, +/area/space/nearstation) "ofU" = ( /obj/machinery/holopad, /obj/effect/landmark/start/hangover, @@ -40654,11 +41058,6 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"ogx" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "ogE" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -40718,6 +41117,13 @@ /obj/item/reagent_containers/pill/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ohf" = ( +/obj/structure/reagent_dispensers/fueltank/large, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "ohj" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/white/line{ @@ -40824,9 +41230,6 @@ /obj/item/storage/bag/xeno, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"oit" = ( -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos) "oiw" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -40858,14 +41261,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/plating, /area/station/cargo/office) -"oiO" = ( -/obj/machinery/door/airlock/external/glass{ - name = "ATMOS PROJECT Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "oiP" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -40933,23 +41328,22 @@ /obj/machinery/status_display/ai, /turf/closed/wall, /area/station/hallway/secondary/entry) +"oks" = ( +/obj/structure/reflector/single/anchored, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "okB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/xenobiology) -"okJ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"okP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 +"okD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage/gas) "okW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40975,13 +41369,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"olh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/light/no_nightlight/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "olj" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/cable, @@ -41019,6 +41406,20 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"oma" = ( +/obj/machinery/atmospherics/components/unary/passive_vent, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"omj" = ( +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/machinery/incident_display/bridge/directional/north, +/turf/open/floor/iron/smooth, +/area/station/command/bridge) "omq" = ( /obj/structure/cable, /turf/open/floor/wood/parquet, @@ -41103,6 +41504,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"ooo" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ooK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -41131,13 +41539,6 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"opz" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - Air" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output, -/turf/open/floor/engine/air, -/area/station/engineering/atmos) "opA" = ( /obj/effect/spawner/random/structure/girder, /obj/structure/barricade/wooden, @@ -41198,20 +41599,21 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"oqq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/no_nightlight/directional/north, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "oqK" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"oqO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/obj/structure/table, -/obj/item/stack/sheet/mineral/plasma/five, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "oqT" = ( /obj/machinery/camera/autoname/directional/north, /obj/machinery/firealarm/directional/north, @@ -41263,13 +41665,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) -"orK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "orW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, @@ -41285,17 +41680,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"osd" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Air to Distro" - }, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "ose" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41314,6 +41698,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"osp" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "oss" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41323,6 +41714,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"osw" = ( +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "osy" = ( /obj/effect/turf_decal/siding/white{ dir = 8 @@ -41344,16 +41745,6 @@ dir = 8 }, /area/station/engineering/break_room) -"osV" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/shower/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/break_room) "osY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/corner/directional/south, @@ -41405,13 +41796,6 @@ dir = 1 }, /area/station/command/corporate_suite) -"ouh" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "oul" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_2, @@ -41445,6 +41829,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ouJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ouL" = ( /obj/item/clothing/head/cone{ pixel_x = 7 @@ -41472,6 +41863,10 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"ouS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "ouT" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -41482,16 +41877,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/port) -"ovj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/cytology) "ovB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds, @@ -41499,10 +41884,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"ovF" = ( -/obj/machinery/suit_storage_unit/atmos, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "ovQ" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, @@ -41537,10 +41918,6 @@ }, /turf/open/floor/circuit, /area/station/science/server) -"oww" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "owD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41611,20 +41988,6 @@ }, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"oxi" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"oxj" = ( -/obj/structure/reflector/single/anchored{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "oxm" = ( /obj/effect/turf_decal/bot, /obj/machinery/door/window/right/directional/south{ @@ -41720,11 +42083,6 @@ /obj/structure/reagent_dispensers/plumbed, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"ozy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "ozO" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -41732,6 +42090,10 @@ /obj/structure/mannequin/plastic, /turf/open/floor/carpet/blue, /area/station/cargo/boutique) +"ozQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "ozV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -41747,28 +42109,12 @@ /obj/structure/steam_vent, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"oAp" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "oAr" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/bombcloset/security, /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/security/lockers) -"oAv" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ - dir = 4 - }, -/obj/machinery/camera/directional/south{ - c_tag = "atmospherics - lower"; - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "oAA" = ( /obj/structure/closet/emcloset, /obj/effect/mapping_helpers/broken_floor, @@ -41812,6 +42158,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"oBF" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"oBP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/project) "oBT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41842,6 +42201,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) +"oCb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oCg" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/medical_all, @@ -41886,14 +42250,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"oCS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "oCV" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -41908,36 +42264,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"oDb" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"oDd" = ( -/obj/machinery/door/poddoor{ - id = "Secure Storage top"; - name = "Secure Storage" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) -"oDj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plating, -/area/station/engineering/atmos/storage/gas) "oDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"oDS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "oDX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/wood{ @@ -42058,15 +42394,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"oGf" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "oGk" = ( /turf/open/floor/circuit, /area/station/tcommsat/server) @@ -42093,21 +42420,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"oGp" = ( -/obj/machinery/light/small/directional/south{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos) -"oGA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "oGL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42175,10 +42487,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"oHH" = ( -/obj/machinery/air_sensor/engine_chamber, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "oIf" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/modular_computer/preset/engineering{ @@ -42254,6 +42562,10 @@ /obj/machinery/smartfridge, /turf/open/floor/plating, /area/station/service/hydroponics) +"oJm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "oJn" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ @@ -42388,6 +42700,12 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"oLc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "oLg" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -42416,54 +42734,20 @@ }, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"oLS" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"oMw" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/railing, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) +"oLV" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "oMy" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/starboard/aft) -"oMF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/holy/directional/south, -/obj/machinery/light/cold/directional/south, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "oMI" = ( /obj/effect/decal/cleanable/dirt, /mob/living/basic/slime, /turf/open/floor/engine, /area/station/science/xenobiology) -"oMV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/structure/cable, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "oNd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/blue/corner{ @@ -42561,6 +42845,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"oOs" = ( +/obj/structure/closet/crate/solarpanel_small, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "oOv" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -42654,6 +42942,9 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"oPj" = ( +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "oPo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -42736,6 +43027,13 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"oQK" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "oRj" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -42825,6 +43123,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) +"oRW" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/main) "oRZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -42864,6 +43169,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) +"oTf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oTg" = ( /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 @@ -42927,6 +43239,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) +"oTZ" = ( +/obj/structure/cable, +/obj/structure/reflector/single/anchored{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "oUb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42980,20 +43299,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/security/evidence) -"oUQ" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) -"oUY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "oVl" = ( /obj/structure/sign/picture_frame/portrait/bar{ pixel_y = 32 @@ -43011,6 +43316,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/stone, /area/station/service/bar/backroom) +"oVm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "oVt" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/effect/turf_decal/tile/yellow, @@ -43112,13 +43423,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"oXz" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "oXK" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -43159,6 +43463,12 @@ dir = 8 }, /area/station/engineering/main) +"oYF" = ( +/obj/structure/reflector/box/anchored{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "oYL" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -43251,6 +43561,17 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) +"paT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "paX" = ( /obj/structure/chair/bronze{ dir = 8 @@ -43355,12 +43676,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security/execution/transfer) -"pcm" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/vending/wardrobe/jani_wardrobe, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/small, -/area/station/service/janitor) "pcv" = ( /obj/machinery/door/airlock/command{ name = "Head of Security's Bedroom" @@ -43370,6 +43685,16 @@ dir = 8 }, /area/station/command/heads_quarters/hos) +"pcE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Break Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "pcK" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/blue{ @@ -43399,12 +43724,6 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"pdj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "pdl" = ( /obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment{ @@ -43437,10 +43756,10 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/science/cytology) -"pdD" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +"pdA" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pdR" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -43479,11 +43798,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"pen" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "pep" = ( /obj/structure/cable, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ @@ -43609,16 +43923,20 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/small, /area/station/security/prison/shower) -"pgs" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +"pgw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" }, -/obj/structure/railing/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-north" }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "pgy" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -43628,17 +43946,6 @@ /obj/item/kirbyplants/fern, /turf/open/floor/iron/white, /area/station/science/cytology) -"pgF" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "phd" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -43652,13 +43959,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"phk" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "phm" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -43717,6 +44017,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/science/lower) +"pic" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "pie" = ( /obj/effect/spawner/random/decoration/showcase, /obj/structure/window/spawner/directional/south, @@ -43751,6 +44058,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"pit" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "piG" = ( /obj/effect/turf_decal/siding/green{ dir = 8 @@ -43758,6 +44069,12 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) +"piJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "piL" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -43765,10 +44082,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"piN" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "pjb" = ( /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/iron, @@ -43840,6 +44153,17 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"pjX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "Secure Storage top"; + name = "Secure engineering storage"; + req_access = list("engine_equip") + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "pke" = ( /obj/machinery/door/airlock/centcom{ name = "Disposals Access:" @@ -43859,20 +44183,20 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"pkt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "pkB" = ( /obj/item/kirbyplants/random, /obj/item/weldingtool, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"pkL" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "pkQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -43919,13 +44243,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"plp" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "plr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -44029,6 +44346,10 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/service/hydroponics) +"pnH" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "pnK" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/weather/dirt{ @@ -44038,6 +44359,10 @@ /obj/structure/flora/bush/jungle/c/style_random, /turf/open/floor/grass, /area/station/service/chapel) +"pnO" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "pnQ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -44215,6 +44540,16 @@ "pqm" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage/tcomms) +"pqr" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/camera/directional/west{ + c_tag = "atmospherics - storage" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pqv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -44272,6 +44607,13 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"prP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "prW" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -44365,14 +44707,6 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"ptq" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) "ptt" = ( /obj/structure/chair/wood/wings, /obj/effect/turf_decal/siding/wood{ @@ -44405,11 +44739,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"ptW" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "ptX" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44446,11 +44775,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"pvB" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/structure/cable, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "pvC" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44494,11 +44818,13 @@ "pwN" = ( /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"pwR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ +"pwO" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/no_nightlight/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) "pxj" = ( @@ -44521,6 +44847,9 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"pxz" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/disposal/incinerator) "pxA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44549,6 +44878,10 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"pys" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "pyt" = ( /obj/machinery/light/floor, /turf/open/floor/grass, @@ -44577,12 +44910,6 @@ "pzd" = ( /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) -"pzm" = ( -/obj/machinery/incident_display/delam/directional/north, -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "pzy" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -44594,14 +44921,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/security/execution/transfer) -"pzA" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "pzK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding, @@ -44619,12 +44938,6 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"pAb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "pAl" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44670,25 +44983,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"pAu" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"pAx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "pAH" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -44771,6 +45065,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"pCn" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/project) "pCv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44871,6 +45168,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"pEp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Unfiltered" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pEq" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ @@ -44939,6 +45244,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"pET" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "pEU" = ( /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/machinery/door/airlock/freezer{ @@ -45130,12 +45444,6 @@ }, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"pHW" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/engineering/atmos) "pHY" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -45217,13 +45525,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"pID" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/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/engineering/atmos) "pIS" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -45300,19 +45601,6 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"pJY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 6 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "pKi" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -45369,15 +45657,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"pKX" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - initialize_directions = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) +"pKW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "pLf" = ( /obj/machinery/griddle, /obj/effect/turf_decal/siding{ @@ -45385,16 +45670,6 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) -"pLg" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Gun Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/auxlab/firing_range) "pLj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45429,15 +45704,6 @@ dir = 1 }, /area/station/command/corporate_showroom) -"pLs" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "pLI" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -45463,6 +45729,21 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/north, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"pMq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "pMs" = ( /obj/structure/transit_tube/horizontal, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45472,16 +45753,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"pMD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Genetics" +"pMM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/science/genetics, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) +/turf/open/floor/engine, +/area/station/engineering/supermatter) "pMS" = ( /obj/structure/table, /obj/machinery/light/small/directional/south, @@ -45674,6 +45951,16 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/engine, /area/station/science/xenobiology) +"pPx" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "pPK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45727,6 +46014,11 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) +"pQP" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/bluespace_sender, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "pQY" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -45821,16 +46113,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"pSz" = ( -/obj/machinery/door/poddoor{ - id = "Secure Storage top"; - name = "Secure Storage" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) "pSB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/tank/air{ @@ -45945,6 +46227,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"pUA" = ( +/obj/machinery/space_heater, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pUC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/doppler_array{ @@ -45963,6 +46249,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) +"pUM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"pUQ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pUS" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -46159,6 +46454,13 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"pXv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "pXz" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/machinery/firealarm/directional/south, @@ -46213,10 +46515,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"pYm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "pYr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46231,6 +46529,18 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"pYw" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pYx" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -46249,6 +46559,12 @@ dir = 4 }, /area/station/science/lower) +"pZp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pZu" = ( /obj/structure/hedge, /turf/open/floor/plating, @@ -46296,28 +46612,49 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"qav" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Unfiltered & Air to Mix"; + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qaF" = ( /obj/structure/sink/directional/south, /obj/structure/mirror/directional/north, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"qaV" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) -"qbd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/structure/cable, +"qaU" = ( +/obj/effect/turf_decal/arrows/white, /obj/effect/turf_decal/stripes/line{ - dir = 8 + dir = 1 }, -/obj/machinery/light/directional/west, /turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/area/station/engineering/atmospherics_engine) +"qaX" = ( +/obj/structure/table, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -7 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5 + }, +/obj/item/electronics/airalarm{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/sign/poster/official/build/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "qbj" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -46375,19 +46712,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"qbP" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm/directional/east, -/obj/structure/table/reinforced, -/obj/item/folder/yellow{ - pixel_x = 2 - }, -/obj/item/reagent_containers/cup/glass/mug/coco{ - pixel_x = -6; - pixel_y = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/break_room) "qcf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46408,12 +46732,6 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/station/maintenance/central/greater) -"qcC" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "qcF" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -46489,6 +46807,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"qdU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter/monitored/distro_loop, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "qdZ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -46531,13 +46856,6 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"qfi" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "qfo" = ( /obj/structure/disposalpipe/segment, /obj/structure/sign/departments/lawyer/directional/east, @@ -46568,6 +46886,13 @@ /obj/effect/mapping_helpers/airlock/access/any/service/lawyer, /turf/open/floor/iron/dark/textured_half, /area/station/service/lawoffice) +"qfK" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Waste" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qfV" = ( /obj/machinery/vending/tool, /obj/structure/sign/poster/official/random/directional/south, @@ -46653,8 +46978,12 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) -"qhi" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ +"qht" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "CO2 to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ dir = 4 }, /turf/open/floor/iron, @@ -46738,14 +47067,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"qiy" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "qiz" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -46784,15 +47105,6 @@ }, /turf/open/floor/plating, /area/station/tcommsat/server) -"qje" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/turf/open/floor/iron, -/area/station/engineering/hallway) "qjh" = ( /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white, @@ -46879,6 +47191,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"qko" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "qkp" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -46887,6 +47205,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"qkq" = ( +/obj/structure/cable, +/obj/machinery/power/terminal, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "qkK" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -46952,6 +47275,12 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/dock) +"qme" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qmv" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" @@ -46963,12 +47292,26 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/station/cargo/boutique) +"qmD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix Outlet Pump" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qmM" = ( /obj/structure/sign/painting/library{ pixel_y = 32 }, /turf/open/floor/iron/smooth, /area/station/service/library) +"qmT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qmZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47011,12 +47354,6 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/starboard/fore) -"qnC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "qnJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47067,6 +47404,16 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron/white/small, /area/station/service/janitor) +"qpp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "qpu" = ( /obj/effect/turf_decal/siding/brown{ dir = 9 @@ -47074,11 +47421,6 @@ /obj/structure/steam_vent, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"qpL" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "qpO" = ( /obj/structure/chair{ dir = 1 @@ -47102,13 +47444,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"qqj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "qqC" = ( /obj/structure/chair/comfy/carp{ dir = 1 @@ -47163,22 +47498,15 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"qsK" = ( -/obj/structure/chair/office, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) -"qsO" = ( +"qsr" = ( /obj/effect/turf_decal/bot{ dir = 1 }, -/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/reagent_dispensers/fueltank/large, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - storage" + }, +/obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/station/engineering/main) "qsR" = ( @@ -47242,9 +47570,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"quh" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/atmospherics_engine) "qul" = ( /obj/machinery/light/small/directional/east, /obj/machinery/light_switch/directional/east, @@ -47376,10 +47701,16 @@ /obj/effect/turf_decal/siding/wideplating/dark, /turf/open/floor/iron, /area/station/security) -"qwK" = ( -/obj/structure/cable, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) +"qwF" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - lower"; + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qwU" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/table/glass, @@ -47424,11 +47755,6 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/engineering/break_room) -"qxG" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos) "qxN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47452,6 +47778,13 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/misc/sandy_dirt, /area/station/science/research) +"qyr" = ( +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/turf/open/floor/wood, +/area/station/engineering/main) "qyx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/chair{ @@ -47552,16 +47885,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) -"qzD" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Break Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "qzL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47659,10 +47982,6 @@ }, /turf/open/floor/engine/n2o, /area/station/ai_monitored/turret_protected/ai) -"qAX" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "qBc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47677,17 +47996,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"qBd" = ( -/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/power/apc/auto_name/directional/south, -/obj/machinery/light/small/directional/north, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/augments) "qBi" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -47717,6 +48025,19 @@ /obj/effect/turf_decal/stripes/red/line, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"qBK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"qBM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "qBN" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 8 @@ -47932,6 +48253,13 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"qEy" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "qEz" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Holding Cell"; @@ -48002,21 +48330,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/security/processing) -"qFn" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmos/project) "qFv" = ( /obj/effect/turf_decal/tile/green{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"qFH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "qGc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -48025,15 +48344,6 @@ }, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/central/fore) -"qGd" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - CO2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/carbon_output{ - dir = 1 - }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos) "qGe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -48129,6 +48439,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"qIe" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "qIf" = ( /turf/closed/wall, /area/station/medical/cryo) @@ -48164,13 +48480,6 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) -"qIF" = ( -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 8; - name = "mix to engine" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "qIM" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/east, @@ -48214,6 +48523,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"qJL" = ( +/obj/machinery/space_heater, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "qKe" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green, @@ -48236,27 +48550,27 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"qKC" = ( -/obj/effect/turf_decal/stripes/line{ +"qKA" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green{ dir = 4 }, -/obj/structure/rack, -/obj/item/pipe_dispenser{ - pixel_y = -7; - pixel_x = 2 - }, -/obj/item/pipe_dispenser{ - pixel_y = 5; - pixel_x = -2 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "qKD" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 6 }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"qKH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) "qKI" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron/small, @@ -48314,13 +48628,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/security/courtroom) -"qLI" = ( -/obj/machinery/power/port_gen/pacman, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "qLU" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -48350,6 +48657,10 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"qMj" = ( +/obj/effect/turf_decal/bot/right, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "qMp" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -48357,6 +48668,16 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/security/courtroom) +"qMw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "qMG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, @@ -48397,18 +48718,6 @@ "qNO" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"qNT" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "qNU" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron, @@ -48425,6 +48734,12 @@ }, /turf/open/floor/plating, /area/station/commons/storage/tools) +"qOr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "qOG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -48443,10 +48758,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"qOM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "qON" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/table, @@ -48467,6 +48778,11 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"qOQ" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "qPc" = ( /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 @@ -48474,6 +48790,10 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"qPk" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/atmos/office) "qPJ" = ( /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron, @@ -48481,21 +48801,6 @@ "qPN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/safe) -"qPZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/north, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "qQi" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/yellow{ @@ -48569,6 +48874,11 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) +"qRb" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qRh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -48661,15 +48971,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) -"qSo" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -1; - pixel_y = -3 - }, -/obj/item/stack/cable_coil, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "qSC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -48824,6 +49125,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"qUJ" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/kirbyplants/organic/plant24, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "qUL" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -48833,6 +49141,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"qUR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qUS" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -49222,15 +49538,6 @@ /obj/structure/sign/departments/medbay/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"qZq" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "qZw" = ( /obj/machinery/door/airlock/public/glass{ name = "Dormatories" @@ -49339,13 +49646,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/wood/parquet, /area/station/service/library) -"rbn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmos) "rbs" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -49366,6 +49666,14 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"rbI" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/engineering/main) "rbO" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 @@ -49410,17 +49718,16 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"rci" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "rcl" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/xenobiology) -"rcr" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - N2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos) "rcE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -49450,15 +49757,18 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"rdk" = ( -/turf/open/floor/engine, -/area/station/engineering/supermatter) "rds" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 }, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) +"rdt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rdw" = ( /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) @@ -49628,6 +49938,12 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/glass, /area/station/command/heads_quarters/rd) +"rfT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rfW" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ @@ -49651,13 +49967,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"rgH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rgK" = ( /obj/effect/turf_decal/trimline/blue/corner{ dir = 8 @@ -49669,14 +49978,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/glass, /area/station/hallway/primary/central/aft) -"rgN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "rgS" = ( /obj/structure/railing/corner/end{ dir = 1 @@ -49695,16 +49996,6 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"rhl" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "rhm" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 10 @@ -49765,18 +50056,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"rhP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"rhW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "rie" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/cargo_technician, @@ -49809,16 +50088,6 @@ "rir" = ( /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"riJ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - initialize_directions = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "riS" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 1 @@ -49863,6 +50132,17 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/dark/small, /area/station/hallway/primary/fore) +"rjw" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Air to Distro" + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "rjN" = ( /obj/structure/cable, /obj/structure/chair{ @@ -49896,6 +50176,13 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/medical/morgue) +"rkM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "rlb" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -49951,13 +50238,6 @@ /obj/machinery/air_sensor/ordnance_burn_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"rlX" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/obj/machinery/light/no_nightlight/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "rma" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 @@ -50054,12 +50334,6 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"roL" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "roS" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/west, @@ -50118,16 +50392,12 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) -"rpE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/navigate_destination/chapel, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +"rpQ" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "rpV" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -50181,15 +50451,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"rrd" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/no_nightlight/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rro" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ @@ -50215,6 +50476,15 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/science/robotics/augments) +"rry" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "rrQ" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/effect/turf_decal/tile/dark_red/half/contrasted, @@ -50258,19 +50528,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/service/lawoffice) -"rsj" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "rsl" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -50346,6 +50603,15 @@ "rtQ" = ( /turf/closed/wall/r_wall, /area/station/security/tram) +"rtX" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "rtZ" = ( /obj/structure/sign/directions/dorms{ dir = 1 @@ -50380,6 +50646,15 @@ dir = 4 }, /area/station/science/ordnance/testlab) +"ruh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - lower" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rui" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -50402,6 +50677,13 @@ "ruD" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"ruR" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ruS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50448,6 +50730,16 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"rvI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rvX" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/south{ @@ -50474,16 +50766,6 @@ dir = 6 }, /area/station/science/research) -"rwk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Genetics" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/genetics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "rwo" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/camera/directional/west, @@ -50552,27 +50834,18 @@ /obj/item/razor, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"rxx" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"rxB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rxD" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"rxJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rxP" = ( /obj/structure/table, /obj/item/assembly/signaler{ @@ -50652,6 +50925,12 @@ dir = 1 }, /area/station/science/research) +"ryr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ryt" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/tile/neutral{ @@ -50684,6 +50963,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"rzb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Engineering Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rzd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50696,14 +50984,15 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"rzy" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9"; - pixel_y = -15 +"rzm" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Decontamination B" }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "rzJ" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -50729,12 +51018,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"rAl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "rAt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50752,17 +51035,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"rAy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "rAA" = ( /obj/structure/flora/bush/flowers_pp/style_random, /mob/living/carbon/human/species/monkey, @@ -50797,10 +51069,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) -"rAU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) "rBe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50828,21 +51096,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"rBr" = ( -/obj/machinery/door/airlock/grunge{ - name = "Janitorial Closet" - }, -/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/effect/mapping_helpers/airlock/access/any/service/janitor, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/janitor) "rBy" = ( /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, @@ -50903,6 +51156,12 @@ dir = 1 }, /area/station/security/execution/transfer) +"rCk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "rCv" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -50955,12 +51214,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/corner, /area/station/commons/dorms) -"rDF" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rDP" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -50974,6 +51227,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"rDU" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "rDV" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) @@ -51257,11 +51515,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"rHQ" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "rHY" = ( /obj/effect/turf_decal/siding/wideplating_new/terracotta{ dir = 1 @@ -51276,13 +51529,6 @@ /obj/structure/reagent_dispensers/wall/peppertank/directional/north, /turf/open/floor/iron, /area/station/security/lockers) -"rIe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rIn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -51296,16 +51542,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) -"rIv" = ( -/obj/machinery/light/small/directional/south{ - dir = 4 - }, -/turf/open/floor/engine/co2, +"rIH" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrogen_input, +/turf/open/floor/engine/n2, /area/station/engineering/atmos) "rIJ" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/station/engineering/gravity_generator) +"rIW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "rIY" = ( /turf/closed/wall/r_wall, /area/station/construction/mining/aux_base) @@ -51326,9 +51575,6 @@ }, /turf/open/floor/grass, /area/station/science/xenobiology) -"rJJ" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/atmos/storage) "rJW" = ( /obj/machinery/suit_storage_unit/hos, /obj/effect/decal/cleanable/dirt, @@ -51342,12 +51588,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"rKd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "rKv" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, @@ -51366,6 +51606,18 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"rKW" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Canister Storage" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/start/atmospheric_technician, +/obj/structure/chair/plastic, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/storage/gas) "rKZ" = ( /obj/structure/railing, /obj/machinery/light/small/dim/directional/north, @@ -51485,13 +51737,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"rMx" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rMH" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -51532,6 +51777,11 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"rNG" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "rNI" = ( /obj/effect/turf_decal/siding/thinplating_new/corner{ dir = 4 @@ -51559,9 +51809,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"rOa" = ( -/turf/closed/wall/r_wall/rust, -/area/station/maintenance/disposal/incinerator) "rOG" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -51594,6 +51841,11 @@ "rPf" = ( /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) +"rPg" = ( +/obj/machinery/air_sensor/plasma_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "rPm" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/thinplating_new/light{ @@ -51601,20 +51853,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"rPt" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_1" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/engineering/main) "rPx" = ( /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 @@ -51699,25 +51937,10 @@ "rQi" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) -"rQq" = ( -/obj/machinery/computer/atmos_control/mix_tank{ - dir = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rQw" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/engine, /area/station/science/xenobiology) -"rQy" = ( -/obj/machinery/computer/station_alert{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "rQA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51748,12 +51971,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"rQR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rQS" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -51799,23 +52016,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/courtroom) -"rRJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage below"; - name = "Secure Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating/rust, -/area/station/engineering/main) -"rRK" = ( -/obj/structure/table, -/obj/structure/railing/corner, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "rRQ" = ( /obj/structure/hedge, /obj/item/radio/intercom/directional/south, @@ -52010,13 +52210,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"rVa" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/item/kirbyplants/organic/plant24, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "rVj" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/cold/directional/north, @@ -52076,6 +52269,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"rVI" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rVQ" = ( /obj/structure/disposalpipe/trunk, /obj/structure/window/spawner/directional/west, @@ -52119,9 +52318,6 @@ /obj/item/clothing/head/costume/griffin, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"rWv" = ( -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "rWA" = ( /obj/structure/disposalpipe/segment, /obj/structure/broken_flooring/pile/directional/east, @@ -52181,6 +52377,13 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"rXm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rXv" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -52255,6 +52458,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/service/barber) +"rYD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/air_input, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "rYG" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -52295,14 +52502,13 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/aft) -"rZj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"rZo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/augments) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rZq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/status_display/ai/directional/west, @@ -52346,11 +52552,26 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"rZJ" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rZM" = ( /obj/structure/table/wood, /obj/item/clothing/glasses/eyepatch/medical, /turf/open/floor/carpet/orange, /area/station/commons/dorms) +"saq" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Toxins" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "sar" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -52472,6 +52693,22 @@ /obj/machinery/light/small/broken/directional/south, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"scP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) +"scU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "scY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52485,8 +52722,16 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"sdI" = ( -/turf/open/floor/engine/co2, +"sdZ" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark/fourcorners, +/turf/open/floor/iron, /area/station/engineering/atmos) "sea" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52494,6 +52739,10 @@ /obj/effect/turf_decal/siding/white/corner, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"seq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "ser" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52510,12 +52759,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) -"seK" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "seM" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -52535,15 +52778,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/space/basic, /area/space/nearstation) -"sfe" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - N2O" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ - dir = 1 - }, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos) "sfk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, @@ -52562,6 +52796,26 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"sfy" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"sfB" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sfF" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Office" @@ -52583,20 +52837,11 @@ dir = 8 }, /area/station/engineering/main) -"sfX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/south, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "sge" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/item/clothing/head/costume/festive, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"sgs" = ( -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) "sgw" = ( /obj/machinery/mass_driver/ordnance{ dir = 1 @@ -52667,12 +52912,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"shI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input{ - dir = 1 - }, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos) "shL" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One"; @@ -52683,18 +52922,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"shQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "shR" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -52728,27 +52955,11 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"siI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "siN" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/structure/chair/stool/bar/directional/north, /turf/open/floor/iron, /area/station/holodeck/rec_center) -"sjf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "sjl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52764,6 +52975,21 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"sjw" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"sjG" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sjK" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -52784,6 +53010,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"sjY" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "skc" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -52916,17 +53148,6 @@ /obj/effect/landmark/navigate_destination/sec, /turf/open/floor/iron, /area/station/hallway/primary/port) -"slO" = ( -/obj/structure/table, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/machinery/camera/directional/east{ - c_tag = "atmospherics - entrance" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "slY" = ( /turf/closed/wall, /area/station/maintenance/port/fore) @@ -52964,10 +53185,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"smo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "smH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -53093,6 +53310,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"soU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "soV" = ( /obj/effect/spawner/random/engineering/canister, /turf/open/floor/plating, @@ -53210,10 +53433,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"sqP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "sqV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/sofa/bench/left{ @@ -53252,6 +53471,16 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/port/greater) +"srw" = ( +/turf/closed/wall/r_wall/rust, +/area/station/engineering/atmospherics_engine) +"srx" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "sry" = ( /obj/structure/flora/bush/jungle/c/style_3{ pixel_x = 6; @@ -53267,17 +53496,6 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"srE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/command/glass{ - name = "Telecommunications Server Room" - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "srH" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -53295,21 +53513,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/robotics/lab) -"srL" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) -"srQ" = ( -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "srT" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -53317,13 +53520,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"ssj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "sso" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -53334,10 +53530,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"ssr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/station/maintenance/disposal/incinerator) "sst" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -53449,13 +53641,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/lab) -"sus" = ( -/obj/machinery/power/emitter/welded{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "suw" = ( /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/south, @@ -53470,6 +53655,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"svd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "svh" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -53541,10 +53732,6 @@ /obj/structure/reagent_dispensers/servingdish, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"svR" = ( -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "svU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53595,13 +53782,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"swp" = ( -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating/corner, -/turf/open/floor/wood, -/area/station/engineering/main) "swu" = ( /turf/open/floor/wood, /area/station/security/detectives_office) @@ -53633,6 +53813,12 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"swK" = ( +/obj/structure/sign/poster/official/moth_piping/directional/north, +/obj/machinery/light/cold/dim/directional/north, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "swM" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -53726,6 +53912,11 @@ dir = 8 }, /area/station/science/research) +"sxH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "sxT" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -53800,13 +53991,6 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"syI" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/light/no_nightlight/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "syN" = ( /obj/effect/spawner/random/trash, /turf/open/floor/plating, @@ -53819,6 +54003,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"szg" = ( +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter) "szC" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -53845,6 +54036,14 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"sBq" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/closet/l3closet/janitor, +/obj/item/clothing/gloves/color/orange, +/obj/item/clothing/shoes/galoshes, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/small, +/area/station/service/janitor) "sBL" = ( /obj/structure/sign/directions/science{ dir = 4; @@ -53865,6 +54064,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"sBV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "sCc" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -53892,13 +54097,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"sCo" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "sCp" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -53923,12 +54121,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) -"sCr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "sCu" = ( /obj/machinery/computer/prisoner/management{ dir = 8 @@ -53950,6 +54142,16 @@ }, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/recreation) +"sCC" = ( +/obj/machinery/door/airlock/external/glass{ + name = "ATMOS PROJECT Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sCH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, @@ -54020,14 +54222,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"sEe" = ( -/obj/structure/cable, -/obj/machinery/light/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering Supermatter Emitters" - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "sEn" = ( /obj/item/clothing/head/cone, /obj/item/clothing/head/cone{ @@ -54142,26 +54336,34 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"sHg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "sHk" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/table, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"sHG" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/engineering/atmos) "sHH" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/portable_atmospherics/canister/plasma, /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"sHJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmos/storage) +"sHI" = ( +/obj/machinery/computer/atmos_control/air_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sHM" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ @@ -54207,20 +54409,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"sIL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/light/small/directional/west, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) +"sIB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "sIO" = ( /obj/structure/grille/broken, /obj/item/shard/titanium, /obj/effect/decal/cleanable/glass/titanium, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"sIR" = ( -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "sIZ" = ( /obj/structure/table/wood, /obj/effect/spawner/random/bureaucracy/folder, @@ -54228,6 +54426,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"sJg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/server) "sJi" = ( /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/smooth, @@ -54265,26 +54471,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"sJF" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/engineering/atmos/office) "sJL" = ( /obj/structure/table, /obj/effect/turf_decal/siding{ @@ -54418,15 +54604,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"sLY" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "sMh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/research{ @@ -54469,6 +54646,23 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) +"sMB" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/structure/rack, +/obj/item/circuitboard/machine/thermomachine{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/circuitboard/machine/thermomachine{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "sMD" = ( /turf/closed/wall, /area/station/science/server) @@ -54529,27 +54723,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"sNG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) -"sNJ" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "sNW" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -54809,16 +54982,6 @@ "sRL" = ( /turf/closed/wall, /area/station/service/janitor) -"sRP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "sRR" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -54843,6 +55006,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"sRW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sSj" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -54951,6 +55118,14 @@ }, /turf/open/space/basic, /area/space/nearstation) +"sTJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "sTK" = ( /obj/machinery/telecomms/bus/preset_one, /turf/open/floor/circuit, @@ -54975,6 +55150,12 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) +"sUr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sUy" = ( /turf/closed/wall/r_wall, /area/station/command/meeting_room) @@ -55001,6 +55182,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"sUM" = ( +/obj/machinery/power/emitter/welded, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sUN" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -55008,12 +55194,6 @@ /obj/structure/flora/bush/flowers_yw, /turf/open/floor/grass, /area/station/service/chapel) -"sUU" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "sUV" = ( /obj/structure/table, /obj/item/folder/yellow, @@ -55067,6 +55247,13 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"sVG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "sVN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/workout) @@ -55101,37 +55288,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/maintenance/starboard/greater) -"sWB" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "sWQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"sXc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "sXi" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -55162,20 +55324,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"sXt" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "sXu" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55237,6 +55385,9 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"sXY" = ( +/turf/closed/wall/r_wall/rust, +/area/station/engineering/supermatter/room) "sXZ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -55369,6 +55520,18 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/robotics/lab) +"sZP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tab" = ( /obj/structure/rack, /obj/item/restraints/handcuffs, @@ -55404,14 +55567,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"tay" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "taB" = ( /turf/open/floor/iron/white, /area/station/medical/treatment_center) @@ -55432,6 +55587,13 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"taT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "taZ" = ( /obj/structure/flora/bush/large/style_random{ pixel_y = -3 @@ -55452,12 +55614,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/execution/transfer) -"tbd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) "tbk" = ( /obj/structure/cable, /obj/machinery/door/airlock/hatch{ @@ -55539,6 +55695,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/security/processing) +"tdb" = ( +/turf/open/floor/wood, +/area/station/engineering/main) "tdh" = ( /obj/structure/chair/sofa/corp/right{ dir = 4 @@ -55546,6 +55705,10 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/wood/large, /area/station/command/corporate_suite) +"tdm" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "tdu" = ( /obj/structure/lattice, /obj/structure/railing{ @@ -55635,6 +55798,23 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"teo" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Distro Access" + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "tes" = ( /obj/machinery/computer/security/telescreen/entertainment/directional/north, /obj/effect/turf_decal/siding/wood{ @@ -55687,6 +55867,13 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"teV" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "tfc" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/effect/decal/cleanable/dirt, @@ -55709,14 +55896,6 @@ /obj/structure/table/wood, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"tfj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/door/airlock/command{ - name = "Research Division Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/server) "tfy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/red{ @@ -55724,6 +55903,19 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"tfD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tfE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -55739,12 +55931,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"tfQ" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "tfX" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown{ @@ -55752,15 +55938,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/cargo/office) -"tgi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "tgl" = ( /turf/closed/wall, /area/station/service/greenroom) @@ -55804,19 +55981,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/cryo) -"tgO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "thb" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/yellow{ @@ -55834,6 +55998,13 @@ dir = 1 }, /area/station/science/research) +"thw" = ( +/obj/machinery/atmospherics/components/binary/pump/layer4{ + dir = 8; + name = "mix to engine" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "thx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -55906,13 +56077,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"tiY" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/obj/structure/closet/toolcloset, -/obj/machinery/light/small/directional/east, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/main) "tiZ" = ( /obj/effect/turf_decal/delivery/red, /obj/machinery/door/firedoor, @@ -55955,6 +56119,20 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) +"tjN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "tjT" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/turf_decal/siding/wood{ @@ -55962,18 +56140,6 @@ }, /turf/open/floor/stone, /area/station/service/bar) -"tjU" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "tjY" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; @@ -56015,6 +56181,13 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"tkU" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "tlh" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/warning/cold_temp/directional/north, @@ -56078,12 +56251,27 @@ /obj/machinery/light/floor, /turf/open/floor/grass, /area/station/service/hydroponics) +"tmK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "tmM" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/stairs/left{ dir = 8 }, /area/station/commons/fitness/locker_room) +"tmO" = ( +/obj/machinery/computer/atmos_control/mix_tank{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tmQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -56109,6 +56297,18 @@ "tnb" = ( /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"tnh" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "tns" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -56152,10 +56352,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"tnD" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "tnF" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56185,13 +56381,6 @@ }, /turf/open/floor/wood/tile, /area/station/tcommsat/server) -"toi" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "top" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -56261,17 +56450,6 @@ }, /turf/open/floor/plating/airless, /area/station/hallway/secondary/dock) -"toL" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "toT" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -56286,6 +56464,11 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"toX" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "tpk" = ( /obj/machinery/vending/wardrobe/law_wardrobe, /obj/effect/turf_decal/siding/wood{ @@ -56347,6 +56530,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"tpW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "tqh" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 8 @@ -56368,6 +56557,20 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) +"tqC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_half, +/area/station/ai_monitored/turret_protected/ai_upload) "tqD" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -56404,18 +56607,6 @@ dir = 1 }, /area/station/hallway/secondary/dock) -"trc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/atmos) -"trl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "tro" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/smooth, @@ -56435,12 +56626,6 @@ "trB" = ( /turf/open/floor/glass, /area/station/hallway/primary/central/aft) -"trD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "trI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56448,6 +56633,21 @@ /obj/structure/sign/warning/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"trX" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - CO2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/carbon_output{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"trY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/computer/atmos_control/plasma_tank, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tsb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line, @@ -56503,25 +56703,16 @@ }, /turf/open/floor/stone, /area/station/service/chapel) -"ttv" = ( -/obj/structure/closet/radiation, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ttD" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 9 }, /turf/open/floor/engine, /area/station/science/cytology) -"ttS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/structure/cable, -/obj/machinery/light/small/directional/east, +"ttL" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +/area/station/engineering/atmospherics_engine) "ttV" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -56544,6 +56735,12 @@ }, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"tua" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tug" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -56558,18 +56755,11 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, /area/station/security/processing) -"tut" = ( -/obj/effect/turf_decal/box/white{ - color = "#9FED58" - }, -/turf/open/floor/engine, +"tuu" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"tuw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "tux" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -56708,6 +56898,10 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/small, /area/station/security/tram) +"twA" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "twE" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -56802,6 +56996,13 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) +"tyc" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - O2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "tyh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56848,20 +57049,6 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/birdshot/prison, /turf/open/floor/tram, /area/station/security/tram) -"tzl" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ - dir = 8 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) -"tzn" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 1 - }, -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "tzo" = ( /obj/structure/alien/egg/burst, /obj/structure/alien/weeds, @@ -56944,19 +57131,16 @@ }, /turf/open/floor/iron, /area/station/engineering/hallway) -"tAn" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +"tAp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 }, -/obj/effect/turf_decal/bot{ +/obj/structure/railing/corner{ dir = 1 }, -/obj/structure/closet/firecloset, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tAq" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -56980,16 +57164,6 @@ }, /turf/open/floor/iron, /area/station/security) -"tAu" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "tAw" = ( /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/machinery/door/airlock{ @@ -57015,44 +57189,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"tAD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/table, -/obj/item/clothing/glasses/meson{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/clothing/glasses/meson{ - pixel_x = 5; - pixel_y = -4 - }, -/obj/item/clothing/glasses/meson{ - pixel_x = 5; - pixel_y = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "tAE" = ( /obj/structure/table, /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/medical/central) -"tAF" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/iron/textured_half, -/area/station/service/chapel/office) "tAH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -57126,16 +57267,6 @@ /obj/effect/landmark/start/security_officer, /turf/open/floor/iron/small, /area/station/security/office) -"tCl" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Distro Staging to Waste" - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "tCm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/red{ @@ -57195,6 +57326,18 @@ "tDn" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/prison) +"tDu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/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/smooth_large, +/area/station/engineering/storage_shared) "tDz" = ( /obj/structure/window/spawner/directional/west, /obj/structure/chair/sofa/corp/left{ @@ -57224,11 +57367,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"tDG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "tDM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57267,6 +57405,17 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/security/tram) +"tEC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Robotics Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/lab) "tEL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -57310,15 +57459,6 @@ /obj/machinery/chem_master, /turf/open/floor/iron, /area/station/medical/chemistry) -"tGf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Engineering Supermatter Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "tGp" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/engine, @@ -57343,6 +57483,10 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"tGF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "tGI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57384,12 +57528,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/security/tram) -"tHs" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "tHK" = ( /turf/closed/wall, /area/station/security/prison/shower) @@ -57442,6 +57580,9 @@ }, /turf/open/floor/wood, /area/station/engineering/break_room) +"tIR" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter) "tJe" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -57514,13 +57655,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"tKz" = ( -/obj/effect/spawner/structure/window, -/obj/effect/turf_decal/bot{ - dir = 1 +"tKn" = ( +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) +"tKD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/engineering/main) +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tKG" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/mapping_helpers/broken_floor, @@ -57577,17 +57722,19 @@ }, /turf/open/floor/iron/white/small, /area/station/science/lab) -"tLr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"tLp" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" }, -/obj/machinery/button/door/directional/east{ - id = "Secure Storage top"; - name = "Secure engineering storage"; - req_access = list("engine_equip") +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "tLt" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -57614,21 +57761,6 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"tMw" = ( -/obj/machinery/portable_atmospherics/canister/plasma, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) -"tMG" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "tMS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57650,6 +57782,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"tNm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "tNn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -57682,6 +57819,16 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/engine, /area/station/science/xenobiology) +"tNy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Gun Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/auxlab/firing_range) "tNz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -57699,15 +57846,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"tNC" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - Toxins" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output{ - dir = 1 - }, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "tNF" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair{ @@ -57780,6 +57918,12 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) +"tOJ" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 4 + }, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "tOO" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -20; @@ -57851,18 +57995,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"tPV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "tPW" = ( /obj/structure/closet/secure_closet/personal, /obj/machinery/status_display/evac/directional/south, @@ -57929,6 +58061,18 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) +"tQR" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "tRc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57972,10 +58116,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) -"tRU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, -/turf/open/floor/engine/vacuum, -/area/station/maintenance/disposal/incinerator) "tSp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58165,13 +58305,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"tUO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/railing/corner, -/turf/open/floor/iron, -/area/station/engineering/atmos) "tUZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -58218,13 +58351,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"tVX" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "tWm" = ( /obj/structure/flora/bush/jungle/c/style_3, /obj/effect/turf_decal/weather/dirt, @@ -58258,13 +58384,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"tWE" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/obj/machinery/camera/directional/west, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "tWG" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -58281,10 +58400,6 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"tWR" = ( -/obj/structure/closet/secure_closet/atmospherics, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "tWT" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 9 @@ -58305,6 +58420,17 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/grass, /area/station/service/chapel) +"tXF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tXG" = ( /obj/structure/chair{ dir = 8 @@ -58417,6 +58543,18 @@ }, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"tZE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "tZI" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58439,33 +58577,6 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/engineering/main) -"tZX" = ( -/obj/item/stack/cable_coil, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/light/cold/dim/directional/west, -/obj/structure/table/greyscale, -/obj/item/screwdriver, -/obj/item/stack/cable_coil/cut{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Office" - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "uaa" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -58507,10 +58618,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"uaO" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "uaT" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -58544,22 +58651,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"uba" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "HFR Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "ubb" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -58589,18 +58680,6 @@ dir = 1 }, /area/station/hallway/primary/central/fore) -"ubQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "ubT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58629,6 +58708,20 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"ucm" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ucy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/red{ @@ -58660,6 +58753,16 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"ucS" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4; + initialize_directions = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ucY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58720,6 +58823,12 @@ }, /turf/open/floor/iron/textured_large, /area/station/security/brig/entrance) +"udH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "udK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58738,6 +58847,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"udO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "udW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58807,6 +58920,13 @@ }, /turf/open/floor/iron/textured_large, /area/station/command/heads_quarters/hop) +"ueP" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Air" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "ueX" = ( /turf/closed/wall/rust, /area/station/maintenance/port/fore) @@ -58816,6 +58936,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_half, /area/station/hallway/primary/central/fore) +"ufe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "uff" = ( /obj/machinery/holopad, /turf/open/floor/wood/large, @@ -58852,16 +58980,6 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ufV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Plasma to Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ugb" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "outerbrig"; @@ -58955,18 +59073,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"ugX" = ( -/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/machinery/door/airlock/research{ - name = "Augment Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/augments) "uhe" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/conveyor{ @@ -58999,24 +59105,6 @@ /obj/structure/chair/bronze, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) -"uht" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/power/smes{ - capacity = 1.8e+008; - charge = 2e+005 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) -"uhu" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "uhy" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -59135,6 +59223,13 @@ /obj/item/stack/sheet/cardboard, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"uju" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ujA" = ( /turf/closed/wall/r_wall, /area/station/security/warden) @@ -59185,6 +59280,10 @@ }, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"ukf" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uki" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, @@ -59225,6 +59324,10 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"ukP" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ukQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59241,6 +59344,12 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"ukY" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "ulb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -59270,6 +59379,13 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"ulC" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "ulE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59348,10 +59464,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"unS" = ( -/obj/machinery/light/no_nightlight/directional/west, -/turf/open/floor/iron, -/area/station/engineering/atmos) "unT" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -59472,6 +59584,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"uqg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro Staging to Waste" + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "uql" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -59544,12 +59666,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"ura" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/light/small/directional/east, -/obj/effect/landmark/start/janitor, -/turf/open/floor/iron/grimy, -/area/station/service/janitor) "urd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59590,6 +59706,12 @@ dir = 8 }, /area/station/engineering/main) +"urh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "urk" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -59685,6 +59807,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/execution/transfer) +"urP" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "urQ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -59734,10 +59860,6 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"utp" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/engineering/supermatter) "utD" = ( /obj/machinery/light_switch/directional/west, /obj/effect/turf_decal/stripes/corner{ @@ -59776,11 +59898,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/heads_quarters/qm) -"utI" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plating, -/area/station/engineering/atmos/storage/gas) "utP" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/paper_bin/carbon{ @@ -59835,6 +59952,20 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"uuY" = ( +/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/door/airlock/research/glass{ + name = "Gun Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/auxlab/firing_range) "uvb" = ( /obj/structure/dresser, /turf/open/floor/wood, @@ -59870,6 +60001,20 @@ /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/iron, /area/station/holodeck/rec_center) +"uwu" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm/directional/east, +/obj/structure/table/reinforced, +/obj/item/folder/yellow{ + pixel_x = 2 + }, +/obj/item/reagent_containers/cup/glass/mug/coco{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/smooth, +/area/station/engineering/break_room) "uwB" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -59910,6 +60055,12 @@ /obj/structure/trap/stun, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"uxY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/bamboo, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "uya" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -59955,17 +60106,6 @@ dir = 1 }, /area/station/science/lower) -"uzP" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "uzY" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -59999,19 +60139,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"uAn" = ( -/obj/structure/table, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker; - pixel_x = -6; - pixel_y = 5 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "uAo" = ( /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 @@ -60030,6 +60157,19 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood/tile, /area/station/command/bridge) +"uAM" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "uAY" = ( /turf/open/floor/plating, /area/station/maintenance/department/bridge) @@ -60079,6 +60219,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/engineering/storage/tech) +"uBE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "uBI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -60109,6 +60254,10 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar/backroom) +"uBP" = ( +/obj/effect/turf_decal/bot/left, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uBQ" = ( /obj/structure/table/bronze, /obj/machinery/microwave{ @@ -60121,10 +60270,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) -"uCc" = ( -/obj/machinery/airalarm/directional/south, -/turf/open/floor/wood, -/area/station/cargo/boutique) "uCe" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -60157,15 +60302,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"uCK" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/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, -/area/station/engineering/main) "uDg" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -60262,16 +60398,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/stone, /area/station/command/corporate_suite) -"uEw" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/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/catwalk_floor/iron_white, -/area/station/science/robotics/augments) "uEC" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/box/red/corners{ @@ -60282,6 +60408,13 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"uEH" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "uEI" = ( /obj/structure/flora/bush/lavendergrass/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -60315,6 +60448,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"uEZ" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "uFc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60322,25 +60462,15 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "uFe" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/railing{ - dir = 8 +/obj/effect/turf_decal/arrows/red{ + dir = 4; + pixel_x = -15 }, -/turf/open/floor/iron, -/area/station/engineering/atmos/office) -"uFh" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 9 +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uFk" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/structure/window/reinforced/spawner/directional/east, @@ -60398,13 +60528,17 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"uGb" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"uFS" = ( +/obj/machinery/igniter/incinerator_atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"uFZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/small, +/area/station/service/janitor) "uGj" = ( /obj/effect/turf_decal/tile/green/half/contrasted, /obj/structure/table/glass, @@ -60436,17 +60570,11 @@ dir = 1 }, /area/station/hallway/primary/starboard) -"uGC" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) -"uGE" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space/basic, -/area/space/nearstation) +"uGF" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "uGH" = ( /obj/machinery/rnd/production/circuit_imprinter, /obj/effect/turf_decal/bot, @@ -60598,6 +60726,13 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/station/medical/treatment_center) +"uIu" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "uIv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60619,10 +60754,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"uIC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/atmos) "uIP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60738,30 +60869,17 @@ "uLj" = ( /turf/closed/wall, /area/station/commons/toilet/auxiliary) -"uLz" = ( -/obj/structure/table, -/obj/item/electronics/airalarm{ - pixel_x = -5; - pixel_y = -7 - }, -/obj/item/electronics/firealarm{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/electronics/firealarm{ - pixel_x = 5 - }, -/obj/item/electronics/airalarm{ - pixel_x = 7; - pixel_y = 9 - }, -/obj/item/electronics/airalarm{ - pixel_x = -5; - pixel_y = 5 +"uLk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage below"; + name = "Secure Storage" }, -/obj/structure/sign/poster/official/build/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating/rust, +/area/station/engineering/main) "uLD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60830,6 +60948,14 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white/diagonal, /area/station/maintenance/department/science/xenobiology) +"uMF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Gas to Filter" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "uMH" = ( /turf/open/floor/iron/white/side, /area/station/science/research) @@ -60872,15 +60998,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"uNq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, -/obj/machinery/meter/monitored/distro_loop, -/obj/structure/cable, -/obj/machinery/camera/directional/east{ - c_tag = "atmospherics - distro" - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "uNz" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -60916,6 +61033,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) +"uOt" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "uOw" = ( /turf/open/floor/iron, /area/station/maintenance/department/medical/central) @@ -60925,15 +61051,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) -"uOB" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "N2 to Airmix" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "uOH" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/west, @@ -61013,6 +61130,9 @@ /obj/effect/turf_decal/stripes/red/line, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"uQo" = ( +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "uQu" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/status_display/door_timer{ @@ -61026,6 +61146,12 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"uQI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uQK" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -61036,6 +61162,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"uQT" = ( +/obj/machinery/air_sensor/carbon_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"uQY" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "uRe" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/red{ @@ -61097,6 +61237,11 @@ "uSa" = ( /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) +"uSc" = ( +/obj/machinery/air_sensor/nitrous_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "uSh" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -61203,6 +61348,15 @@ }, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/escape) +"uTN" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - N2O" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "uTO" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -61259,6 +61413,25 @@ }, /turf/open/floor/stone, /area/station/service/bar) +"uUS" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) +"uUU" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "uVo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -61349,11 +61522,6 @@ dir = 1 }, /area/station/security/prison/safe) -"uWz" = ( -/obj/machinery/atmospherics/components/unary/passive_vent, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "uWG" = ( /obj/structure/closet/firecloset, /obj/machinery/status_display/ai/directional/south, @@ -61367,12 +61535,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"uWY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "uWZ" = ( /obj/machinery/door/airlock/public, /obj/effect/decal/cleanable/dirt, @@ -61420,16 +61582,6 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"uYx" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "uYD" = ( /obj/structure/table, /obj/effect/turf_decal/tile/green/fourcorners, @@ -61544,16 +61696,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"vaD" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "O2 to Airmix" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green{ - dir = 4 - }, -/obj/machinery/light/no_nightlight/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "vaF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61569,15 +61711,6 @@ }, /turf/open/floor/iron, /area/station/medical/chemistry) -"vbd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/engineering/atmos) "vbp" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -61598,6 +61731,13 @@ "vbK" = ( /turf/closed/wall, /area/station/science/research) +"vbM" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "vbO" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -61755,15 +61895,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"vdR" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/pumproom) "vdX" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -61794,13 +61925,6 @@ "vej" = ( /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"vem" = ( -/obj/machinery/power/energy_accumulator/tesla_coil/anchored, -/obj/structure/window/reinforced/plasma/spawner/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "veo" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta/corner, /obj/structure/chair/stool/directional/east, @@ -61816,18 +61940,6 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"vey" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Augment Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/augments) "veA" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /obj/machinery/door/poddoor/shutters/preopen{ @@ -61846,6 +61958,14 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"veR" = ( +/obj/machinery/computer/atmos_control/nocontrol/incinerator{ + dir = 8 + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "vfc" = ( /obj/structure/table, /obj/item/flashlight/lamp, @@ -61888,12 +62008,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"vfE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "vfI" = ( /obj/machinery/microwave{ pixel_y = 5 @@ -61943,6 +62057,19 @@ /obj/item/toy/crayon/purple, /turf/open/floor/iron/white, /area/station/science/research) +"vgf" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vgh" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -62165,44 +62292,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/commons/toilet/restrooms) -"vjS" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"vjZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "vkh" = ( /turf/closed/wall, /area/station/service/bar) -"vkn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Research and Development Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "vkr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62337,11 +62429,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"vlR" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space/basic, -/area/space/nearstation) "vlV" = ( /turf/closed/wall, /area/station/maintenance/aft) @@ -62461,6 +62548,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/science/lower) +"vni" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vnj" = ( /obj/structure/table, /obj/item/clothing/under/rank/prisoner/skirt{ @@ -62499,11 +62597,6 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) -"vnr" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/service/chapel/office) "vnu" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/table, @@ -62546,6 +62639,11 @@ "vnI" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/department/engine) +"vnL" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space/basic, +/area/space/nearstation) "vnN" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ @@ -62557,6 +62655,13 @@ /obj/machinery/medical_kiosk, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"vnZ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) "voe" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -62585,12 +62690,6 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) -"voG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/stool/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "voJ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -62614,16 +62713,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/office) -"vpg" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "vpk" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -62637,6 +62726,15 @@ /obj/item/radio/intercom/prison/directional/north, /turf/open/floor/iron, /area/station/security/prison/work) +"vpz" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "vpF" = ( /obj/structure/table, /obj/item/dyespray, @@ -62815,6 +62913,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"vsf" = ( +/obj/structure/closet/crate{ + name = "Materials Crate" + }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light/cold/dim/directional/west, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "vsi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -62830,20 +62939,22 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/white, /area/station/science/research) -"vsq" = ( -/obj/structure/closet/secure_closet/atmospherics, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "vsx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vsO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/open/floor/engine/air, -/area/station/engineering/atmos) +"vsJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/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/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "vsQ" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -62900,6 +63011,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"vud" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "vuj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/fuel_pellet, @@ -63001,6 +63122,14 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/paramedic) +"vuV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro to Waste" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "vva" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public/glass{ @@ -63037,10 +63166,30 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/aft) +"vvp" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/command{ + name = "Telecomms Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "vvs" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"vvw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "vvz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -63120,11 +63269,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"vwD" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/air, -/area/station/engineering/atmos) "vwE" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -63224,13 +63368,6 @@ "vxM" = ( /turf/open/floor/iron, /area/station/commons/storage/art) -"vxR" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ - dir = 4 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vxX" = ( /obj/effect/spawner/random/structure/steam_vent, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -63257,14 +63394,6 @@ /obj/effect/landmark/start/geneticist, /turf/open/floor/iron/dark, /area/station/science/genetics) -"vyz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "vyF" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/sofa/bench/left{ @@ -63291,24 +63420,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"vyX" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/storage) "vze" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/status_display/ai/directional/north, @@ -63375,6 +63486,14 @@ }, /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) +"vzN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "vzV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63402,19 +63521,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/tram) -"vAj" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "vAl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table/wood, @@ -63429,15 +63535,6 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/execution/transfer) -"vAr" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "vAw" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -63546,6 +63643,15 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"vCp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/office) "vCq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/stone, @@ -63562,13 +63668,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"vCP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "vCQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -63607,23 +63706,28 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"vDG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "vDQ" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/lockers) +"vDS" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "vDV" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/cmo) "vDX" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) -"vDY" = ( -/obj/machinery/light/small/directional/east, -/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_large, -/area/station/engineering/main) "vEa" = ( /obj/machinery/griddle, /turf/open/floor/iron/kitchen/small, @@ -63652,12 +63756,6 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"vEs" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air to Pure" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "vEz" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -63679,6 +63777,15 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"vEL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "vEP" = ( /turf/closed/wall/r_wall, /area/station/security/brig) @@ -63806,6 +63913,16 @@ dir = 10 }, /area/station/hallway/secondary/construction) +"vGS" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - Central Aft" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "vGU" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -63821,11 +63938,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) -"vHe" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos) "vHu" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -63848,12 +63960,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vHJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "vHT" = ( /obj/effect/turf_decal/box/red/corners{ dir = 8 @@ -63864,6 +63970,15 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/engine, /area/station/science/xenobiology) +"vHU" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/maintenance/department/engine/atmos) "vHV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -63871,6 +63986,17 @@ }, /turf/open/floor/wood, /area/station/service/chapel/office) +"vHX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "vId" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63931,12 +64057,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vJd" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "vJn" = ( /obj/structure/closet/crate/coffin, /obj/structure/window/spawner/directional/west, @@ -64014,13 +64134,6 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) -"vJX" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "vKa" = ( /obj/structure/closet/crate/coffin, /obj/effect/turf_decal/weather, @@ -64148,6 +64261,18 @@ /obj/item/gavelhammer, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"vLH" = ( +/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/machinery/door/airlock/research{ + name = "Augment Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "vLP" = ( /turf/closed/wall/rust, /area/station/command/heads_quarters/qm) @@ -64166,6 +64291,10 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/pharmacy) +"vLX" = ( +/obj/effect/turf_decal/box/white, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "vMr" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/alien/weeds, @@ -64197,6 +64326,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"vMI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "vMJ" = ( /obj/structure/disposalpipe/sorting/mail, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64231,19 +64366,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"vNi" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) -"vNn" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "vNq" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -64275,19 +64397,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"vNI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wideplating/corner, -/obj/effect/turf_decal/siding/wideplating/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "vNM" = ( /obj/machinery/door/airlock{ name = "Hydroponics Maintenance" @@ -64302,6 +64411,14 @@ dir = 8 }, /area/station/service/hydroponics) +"vNO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vOf" = ( /obj/structure/cable, /obj/structure/chair{ @@ -64311,10 +64428,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/science/lower) -"vOl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +"vOg" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, /turf/closed/wall/r_wall, -/area/station/engineering/supermatter) +/area/station/maintenance/disposal/incinerator) "vOm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -64325,11 +64442,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"vOt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/machinery/light/no_nightlight/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "vOL" = ( /obj/structure/railing{ dir = 1 @@ -64371,16 +64483,6 @@ /obj/structure/sign/departments/medbay/alt/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"vPt" = ( -/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/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/janitor) "vPw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64411,13 +64513,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"vPZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "vQk" = ( /obj/effect/spawner/random/structure/crate, /obj/machinery/computer/security/telescreen/entertainment/directional/east, @@ -64514,6 +64609,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vSt" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "vSw" = ( /obj/effect/landmark/start/hangover, /obj/structure/cable, @@ -64565,23 +64667,6 @@ /obj/machinery/air_sensor/ordnance_freezer_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) -"vTg" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow{ - pixel_x = 4 - }, -/obj/item/storage/pill_bottle/potassiodide{ - pixel_y = 12; - pixel_x = -6 - }, -/obj/item/pen/screwdriver, -/obj/item/radio/intercom/directional/west, -/obj/item/geiger_counter{ - pixel_x = 7; - pixel_y = 14 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/storage/gas) "vTj" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt/dust, @@ -64678,16 +64763,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"vUp" = ( -/obj/machinery/door/airlock/external/glass{ - name = "ATMOS PROJECT Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "vUz" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -64746,16 +64821,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/stone, /area/station/service/chapel) -"vVa" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "vVo" = ( /obj/machinery/light/cold/directional/south, /obj/structure/table/reinforced, @@ -64838,9 +64903,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white/corner, /area/station/science/lobby) -"vWj" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/atmos/storage) "vWr" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "permaouter"; @@ -64935,16 +64997,6 @@ /obj/item/wirecutters, /turf/open/floor/iron/white/diagonal, /area/station/maintenance/department/science/xenobiology) -"vXp" = ( -/obj/machinery/computer/atmos_control/air_tank{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "vXr" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -64987,17 +65039,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"vYq" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"vYv" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "vYx" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 @@ -65086,10 +65127,24 @@ }, /turf/open/floor/iron, /area/station/security/prison/garden) +"vZd" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "vZm" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/processing) +"vZu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/mapping_helpers/apc/cell_10k, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "vZD" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red/fourcorners, @@ -65222,16 +65277,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/office) -"wbM" = ( -/obj/effect/turf_decal/arrows/red{ - dir = 4; - pixel_x = -15 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "wbO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65283,6 +65328,11 @@ /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, /area/station/cargo/sorting) +"wcF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "wcG" = ( /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 @@ -65317,6 +65367,20 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"wcY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "engsm"; + name = "Radiation Shutters Control"; + req_access = list("engineering") + }, +/obj/structure/cable, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wdd" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65362,6 +65426,18 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"wed" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Augment Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "wen" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -65377,6 +65453,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/small, /area/station/engineering/lobby) +"weY" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wfa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -65403,41 +65483,24 @@ "wfr" = ( /turf/closed/wall/r_wall, /area/station/medical/pharmacy) -"wfv" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/firealarm/directional/north, -/obj/machinery/computer/atmos_alert, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) -"wfD" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) +"wfB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "wfG" = ( /obj/structure/disposalpipe/segment, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wfJ" = ( -/obj/effect/spawner/random/structure/closet_maintenance, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) -"wfQ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) +"wgj" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wgn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, @@ -65523,6 +65586,24 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"whm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Fuel Pipe" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"whn" = ( +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering Supermatter Emitters" + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "whu" = ( /obj/structure/cable, /obj/machinery/blackbox_recorder, @@ -65558,6 +65639,12 @@ }, /turf/open/floor/plating, /area/station/science/ordnance) +"whK" = ( +/obj/structure/closet/radiation, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "whL" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -65576,6 +65663,14 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"whZ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "win" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65601,25 +65696,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"wiH" = ( -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter) "wiP" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/space/nearstation) -"wiT" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Filter" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "wja" = ( /turf/closed/wall/r_wall, /area/station/commons/toilet/auxiliary) @@ -65633,17 +65714,23 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"wjw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "wjG" = ( /obj/structure/filingcabinet, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) -"wjY" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 +"wjR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 }, -/obj/machinery/power/emitter, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wjZ" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -65664,6 +65751,16 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) +"wkj" = ( +/obj/structure/table, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - HFR" + }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wkF" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -65703,6 +65800,11 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/aft) +"wmq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wmu" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -65751,6 +65853,10 @@ /obj/machinery/holopad, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"wmL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wmS" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/red/corner{ @@ -65786,9 +65892,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/office) -"wnj" = ( -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "wnw" = ( /obj/machinery/pdapainter/engineering, /obj/effect/turf_decal/bot, @@ -65955,6 +66058,10 @@ "wqj" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) +"wqz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wqD" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, @@ -66052,10 +66159,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"wrN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "wrO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -66191,17 +66294,6 @@ "wtt" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/ai_upload) -"wtu" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/highsecurity{ - name = "AI Upload" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, -/turf/open/floor/iron/dark/textured_half, -/area/station/ai_monitored/turret_protected/ai_upload) "wtv" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -66240,6 +66332,20 @@ /obj/machinery/light/small/red/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"wtJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wtT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66283,6 +66389,15 @@ dir = 8 }, /area/station/science/lobby) +"wup" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wuq" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/rnd_secure_all, @@ -66313,11 +66428,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/science/genetics) -"wuL" = ( -/obj/structure/cable, -/obj/machinery/power/terminal, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "wuM" = ( /turf/closed/wall, /area/station/command/heads_quarters/qm) @@ -66359,6 +66469,12 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white/small, /area/station/science/cubicle) +"wvZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "wwk" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -66374,6 +66490,18 @@ dir = 1 }, /area/station/security/execution/transfer) +"wwv" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wwz" = ( /obj/structure/cable, /obj/machinery/computer/mech_bay_power_console{ @@ -66413,20 +66541,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"wwX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "wwY" = ( /obj/effect/spawner/random/trash/mess, /obj/effect/decal/cleanable/dirt, @@ -66441,13 +66555,6 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/iron/cafeteria, /area/station/maintenance/starboard/fore) -"wxq" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "wxu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -66572,14 +66679,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/office) -"wzh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "N2 to Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 +"wyM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 }, -/turf/open/floor/iron, +/turf/open/floor/engine/air, /area/station/engineering/atmos) "wzo" = ( /obj/machinery/light/small/directional/north, @@ -66700,6 +66804,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"wBy" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wBI" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -66722,13 +66833,6 @@ /obj/effect/spawner/random/structure/grille, /turf/open/space/basic, /area/space/nearstation) -"wCf" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) "wCt" = ( /obj/machinery/flasher/directional/east{ id = "hopflash" @@ -66806,6 +66910,13 @@ "wCY" = ( /turf/closed/wall, /area/station/command/heads_quarters/cmo) +"wDn" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/engineering/break_room) "wDo" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -66817,11 +66928,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"wDD" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "wDM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66916,6 +67022,12 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"wFK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wFQ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -66934,6 +67046,10 @@ /obj/structure/flora/bush/jungle/c/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"wFZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wGh" = ( /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, @@ -66945,15 +67061,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"wGt" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "wGu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66963,6 +67070,12 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/security/courtroom) +"wGx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wGz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66989,6 +67102,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"wGT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2 to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wGU" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/ai_all, @@ -66999,19 +67121,6 @@ /obj/structure/filingcabinet/filingcabinet, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"wHr" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/supermatter/room) -"wHv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating, -/turf/open/floor/wood, -/area/station/engineering/atmospherics_engine) "wHN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67060,6 +67169,16 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/space/basic, /area/space/nearstation) +"wIG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "wIY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67213,15 +67332,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"wKT" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/brown{ - dir = 1 - }, -/obj/machinery/incident_display/bridge/directional/north, -/turf/open/floor/iron/smooth, -/area/station/command/bridge) "wLd" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) @@ -67239,10 +67349,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"wLI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/supermatter) +"wLw" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wLM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -67254,6 +67367,12 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"wLU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wLZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/decal/cleanable/dirt, @@ -67542,12 +67661,6 @@ /obj/effect/landmark/navigate_destination/disposals, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wOU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "wOZ" = ( /obj/effect/decal/cleanable/molten_object, /obj/effect/landmark/event_spawn, @@ -67609,6 +67722,16 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"wPO" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "O2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ + dir = 4 + }, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wPP" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 @@ -67706,21 +67829,6 @@ }, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"wQP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Network Access" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, -/turf/open/floor/iron/dark/textured_half, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) -"wQR" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/engineering/atmos) "wQT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -67764,10 +67872,14 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_freezer_chamber_input, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) -"wRJ" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/station/engineering/supermatter) +"wRy" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "wRN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -67871,13 +67983,6 @@ /obj/effect/spawner/random/techstorage/engineering_all, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"wSR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange{ - dir = 9 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "wSZ" = ( /turf/closed/wall/r_wall, /area/station/maintenance/hallway/abandoned_command) @@ -68049,6 +68154,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"wWm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "wWs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68153,6 +68262,15 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) +"wXL" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Cold Loop to Gas" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wYa" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -68192,12 +68310,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"wYO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "wZa" = ( /obj/docking_port/stationary{ dir = 8; @@ -68233,6 +68345,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"wZs" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "wZx" = ( /obj/machinery/door/airlock/vault{ name = "Vault" @@ -68329,12 +68448,6 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"xaM" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xaN" = ( /turf/closed/wall, /area/station/maintenance/starboard/central) @@ -68384,6 +68497,14 @@ "xbl" = ( /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"xbo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xbs" = ( /obj/machinery/light_switch/directional/north, /obj/effect/decal/cleanable/dirt, @@ -68447,10 +68568,6 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/grass, /area/station/service/hydroponics) -"xcD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "xcF" = ( /turf/open/floor/iron, /area/station/commons/dorms) @@ -68465,6 +68582,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall, /area/station/hallway/primary/central/aft) +"xcW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "xda" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -68559,10 +68682,6 @@ }, /turf/open/floor/plating, /area/station/science/research) -"xet" = ( -/obj/effect/turf_decal/bot/right, -/turf/open/floor/engine, -/area/station/engineering/atmospherics_engine) "xeC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -68655,16 +68774,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"xff" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/command{ - name = "Research Division Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/server) "xfm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68744,6 +68853,10 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"xgd" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "xgg" = ( /obj/structure/chair{ pixel_y = -2 @@ -68803,6 +68916,16 @@ dir = 8 }, /area/station/hallway/primary/central/fore) +"xht" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "xhD" = ( /obj/structure/table, /obj/item/clothing/shoes/ducky_shoes{ @@ -68972,13 +69095,6 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"xjU" = ( -/obj/machinery/vending/wardrobe/chap_wardrobe, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/autoname/directional/south, -/obj/structure/cable, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "xjX" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 4 @@ -69019,14 +69135,6 @@ "xkt" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) -"xkv" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/closet/l3closet/janitor, -/obj/item/clothing/gloves/color/orange, -/obj/item/clothing/shoes/galoshes, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/small, -/area/station/service/janitor) "xkK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69215,10 +69323,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"xnQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "xnR" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/decal/cleanable/dirt, @@ -69416,6 +69520,11 @@ "xqC" = ( /turf/closed/wall, /area/station/maintenance/hallway/abandoned_command) +"xqL" = ( +/obj/structure/cable, +/obj/machinery/power/emitter/welded, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "xqN" = ( /turf/closed/wall, /area/station/medical/chemistry) @@ -69439,17 +69548,17 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"xrf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"xro" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - O2" +"xre" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light/small/directional/north, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "xru" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/airalarm/directional/east, @@ -69588,6 +69697,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/processing) +"xsI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/light/small/directional/east, +/obj/effect/landmark/start/janitor, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "xsJ" = ( /obj/effect/turf_decal/siding{ dir = 4 @@ -69673,15 +69788,6 @@ }, /turf/open/floor/iron/checker, /area/station/security/breakroom) -"xtq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) "xtD" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -69866,6 +69972,12 @@ "xvT" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/maint) +"xvU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "xvV" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -69939,12 +70051,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"xwx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xwz" = ( /turf/closed/wall, /area/station/cargo/miningfoundry) @@ -70023,14 +70129,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) -"xxS" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/door/airlock/atmos/glass{ - name = "Project Room" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xxT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, @@ -70198,6 +70296,13 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"xAx" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "xAA" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 @@ -70311,12 +70416,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/hallway/primary/central/fore) -"xCu" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xCH" = ( /obj/structure/railing{ dir = 9 @@ -70388,19 +70487,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"xDT" = ( -/turf/open/floor/engine/n2, -/area/station/engineering/atmos) -"xDW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/robotics/mechbay) "xEd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70454,6 +70540,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"xEx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "xEM" = ( /obj/structure/window/spawner/directional/north, /obj/structure/flora/bush/large/style_random{ @@ -70509,6 +70601,20 @@ "xFe" = ( /turf/closed/wall, /area/station/security/lockers) +"xFf" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/button/door/directional/west{ + id = "Secure Storage below"; + name = "Secure engineering storage"; + pixel_y = 24; + req_access = list("engine_equip") + }, +/turf/open/floor/iron/corner{ + dir = 8 + }, +/area/station/engineering/main) "xFw" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench{ @@ -70519,12 +70625,6 @@ "xFA" = ( /turf/closed/wall/r_wall, /area/station/science/research) -"xFB" = ( -/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/smooth_large, -/area/station/engineering/storage_shared) "xFD" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron, @@ -70570,13 +70670,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"xGa" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "xGf" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 @@ -70688,6 +70781,14 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/tram) +"xIf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "xIj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70740,23 +70841,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/dorms) -"xJe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"xJf" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "xJi" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/spawner/random/vending/snackvend, @@ -70769,15 +70853,6 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"xJq" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "xJw" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line{ @@ -70791,13 +70866,25 @@ "xJB" = ( /turf/closed/wall, /area/station/security/courtroom) -"xJH" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Unfiltered & Air to Mix"; +"xJT" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 12 + }, +/obj/item/multitool{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/machinery/light/no_nightlight/directional/east, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/wideplating{ dir = 4 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "xJZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70811,6 +70898,14 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) +"xKe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xKg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -70845,17 +70940,6 @@ /obj/structure/fireaxecabinet/mechremoval/directional/west, /turf/open/floor/iron, /area/station/science/robotics/lab) -"xKt" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/camera/directional/east{ - c_tag = "atmospherics - entrance" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "xKv" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -70873,12 +70957,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"xKV" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/main) "xKX" = ( /turf/open/floor/iron/white/side{ dir = 4 @@ -70930,10 +71008,26 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"xLL" = ( -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +"xLF" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Engine Coolant Bypass"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, +/obj/machinery/meter/monitored/distro_loop, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - distro" + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "xLY" = ( /obj/item/reagent_containers/cup/glass/bottle/beer{ pixel_y = 11 @@ -70973,16 +71067,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) -"xMm" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "CO2 to Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xMo" = ( /obj/item/stack/cable_coil/five, /obj/effect/decal/cleanable/glass, @@ -71043,31 +71127,9 @@ /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/iron, /area/station/security/lockers) -"xNk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 10 - }, -/obj/machinery/shower/directional/west, -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/obj/structure/fireaxecabinet/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/office) "xNw" = ( /turf/closed/wall, /area/station/science/breakroom) -"xNB" = ( -/obj/machinery/power/emitter/welded, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "xND" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/south, @@ -71075,26 +71137,15 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) -"xNV" = ( -/obj/structure/disposalpipe/segment{ +"xNX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ 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/door/airlock/research/glass{ - name = "Gun Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/auxlab/firing_range) -"xOf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/structure/railing/corner{ + dir = 4 }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron, +/area/station/engineering/atmos) "xOm" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/shutters{ @@ -71168,11 +71219,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/security/prison/rec) -"xPo" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange, -/obj/structure/lattice, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "xPp" = ( /obj/effect/turf_decal/weather/dirt{ dir = 5 @@ -71180,6 +71226,13 @@ /obj/structure/flora/tree/jungle/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"xPq" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "xPs" = ( /obj/effect/turf_decal/weather/dirt{ dir = 5 @@ -71200,17 +71253,10 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"xPG" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/machinery/camera/directional/east{ - c_tag = "atmospherics - project room" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) +"xPH" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "xPJ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -71273,10 +71319,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"xQo" = ( -/obj/machinery/space_heater, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "xQv" = ( /obj/structure/cable, /obj/structure/closet/secure_closet/hop, @@ -71497,6 +71539,13 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"xTr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xTB" = ( /obj/structure/chair/sofa/left{ dir = 4 @@ -71532,14 +71581,6 @@ dir = 9 }, /area/station/science/xenobiology) -"xTT" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/cubicle) "xTV" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -71595,6 +71636,12 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"xUK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xUL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71684,12 +71731,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/research) -"xVH" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xVV" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -71919,13 +71960,6 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"xYt" = ( -/obj/machinery/air_sensor/mix_tank, -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - Mix" - }, -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) "xYu" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -71964,9 +71998,6 @@ "xYO" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/bridge) -"xYV" = ( -/turf/open/floor/engine/air, -/area/station/engineering/atmos) "xZd" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, @@ -72089,6 +72120,10 @@ "yaL" = ( /turf/closed/wall, /area/station/commons/vacant_room/commissary) +"yaT" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "yaU" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -72100,20 +72135,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"yaZ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "yba" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ dir = 4 @@ -72135,6 +72156,11 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/interrogation) +"ybp" = ( +/obj/machinery/air_sensor/oxygen_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "ybs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -72176,13 +72202,6 @@ "ybO" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"ybT" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "ycb" = ( /obj/effect/turf_decal/weather/dirt{ dir = 6 @@ -72234,11 +72253,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"ycs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "ycC" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) @@ -72309,6 +72323,16 @@ "yeh" = ( /turf/closed/wall, /area/station/hallway/primary/starboard) +"yei" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Transit Tube Station" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "yel" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -72335,6 +72359,29 @@ /obj/structure/sign/warning/test_chamber/directional/east, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"yew" = ( +/obj/effect/turf_decal/box/white{ + color = "#9FED58" + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"yey" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 10 + }, +/obj/machinery/shower/directional/west, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/structure/fireaxecabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "yeD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -72476,20 +72523,6 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) -"ygT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - North Corridor" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "ygU" = ( /obj/structure/table/glass, /obj/machinery/computer/records/medical/laptop{ @@ -72670,6 +72703,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"yiZ" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "yjc" = ( /obj/machinery/rnd/production/techfab/department/cargo, /obj/effect/turf_decal/delivery/white, @@ -72736,6 +72778,13 @@ }, /turf/open/floor/stone, /area/station/command/corporate_suite) +"ykk" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ykn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72746,10 +72795,6 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"ykD" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "ykL" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload_foyer) @@ -77768,7 +77813,7 @@ dDB dDB blb hYC -sLY +uQY hYC tYT dDB @@ -78003,19 +78048,19 @@ dDB dDB dDB dDB -irt -qpL -qpL -qpL -qpL -xPo -xPo -qpL -qpL -qpL -qpL -liB -iXh +vnZ +sxH +sxH +sxH +sxH +kdv +kdv +sxH +sxH +sxH +sxH +ipq +aFH blb blb blb @@ -78025,7 +78070,7 @@ dDB dDB blb hYC -sHG +mKh hYC aJq tYT @@ -78260,7 +78305,7 @@ dDB dDB dDB dDB -oXz +wZs dDB dDB aJq @@ -78272,7 +78317,7 @@ blb blb blb ybO -ehY +evQ cwf cwf ybO @@ -78282,7 +78327,7 @@ dDB blb cwf ybO -oGf +ilT ybO cwf aJq @@ -78511,45 +78556,45 @@ dDB dDB dDB dDB -irt -odg -qpL -qpL -qpL -qpL -uFh +vnZ +rpQ +sxH +sxH +sxH +sxH +qKH dDB aJq aJq -fkp -fkp -qFn -qFn -qFn -qFn -fkp +pCn +pCn +oBP +oBP +oBP +oBP +pCn ybO -qIF -isM -kaN -rbn -hkv -hkv -aMJ -aMJ -jqI -vbd -tVX -tVX -jqI -wYO -wYO -wYO -aMJ -rbn -oxi -rMx -gDl +thw +wup +atZ +dhG +hfm +hfm +bta +bta +bhE +cXg +aao +aao +bhE +sBV +sBV +sBV +bta +dhG +blt +nGf +dxv pjk cwf tYT @@ -78768,7 +78813,7 @@ aan dDB dDB dDB -htk +gGy kaP dDB dDB @@ -78778,35 +78823,35 @@ blb dDB dDB blb -fkp -vJd -fpb -fpb -fpb -fpb -tWE +pCn +afm +afa +afa +afa +afa +aNO cwf -aki -cPI -mEt +mzs +cZj +gJw ybO ybO ybO ybO ybO cwf -iHe -iHe -iHe +lRy +lRy +lRy cwf ybO ybO ybO ybO ybO -oAv -ndh -bLZ +qwF +fAD +sjY pjk cwf tYT @@ -79025,7 +79070,7 @@ dDB dDB dDB dDB -htk +gGy kaP tYT dDB @@ -79035,36 +79080,36 @@ gcs tYT dDB blb -qFn -fDP -lEn -lEn -lEn -lEn -fEg +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT cwf -bLZ -ndh -gEz -trc -jko -kWt -sdI +sjY +fAD +rZJ +oDS +lSy +dEy +mRl ybO -eUf -iHe -iHe -iHe -oLS +sdZ +lRy +lRy +lRy +cax ybO -sgs -hLe -rAU -trc -rDF -ndh -iNQ -pAb +kNx +jya +gUM +oDS +jTD +fAD +urh +pZp ybO tYT tYT @@ -79282,7 +79327,7 @@ dDB dDB dDB dDB -htk +gGy gcs tYT tYT @@ -79292,36 +79337,36 @@ aJq tYT tYT liQ -qFn -fDP -lEn -lEn -lEn -lEn -fEg +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT cwf -tHs -ndh -ftl +gbh +fAD +jWm ybO -dFs -qxG -gXB -gin -gMp -iHe -iHe -iHe -mSN -gin -fYR -mEa -tbd -fDq -vaD -nNI -avK -tHs +cbh +gNg +uQT +nrn +frn +lRy +lRy +lRy +bdU +nrn +ybp +qBK +jMp +cor +wPO +wLw +udH +gbh ybO tYT tYT @@ -79539,7 +79584,7 @@ dDB dDB dDB dDB -htk +gGy aJq aJq tYT @@ -79549,36 +79594,36 @@ tYT tYT aJq liQ -qFn -fDP -lEn -lEn -lEn -lEn -lRq +oBP +mHG +lmJ +lmJ +lmJ +lmJ +rDU hYC -olh -xwx -xMm -gin -bpk -qGd -rIv +bLp +wGx +qht +nrn +lCT +trX +hKf ybO -mno -iHe -iHe -iHe -mbM +pwO +lRy +lRy +lRy +vGS ybO -sgs -xro -dFn -gin -ize -smo -guv -tHs +kNx +tyc +dJn +nrn +jMQ +wmL +civ +gbh cwf tYT dDB @@ -79796,7 +79841,7 @@ dDB dDB dDB dDB -htk +gGy aJq aJq aJq @@ -79806,36 +79851,36 @@ tYT tYT aJq aJq -fkp -syI -lEn -lEn -lEn -lEn -fEg +pCn +bDQ +lmJ +lmJ +lmJ +lmJ +yaT cwf -tHs -ndh -tUO +gbh +fAD +mUY ybO ybO -wQR +ukP ybO ybO -hDi -iHe -iHe -iHe -hav +fwr +lRy +lRy +lRy +pYw ybO ybO -wQR +ukP ybO ybO -pAu -ndh -guv -tHs +ivs +fAD +civ +gbh cwf tYT dDB @@ -80053,7 +80098,7 @@ dDB dDB dDB dDB -htk +gGy aJq aJq aJq @@ -80063,36 +80108,36 @@ tYT tYT tYT liQ -qFn -fDP -lEn -lEn -lEn -lEn -fEg -xxS -tHs -ndh -eCm +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +krb +gbh +fAD +gAQ cwf -wDD -wDD -wDD +dEw +dEw +dEw cwf -grY -iHe -iHe -iHe -bvJ +xPq +lRy +lRy +lRy +qRb cwf -wDD -wDD -wDD +dEw +dEw +dEw cwf -ijs -ndh -guv -tHs +gXT +fAD +civ +gbh cwf aJq dDB @@ -80310,7 +80355,7 @@ dDB dDB dDB dDB -htk +gGy dDB aJq tYT @@ -80320,36 +80365,36 @@ tYT tYT tYT liQ -qFn -fDP -lEn -lEn -lEn -lEn -fEg +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT cwf -tHs -ndh -qhi -pHW -iHe -iHe -iHe -pHW -iHe -iHe -iHe -iHe -iHe -pHW -iHe -iHe -iHe -pHW -qhi -ndh -guv -tHs +gbh +fAD +hLx +klg +lRy +lRy +lRy +klg +lRy +lRy +lRy +lRy +lRy +klg +lRy +lRy +lRy +klg +hLx +fAD +civ +gbh ybO aJq aJq @@ -80567,46 +80612,46 @@ dDB dDB dDB dDB -htk +gGy dDB dDB tYT tYT -hWQ +tOJ gKs -rxx +sjw gKs aJq -qFn -fDP -ihz -uhu -lEn -lEn -hKS +oBP +mHG +ucS +gxo +lmJ +lmJ +toX hYC -kuA -ndh -eCm +jhF +fAD +gAQ cwf -vlR -vlR -vlR +cnC +cnC +cnC cwf -grY -iHe -iHe -iHe -bvJ +xPq +lRy +lRy +lRy +qRb cwf -vlR -vlR -vlR +cnC +cnC +cnC cwf -ijs -ndh -guv -elk +gXT +fAD +civ +fOK ybO aJq aJq @@ -80824,46 +80869,46 @@ dDB dDB dDB dDB -htk +gGy dDB dDB dDB tYT -xnQ +sIB gKs -imb +xPH gKs aJq -fkp -jMW -pAx -bUL -lEn -lEn -fEg +pCn +kCq +vEL +xvU +lmJ +lmJ +yaT cwf -tHs -ndh -sRP +gbh +fAD +lvy ybO ybO -wQR +ukP ybO ybO -kwk -iHe -iHe -iHe -yaZ +iZs +lRy +lRy +lRy +enF ybO ybO -wQR +ukP ybO ybO -jvF -ndh -guv -tHs +rvI +fAD +civ +gbh cwf tYT tYT @@ -81081,46 +81126,46 @@ dDB dDB dDB dDB -htk +gGy wBo -fdo +tdm wBo wBo -fXZ +evj wBo -uYx +lst wBo giq -fkp -lUZ -lDP -sUU -dif -lEn -fEg +pCn +nAW +gnB +bDg +uOt +lmJ +yaT cwf -tHs -ndh -xVH -trc -jde -luM -dok +gbh +fAD +tua +oDS +hzO +iFB +oPj ybO -lQD -iHe -iHe -iHe -eUv +dEc +lRy +lRy +lRy +yiZ ybO -xDT -dUv -lHv -trc -oAp -ndh -guv -tHs +nbH +rIH +ouS +oDS +fIP +fAD +civ +gbh cwf tYT tYT @@ -81338,46 +81383,46 @@ dDB dDB dDB dDB -htk +gGy wBo nqx wBo -iKi -ifP -tDG -ozy -caf -uht -fkp -bGI -tgi -ePE -dif -lEn -fEg +qko +mjc +hMX +ful +aem +gbf +pCn +ucm +pkt +mGs +uOt +lmJ +yaT cwf -tHs -ndh -ftl +gbh +fAD +jWm ybO -arw -tMw -lqv -gin -bun -iHe -iHe -iHe -lgb -gin -jwH -fDe -ecT -fDq -uOB -nNI -eWx -tHs +kVB +dzH +rPg +nrn +trY +lRy +lRy +lRy +azW +nrn +eok +gip +avP +cor +nnp +wLw +rVI +gbh cwf tYT tYT @@ -81594,47 +81639,47 @@ dDB dDB dDB dDB -irt -wSR +vnZ +evw giq lVW -cPM -ttS -tnD -get -xLL -tnD -pdD -fkp -vNi -xPG -gxv -iDz -kDr -fln +eEn +cCP +wWm +mPB +pit +wWm +pnO +pCn +teV +dix +fEs +hXv +eMa +ykk hYC -rgH -tfQ -ufV -gin -qnC -tNC -dda +egC +nlt +ckR +nrn +ktJ +saq +ukY ybO -toL -iHe -iHe -iHe -tMG +sfy +lRy +lRy +lRy +uUU ybO -xDT -rcr -fEW -gin -wzh -smo -guv -cDK +nbH +aal +fos +nrn +wGT +wmL +civ +tKD ybO tYT tYT @@ -81851,47 +81896,47 @@ dDB dDB dDB dDB -htk +gGy wBo wBo sRf wBo -ssr +hFO wBo -get -tnD -wnj -nJp +mPB +wWm +nlR +gQy ybO hYC hYC cwf -gpJ +mgF cwf hYC hYC -olh -ndh -mWU +bLp +fAD +cGG ybO ybO -wQR +ukP ybO ybO -gnP -eTL -dhs -iHe -rRK +mxp +nUh +bud +lRy +jtG ybO ybO -wQR +ukP ybO ybO -qZq -ndh -guv -ftF +xNX +fAD +civ +ruh ybO tYT tYT @@ -82108,47 +82153,47 @@ dDB dDB dDB dDB -htk +gGy wBo -tRU -mVi +fgX +uFS wBo -sIL +eKd wBo -iJw -egB -xLL -hBi +aeH +dOP +pit +dHx ybO -ttv +eUY pjk pjk -sCr +fRM pjk pjk -unS -tHs -ndh -eCm +nFv +gbh +fAD +gAQ cwf -wDD -wDD -wDD +dEw +dEw +dEw cwf -grY -iHe -dhs -iHe -bvJ +xPq +lRy +bud +lRy +qRb cwf -wDD -wDD -wDD +dEw +dEw +dEw cwf -dgk -ndh -guv -tHs +amb +fAD +civ +gbh ybO tYT aJq @@ -82365,47 +82410,47 @@ dDB dDB dDB dDB -htk -ykD -lhE -dQq -bwP -gvs -liK -cjT -eTe -esj -ewy +gGy +cMG +bTI +jnI +gya +qBM +ael +wcF +eqr +mUe +vvw cwf pjk -hlk +rdt pjk -sCr +fRM pjk pjk pjk -jWH -ndh -qhi -pHW -iHe -iHe -iHe -pHW -iHe -iHe -hsS -lcx -iHe -pHW -iHe -iHe -iHe -pHW -jSF -abs -guv -tHs +qfK +fAD +hLx +klg +lRy +lRy +lRy +klg +lRy +lRy +uju +osp +lRy +klg +lRy +lRy +lRy +klg +gjU +eyY +civ +gbh ybO ybO bNq @@ -82622,49 +82667,49 @@ dDB dDB dDB dDB -htk +gGy wBo wBo wBo wBo -cOj -aGn -lje -voG -tuw -rhP -nCp -pID -eKK -ejk -hqP -kpg -pAb +hTz +vOg +iaB +jHM +jdR +kKX +fDf +cjD +gMV +whm +iDP +pUQ +pZp pjk -tHs -ndh -eCm +gbh +fAD +gAQ cwf -vlR -vlR -vlR +cnC +cnC +cnC cwf -grY -iHe -hsS -iHe -bvJ +xPq +lRy +uju +lRy +qRb cwf -vlR -vlR -vlR +cnC +cnC +cnC cwf -dgk -ndh -guv -iNQ -kpg -pAb +amb +fAD +civ +urh +pUQ +pZp bNq aJq aJq @@ -82878,50 +82923,50 @@ dDB dDB dDB dDB -irt -wSR +vnZ +evw blb blb blb blb blb giq -xLL -wnj -pYm -nFK +pit +nlR +seq +hNq cwf -fRS -xCu -lPb -lPb -bRP +sUr +oVm +fjf +fjf +qmD bPU -rxB -jMT -ndh -iHc +kbL +dkv +fAD +jXH ybO ybO -wQR +ukP ybO ybO -lJJ -iHe -hsS -iHe -ejr +wtJ +lRy +uju +lRy +hQG ybO ybO -wQR +ukP ybO ybO -liV -qqj -hht -fnu -okJ -wxq +tAp +jUy +eOY +aiI +rfT +iPd ecq fYU aJq @@ -83135,7 +83180,7 @@ dDB dDB dDB dDB -htk +gGy aJq aJq pWm @@ -83143,42 +83188,42 @@ pWm pWm pWm wBo -rHQ -tnD -tnD -ivF +jGu +wWm +wWm +mHy ybO -dTC -qhi +jTW +hLx pjk pjk pjk -nWH -pLs -nWH -ndh -seK -trc -kVi -shI -oit +wBy +kEW +wBy +fAD +vZd +oDS +iEo +ejO +kvz ybO -rrd -iHe -hsS -iHe -jMR +sfB +lRy +uju +lRy +avd ybO -xYV -fzW -vsO -uIC -vOt -nNI -rQR +uQo +rYD +lJq +brG +uBE +wLw +mgR pjk -ikI -nqA +jIA +kRi bNq xLy cvJ @@ -83392,51 +83437,51 @@ dDB dDB dDB dDB -htk +gGy aJq tYT kGn wzv -srQ +byt lOM wBo -cxF -kES -xLL -gSB +cTY +veR +pit +ggz ybO -lbk -qhi +ajg +hLx pjk -xCu -lPb -nmR -lPb -uGb -rIe -bDf +oVm +fjf +sRW +fjf +itr +hWa +wFK ybO -det -vHe -jcK -gin -ivX -iHe -hsS -iHe -vXp -gin -fWq -vwD -fdg -fDq -fRh -nNI -qAX -avK -ikI -tHs -gfV +qOr +kFK +uSc +nrn +mjt +lRy +uju +lRy +sHI +nrn +jNu +uGF +wyM +cor +bfU +wLw +weY +udH +jIA +gbh +taT nHd lyR qDJ @@ -83649,8 +83694,8 @@ dDB dDB dDB dDB -vPZ -iXh +pic +aFH vmL kGn pFK @@ -83659,40 +83704,40 @@ kYI wBo wBo wBo -ncj -nFK +ulC +hNq ybO pjk -bjA -rQq -xJH -fWp -vYq -jOm -cpI -aep -dcf -gin -jTP -sfe -oit +lmo +tmO +qav +epm +gNa +pEp +fPK +dJB +asf +nrn +dKY +uTN +kvz ybO -sNJ -iHe -hsS -iHe -uzP +wwv +lRy +uju +lRy +nQc ybO -xYV -opz -oGp -gin -vEs -xaM -eRc -pwR -ikI -caj +uQo +ueP +vpz +nrn +bqc +soU +fwV +wjR +jIA +htg bNq aIk eiU @@ -83907,7 +83952,7 @@ dDB dDB dDB dDB -oXz +wZs tYT pWm pWm @@ -83916,41 +83961,41 @@ pWm pWm pRw pnl -rOa -bhO +pxz +yei ybO ybO -cAA -vlR -cAA +qKA +cnC +qKA jZl jZl -dGL -bPA -dGL +ttL +nwK +ttL jZl jZl jZl jZl jZl jZl -jGu -jGu -kGF -jGu -jGu -vWj -vWj -vWj -vWj -vWj -aoc -ezU -ezU -jZP -hXw -xGa -aoc +qPk +qPk +eEj +qPk +qPk +cGV +cGV +cGV +cGV +cGV +kUN +kjW +kjW +fcE +ceN +cDV +kUN ybs knv knv @@ -84164,7 +84209,7 @@ dDB dDB dDB dDB -oXz +wZs dDB vmL pWm @@ -84174,40 +84219,40 @@ wzv jUx wzv wzv -eRR -wfJ +fjh +dfd ybO -bGW -wQR -qfi +jbE +ukP +ooo jZl -nNm -nNm -nNm -nNm -fHZ -gnm -eLj -nNm -nUN +wmq +wmq +wmq +wmq +vMI +pKW +kiP +wmq +dYv jZl -wfv -sWB -sNG -fih -cbh -vWj -toi -jiv -gAQ -toi -aoc -npW -eZa -ezh -kUo -ftn -aoc +feu +nfn +dAu +bGX +jhj +cGV +tkU +ocZ +pqr +tkU +kUN +cSc +tKn +eWr +xcW +prP +kUN ybs knv aJq @@ -84415,13 +84460,13 @@ dDB dDB dDB dDB -naS -irt -liB -liB -liB -ltM -uFh +ndm +vnZ +ipq +ipq +ipq +lDo +qKH blb blb tGK @@ -84431,40 +84476,40 @@ pWm aap wzv wzv -eRR +fjh wzv ybO -nvQ -xYt -tzl +dpH +kNv +gAy jZl -nTf -koI -koI -shQ -koI -koI -vNI -rAy -rAy -uba -bBM -jyV -jms -pJY -sXt -vyX -sXc -mIe -dDc -eXM -kjW -tPV -dnc -sjf -lYC -ldO -aoc +bKK +pET +pET +lRK +pET +pET +tfD +gyj +gyj +cRo +tnh +vHX +fIe +kHp +cCV +gBK +jSm +nEG +scP +bYV +teo +nqN +hBi +bzF +gzM +svd +kUN liX jqd lxP @@ -84506,7 +84551,7 @@ fLF ahr nFX nFX -lYa +cdC pSP mhk mhk @@ -84673,7 +84718,7 @@ dDB dDB dDB dDB -oXz +wZs dDB dDB dDB @@ -84688,40 +84733,40 @@ qcF jUx pWm pWm -vJX -wfJ +uEH +dfd ybO ybO ybO ybO jZl -jvy -iYy -jOn -fVZ -jOn -abE -sCo -lsx -nUN +bEG +rCk +uQI +oBF +uQI +xEx +uEZ +jDi +dYv jZl -cNr -eXl -kwa -qsK -hlx -vWj -xQo -pkL -iTd -drK -aoc -rlX -hxa -nzj -siI -xJf -aoc +mbP +din +pMq +iHE +lps +cGV +pUA +bPk +mSl +qJL +kUN +rkM +isC +bPd +vDG +rry +kUN olj cmf gBh @@ -84930,7 +84975,7 @@ dDB dDB dDB dDB -oXz +wZs dDB dDB dDB @@ -84947,37 +84992,37 @@ wzv wzv yil yil -njZ +wfB kNn yil kNn jZl -kFl -wOU -xet -eef -ggJ -fen -sCo -lsx -qSo -dGL -lKT -oMw -jFl -wCf -lZl -sHJ -jjT -uGC -efX -oww -ezU -trD -tCl -igt -fKW -hMZ +oqq +tmK +qMj +eLF +uBP +gGO +uEZ +jDi +nXv +ttL +pnH +dPW +cAv +iCx +pQP +mzx +dcK +cwj +izF +pdA +kjW +fap +uqg +cjS +gqS +kmL eKU olj gBh @@ -85187,7 +85232,7 @@ dDB dDB dDB dDB -oXz +wZs dDB dDB dDB @@ -85208,34 +85253,34 @@ pWm pWm mMF mDb -quh -hbC -cbF -tut -nlp -ihJ -gAz -sCo -lsx -gFQ -dGL -tWR -oMw -cVp -ptq -baf -sHJ -jjT -uGC -efX -cOP -ezU -kUo -pKX -jiP -cLj -ngn -aoc +srw +tXF +qaU +yew +ukf +vLX +fvv +uEZ +jDi +gxA +ttL +fkr +dPW +vCp +moN +kWY +mzx +dcK +cwj +izF +twA +kjW +xcW +hMQ +tNm +nWa +iua +kUN bJK dez gBh @@ -85443,13 +85488,13 @@ dDB dDB dDB dDB -naS -hZF -liB -liB -liB -ltM -iXh +ndm +aKm +ipq +ipq +ipq +lDo +aFH blb blb pWm @@ -85465,34 +85510,34 @@ bvt bvt bXb yil -byi -wHv -wOU -ggJ -efx -xet -fen -sCo -lsx -piN -dGL -ovF -oMw -cVp -ptq -baf -sHJ -jjT -uGC -efX -ybT -ezU -trD -riJ -gSN -dzu -ycs -aoc +fTJ +qpp +tmK +uBP +dBT +qMj +gGO +uEZ +jDi +jBg +ttL +glo +dPW +vCp +moN +kWY +mzx +dcK +cwj +izF +eyW +kjW +fap +kti +iwR +oQK +dFG +kUN cvJ olj knv @@ -85706,7 +85751,7 @@ dDB dDB wCc dDB -oXz +wZs dDB dDB tYT @@ -85723,33 +85768,33 @@ bvt vcm oii jZl -ubQ -mgO -jsV -wbM -jsV -dDD -sCo -lsx -med -dGL -tWR -pgs +sZP +wvZ +mDS uFe -mCy -plp -sHJ -jjT -uGC -efX -eml -ezU -kUo -vdR -osd -aoB -cnv -aoc +mDS +hal +uEZ +jDi +jHJ +ttL +fkr +aJP +dFA +cOI +uIu +mzx +dcK +cwj +izF +ohf +kjW +xcW +lkN +rjw +vSt +kOH +kUN cvJ aIk knv @@ -85963,7 +86008,7 @@ dDB dDB wCc dDB -oXz +wZs dDB dDB tYT @@ -85980,33 +86025,33 @@ bvt bvt oii jZl -qPZ -obV -obV -obV -obV -iVC -jLh -dBe -bnp -dGL -slO -xtq -xNk -srL -xKt -sHJ -uLz -djj -dpZ -gje -ezU -hMk -jIk -uNq -fGi -aXc -aoc +gmv +jrD +jrD +jrD +jrD +ggJ +ibP +lxm +wgj +ttL +foh +exF +yey +aZp +ioQ +mzx +qaX +xJT +sMB +gbT +kjW +qdU +vuV +xLS +lfq +cHt +kUN xxt liX knv @@ -86220,7 +86265,7 @@ dDB dDB blb dDB -oXz +wZs dDB dDB tYT @@ -86237,35 +86282,35 @@ bvt bvt yil jZl -nzx -gmC -lsx -lsx -lsx +wFZ +oLc +jDi +jDi +jDi jZl -quh +srw jZl jZl jZl xck -lcu +cag xck -sJF +bJH xck -vWj -vWj -vWj -rJJ -vWj -aoc -bCp -aoc -asO -aoc -aoc -aoc +cGV +cGV +cGV +lwK +cGV +kUN +hhr +kUN +gUQ +kUN +kUN +kUN knv -wfQ +tZE knv aJq hwJ @@ -86477,7 +86522,7 @@ dDB dDB blb dDB -oXz +wZs dDB dDB dDB @@ -86494,19 +86539,19 @@ bvt pWm oii jZl -lsx -lsx -lsx -lsx -lsx +jDi +jDi +jDi +jDi +jDi jZl oCE oCE lYH fGU bYl -vAj -qje +ksM +cKy tAm iQr kfv @@ -86515,9 +86560,9 @@ hrx hrx hrx lLe -nqN +emg knv -axn +hFd wdo tkN gBh @@ -86734,7 +86779,7 @@ dDB dDB wCc dDB -oXz +wZs dDB dDB tYT @@ -86751,11 +86796,11 @@ bvt pWm yil jZl -vsq -bUe -mBh -dFY -vfE +urP +kLr +wkj +tuu +kHd jZl oCE pWm @@ -86771,7 +86816,7 @@ bNq bNq knv knv -aaR +lZr wDM uaZ fTf @@ -86835,14 +86880,14 @@ cdB wAW rpB jzr -rpE -tAF -vnr -caD -llZ -alg -qwK -xjU +qMw +iEi +dTQ +cVO +uxY +czu +dny +doi fEC kJJ qVP @@ -86991,7 +87036,7 @@ dDB dDB wCc dDB -oXz +wZs dDB bSo aJq @@ -87011,7 +87056,7 @@ kNn jZl jZl jZl -quh +srw jZl tOc oCE @@ -87092,14 +87137,14 @@ iSD wBm wXk pEO -gKR +nRa rQC von pvC aLS wzS wzS -tAu +pPx fEC rui qVP @@ -87248,9 +87293,9 @@ blb blb wCc blb -oXz +wZs blb -kVc +ofx aJq aJq aJq @@ -87263,7 +87308,7 @@ ayK ayK ayK ayK -wHr +sXY kNn oCE vxX @@ -87349,7 +87394,7 @@ eYB mIE wXk glM -oMF +ldl yea vrf von @@ -87505,7 +87550,7 @@ dDB dDB wCc dDB -oXz +wZs dDB vmL aJq @@ -87513,15 +87558,15 @@ ayK urz urz urz -xNB -guP -dtr -sEe -nwe +sUM +gPv +oTZ +whn +avT cYt -sus +nMk ayK -hCx +wIG ayK pnl pnl @@ -87606,7 +87651,7 @@ juP wAW lqq ckP -cQI +xht yea yea vJn @@ -87762,26 +87807,26 @@ dDB dDB blb dDB -oXz +wZs dDB ayK ayK ayK -oxj -dVu -cCJ +gxd +oks +dlj cYt -rWv -rWv -rWv -rWv -kOU -cGH -duN -cGH -sIR +kMe +kMe +kMe +kMe +oJm +jeF +vZu +jeF +mWB rDV -iIj +vsf fHD agR dgV @@ -87793,13 +87838,13 @@ uOk nmH sHO ojz -tKz -qLI -mRQ -tZX -uAn -eEU -rVa +hlC +srx +oOs +ehd +djX +jmN +qUJ bNq pkB sCm @@ -87863,8 +87908,8 @@ eYB mIE wXk uQK -iXZ -vpg +mwK +kyE yea vJA vKa @@ -88019,7 +88064,7 @@ dDB dDB rpi rpi -phk +vbM rpi jkV cYt @@ -88028,35 +88073,35 @@ cYt cYt cYt cYt -rWv -rWv -rWv -rWv -rWv -kTZ -sIR -vHJ -vHJ -oDd +kMe +kMe +kMe +kMe +kMe +lWV +mWB +iSt +iSt +ltU ugF eTj -wjY +hDu uJH tHa -auL -jIo +jeV +xFf xta cbj bKl cqM dgm -hez -xKV -xKV -xKV -xKV -jgJ -mah +kEo +hkd +hkd +hkd +hkd +eue +dfT bNq muy hAN @@ -88276,45 +88321,45 @@ dDB dDB blb dDB -oXz +wZs dDB ayK ayK ayK -vYv -sIR -sIR +evW +mWB +mWB cYt -rWv -rWv -rWv -rWv -aYu -kTZ -sIR -cAi -rWv -jKo -xFB +kMe +kMe +kMe +kMe +nDJ +lWV +mWB +wjw +kMe +tDu +ccA oPa sXE qKx xed -rRJ +uLk vrh eat oYv jJg bsG wqW -fsN -dLN -dLN -dLN -dLN -swp -enB -lZN +cQV +tdb +tdb +tdb +tdb +qyr +mLZ +vHU lER hRO knv @@ -88533,44 +88578,44 @@ dDB dDB wCc dDB -oXz +wZs dDB aJq ayK -dVu -oxj -oxj -sIR -nSP -rWv -rWv -ece -rWv -rWv +oks +gxd +gxd +mWB +xqL +kMe +kMe +oYF +kMe +kMe cYt -sIR -gss -tLr -pSz +mWB +sHg +pjX +ffL tmk wzF gom gzs ilz -auL +jeV hFA gkW rmM btV lMl ayR -hez -kej -kej -kej -kej -mGV -afK +kEo +aQX +aQX +aQX +aQX +oRW +qsr bNq wxG uIX @@ -88790,23 +88835,23 @@ dDB dDB wCc dDB -oXz +wZs dDB aJq ayK ayK ayK -ptW -luK -ptW +lQU +ruR +lQU ayK -ptW -ptW -ptW +lQU +lQU +lQU ayK -ptW -luK -ptW +lQU +ruR +lQU ayK rDV mOx @@ -88821,13 +88866,13 @@ nra hGp sHO drI -hez -lEW -fwe -mCl -fwe -qsO -aSf +kEo +eAE +klG +cHh +klG +jLv +jSE bNq hOX fEU @@ -89047,24 +89092,24 @@ dDB dDB wCc dDB -oXz -dDB -uWz -pen -cMa -aZP -rgN -rgN -rgN -qbd -trl -oMV -gqn -qbd -rgN -rgN -rgN -oDb +wZs +dDB +oma +sjG +pXv +ouJ +bzc +bzc +bzc +jdX +ikC +bhN +aRx +jdX +bzc +bzc +bzc +jrv rDV rDV rDV @@ -89304,33 +89349,33 @@ dDB dDB wCc dDB -hZF -fbY -iXh +aKm +dHW +aFH ayK -tGf -nbY -nbY -nbY -nbY -nbY -bxB -gog -fUZ -nbY -nbY -nbY -xrf -ogx +rzb +aNd +aNd +aNd +aNd +aNd +lrQ +osw +dYE +aNd +aNd +aNd +cay +nlj ejN -fIO -kgp -iQZ +rbI +kZr +ftT ejN ejL feo oVt -ygT +aQx rFb rSW wPM @@ -89563,30 +89608,30 @@ blb uqe uLW blb -hZF -ouh -nVb -hoq -rhW -xcD -xJq -xrf -imK -cHT -vjS -xrf -xJq -xrf -qFH -rKd -lCi -dcR -jlF -vDY -rPt -efv -uCK -uCK +aKm +fxp +nKe +guh +cBl +fJe +aJb +cay +fMB +maK +iWD +cay +aJb +cay +oCb +mct +ffK +gjE +aTB +hXc +aUb +vud +efi +efi nGP vuq faQ @@ -89822,24 +89867,24 @@ sQm wNU aci ayK -jiy -hdY -fmc -fJH -jJO -jJO -mGO -iLd -liY -jJO -jJO -jJO -tay -cqd +gBB +rZo +icF +xUK +dTo +dTo +sTJ +imO +qmT +dTo +dTo +dTo +gwf +lCb rQi -hoO -tiY -bEh +jWC +eUx +xgd wfn eDo ecY @@ -90080,19 +90125,19 @@ blb osa blb ayK -acX -oGA -iaZ -iaZ -iaZ -mlH -utp -wRJ -iaZ -iaZ -iaZ -acX -gzd +tpW +scU +dyI +dyI +dyI +jhB +bbB +pys +dyI +dyI +dyI +tpW +pUM ayK ayK urz @@ -90103,7 +90148,7 @@ lYF uBj nRA wnR -jfx +eVC gKL jOi rNI @@ -90161,7 +90206,7 @@ qBz qTR kym rHD -uCc +dTe wCR jRz qzP @@ -90337,24 +90382,24 @@ aci bWl wNU gfA -clJ -pdj -wiH -rdk -byo -rAl -rdk -wrN -dsS -cCt -wiH -acX -gzd -rWv -rWv -ieL +wXL +ipN +szg +tIR +dFY +pMM +tIR +hCT +kAz +cKm +szg +tpW +pUM +kMe +kMe +fGf ayK -jjD +izf aWA ugA tIN @@ -90594,24 +90639,24 @@ sYg rpi blb ayK -acX -amr -hSz -svR -eBW -efj -aSF -wrN -mHj -svR -hSz -eRU -gzd -rWv -wuL -jwB +tpW +mss +nBP +ibX +irR +hDd +nPl +hCT +cLw +ibX +nBP +oTf +pUM +kMe +qkq +wRy ayK -pzm +goS aWA thb oxc @@ -90851,24 +90896,24 @@ uLW rpi blb ayK -orK -kXr -wiH -fHy -byo -rAl -oHH -wrN -vem -fHy -wiH -eRU -kFf -lbI -wuL -jwB +rxJ +wLU +szg +jWr +dFY +pMM +bSk +hCT +nAJ +jWr +szg +oTf +awH +gAV +qkq +wRy ayK -fwD +vDS aWA lVv nHq @@ -91106,27 +91151,27 @@ sQm sQm qZm bSv -uGE -tzn -cAN -oUY -iaZ -iaZ -vOl -vOl -hwk -wLI -wLI -iaZ -iaZ -eRU -gzd -rWv -wuL -jwB +vnL +qEy +iHa +rXm +dyI +dyI +ozQ +ozQ +xAx +brA +brA +dyI +dyI +oTf +pUM +kMe +qkq +wRy ayK -iff -roL +swK +jTf nCC rDc qQi @@ -91365,22 +91410,22 @@ blb osa blb ayK -acX -kXr -dqz -dqz -iaZ -wiT -rdk -bnd -iaZ -rhl -rhl -eRU -gzd -rWv -uaO -rQy +tpW +wLU +nLJ +nLJ +dyI +eHS +tIR +uMF +dyI +kRV +kRV +oTf +pUM +kMe +lgD +gHm ayK nXC nmi @@ -91622,19 +91667,19 @@ wNU qZm dDB ayK -acX -kXr -jfm -jfm -iaZ -vOl -hwk -wLI -iaZ -mpe -mpe -eRU -sfX +tpW +wLU +cBd +cBd +dyI +ozQ +xAx +brA +dyI +oer +oer +oTf +eFi ayK ayK ayK @@ -91879,23 +91924,23 @@ blb blb dDB hdT -acX -vyz -pzA -xJe -xJe -fox -gUg -hoK -arj -arj -arj -oCS -aiJ -nFT -gTj -osV -lIo +tpW +vNO +whZ +qUR +qUR +wcY +xLF +iiE +mib +mib +mib +xbo +jCH +kut +wDn +jyF +rzm gBA sSB sHM @@ -92136,26 +92181,26 @@ dDB ayK ayK ayK -acX -sqP -nbY -nbY -nbY -nbY -nbY -nbY -kby -nbY -nbY -nbY -kvc -qNT -gFW -fTV -oUQ -rsj -uWY -dlw +tpW +udO +aNd +aNd +aNd +aNd +aNd +aNd +abc +aNd +aNd +aNd +doc +tQR +tGF +fJn +nnz +tLp +boB +cOJ iqB phY jmZ @@ -92391,28 +92436,28 @@ dDB dDB dDB ayK -nDP +lsF ayK -tGf -fSi -nbY -nbY -nbY -nbY -nbY -nbY -qOM -qOM -qOM -qOM -eGP +rzb +qme +aNd +aNd +aNd +aNd +aNd +aNd +wqz +wqz +wqz +wqz +xKe yjE -bDI -dxW -haM -jKU -jKU -jRU +rNG +whK +cTK +mfM +gXl +bcG iqB ahW wfn @@ -92647,27 +92692,27 @@ blb rpi rpi rpi -oiO -sIR -vUp -xOf -eQG -vVa -qKC -oqO -htz -tAD -fJH -pgF -tAn -tgO -tjU -lyT +ldG +mWB +sCC +ryr +vgf +aeG +dzh +cvc +buI +kjs +xUK +vni +uAM +lHd +nHH +xTr yjE -dGV -fDO jKU -vTg +jKU +jKU +jKU jKU nQB pVM @@ -92914,7 +92959,7 @@ ayK ayK ayK ayK -hil +lwO ayK ayK ayK @@ -92923,8 +92968,8 @@ ayK yjE eIT whl -flE -jnB +rKW +lTV eqS gsY xsX @@ -93170,10 +93215,10 @@ dDB dDB dDB vxt -dio +nST evM -nJx -vAr +aOa +rtX hVq hVq bUF @@ -93260,7 +93305,7 @@ wFd nEq qie oCV -kuk +emF iuR iuR dDB @@ -93427,20 +93472,20 @@ dDB dDB dDB vxt -dio -dio -dio +nST +nST +nST vxt yfa yfa hVq yjE -oDj -utI +okD +hVz gwl pPm jKU -qbP +uwu iGM nck tau @@ -97327,7 +97372,7 @@ dDB dDB dDB ycC -wKT +omj mPJ mPJ ipD @@ -97369,7 +97414,7 @@ hrl xmt xmt lHZ -rzy +eNP qFc cEo tYX @@ -101741,7 +101786,7 @@ rko diP vip gaj -jXJ +rIW mxS jeW pvY @@ -105297,7 +105342,7 @@ aJq aJq aJq rvp -asn +fRI iFP iGl hqW @@ -106853,11 +106898,11 @@ iGt vtL sBP sRL -pcm -gla -vPt -gla -ktQ +uFZ +jfB +afZ +jfB +fPZ eeJ wjq dtv @@ -107110,11 +107155,11 @@ nFW tDB unK sRL -xkv -ura -jUU -mqr -hqf +sBq +xsI +gnK +piJ +hBh eeJ mSa dtv @@ -107369,7 +107414,7 @@ rqw sRL sRL sRL -rBr +nqa sRL sRL eeJ @@ -107879,7 +107924,7 @@ rqw pfo ebK ctH -pvB +oLV rqw pdl pEv @@ -108136,7 +108181,7 @@ rqw wJX fYH fYH -gLr +nuL djY rBO gdF @@ -108393,7 +108438,7 @@ jsU xFM wYH bnX -bJA +jUA pzd pzd rnD @@ -108650,12 +108695,12 @@ gpA fYH wYH ctH -qaV -dDW -bTO -bTO -jfa -qcC +xIf +lKs +fex +fex +byR +qIe dBj luG evA @@ -108673,7 +108718,7 @@ pCv unc sWQ raZ -vCP +sVG qUa qUa qUa @@ -108912,7 +108957,7 @@ ntZ jpp jpp dxw -ndO +qOQ jpp jpp jpp @@ -108930,8 +108975,8 @@ qfo jRs jRs xhG -vNn -ssj +mHf +kFA gdx qSh twE @@ -109169,7 +109214,7 @@ pzd tpG pvk pzd -wGt +nVU qMa uhy iCj @@ -111508,10 +111553,10 @@ jXA xRg xuu enb -wQP +cDu xPv uSi -wtu +tqC wKz xrX xBj @@ -114586,7 +114631,7 @@ vso fHT veK dDF -vkn +obb vMC xFA sMh @@ -115088,7 +115133,7 @@ mFP qrm qNn wBI -ovj +fEM wBI sDj sES @@ -115364,22 +115409,22 @@ vbK xuW xam vhJ -gan +kOh wec gGK aPX smk -xDW +elc wIY wIY nAF srK srK -mDZ +tEC vnf wML rOX -gYH +aUB sYa yfs hPU @@ -115608,7 +115653,7 @@ rKC pnU xlL xlL -qiy +mok vRh uMH vbK @@ -115635,8 +115680,8 @@ udw uHd lhm wEC -vey -uEw +wed +vsJ sYa cqn xTR @@ -115893,7 +115938,7 @@ sZK vnf cVQ rOX -qBd +xre sYa rtI dXU @@ -116122,7 +116167,7 @@ pdU qka voh eWD -jQo +vzN vRh pwA rvX @@ -116150,7 +116195,7 @@ uHd vnf dav rOX -rZj +ufe sYa xlM qrB @@ -116407,7 +116452,7 @@ sZK vnf lsO rOX -ugX +vLH sYa sYa sYa @@ -116896,13 +116941,13 @@ hiV vbK upy qWJ -rwk +flx oBX mzl aOz fRl skV -pMD +kxE gto fqG sQb @@ -117162,7 +117207,7 @@ dss vbK sfq uGX -vjZ +frZ xqn xqn wvM @@ -117172,7 +117217,7 @@ xEd bBr yjt eTT -nYg +paT jxk vKX vnf @@ -117408,7 +117453,7 @@ prh sYb ttD vbK -qzD +pcE xfc vbK bWi @@ -117419,7 +117464,7 @@ tzH vbK the fqG -wfD +uUS ocb mau ocb @@ -117429,7 +117474,7 @@ xVv ocb ocb mau -xTT +nTP dNz erE vnf @@ -118196,7 +118241,7 @@ xia xia xia cxO -bNX +egL cxO xia xia @@ -118442,7 +118487,7 @@ xok xok xok sMD -tfj +sJg sMD wMO ukQ @@ -118450,14 +118495,14 @@ qTe sxF qTb vYL -wwX +gIR wNT xnC xnC xnC rfO aGv -kSr +nLk vId icT bxI @@ -118701,7 +118746,7 @@ xok wcq pED kea -xff +iCJ ede hoG vkt @@ -118978,7 +119023,7 @@ vnf wML pwn eXo -okP +iUp wdS eXo wos @@ -118997,7 +119042,7 @@ eXo eXo eXo jat -okP +iUp nVF msJ xQj @@ -119216,7 +119261,7 @@ bgg tfE vFG wMO -eqk +kzs uTO uTO xok @@ -119464,7 +119509,7 @@ psn oyQ oyQ oyQ -xNV +uuY tCD xok vhC @@ -119491,10 +119536,10 @@ xok qID iHM uSB -lDc +dfj qxB nKj -jXr +pgw mny oWC mny @@ -119509,10 +119554,10 @@ qDi aEJ bZt mHZ -srE +tjN lom tGI -lDc +bhH fKa pGp svs @@ -119748,10 +119793,10 @@ xok qFb wML gDB -ccF +vvp gMe nRr -pJu +hxZ rqm vwx rYp @@ -119766,10 +119811,10 @@ woD qCY toh tAT -pJu +hSz ldx gMe -ccF +vvp msJ xQj svs @@ -119975,7 +120020,7 @@ rsL quq xQX ptj -pLg +tNy jGW vkU ogT @@ -121282,7 +121327,7 @@ xok xok xok xok -vxR +eog tbI xok qNO @@ -121798,7 +121843,7 @@ xFI gfu ckt ckt -nGc +nOD lwu lkV whF @@ -122055,7 +122100,7 @@ sbq aFj lkV iJL -mZj +rci vTv dpz boY @@ -122312,7 +122357,7 @@ reN hRA reN xUX -nKO +nZF kpX lnu enG diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 9766108598b36..c49e8780a3e3a 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -26526,9 +26526,7 @@ /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) "cai" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, +/obj/machinery/power/smes/full, /obj/structure/cable, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) @@ -46091,6 +46089,7 @@ /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/light/directional/north, +/obj/effect/mapping_helpers/apc/cell_10k, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) "lTQ" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index f3b146fadbb03..a5f5352ae698b 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -22839,9 +22839,8 @@ /turf/open/floor/iron, /area/station/security/checkpoint/medical/medsci) "fGn" = ( -/obj/machinery/deepfryer, -/obj/effect/turf_decal/bot, /obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/smartfridge/drying, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) "fGt" = ( @@ -24708,21 +24707,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/kitchen/abandoned) -"gei" = ( -/obj/structure/table/reinforced, -/obj/item/book/manual/wiki/cytology{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 1 - }, -/obj/item/seeds/soya{ - pixel_x = 11; - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "gej" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -32164,15 +32148,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/research/abandoned) -"hXQ" = ( -/obj/machinery/door/window/left/directional/east{ - name = "'Monkey Pen"; - req_access = list("genetics") - }, -/obj/structure/flora/bush/lavendergrass, -/obj/structure/flora/bush/flowers_yw, -/turf/open/floor/grass, -/area/station/science/genetics) "hXZ" = ( /obj/item/storage/box/teargas{ pixel_x = 3; @@ -49229,6 +49204,24 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"mna" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/item/storage/box/monkeycubes{ + pixel_y = 10; + pixel_x = 1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_y = 3; + pixel_x = -13 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mnl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50661,6 +50654,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "mEH" = ( @@ -53138,6 +53132,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science) +"nnh" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 + }, +/obj/item/seeds/soya{ + pixel_x = 11; + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "nnv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72273,6 +72282,15 @@ /obj/structure/sign/warning/biohazard/directional/south, /turf/open/floor/iron, /area/station/maintenance/department/science) +"sbn" = ( +/obj/machinery/door/window/left/directional/east{ + name = "Monkey Pen"; + req_access = list("genetics") + }, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/science/genetics) "sbP" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -80347,6 +80365,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "ucA" = ( @@ -94401,24 +94420,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"xCj" = ( -/obj/machinery/firealarm/directional/south, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/item/storage/box/monkeycubes{ - pixel_y = 10; - pixel_x = 1 - }, -/obj/item/storage/box/monkeycubes{ - pixel_y = 3; - pixel_x = -13 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "xCC" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -121575,7 +121576,7 @@ rZw iQF eRr pTC -gei +nnh fpt uOF sPk @@ -122864,7 +122865,7 @@ qNn lZG gmI ahY -xCj +mna jDd eJG loj @@ -132884,7 +132885,7 @@ rcW oJy oFr pXk -hXQ +sbn lfz fvi nlK diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index a154878b82c92..f31f8d73248a4 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -271,6 +271,13 @@ /obj/machinery/vending/boozeomat, /turf/open/floor/iron, /area/station/service/bar) +"afy" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "afz" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -2309,6 +2316,11 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"aLo" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "aLy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4305,17 +4317,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) -"boA" = ( -/obj/machinery/chem_master{ - name = "CytoMaster 5000" - }, -/obj/item/swab{ - pixel_y = 10; - pixel_x = -2 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "boO" = ( /obj/structure/chair/sofa/left/brown{ dir = 8 @@ -4627,13 +4628,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/textured, /area/station/commons/toilet) -"bsq" = ( -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "bst" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 6 @@ -6858,6 +6852,10 @@ dir = 1 }, /area/station/security/prison) +"bXL" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/white, +/area/station/science/research) "bXT" = ( /obj/machinery/camera{ c_tag = "Medbay Storage"; @@ -7045,18 +7043,6 @@ "bZQ" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/starboard) -"bZR" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/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/science/ordnance) "bZU" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 2 @@ -7149,6 +7135,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"cbu" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "cbz" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/textured, @@ -8535,13 +8528,6 @@ "cvS" = ( /turf/closed/wall, /area/station/maintenance/department/medical/central) -"cvV" = ( -/obj/structure/sign/warning/fire/directional/east, -/obj/structure/fence{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "cwe" = ( /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, @@ -9516,11 +9502,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"cJM" = ( -/turf/open/floor/iron/stairs/left{ - dir = 4 - }, -/area/station/science/cytology) "cKe" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9910,13 +9891,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"cPS" = ( -/obj/machinery/vatgrower{ - dir = 4 - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "cQa" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -11012,10 +10986,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"dgv" = ( -/obj/structure/flora/grass/brown/style_random, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) +"dgH" = ( +/obj/structure/ladder, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "dgZ" = ( /obj/machinery/airalarm/directional/south, /obj/structure/cable, @@ -11530,13 +11508,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"doX" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Research Break Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/iron/dark, -/area/station/science/research) "dpa" = ( /obj/structure/table, /obj/effect/turf_decal/siding/white{ @@ -11643,6 +11614,23 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/hallway/primary/central) +"dqt" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -5; + pixel_y = -8 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_y = -6; + pixel_x = 9 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "dqw" = ( /obj/machinery/holopad, /turf/open/floor/iron, @@ -11797,6 +11785,12 @@ /obj/structure/flora/grass/both, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"dsa" = ( +/obj/structure/stairs/west, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/science/cytology) "dsf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -12120,12 +12114,6 @@ }, /turf/open/floor/iron/textured, /area/station/security/brig) -"dwW" = ( -/obj/structure/fence/corner{ - dir = 5 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "dwY" = ( /obj/machinery/light_switch/directional/west, /obj/structure/closet/secure_closet/quartermaster, @@ -12952,12 +12940,6 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/tcommsat/computer) -"dKq" = ( -/obj/structure/fence/corner{ - dir = 8 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "dKr" = ( /obj/structure/table, /obj/machinery/computer/security/telescreen/isolation/directional/south, @@ -15785,6 +15767,7 @@ cycle_id = "brigoutpost" }, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark/textured_edge{ dir = 8 }, @@ -16140,6 +16123,10 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/mine/mechbay) +"eLU" = ( +/obj/structure/statue/snow/snowman, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "eMa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16364,15 +16351,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ePS" = ( -/obj/structure/rack, -/obj/item/soap{ - pixel_y = -2 - }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "ePZ" = ( /obj/structure/chair/stool/directional/west, /obj/structure/disposalpipe/segment{ @@ -16513,6 +16491,10 @@ }, /turf/open/floor/iron/white, /area/station/science/genetics) +"eSQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "eSY" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/smooth, @@ -17195,13 +17177,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"fdE" = ( -/obj/item/toy/snowball{ - pixel_x = -6; - pixel_y = 3 - }, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "fdF" = ( /obj/structure/closet/secure_closet/chemical, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -18837,6 +18812,7 @@ cycle_id = "brigoutpost" }, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark/textured_edge{ dir = 4 }, @@ -19347,6 +19323,11 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/mine/laborcamp/security) +"fLU" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/science/research) "fLY" = ( /obj/structure/table, /obj/item/stock_parts/micro_laser{ @@ -20013,13 +19994,6 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) -"fXl" = ( -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "fXo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20358,6 +20332,13 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/security/processing) +"gcr" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "gcu" = ( /obj/effect/mapping_helpers/burnt_floor, /obj/structure/cable, @@ -21147,6 +21128,9 @@ /obj/machinery/smartfridge/organ, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"goq" = ( +/turf/open/openspace, +/area/station/science/research) "gov" = ( /obj/machinery/door/window/left/directional/west{ name = "Janitorial Delivery"; @@ -21453,12 +21437,6 @@ /obj/effect/turf_decal/tile/neutral/diagonal_edge, /turf/open/floor/iron/kitchen/diagonal, /area/station/service/kitchen) -"gtA" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "gtF" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -21550,6 +21528,14 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"gwm" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/research) "gwp" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/full, @@ -21734,12 +21720,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"gzG" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/research) "gzV" = ( /obj/structure/mineral_door/paperframe{ name = "Meditation Room" @@ -21827,6 +21807,32 @@ /obj/structure/sign/warning/cold_temp/directional/west, /turf/open/floor/iron, /area/station/cargo/miningdock) +"gAZ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat/science{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = -7; + pixel_y = -1 + }, +/obj/item/biopsy_tool{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/gps/mining{ + pixel_x = -7; + pixel_y = -3 + }, +/obj/item/knife/combat/survival{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "gBb" = ( /obj/machinery/door/window/right/directional/west{ name = "Containment Pen 3"; @@ -21854,6 +21860,13 @@ /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, /area/icemoon/underground/explored) +"gBp" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "gBs" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -23499,6 +23512,10 @@ }, /turf/open/floor/wood/large, /area/station/service/bar/atrium) +"gYO" = ( +/obj/item/food/grown/carrot, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "gZa" = ( /obj/structure/sign/nanotrasen{ pixel_x = -32 @@ -23695,11 +23712,6 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"hcf" = ( -/turf/open/floor/iron/stairs/right{ - dir = 4 - }, -/area/station/science/cytology) "hcg" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -24066,18 +24078,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"his" = ( -/turf/open/floor/iron/stairs/right{ - dir = 4 - }, -/area/station/science/research) -"hiJ" = ( -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "hjh" = ( /obj/machinery/computer/records/security{ dir = 4 @@ -24382,15 +24382,6 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"hoa" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/flashlight{ - pixel_y = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/station/science/cytology) "hog" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -24641,6 +24632,14 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"hqB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "hqE" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -25482,11 +25481,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) -"hEY" = ( -/turf/open/floor/iron/stairs/medium{ - dir = 4 - }, -/area/station/science/research) "hEZ" = ( /obj/structure/ladder, /turf/open/floor/plating, @@ -25856,14 +25850,6 @@ /obj/structure/chair, /turf/open/floor/iron, /area/station/cargo/storage) -"hKW" = ( -/mob/living/basic/pet/penguin/baby/permanent, -/obj/item/toy/snowball{ - pixel_x = -6; - pixel_y = -3 - }, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "hLf" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -26027,9 +26013,6 @@ /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/white, /area/station/security/prison/safe) -"hNe" = ( -/turf/closed/wall/r_wall, -/area/station/science/cytology) "hNg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -27105,6 +27088,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) +"ieb" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Research Break Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/dark, +/area/station/science/research) "iew" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, @@ -27253,12 +27243,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) -"ihK" = ( -/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/smooth_large, -/area/station/science/cytology) "ihN" = ( /obj/machinery/button/door/directional/west{ id = "xenobio4"; @@ -27293,6 +27277,19 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"iiv" = ( +/obj/structure/rack, +/obj/item/soap{ + pixel_y = -2 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "iiy" = ( /obj/machinery/firealarm/directional/north, /obj/structure/chair{ @@ -27971,10 +27968,6 @@ dir = 8 }, /area/station/service/chapel) -"irV" = ( -/obj/structure/fence/door, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "irX" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ @@ -28851,13 +28844,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"iFv" = ( -/obj/structure/ladder, -/obj/structure/railing{ - dir = 9 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "iFz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29102,10 +29088,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"iKO" = ( -/obj/structure/statue/snow/snowman, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "iKQ" = ( /obj/machinery/status_display/evac/directional/east, /turf/open/openspace, @@ -29201,6 +29183,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"iLP" = ( +/obj/structure/ladder, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "iLY" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -29412,11 +29401,6 @@ dir = 4 }, /area/station/security/brig/entrance) -"iQa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/holopad, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "iQj" = ( /obj/item/radio/intercom/directional/north, /obj/structure/table/glass, @@ -29874,6 +29858,13 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"iWs" = ( +/obj/machinery/door/firedoor/border_only, +/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/white, +/area/station/science/ordnance) "iWI" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced/spawner/directional/south, @@ -30108,9 +30099,6 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"jac" = ( -/turf/open/openspace, -/area/icemoon/underground/explored) "jae" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -30301,10 +30289,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"jcv" = ( -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "jcy" = ( /obj/machinery/camera/directional/north{ c_tag = "Central Hallway North-East" @@ -30411,6 +30395,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"jem" = ( +/obj/machinery/chem_master{ + name = "CytoMaster 5000" + }, +/obj/item/swab{ + pixel_y = 10; + pixel_x = -2 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "jer" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -30561,6 +30556,17 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"jih" = ( +/mob/living/basic/pet/penguin/emperor{ + name = "Club" + }, +/obj/machinery/light/small/directional/east, +/obj/item/toy/snowball{ + pixel_x = -9; + pixel_y = 17 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "jik" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -30584,19 +30590,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) -"jiy" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/cytology{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/item/storage/box/swab{ - pixel_y = 7; - pixel_x = 7 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "jiD" = ( /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 @@ -31903,6 +31896,10 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"jDQ" = ( +/obj/structure/fence/door, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "jDS" = ( /obj/structure/chair/sofa/bench/left, /obj/effect/turf_decal/stripes/line{ @@ -32054,9 +32051,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"jGq" = ( -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "jGB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -32268,13 +32262,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"jJt" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "jJF" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/stripes/line{ @@ -32537,10 +32524,6 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"jMx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "jMD" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 1 @@ -33091,6 +33074,11 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/fore) +"jVi" = ( +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/science/cytology) "jVm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, @@ -33132,13 +33120,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) -"jWn" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "jWt" = ( /obj/structure/cable, /obj/structure/closet/radiation, @@ -33277,23 +33258,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"jYN" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_x = -1; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = -5; - pixel_y = -8 - }, -/obj/item/reagent_containers/cup/beaker{ - pixel_y = -6; - pixel_x = 9 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "jYS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, @@ -33623,14 +33587,6 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"kdN" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/smartfridge/petri/preloaded, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "kdT" = ( /obj/machinery/iv_drip, /obj/item/reagent_containers/blood, @@ -33795,6 +33751,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/mine/laborcamp) +"kfN" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "kfP" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/east, @@ -33954,14 +33914,6 @@ /obj/effect/mapping_helpers/no_atoms_ontop, /turf/open/genturf, /area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) -"khE" = ( -/obj/item/toy/snowball{ - pixel_x = 11; - pixel_y = -7 - }, -/obj/structure/flora/grass/brown/style_random, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "khF" = ( /obj/machinery/light/small/directional/north, /obj/structure/sign/warning/gas_mask/directional/north{ @@ -35269,12 +35221,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/theater) -"kzV" = ( -/obj/structure/stairs/west, -/turf/open/floor/iron/stairs/left{ - dir = 4 - }, -/area/station/science/cytology) "kzZ" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -36933,6 +36879,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) +"kXR" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/science/cytology) "kXS" = ( /obj/machinery/door/airlock/hydroponics/glass{ name = "Hydroponics" @@ -37066,6 +37017,14 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/vault, /area/station/security/prison/rec) +"laa" = ( +/obj/machinery/atmospherics/components/tank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "lab" = ( /obj/machinery/door/window/brigdoor/left/directional/north{ name = "Secure Weapons Storage"; @@ -37167,18 +37126,6 @@ /obj/structure/sign/warning/fire/directional/north, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"lbU" = ( -/obj/structure/fence/door{ - dir = 4 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "lca" = ( /obj/structure/railing/corner{ dir = 1 @@ -37367,15 +37314,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) -"lfc" = ( -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "lfp" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -38239,6 +38177,13 @@ dir = 8 }, /area/station/security/prison) +"lsR" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "lsU" = ( /obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -39683,6 +39628,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"lPz" = ( +/mob/living/basic/pet/penguin/baby/permanent, +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = -3 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "lPC" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 @@ -40201,6 +40154,12 @@ }, /turf/open/floor/grass, /area/station/medical/virology) +"lYS" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "lZe" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -40594,14 +40553,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/dark, /area/mine/eva/lower) -"mfs" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/openspace, -/area/icemoon/underground/explored) "mfD" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/atmos) @@ -40642,32 +40593,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/central) -"mgw" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hooded/wintercoat/science{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/item/clothing/shoes/winterboots{ - pixel_x = -7; - pixel_y = -1 - }, -/obj/item/biopsy_tool{ - pixel_x = 8; - pixel_y = 3 - }, -/obj/item/gps/mining{ - pixel_x = -7; - pixel_y = -3 - }, -/obj/item/knife/combat/survival{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "mgy" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41197,16 +41122,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"mqp" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "mqq" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -41546,10 +41461,27 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) +"mwK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "mwQ" = ( /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"mxc" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/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/science/ordnance) "mxh" = ( /obj/structure/cable, /turf/open/floor/stone, @@ -41564,10 +41496,6 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron, /area/station/commons/locker) -"mxz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "mxD" = ( /obj/machinery/holopad, /obj/structure/cable, @@ -44194,6 +44122,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) +"nmy" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "nmz" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -45322,17 +45262,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"nBJ" = ( -/mob/living/basic/pet/penguin/emperor{ - name = "Club" - }, -/obj/machinery/light/small/directional/east, -/obj/item/toy/snowball{ - pixel_x = -9; - pixel_y = 17 - }, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "nBN" = ( /obj/machinery/atmospherics/components/tank/air, /obj/effect/turf_decal/delivery, @@ -45820,9 +45749,6 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"nIf" = ( -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "nIl" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -46260,6 +46186,11 @@ /obj/item/pillow/random, /turf/open/floor/carpet, /area/station/commons/dorms) +"nOo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "nOx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -46508,12 +46439,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"nRW" = ( -/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/white, -/area/station/science/ordnance) "nRX" = ( /turf/open/floor/iron/white/side{ dir = 10 @@ -47850,6 +47775,16 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"onV" = ( +/obj/machinery/door/airlock/research{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/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/smooth_large, +/area/station/science/ordnance) "ooa" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, @@ -49329,13 +49264,6 @@ dir = 1 }, /area/station/command/gateway) -"oJV" = ( -/obj/machinery/door/firedoor/border_only, -/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/white, -/area/station/science/ordnance) "oKu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49539,13 +49467,6 @@ "oMT" = ( /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"oNn" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/science/research) "oNy" = ( /obj/effect/spawner/random/structure/crate_abandoned, /obj/machinery/light/small/directional/south, @@ -49789,6 +49710,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/security/courtroom) +"oQV" = ( +/mob/living/basic/pet/penguin/baby/permanent, +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "oQY" = ( /turf/open/floor/iron/white, /area/station/medical/virology) @@ -49855,15 +49781,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"oSv" = ( -/obj/structure/table, -/obj/item/food/deadmouse{ - pixel_y = 18; - pixel_x = 13 - }, -/obj/structure/microscope, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "oSw" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, /turf/closed/wall/r_wall, @@ -50006,22 +49923,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"oUv" = ( -/obj/structure/table, -/obj/item/petri_dish{ - pixel_y = 15; - pixel_x = -5 - }, -/obj/item/petri_dish{ - pixel_y = 10; - pixel_x = 6 - }, -/obj/item/petri_dish{ - pixel_y = -6; - pixel_x = -1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "oUL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51255,6 +51156,11 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/tcommsat/computer) +"pnq" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/departments/science/alt/directional/north, +/turf/open/openspace, +/area/station/science/research) "pns" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -51782,6 +51688,13 @@ }, /turf/open/floor/eighties/red, /area/station/security/prison/safe) +"pvU" = ( +/obj/machinery/light/small/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "pvY" = ( /obj/machinery/computer/order_console/mining, /obj/machinery/light_switch/directional/north, @@ -52179,11 +52092,10 @@ /turf/open/floor/grass, /area/station/security/warden) "pBS" = ( -/obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/siding/white{ dir = 1 }, -/obj/item/kirbyplants/organic/applebush, +/obj/machinery/smartfridge/drying, /turf/open/floor/iron/white/smooth_large, /area/station/service/kitchen) "pBV" = ( @@ -52789,13 +52701,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/white/smooth_large, /area/station/service/kitchen) -"pLp" = ( -/obj/machinery/light/small/directional/south, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/research) "pLr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -53462,16 +53367,6 @@ }, /turf/open/floor/iron, /area/station/tcommsat/computer) -"pVw" = ( -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "Cytology External Airlock" - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "pVH" = ( /turf/closed/wall/mineral/wood, /area/station/maintenance/aft/lesser) @@ -53942,6 +53837,10 @@ "qck" = ( /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"qcl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/cytology) "qcu" = ( /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, @@ -54103,11 +54002,6 @@ /obj/structure/cable, /turf/open/floor/eighties, /area/station/commons/lounge) -"qfg" = ( -/obj/machinery/airalarm/directional/west, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "qfh" = ( /turf/open/floor/iron/recharge_floor, /area/station/science/robotics/mechbay) @@ -54293,6 +54187,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"qin" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/flashlight{ + pixel_y = 2 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "qit" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -54643,10 +54550,6 @@ }, /turf/open/floor/carpet, /area/station/security/prison/rec) -"qng" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/white, -/area/station/science/research) "qnj" = ( /turf/closed/wall, /area/station/commons/locker) @@ -55129,14 +55032,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"qtg" = ( -/obj/machinery/atmospherics/components/tank, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qtj" = ( /turf/closed/wall, /area/station/engineering/storage) @@ -55642,14 +55537,6 @@ }, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) -"qAc" = ( -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/research) "qAf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56107,6 +55994,16 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"qHp" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "qHs" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/flora/bush/fullgrass/style_random, @@ -57022,12 +56919,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/carpet/red, /area/station/security/prison/work) -"qTJ" = ( -/obj/structure/stairs/west, -/turf/open/floor/iron/stairs/right{ - dir = 4 - }, -/area/station/science/cytology) "qTS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -57180,7 +57071,6 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "qWf" = ( -/obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/siding/white{ dir = 1 }, @@ -57407,6 +57297,12 @@ }, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) +"qZG" = ( +/obj/structure/fence/corner{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "qZN" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/freezerchamber) @@ -57922,12 +57818,6 @@ dir = 8 }, /area/station/science/ordnance/office) -"rhm" = ( -/obj/machinery/vatgrower{ - dir = 4 - }, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "rhF" = ( /obj/machinery/camera/directional/north{ c_tag = "Security - Permabrig Observation North"; @@ -58804,6 +58694,13 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"ruA" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "ruC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58986,14 +58883,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"rxu" = ( -/obj/structure/ladder, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/station/science/cytology) "rxz" = ( /obj/structure/girder, /turf/open/floor/plating/snowed/icemoon, @@ -59472,6 +59361,14 @@ /obj/structure/sign/poster/official/safety_internals/directional/east, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"rDH" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "rDI" = ( /obj/item/toy/plush/lizard_plushie{ name = "Wines-And-Dines"; @@ -59957,13 +59854,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/lobby) -"rMt" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Cytology Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "rMu" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -60084,6 +59974,17 @@ /obj/structure/closet/toolcloset, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"rOy" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) +"rOz" = ( +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "rOA" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -60180,6 +60081,12 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) +"rQs" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "rQw" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -60367,6 +60274,14 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"rSZ" = ( +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external/glass{ + name = "Cytology External Airlock" + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "rTs" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, /turf/open/floor/plating, @@ -60531,10 +60446,6 @@ /obj/effect/spawner/random/trash/janitor_supplies, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"rVx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/science/cytology) "rVA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61388,6 +61299,12 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth_large, /area/station/cargo/drone_bay) +"sjD" = ( +/obj/structure/stairs/west, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/science/cytology) "sjU" = ( /obj/structure/sign/warning/docking/directional/east, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -61915,6 +61832,10 @@ dir = 8 }, /area/station/service/chapel) +"sqB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "sqH" = ( /obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{ name = "Burn Chamber Interior Airlock" @@ -62128,6 +62049,12 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) +"stb" = ( +/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/white, +/area/station/science/ordnance) "sth" = ( /obj/item/radio/intercom/directional/east, /obj/structure/disposalpipe/trunk{ @@ -62985,10 +62912,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/mine/living_quarters) -"sEQ" = ( -/obj/structure/fence/corner, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "sEU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/closed/wall/r_wall, @@ -63650,12 +63573,6 @@ "sOn" = ( /turf/closed/wall, /area/station/cargo/lobby) -"sOp" = ( -/obj/structure/railing/corner/end{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "sOz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63789,11 +63706,6 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron, /area/mine/living_quarters) -"sQw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "sQB" = ( /turf/closed/wall, /area/station/security/brig/upper) @@ -63868,6 +63780,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) +"sSz" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/white, +/area/station/science/research) "sSA" = ( /obj/structure/sign/warning/secure_area/directional/south, /turf/open/openspace/icemoon/keep_below, @@ -64904,6 +64820,13 @@ }, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) +"tkS" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/research) "tkU" = ( /turf/open/lava/plasma/ice_moon, /area/icemoon/surface/outdoors/nospawn) @@ -65136,6 +65059,14 @@ /obj/machinery/shower/directional/west, /turf/open/floor/iron/white, /area/station/medical/virology) +"toP" = ( +/obj/item/toy/snowball{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "toT" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -65288,10 +65219,6 @@ /obj/structure/disposalpipe/junction/flip, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"trQ" = ( -/obj/structure/stairs/east, -/turf/open/misc/asteroid/snow, -/area/station/science/ordnance) "trT" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -66143,6 +66070,15 @@ /obj/structure/ore_box, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"tEE" = ( +/obj/structure/table, +/obj/item/food/deadmouse{ + pixel_y = 18; + pixel_x = 13 + }, +/obj/structure/microscope, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "tEK" = ( /obj/structure/table, /obj/item/tank/internals/emergency_oxygen{ @@ -66634,6 +66570,12 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/cmo) +"tLy" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "tLB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, /obj/effect/turf_decal/tile/yellow{ @@ -67788,10 +67730,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/security/prison/mess) -"ueQ" = ( -/obj/item/food/grown/carrot, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "ueS" = ( /obj/effect/turf_decal/trimline/neutral/warning{ dir = 8 @@ -67827,14 +67765,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) -"ufA" = ( -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external/glass{ - name = "Cytology External Airlock" - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "ufF" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -68646,6 +68576,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"usP" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "usS" = ( /obj/structure/bed{ dir = 1 @@ -68821,11 +68757,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"uvw" = ( -/obj/structure/railing, -/obj/structure/closet/secure_closet/cytology, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "uvM" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -68977,16 +68908,6 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"uyz" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "uyH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, @@ -69500,13 +69421,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"uHd" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/icemoon/underground/explored) "uHv" = ( /obj/structure/chair/stool/directional/north, /obj/structure/cable, @@ -69841,6 +69755,10 @@ "uMN" = ( /turf/open/openspace, /area/station/commons/storage/mining) +"uMU" = ( +/obj/structure/fence/corner, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "uNp" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -69885,6 +69803,11 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"uNH" = ( +/obj/structure/railing, +/obj/structure/closet/secure_closet/cytology, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "uNV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -70072,6 +69995,16 @@ dir = 8 }, /area/station/ai_monitored/command/storage/eva) +"uPQ" = ( +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Cytology External Airlock" + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "uPS" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -71113,10 +71046,6 @@ dir = 1 }, /area/station/command/gateway) -"viY" = ( -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron/white, -/area/station/science/research) "vja" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -71125,6 +71054,11 @@ "vjh" = ( /turf/closed/wall/r_wall, /area/mine/laborcamp) +"vjj" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/science/research) "vjk" = ( /obj/machinery/atmospherics/components/binary/crystallizer{ dir = 4 @@ -72163,16 +72097,6 @@ /obj/structure/reagent_dispensers/cooking_oil, /turf/open/misc/asteroid/snow/coldroom, /area/station/service/kitchen/coldroom) -"vyE" = ( -/obj/machinery/door/airlock/research{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/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/smooth_large, -/area/station/science/ordnance) "vyI" = ( /obj/structure/railing{ dir = 1 @@ -72620,6 +72544,9 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"vES" = ( +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "vEU" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -72848,14 +72775,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"vIT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron/white, -/area/station/science/research) "vIZ" = ( /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73070,11 +72989,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"vOy" = ( -/mob/living/basic/pet/penguin/baby/permanent, -/obj/structure/flora/grass/brown/style_random, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/cytology) "vOD" = ( /obj/machinery/status_display/ai/directional/north, /obj/effect/turf_decal/tile/dark_green{ @@ -74655,6 +74569,9 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark/textured, /area/station/security/range) +"wnp" = ( +/turf/closed/wall/r_wall, +/area/station/science/cytology) "wnv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -74769,6 +74686,22 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) +"woV" = ( +/obj/structure/table, +/obj/item/petri_dish{ + pixel_y = 15; + pixel_x = -5 + }, +/obj/item/petri_dish{ + pixel_y = 10; + pixel_x = 6 + }, +/obj/item/petri_dish{ + pixel_y = -6; + pixel_x = -1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "woX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75445,11 +75378,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"wyA" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/sign/departments/science/alt/directional/north, -/turf/open/openspace, -/area/station/science/research) "wyB" = ( /obj/machinery/conveyor{ dir = 1; @@ -75524,6 +75452,13 @@ /obj/item/folder/yellow, /turf/open/floor/iron, /area/station/cargo/storage) +"wAk" = ( +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "wAq" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -75674,14 +75609,6 @@ /obj/structure/closet/crate, /turf/open/floor/iron, /area/station/cargo/miningdock) -"wBW" = ( -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/science/research) "wCo" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 1 @@ -76233,9 +76160,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/command/bridge) -"wLA" = ( -/turf/open/openspace, -/area/station/science/research) "wLK" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, @@ -77477,6 +77401,12 @@ /obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"xdk" = ( +/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/smooth_large, +/area/station/science/cytology) "xdl" = ( /obj/structure/cable, /turf/open/floor/iron/white, @@ -77838,6 +77768,14 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) +"xij" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/smartfridge/petri/preloaded, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xit" = ( /obj/item/book/manual/wiki/security_space_law, /obj/structure/table/wood, @@ -77896,6 +77834,12 @@ /obj/vehicle/ridden/janicart, /turf/open/floor/iron, /area/station/service/janitor) +"xjs" = ( +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xjC" = ( /turf/open/floor/plating, /area/station/maintenance/department/cargo) @@ -77925,6 +77869,14 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) +"xjU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/white, +/area/station/science/research) "xjZ" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron/dark, @@ -78150,6 +78102,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"xnC" = ( +/obj/structure/sign/warning/fire/directional/east, +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xnE" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/yellow{ @@ -78390,6 +78349,13 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"xrY" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "xse" = ( /obj/machinery/newscaster/directional/east, /obj/machinery/light/blacklight/directional/east, @@ -78446,6 +78412,15 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"xte" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "xtn" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -78611,6 +78586,9 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"xvx" = ( +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "xvy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/stripes/line{ @@ -78799,6 +78777,19 @@ /obj/structure/flora/grass/brown/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"xxZ" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/storage/box/swab{ + pixel_y = 7; + pixel_x = 7 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xyc" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -80184,6 +80175,16 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/port) +"xTf" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "xTi" = ( /obj/effect/landmark/start/clown, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -81290,6 +81291,13 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"ylQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cytology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "ylU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -128491,12 +128499,12 @@ oSU oSU oSU xMq -cPS +cbu iDt iDt iDt iDt -iFv +iLP fIt oSU oSU @@ -128748,7 +128756,7 @@ oSU iDt iDt xMq -cPS +cbu iDt iDt iDt @@ -129266,7 +129274,7 @@ iDt iDt iDt iDt -iDt +xrY fIt fIt oSU @@ -193005,7 +193013,7 @@ xMq iDt iDt iDt -dwW +qZG ebX scw iDt @@ -193260,7 +193268,7 @@ xMq xMq iDt iDt -lfc +xte iDt iDt chg @@ -193272,7 +193280,7 @@ ffe ffe ffe ffe -rMt +ylQ ffe iry oxO @@ -193514,22 +193522,22 @@ thA thA xMq xMq -jac -jac -jac -mfs -iDt -iDt -hNe -hNe -hNe -hNe -hNe -hNe -iKO -fdE -hKW -dgv +lvt +lvt +lvt +hqB +iDt +iDt +wnp +wnp +wnp +wnp +wnp +wnp +eLU +wAk +lPz +rOz ffe ffe ffe @@ -193771,22 +193779,22 @@ thA thA xMq xMq -jac -jac -jac -mfs -jac -hNe -hNe -qTJ -kzV -hNe -qfg -irV -vOy -jGq -dgv -jGq +lvt +lvt +lvt +hqB +lvt +wnp +wnp +sjD +dsa +wnp +aLo +jDQ +oQV +xvx +rOz +xvx kAH mHu kwM @@ -194027,23 +194035,23 @@ thA thA thA xMq -jac -jac -jac -jac -mqp -rxu -hNe -uvw -hcf -cJM -kdN -nIf -cvV -rhm -nBJ -ueQ -khE +lvt +lvt +lvt +lvt +qHp +dgH +wnp +uNH +kXR +jVi +xij +vES +xnC +tLy +jih +gYO +toP kAH mHu jlj @@ -194284,25 +194292,25 @@ thA thA thA rcY -jac -jac -jac -hiJ -uHd -hoa -hNe -fXl -jMx -mxz -sOp -nIf +lvt +lvt +lvt +lsR +rOy +qin +wnp +afy +sqB +eSQ +xjs +vES uIf uIf uIf uIf uIf uIf -qtg +laa qKt tUo aQn @@ -194541,18 +194549,18 @@ thA tjo tjo rcY -jac -jac -jac -jWn -jcv -rVx -rVx -rVx -nIf -iQa -nIf -ePS +lvt +lvt +lvt +gBp +kfN +qcl +qcl +qcl +vES +mwK +vES +iiv uIf nIt nIt @@ -194798,25 +194806,25 @@ thA tjo tjo rcY -jac -jac -jac -bsq -jJt -ufA -nIf -pVw -nIf -mxz -sQw -ihK -vyE -nRW -nRW -nRW -nRW -oJV -bZR +lvt +lvt +lvt +gcr +ruA +rSZ +vES +uPQ +vES +eSQ +nOo +xdk +onV +stb +stb +stb +stb +iWs +mxc qRO rEj qRO @@ -195055,18 +195063,18 @@ thA tjo tjo rcY -jac -jac -jac -jac -uyz -rVx -rVx -hNe -mgw -oSv -gtA -boA +lvt +lvt +lvt +lvt +xTf +qcl +qcl +wnp +gAZ +tEE +lYS +jem uIf rmp pOL @@ -195311,19 +195319,19 @@ thA thA tjo tjo -dwW +qZG ebX -jac -jac -jac -mfs -jac -jac -hNe -hNe -jYN -oUv -jiy +lvt +lvt +lvt +hqB +lvt +lvt +wnp +wnp +dqt +woV +xxZ uIf jcC pOL @@ -195569,22 +195577,22 @@ thA tjo tjo tjo -dwW +qZG kNC ebX -jac -mfs -jac -jac -jac -hNe -rVx -rVx -hNe +lvt +hqB +lvt +lvt +lvt +wnp +qcl +qcl +wnp uIf odm odm -trQ +odm odm nqy jGR @@ -195828,15 +195836,15 @@ tjo tjo tjo tjo -dwW +qZG kNC -lbU +nmy kNC kNC kNC -sEQ +uMU iDt -dKq +rQs kNC fcj fcj @@ -258285,10 +258293,10 @@ mbK jQS eNK aYJ -viY +sSz aYJ aYJ -qng +bXL eLr eaa via @@ -258542,7 +258550,7 @@ aYJ aYJ wUt urK -vIT +xjU nJT urK urK @@ -258799,10 +258807,10 @@ uZB oni nxa qwN -oNn +tkS dFj dFj -wBW +gwm dFj niC xnM @@ -259057,10 +259065,10 @@ cbF dEC oHK oHK -his -hEY -qAc -gzG +vjj +fLU +rDH +usP wLl wol hnP @@ -259314,10 +259322,10 @@ bxP vvE tJG oHK -wLA -wLA -qAc -gzG +goq +goq +rDH +usP wLl nsZ uoC @@ -259571,10 +259579,10 @@ vaA gXJ wgU oHK -wyA -wLA -qAc -pLp +pnq +goq +rDH +pvU wLl jUX wbR @@ -259830,7 +259838,7 @@ hhP oHK iZl iZl -doX +ieb iZl wLl tur diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 48df48372b0a7..c255c2eea4d09 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -67765,6 +67765,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "was" = ( @@ -71642,6 +71643,7 @@ cycle_id = "brig-entrance-right" }, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "xmQ" = ( diff --git a/_maps/map_files/LimaStation/LimaStation.dmm b/_maps/map_files/LimaStation/LimaStation.dmm index 4dfcd2466de2c..bd60a22183fb4 100644 --- a/_maps/map_files/LimaStation/LimaStation.dmm +++ b/_maps/map_files/LimaStation/LimaStation.dmm @@ -35476,6 +35476,7 @@ /obj/effect/turf_decal/trimline/yellow/filled/end{ dir = 8 }, +/obj/effect/mapping_helpers/apc/cell_10k, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "nsO" = ( @@ -43265,9 +43266,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "qkB" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, +/obj/machinery/power/smes/full, /obj/structure/cable, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 799632ef64dc5..99cf05d0d9ddc 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -587,6 +587,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"alA" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "Quartermaster Junction" + }, +/obj/effect/mapping_helpers/mail_sorting/supply/qm_office, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "alE" = ( /turf/open/floor/iron, /area/station/security/courtroom) @@ -625,6 +634,19 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) +"ame" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/blood/gibs/down, +/mob/living/simple_animal/bot/mulebot{ + name = "Leaping Rabbit" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "amj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -999,6 +1021,13 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/engine, /area/station/engineering/supermatter) +"auh" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "aum" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2194,6 +2223,14 @@ /obj/effect/turf_decal/trimline/brown/warning, /turf/open/floor/iron/white, /area/station/science/lobby) +"aOA" = ( +/obj/effect/landmark/blobstart, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "aOC" = ( /obj/effect/turf_decal/trimline/red/filled/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -3963,14 +4000,6 @@ }, /turf/open/floor/iron/white, /area/station/science/ordnance/storage) -"buc" = ( -/obj/effect/landmark/blobstart, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "bug" = ( /obj/structure/lattice, /obj/item/tank/internals/oxygen/empty, @@ -4251,10 +4280,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"byr" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/station/maintenance/port/fore) "byw" = ( /obj/effect/landmark/start/lawyer, /turf/open/floor/wood, @@ -4358,17 +4383,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port) -"bAC" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/machinery/autolathe, -/turf/open/floor/iron, -/area/station/cargo/storage) "bAD" = ( /obj/structure/dresser, /obj/machinery/newscaster/directional/north, @@ -4398,6 +4412,18 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"bBy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8 + }, +/obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "bBA" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4861,6 +4887,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bJX" = ( +/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 = 10 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "bKv" = ( /obj/item/pen, /obj/structure/table/reinforced, @@ -5112,18 +5147,6 @@ /obj/item/stack/rods, /turf/open/space/basic, /area/station/solars/port/fore) -"bOB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "bOH" = ( /obj/effect/turf_decal/bot, /turf/open/floor/iron, @@ -5775,6 +5798,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"caV" = ( +/obj/vehicle/sealed/mecha/ripley/cargo, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/iron/recharge_floor, +/area/station/cargo/warehouse) "cbg" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -6648,6 +6676,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"cuh" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/maintenance/port/fore) "cuk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -7613,6 +7645,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/library) +"cLN" = ( +/obj/structure/sign/departments/exodrone/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "cMb" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -7630,26 +7666,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"cMl" = ( -/obj/structure/railing{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/table, -/obj/item/storage/box/bandages{ - pixel_y = 6; - pixel_x = 4 - }, -/obj/effect/spawner/random/entertainment/deck, -/obj/effect/spawner/random/entertainment/cigarette_pack{ - pixel_x = -6; - pixel_y = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "cMG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7996,17 +8012,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"cTN" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/iron, -/area/station/cargo/storage) "cUd" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -9785,6 +9790,16 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"dCF" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "dDe" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -10410,6 +10425,16 @@ }, /turf/open/floor/iron, /area/station/security/office) +"dOm" = ( +/obj/machinery/requests_console/directional/south{ + department = "Mining"; + name = "Mining Requests Console" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "dOs" = ( /obj/structure/sign/warning/no_smoking, /turf/closed/wall/r_wall, @@ -10606,15 +10631,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"dRc" = ( -/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{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "dRj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -10676,6 +10692,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) +"dRS" = ( +/obj/structure/cable, +/obj/effect/spawner/random/maintenance, +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "dRX" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/blue/anticorner/contrasted, @@ -10835,6 +10857,11 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"dUd" = ( +/obj/structure/noticeboard/qm, +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/command/heads_quarters/qm) "dUj" = ( /obj/structure/chair/office{ dir = 1 @@ -11245,6 +11272,13 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/construction/storage_wing) +"ebd" = ( +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ebg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12906,14 +12940,6 @@ /obj/effect/spawner/random/entertainment/deck, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"eDK" = ( -/obj/effect/spawner/random/maintenance, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "eDL" = ( /obj/structure/sign/directions/command{ dir = 1; @@ -13116,6 +13142,14 @@ }, /turf/open/floor/iron, /area/station/commons/lounge) +"eIc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/directional/south, +/obj/machinery/computer/mech_bay_power_console{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "eIy" = ( /obj/structure/cable, /obj/machinery/photocopier, @@ -13387,6 +13421,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"eMK" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "eMW" = ( /obj/structure/flora/bush/pale/style_random, /obj/structure/flora/bush/ferny/style_random, @@ -14486,17 +14527,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"fhn" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil/slippery, -/obj/effect/decal/cleanable/blood/gibs/down, -/mob/living/simple_animal/bot/mulebot{ - name = "Leaping Rabbit" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "fhp" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -15240,6 +15270,7 @@ cycle_id = "brig-entrance" }, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig) "frZ" = ( @@ -15607,14 +15638,6 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"fBy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "fBz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16156,6 +16179,7 @@ cycle_id = "brig-entrance" }, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig) "fMf" = ( @@ -16231,6 +16255,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) +"fNz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/obj/item/reagent_containers/cup/soda_cans/pwr_game, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "fNI" = ( /obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/wood, @@ -16278,6 +16312,21 @@ }, /turf/open/floor/iron/dark, /area/station/security/range) +"fOB" = ( +/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, +/obj/machinery/door/airlock/maintenance{ + name = "Brig Maintenance" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fOS" = ( /obj/structure/flora/bush/sparsegrass/style_random, /obj/structure/flora/bush/flowers_yw/style_random, @@ -18498,6 +18547,17 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"gGP" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin{ + name = "Jim Norton's Quebecois Coffee disposal unit" + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "gHo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -19030,6 +19090,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) +"gPN" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"gPP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/crate, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "gPY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -20259,6 +20341,14 @@ /obj/effect/turf_decal/trimline/brown/filled/line, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"hor" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Warehouse Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "hoE" = ( /obj/structure/sign/map/left{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -20701,15 +20791,6 @@ /obj/item/mod/module/thermal_regulator, /turf/open/floor/iron/dark, /area/station/medical/storage) -"hwf" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 14 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "hwg" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/structure/lattice, @@ -21703,11 +21784,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"hOx" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/storage) "hOR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/spawner/random/trash/soap{ @@ -22037,12 +22113,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/white, /area/station/science/xenobiology/hallway) -"hUj" = ( -/obj/structure/cable, -/obj/effect/landmark/start/cargo_technician, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/storage) "hUn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -22259,6 +22329,15 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/security/office) +"hYl" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 14 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "hYr" = ( /obj/machinery/holopad, /obj/structure/cable, @@ -24030,21 +24109,6 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"iBO" = ( -/obj/item/emptysandbag, -/obj/item/emptysandbag, -/obj/item/emptysandbag, -/obj/item/emptysandbag{ - pixel_x = 8 - }, -/obj/item/emptysandbag{ - pixel_x = -9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/south, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "iCj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, /obj/effect/mapping_helpers/airlock/locked, @@ -24106,15 +24170,6 @@ /obj/effect/landmark/start/security_officer, /turf/open/floor/iron/dark, /area/station/security/range) -"iDy" = ( -/obj/machinery/door/airlock/maintenance, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "iDG" = ( /obj/structure/table, /obj/item/stock_parts/scanning_module{ @@ -25788,6 +25843,19 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/grimy, /area/station/security/interrogation) +"jgz" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "mining"; + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "jgE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25920,6 +25988,11 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) +"jjn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jjs" = ( /obj/effect/spawner/random/engineering/tank, /obj/effect/mapping_helpers/broken_floor, @@ -27027,19 +27100,34 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"jBp" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/machinery/conveyor_switch/oneway{ - id = "mining"; - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "jBu" = ( /obj/effect/landmark/start/cargo_technician, /obj/effect/turf_decal/bot_white, /turf/open/floor/iron, /area/station/cargo/storage) +"jBy" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2"; + name = "Sort and Deliver"; + pixel_x = -2; + pixel_y = 12 + }, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "packageExternal"; + name = "Crate Returns"; + pixel_x = -5; + pixel_y = -3 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner, +/obj/effect/turf_decal/trimline/white/corner, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jBC" = ( /obj/structure/table, /obj/item/clothing/head/soft/grey{ @@ -27207,16 +27295,6 @@ /obj/structure/sign/poster/party_game, /turf/closed/wall, /area/space/nearstation) -"jFw" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/structure/crate, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "jFy" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -27869,6 +27947,19 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/medical/virology) +"jPE" = ( +/obj/structure/sign/map/left{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-left-MS"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "jPH" = ( /obj/machinery/door/airlock/atmos{ name = "Atmospherics" @@ -27904,6 +27995,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"jQr" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jQz" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 8 @@ -27973,15 +28073,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"jRL" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "jRO" = ( /obj/structure/table, /obj/item/paper_bin, @@ -28894,6 +28985,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/primary/central) +"kif" = ( +/obj/item/emptysandbag, +/obj/item/emptysandbag, +/obj/item/emptysandbag, +/obj/item/emptysandbag{ + pixel_x = 8 + }, +/obj/item/emptysandbag{ + pixel_x = -9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "kir" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 4 @@ -30123,10 +30229,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"kED" = ( -/obj/structure/sign/departments/exodrone/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "kFa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30296,6 +30398,13 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/port) +"kIJ" = ( +/obj/effect/spawner/random/maintenance, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "kIR" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -30329,6 +30438,15 @@ /obj/machinery/light/no_nightlight/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) +"kKd" = ( +/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/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "kKh" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 @@ -30915,12 +31033,6 @@ /obj/structure/cable/layer3, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) -"kUv" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/machinery/light/directional/south, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/storage) "kUG" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/loading_area{ @@ -30976,26 +31088,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"kVC" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/structure/table, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 8 - }, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 5 - }, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/soda_cans/random{ - pixel_x = -9 - }, -/turf/open/floor/catwalk_floor/iron, -/area/station/cargo/storage) "kVN" = ( /turf/open/floor/carpet, /area/station/service/chapel) @@ -31714,6 +31806,23 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"liU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing{ + dir = 9 + }, +/obj/machinery/disposal/bin/tagger, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "liX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31770,6 +31879,17 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine, /area/station/science/xenobiology) +"ljH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "ljL" = ( /obj/structure/chair/comfy/black, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31780,16 +31900,6 @@ /obj/machinery/barsign, /turf/closed/wall, /area/station/commons/lounge) -"lke" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/maintenance, -/obj/item/reagent_containers/cup/soda_cans/pwr_game, -/obj/structure/sign/poster/contraband/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "lku" = ( /obj/structure/cable, /obj/structure/sign/poster/contraband/random/directional/west, @@ -31800,6 +31910,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"lld" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "llk" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -32893,23 +33011,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"lLa" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/railing{ - dir = 9 - }, -/obj/machinery/disposal/bin/tagger, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "lLk" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/iron, @@ -33238,6 +33339,15 @@ /obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"lPB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, +/turf/open/floor/iron/grimy, +/area/station/service/chapel/office) "lPC" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -33339,15 +33449,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"lRI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/arrows/red{ - dir = 1 - }, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "lRS" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /obj/effect/spawner/structure/window/reinforced, @@ -34926,6 +35027,22 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/office) +"mvZ" = ( +/obj/machinery/light/directional/south, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/item/wrench, +/obj/item/multitool, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/incident_display/bridge/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "mwj" = ( /obj/machinery/computer/records/security{ dir = 4 @@ -36039,7 +36156,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/deepfryer, +/obj/machinery/smartfridge/drying, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/trimline/brown/warning{ dir = 9 @@ -36728,11 +36845,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) -"naX" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "nbd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37602,6 +37714,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"nrB" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/structure/railing{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "nrM" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/cable, @@ -38460,15 +38584,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) -"nEq" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/box, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/box, -/obj/item/radio/intercom/directional/north, -/obj/structure/sign/warning/gas_mask/directional/east, -/turf/open/floor/iron, -/area/station/science/xenobiology) "nEB" = ( /obj/structure/sign/poster/random/directional/east, /obj/machinery/requests_console/directional/south{ @@ -38527,13 +38642,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/locker) -"nFH" = ( -/obj/effect/turf_decal/arrows/red{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "nFL" = ( /obj/machinery/camera/directional/north{ c_tag = "MiniSat Exterior - Fore"; @@ -38939,15 +39047,13 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"nNE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - name = "Quartermaster Junction" +"nNB" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 1 }, -/obj/effect/mapping_helpers/mail_sorting/supply/qm_office, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "nNH" = ( /obj/structure/chair/comfy/black{ dir = 4 @@ -39254,19 +39360,6 @@ /obj/item/food/grown/mushroom/glowshroom, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nTi" = ( -/obj/structure/sign/map/left{ - desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; - icon_state = "map-left-MS"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "nTk" = ( /obj/structure/flora/bush/jungle/c/style_random, /obj/machinery/light/small/directional/east, @@ -39426,11 +39519,6 @@ /obj/effect/spawner/random/entertainment/deck, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"nXW" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "nYa" = ( /obj/machinery/door/airlock/research{ name = "Ordnance Lab" @@ -39654,13 +39742,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/research) -"obj" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "obk" = ( /obj/item/target/alien, /turf/open/floor/plating, @@ -40095,6 +40176,15 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ojW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "okj" = ( /obj/structure/cable, /obj/machinery/camera/motion/directional/south{ @@ -40231,11 +40321,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"omV" = ( -/obj/effect/spawner/random/structure/grille, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "onf" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -40294,18 +40379,6 @@ /obj/effect/spawner/random/bureaucracy/paper, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"ood" = ( -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/small/directional/north, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/sorting) "oog" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -40663,6 +40736,15 @@ /obj/effect/turf_decal/tile/bar, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ouo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/box, +/obj/item/radio/intercom/directional/north, +/obj/structure/sign/warning/gas_mask/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology) "out" = ( /obj/structure/lattice, /obj/item/reagent_containers/cup/glass/bottle/goldschlager, @@ -41249,15 +41331,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/storage_shared) -"oFI" = ( -/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 = 10 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "oFK" = ( /obj/structure/cable, /obj/effect/spawner/random/engineering/tracking_beacon, @@ -42515,21 +42588,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/service/hydroponics) -"pdp" = ( -/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, -/obj/machinery/door/airlock/maintenance{ - name = "Brig Maintenance" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "pdx" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -42615,14 +42673,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"pfd" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/machinery/rnd/production/techfab/department/cargo, -/turf/open/floor/iron, -/area/station/cargo/storage) "pfe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43202,6 +43252,11 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"pqc" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "pqi" = ( /obj/structure/chair, /obj/machinery/light/directional/north, @@ -44816,6 +44871,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/warehouse) +"pTf" = ( +/obj/structure/cable, +/turf/open/floor/iron/goonplaque, +/area/station/hallway/primary/port) "pTm" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -45236,17 +45295,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) -"qbD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/caution{ - dir = 8 - }, -/obj/machinery/light/small/dim/directional/south, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "qbE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -45966,6 +46014,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"qoY" = ( +/obj/effect/spawner/random/maintenance, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "qph" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/spawner/random/medical/patient_stretcher, @@ -46238,6 +46294,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/holding_cell) +"quT" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/storage) "qvJ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -46437,6 +46499,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"qzC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "qzE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -47394,13 +47461,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"qOZ" = ( -/obj/machinery/requests_console/directional/south{ - department = "Mining"; - name = "Mining Requests Console" - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "qPs" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/indigo, @@ -48058,6 +48118,11 @@ "qZI" = ( /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"qZO" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "qZV" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance" @@ -48722,6 +48787,17 @@ dir = 4 }, /area/station/service/chapel) +"rmS" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/cargo/storage) "rnb" = ( /obj/effect/mapping_helpers/burnt_floor, /obj/effect/spawner/random/trash/garbage{ @@ -49481,6 +49557,12 @@ /mob/living/basic/goat/pete, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) +"rzo" = ( +/obj/structure/cable, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/storage) "rzq" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/corner, @@ -50008,28 +50090,6 @@ "rJB" = ( /turf/closed/wall/r_wall, /area/station/security/evidence) -"rJF" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/table, -/obj/item/flashlight/lamp{ - pixel_x = -7; - pixel_y = 9 - }, -/obj/item/folder/yellow{ - pixel_y = -5; - pixel_x = 5 - }, -/obj/item/pen/blue{ - pixel_x = 4; - pixel_y = -3 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "rJI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/junction/yjunction{ @@ -50151,17 +50211,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/lab) -"rLq" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/machinery/disposal/bin{ - name = "Jim Norton's Quebecois Coffee disposal unit" - }, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "rLv" = ( /turf/open/floor/plating/foam{ initial_gas_mix = "TEMP=2.7" @@ -50349,6 +50398,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"rPp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "rPA" = ( /obj/structure/flora/bush/flowers_pp/style_random, /obj/structure/flora/bush/flowers_yw/style_random, @@ -50390,29 +50449,6 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) -"rQi" = ( -/obj/machinery/light_switch/directional/south, -/obj/machinery/conveyor_switch/oneway{ - id = "packageSort2"; - name = "Sort and Deliver"; - pixel_x = -2; - pixel_y = 12 - }, -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "packageExternal"; - name = "Crate Returns"; - pixel_x = -5; - pixel_y = -3 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner, -/obj/effect/turf_decal/trimline/white/corner, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rQk" = ( /obj/machinery/recharger{ pixel_y = 4 @@ -51258,13 +51294,6 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"sei" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "sey" = ( /obj/structure/sign/departments/court/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51564,6 +51593,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white, /area/station/science/xenobiology/hallway) +"sly" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "slC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -51616,6 +51653,17 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"smB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/autolathe, +/turf/open/floor/iron, +/area/station/cargo/storage) "smG" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51666,6 +51714,18 @@ }, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) +"snZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "soa" = ( /obj/machinery/light/small/directional/south, /obj/structure/sign/poster/official/random/directional/south, @@ -51682,18 +51742,6 @@ /obj/item/storage/box, /turf/open/floor/plating, /area/station/maintenance/port) -"som" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/railing{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "sou" = ( /obj/effect/turf_decal/delivery, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -52115,6 +52163,20 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"sxb" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/table, +/obj/item/storage/box/bandages{ + pixel_y = 6; + pixel_x = 4 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/effect/spawner/random/entertainment/deck, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "sxf" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -52365,6 +52427,36 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"sCc" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/item/storage/medkit/regular{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/pen/blue{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/pen/fountain{ + pixel_x = 10 + }, +/obj/item/pen/red{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/stamp/denied{ + pixel_y = -1 + }, +/obj/item/stamp{ + pixel_x = -9; + pixel_y = -1 + }, +/turf/open/floor/catwalk_floor/iron, +/area/station/cargo/storage) "sCh" = ( /obj/structure/table/glass, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53167,6 +53259,15 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/white, /area/station/science/explab) +"sPO" = ( +/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{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "sPV" = ( /obj/structure/closet/secure_closet/captains, /obj/structure/window/reinforced/spawner/directional/north, @@ -54224,6 +54325,14 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"tik" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/iron, +/area/station/cargo/storage) "tit" = ( /obj/structure/sink/directional/east, /obj/structure/sign/poster/contraband/random/directional/west, @@ -55262,16 +55371,6 @@ /obj/machinery/door/firedoor/heavy, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos) -"tCl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/caution{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "tCC" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -55312,13 +55411,6 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron/dark, /area/station/science/lab) -"tDj" = ( -/obj/structure/cable, -/obj/effect/spawner/random/maintenance, -/obj/machinery/recharge_station, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "tDk" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/engineering_all, @@ -57367,14 +57459,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"unp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/warning/directional/south, -/obj/machinery/computer/mech_bay_power_console{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "unt" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/tile/yellow/anticorner/contrasted, @@ -57800,15 +57884,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"utj" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/spawner/random/structure/twelve_percent_spirit_board, -/turf/open/floor/iron/grimy, -/area/station/service/chapel/office) "utk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58253,6 +58328,15 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/science/ordnance/storage) +"uBG" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uBI" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -59327,22 +59411,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/corner, /area/station/engineering/storage_shared) -"uUR" = ( -/obj/machinery/light/directional/south, -/obj/structure/rack, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency{ - pixel_x = -2; - pixel_y = -3 - }, -/obj/item/wrench, -/obj/item/multitool, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/obj/machinery/incident_display/bridge/directional/south, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "uUX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable/layer3, @@ -60865,11 +60933,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/service/lawoffice) -"vua" = ( -/obj/vehicle/sealed/mecha/ripley/cargo, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/iron/recharge_floor, -/area/station/cargo/warehouse) "vud" = ( /obj/effect/spawner/random/structure/closet_empty/crate, /obj/effect/spawner/random/maintenance, @@ -61648,11 +61711,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"vGW" = ( -/obj/structure/noticeboard/qm, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/station/command/heads_quarters/qm) "vHa" = ( /obj/effect/decal/cleanable/oil/slippery, /turf/open/floor/iron, @@ -62589,6 +62647,26 @@ dir = 1 }, /area/station/engineering/atmos) +"vWD" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/structure/table, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 8 + }, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 5 + }, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/soda_cans/random{ + pixel_x = -9 + }, +/turf/open/floor/catwalk_floor/iron, +/area/station/cargo/storage) "vWF" = ( /obj/structure/cable, /obj/machinery/holopad, @@ -63084,14 +63162,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/central) -"weP" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Warehouse Maintenance" - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "weS" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, @@ -64481,13 +64551,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) -"wEU" = ( -/obj/effect/spawner/random/maintenance, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "wFa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ @@ -65055,15 +65118,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"wRz" = ( -/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/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wRB" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/firealarm/directional/west, @@ -65622,36 +65676,6 @@ }, /turf/open/floor/iron, /area/station/command/gateway) -"xbA" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/item/storage/medkit/regular{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/pen/blue{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/pen/fountain{ - pixel_x = 10 - }, -/obj/item/pen/red{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/stamp/denied{ - pixel_y = -1 - }, -/obj/item/stamp{ - pixel_x = -9; - pixel_y = -1 - }, -/turf/open/floor/catwalk_floor/iron, -/area/station/cargo/storage) "xbT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65931,6 +65955,11 @@ dir = 4 }, /area/station/medical/treatment_center) +"xgx" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/storage) "xgB" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -66165,10 +66194,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) -"xkS" = ( -/obj/structure/cable, -/turf/open/floor/iron/goonplaque, -/area/station/hallway/primary/port) "xkV" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron, @@ -66369,11 +66394,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) -"xoW" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xpb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67123,18 +67143,6 @@ }, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"xBO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 8 - }, -/obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "xBX" = ( /obj/machinery/firealarm/directional/east, /turf/closed/wall, @@ -68466,13 +68474,6 @@ /obj/item/pipe_dispenser, /turf/open/floor/iron, /area/station/engineering/main) -"yaH" = ( -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/sorting) "yaO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68809,11 +68810,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/carpet, /area/station/command/corporate_showroom) -"ygy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "ygR" = ( /obj/effect/turf_decal/trimline/brown/filled/corner{ dir = 4 @@ -85149,9 +85145,9 @@ pck lku uEw nJG -xoW -iDy -wRz +jjn +jQr +kKd mjg dHc dHc @@ -85405,11 +85401,11 @@ fur fur wEz aaq -buc +aOA wUt fcq -nTi -obj +jPE +auh crr crr crr @@ -85662,7 +85658,7 @@ dBE vQs vQs vQs -weP +hor vQs vQs iSk @@ -85920,7 +85916,7 @@ vQs ePj tnF dKY -iBO +kif vQs dHc dHc @@ -86170,7 +86166,7 @@ sUc vsO vsO uAu -cTN +rmS dme exQ vQs @@ -86182,7 +86178,7 @@ slZ vQs puW hyW -xkS +pTf iOc qwG fjD @@ -86412,7 +86408,7 @@ paD jpG kRe nVG -qOZ +dOm hKg hKg ouu @@ -86689,7 +86685,7 @@ aok vlk fqe iWZ -lRI +ojW hpj uSO pSY @@ -86949,7 +86945,7 @@ xbZ kZI nbd vKn -lke +fNz vQs vQs hyW @@ -87203,11 +87199,11 @@ mmR vlk fqe vHa -nFH -eDK -tCl -tCl -qbD +nNB +qoY +rPp +rPp +ljH vQs mQa rEO @@ -87461,13 +87457,13 @@ gxu vQs vde tGU -hwf -vua -sei -unp +hYl +caV +eMK +eIc vQs hyW -ygy +qzC kOQ lxM kDS @@ -87690,13 +87686,13 @@ twr xgB hJO duG -omV -fhn -jXu -jBp +lld +ame +cuh +gGP wsk -rJF -cMl +jgz +dCF hlE oor aKN @@ -87724,7 +87720,7 @@ vQs vQs vQs upM -nXW +pqc rkM pOa hKp @@ -87947,10 +87943,10 @@ fUr fUr bkJ iIE -jFw -tDj -byr -rLq +gPP +dRS +jXu +sxb qqr iId tkf @@ -87967,12 +87963,12 @@ dfk dfk rQD nsh -kVC -xbA -lLa -som -bAC -pfd +vWD +sCc +liU +nrB +smB +tik sxk xwa fjw @@ -88197,14 +88193,14 @@ hTG gJM srk qGP -kED +cLN pkT sHu eMY cVL jXu -wEU -dRc +kIJ +sPO twr jXu hKg @@ -88226,8 +88222,8 @@ qvV tMn sFi cHG -bOB -hOx +snZ +xgx dfk uyf edN @@ -88238,7 +88234,7 @@ hYx eMf iev sus -fBy +sly nxF sVY cyk @@ -88460,7 +88456,7 @@ jXu jXu jXu jXu -nNE +alA lpS lpS lpS @@ -88483,19 +88479,19 @@ bDn xzx hIp qCS -oFI -hOx -hUj -kUv +bJX +xgx +rzo +quT iev -ood -yaH -yaH -rQi +gPN +ebd +ebd +jBy iev iev -xBO -naX +bBy +qZO pYn sVY psr @@ -89501,7 +89497,7 @@ aaf jXu sxn ciE -vGW +dUd rtz fpV tQp @@ -90618,7 +90614,7 @@ gwS oxT sEE hrG -utj +lPB vQg gYU pIs @@ -90773,7 +90769,7 @@ wQj jXu jXu jXu -pdp +fOB jXu aaa rlU @@ -97490,7 +97486,7 @@ lNH qXF qXF aMB -uUR +mvZ duI jnt pOK @@ -98833,7 +98829,7 @@ aHi hrh txG eKP -jRL +uBG kXG svS ove @@ -117068,7 +117064,7 @@ rDf uhs fjd jlU -nEq +ouo sZN msR xkv diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 7fa13857a70ff..973e32ebff3e6 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -56,6 +56,12 @@ "ak" = ( /turf/closed/mineral/random/volcanic, /area/lavaland/surface/outdoors/unexplored/danger) +"al" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "am" = ( /obj/structure/sign/poster/official/random/directional/west, /turf/open/misc/asteroid/basalt/lava_land_surface, @@ -82,6 +88,13 @@ /obj/item/clothing/glasses/meson, /turf/open/floor/iron/dark, /area/mine/storage/public) +"ar" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/item/reagent_containers/cup/bucket/wooden, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "av" = ( /obj/machinery/computer/arcade/orion_trail{ dir = 4 @@ -197,6 +210,9 @@ }, /turf/open/floor/plating, /area/mine/maintenance/production) +"bF" = ( +/turf/closed/wall/mineral/iron, +/area/mine/lobby/raptor) "bH" = ( /obj/structure/table, /obj/item/book/manual/chef_recipes{ @@ -237,6 +253,13 @@ }, /turf/open/floor/iron/textured_large, /area/mine/lounge) +"bN" = ( +/turf/open/misc/ashplanet/ash, +/area/lavaland/surface/outdoors) +"bO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "bQ" = ( /obj/structure/stone_tile/cracked{ dir = 8 @@ -343,12 +366,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/mine/maintenance/service) -"ct" = ( -/obj/structure/railing/wooden_fence{ - dir = 6 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "cw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -430,6 +447,13 @@ dir = 4 }, /area/mine/lounge) +"cP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva) "cQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/south, @@ -519,6 +543,20 @@ /obj/structure/lattice/catwalk/mining, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"dl" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) +"dn" = ( +/obj/structure/table/wood, +/obj/item/knife, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "dq" = ( /obj/structure/stone_tile{ dir = 4 @@ -628,6 +666,18 @@ /obj/item/soap/homemade, /turf/open/floor/iron/freezer, /area/mine/laborcamp) +"eg" = ( +/obj/machinery/suit_storage_unit/mining, +/obj/effect/turf_decal/trimline/brown/filled/line{ + 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/smooth_edge{ + dir = 8 + }, +/area/mine/eva) "eo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -677,6 +727,13 @@ "eA" = ( /turf/closed/wall, /area/mine/maintenance/public/south) +"eB" = ( +/obj/structure/lattice/catwalk/mining, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "eC" = ( /obj/machinery/shower/directional/west, /obj/machinery/door/window/right/directional/west, @@ -733,6 +790,12 @@ /obj/structure/sign/poster/official/work_for_a_future/directional/west, /turf/open/floor/iron/smooth, /area/mine/laborcamp/quarters) +"eU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "eW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/port_gen/pacman{ @@ -794,6 +857,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) +"fn" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Raptor Ranch External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) "fo" = ( /obj/structure/closet/crate, /obj/structure/window/spawner/directional/west, @@ -809,6 +879,12 @@ /obj/item/seeds/sunflower, /turf/open/floor/iron/dark, /area/mine/laborcamp) +"ft" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "fv" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/tile/bar/opposingcorners{ @@ -1062,6 +1138,13 @@ }, /turf/open/floor/carpet/royalblue, /area/mine/living_quarters) +"gG" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "gI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -1112,6 +1195,10 @@ }, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"gR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "gU" = ( /obj/machinery/conveyor{ dir = 6; @@ -1297,15 +1384,19 @@ /obj/structure/stone_tile, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"hM" = ( -/turf/closed/wall/mineral/wood/nonmetal, -/area/lavaland/surface) "hR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, /area/mine/maintenance/living/north) +"hS" = ( +/obj/structure/chair/sofa/corner{ + dir = 8; + color = "#AA4A44" + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "hV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -1398,10 +1489,6 @@ /obj/item/clothing/glasses/meson, /turf/open/floor/iron/dark, /area/mine/storage/public) -"il" = ( -/obj/item/flashlight/lantern/on, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "io" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1474,6 +1561,10 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) +"iI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) "iN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1506,6 +1597,12 @@ dir = 1 }, /area/mine/living_quarters) +"ja" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "jc" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1598,6 +1695,13 @@ dir = 1 }, /area/mine/laborcamp) +"jC" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "jD" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt, @@ -1636,6 +1740,9 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"jM" = ( +/turf/open/misc/ashplanet/rocky, +/area/lavaland/surface/outdoors) "jN" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 @@ -1674,12 +1781,11 @@ dir = 8 }, /area/mine/production) -"jX" = ( -/obj/structure/railing/wooden_fence{ - dir = 1 - }, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +"jZ" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lantern/on, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "ka" = ( /obj/structure/table, /obj/machinery/newscaster/directional/north, @@ -1690,9 +1796,37 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) +"kd" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/turf/open/floor/iron/dark/textured_large, +/area/mine/production) +"ke" = ( +/obj/effect/spawner/random/food_or_drink/donkpockets, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "kg" = ( /turf/closed/wall/r_wall, /area/mine/laborcamp) +"kh" = ( +/obj/machinery/smartfridge/drying/rack, +/obj/item/food/cheese/firm_cheese, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) +"kj" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "kk" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -1851,6 +1985,12 @@ /obj/machinery/mining_weather_monitor/directional/west, /turf/open/floor/iron/checker, /area/mine/cafeteria) +"kS" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "kV" = ( /obj/machinery/atmospherics/components/tank/air{ dir = 8 @@ -1941,12 +2081,16 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) -"lt" = ( -/obj/structure/railing/wooden_fence{ - dir = 5 +"lu" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "lv" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -2101,6 +2245,12 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"lU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "lV" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -2183,17 +2333,6 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"mk" = ( -/obj/structure/table/wood, -/obj/item/raptor_dex{ - pixel_y = 13 - }, -/obj/item/raptor_dex{ - pixel_y = 7 - }, -/obj/item/raptor_dex, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "ml" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -2459,6 +2598,13 @@ }, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"na" = ( +/obj/structure/lattice/catwalk/mining, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "nb" = ( /obj/structure/stone_tile/cracked{ dir = 8 @@ -2509,6 +2655,10 @@ }, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"nh" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "ni" = ( /obj/machinery/power/port_gen/pacman{ anchored = 1 @@ -2651,6 +2801,10 @@ dir = 1 }, /area/mine/laborcamp/security) +"oa" = ( +/obj/machinery/airalarm/directional/north, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "oc" = ( /obj/machinery/power/terminal{ dir = 4 @@ -2756,6 +2910,12 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"oD" = ( +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "oI" = ( /obj/structure/bed, /obj/effect/decal/cleanable/dirt, @@ -2801,6 +2961,13 @@ /obj/structure/sign/poster/contraband/random/directional/west, /turf/open/floor/plating, /area/mine/laborcamp) +"oV" = ( +/obj/structure/chair/sofa/middle{ + dir = 1; + color = "#AA4A44" + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "pa" = ( /obj/structure/stone_tile{ dir = 1 @@ -2840,6 +3007,10 @@ /obj/effect/spawner/random/trash/hobo_squat, /turf/open/floor/plating, /area/mine/maintenance/public/south) +"ph" = ( +/obj/structure/flora/ash/fireblossom, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "pm" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -2967,6 +3138,13 @@ /obj/structure/sign/poster/official/cleanliness/directional/north, /turf/open/floor/iron/freezer, /area/mine/laborcamp/quarters) +"pN" = ( +/obj/structure/chair/sofa/corner{ + dir = 1; + color = "#AA4A44" + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "pO" = ( /obj/machinery/shower/directional/south, /obj/machinery/door/window/left/directional/south, @@ -3059,11 +3237,9 @@ }, /area/mine/laborcamp/quarters) "qi" = ( -/obj/structure/railing/wooden_fence{ - dir = 4 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "qo" = ( /obj/machinery/door/airlock/glass{ name = "Equipment Storage" @@ -3101,6 +3277,14 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"qu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "qw" = ( /obj/structure/bed, /obj/effect/decal/cleanable/dirt, @@ -3132,6 +3316,12 @@ }, /turf/open/floor/iron/dark, /area/mine/laborcamp/security) +"qC" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "qH" = ( /obj/machinery/door/airlock{ id_tag = "miningbathroomprivate"; @@ -3302,11 +3492,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/service) -"sa" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lantern/on, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "se" = ( /turf/open/floor/iron/dark/textured_large, /area/mine/eva) @@ -3357,6 +3542,12 @@ dir = 8 }, /area/mine/medical) +"sp" = ( +/obj/machinery/camera/autoname/directional/north{ + network = list("mine") + }, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "st" = ( /obj/structure/chair/stool/directional/north, /obj/effect/decal/cleanable/dirt, @@ -3420,10 +3611,6 @@ "sO" = ( /turf/open/floor/plating, /area/mine/maintenance/service) -"sQ" = ( -/obj/structure/ore_container/food_trough/raptor_trough, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "sR" = ( /obj/machinery/light/small/directional/west, /obj/effect/decal/cleanable/dirt, @@ -3477,6 +3664,10 @@ }, /turf/open/floor/iron/dark, /area/mine/mechbay) +"tb" = ( +/obj/structure/ore_container/food_trough/raptor_trough, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "tc" = ( /obj/structure/bed{ dir = 4 @@ -3675,10 +3866,6 @@ }, /turf/open/floor/iron/white/smooth_edge, /area/mine/cafeteria) -"uw" = ( -/obj/effect/spawner/random/lavaland_mob/raptor, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "ux" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm1"; @@ -3704,6 +3891,12 @@ /obj/effect/turf_decal/sand/plating/volcanic, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"uF" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "uI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3723,6 +3916,13 @@ dir = 4 }, /area/mine/lounge) +"uO" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "uT" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/components/unary/passive_vent/layer2{ @@ -3836,6 +4036,12 @@ /obj/machinery/mining_weather_monitor/directional/north, /turf/open/floor/iron/dark, /area/mine/laborcamp/security) +"vo" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "vp" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, @@ -3884,6 +4090,12 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/mine/mechbay) +"vG" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/marker_beacon/purple, +/obj/effect/turf_decal/sand/plating/volcanic, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "vI" = ( /obj/item/bedsheet/blue/double{ dir = 4 @@ -4108,6 +4320,11 @@ dir = 1 }, /area/mine/mechbay) +"xb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "xh" = ( /obj/structure/railing/corner{ dir = 8 @@ -4126,6 +4343,12 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron, /area/mine/cafeteria) +"xp" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "xr" = ( /obj/structure/sink/directional/east, /obj/item/reagent_containers/cup/bucket, @@ -4207,6 +4430,31 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron, /area/mine/cafeteria) +"xM" = ( +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = -1; + pixel_x = 5 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9; + pixel_x = 8 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9; + pixel_x = 2 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?" + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "xN" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -4249,6 +4497,13 @@ dir = 1 }, /area/mine/storage/public) +"xY" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "yc" = ( /obj/docking_port/stationary{ dir = 2; @@ -4315,6 +4570,10 @@ /obj/effect/turf_decal/siding/wideplating_new, /turf/open/floor/iron/checker, /area/mine/laborcamp) +"yo" = ( +/obj/effect/spawner/random/lavaland_mob/raptor, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "yp" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/cable, @@ -4371,6 +4630,14 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) +"yP" = ( +/obj/structure/easel, +/obj/item/canvas/fortyfive_twentyseven, +/obj/item/canvas/thirtysix_twentyfour, +/obj/item/canvas/twentythree_nineteen, +/obj/item/paint_palette, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "yR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4412,10 +4679,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/plating, /area/mine/maintenance/public/south) -"ze" = ( -/obj/effect/spawner/random/lavaland_mob/raptor, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "zf" = ( /obj/machinery/door/airlock{ name = "Restroom" @@ -4451,6 +4714,13 @@ }, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"zn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "zq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -4472,10 +4742,6 @@ /obj/item/cigbutt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) -"zs" = ( -/obj/structure/railing/wooden_fence, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "zw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4494,6 +4760,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/living/north) +"zB" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "zD" = ( /obj/effect/turf_decal/loading_area{ dir = 1 @@ -4594,6 +4864,11 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Ak" = ( +/obj/structure/bed, +/obj/effect/spawner/random/bedsheet, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "Am" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -4659,6 +4934,12 @@ }, /turf/open/floor/iron/dark, /area/mine/laborcamp/security) +"AM" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "AN" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_edge, @@ -4677,6 +4958,13 @@ /obj/effect/spawner/random/food_or_drink/booze, /turf/open/floor/iron/white, /area/mine/cafeteria) +"AW" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "AX" = ( /turf/open/floor/plating, /area/mine/laborcamp/security/maintenance) @@ -4745,6 +5033,11 @@ /obj/effect/turf_decal/sand/plating/volcanic, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"BQ" = ( +/obj/item/canvas/twentythree_nineteen, +/obj/structure/easel, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "BR" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, @@ -4811,12 +5104,6 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) -"Cv" = ( -/obj/structure/railing/wooden_fence{ - dir = 5 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "Cz" = ( /obj/machinery/door/airlock/medical/glass{ name = "Infirmary" @@ -4826,6 +5113,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white, /area/mine/laborcamp/production) +"CA" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "CB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -4881,6 +5174,12 @@ dir = 1 }, /area/mine/living_quarters) +"CL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "CM" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark/textured_large, @@ -4906,6 +5205,12 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/plating, /area/mine/maintenance/public/north) +"CT" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "CU" = ( /obj/structure/toilet{ dir = 8; @@ -4915,6 +5220,11 @@ /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/mine/living_quarters) +"CV" = ( +/obj/structure/marker_beacon/purple, +/obj/effect/turf_decal/sand/plating/volcanic, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "CX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4991,12 +5301,6 @@ "Dz" = ( /turf/closed/wall, /area/mine/medical) -"DB" = ( -/obj/structure/railing/wooden_fence{ - dir = 8 - }, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "DF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5008,6 +5312,17 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/textured_large, /area/mine/cafeteria) +"DJ" = ( +/obj/structure/table/wood, +/obj/item/raptor_dex{ + pixel_y = 13 + }, +/obj/item/raptor_dex{ + pixel_y = 7 + }, +/obj/item/raptor_dex, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "DK" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -5021,6 +5336,10 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/plating, /area/mine/maintenance/public/north) +"DQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "DV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5070,6 +5389,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/mine/maintenance/living/north) +"Eh" = ( +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) +"Em" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "Eo" = ( /obj/machinery/conveyor{ id = "mining_disposals" @@ -5221,6 +5552,17 @@ "Ff" = ( /turf/open/floor/glass/reinforced, /area/mine/lounge) +"Fh" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) +"Fl" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/marker_beacon/purple, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "Fn" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -5281,6 +5623,12 @@ "FH" = ( /turf/closed/wall, /area/lavaland/surface/outdoors) +"FJ" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "FL" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/west, @@ -5310,6 +5658,9 @@ dir = 8 }, /area/mine/lounge) +"FV" = ( +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "FW" = ( /obj/structure/stone_tile{ dir = 1 @@ -5338,6 +5689,16 @@ }, /turf/open/floor/iron/smooth, /area/mine/laborcamp/production) +"Gi" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"Gk" = ( +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "Gl" = ( /obj/item/reagent_containers/cup/glass/colocup, /turf/open/misc/asteroid/basalt/lava_land_surface, @@ -5401,12 +5762,6 @@ dir = 8 }, /area/mine/production) -"GG" = ( -/obj/structure/railing/wooden_fence{ - dir = 9 - }, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "GH" = ( /obj/machinery/door/airlock/glass{ name = "Arrival Lounge" @@ -5416,6 +5771,10 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron, /area/mine/lounge) +"GJ" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "GL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5534,6 +5893,13 @@ dir = 1 }, /area/mine/lounge) +"HC" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "HD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5543,6 +5909,14 @@ }, /turf/open/floor/iron/dark, /area/mine/laborcamp/security) +"HE" = ( +/obj/structure/bookcase/random/reference, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "HF" = ( /obj/structure/stone_tile{ dir = 1 @@ -5566,6 +5940,10 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/dark, /area/mine/maintenance/service/comms) +"HJ" = ( +/obj/structure/railing, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "HN" = ( /obj/structure/stone_tile/cracked{ dir = 8 @@ -5600,6 +5978,9 @@ dir = 8 }, /area/mine/mechbay) +"HQ" = ( +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "HS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5642,6 +6023,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/labor) +"Ig" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Raptor Ranch External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) +"Ih" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "Ij" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5859,6 +6251,9 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/mine/laborcamp/production) +"Jy" = ( +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Jz" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/railing{ @@ -5978,6 +6373,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/service) +"JT" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "JV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor_switch/oneway{ @@ -6082,6 +6486,10 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Ku" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/mine/lobby/raptor) "Kv" = ( /obj/machinery/mineral/processing_unit_console, /turf/closed/wall, @@ -6137,6 +6545,16 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) +"KN" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"KP" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "KV" = ( /obj/structure/table, /obj/machinery/light/directional/east, @@ -6406,6 +6824,13 @@ dir = 8 }, /area/mine/lounge) +"Mm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Mr" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -6541,6 +6966,17 @@ /obj/effect/turf_decal/sand/plating/volcanic, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"Ng" = ( +/obj/structure/table/wood, +/obj/item/soap/deluxe{ + pixel_y = 11 + }, +/obj/item/soap/deluxe{ + pixel_y = 6 + }, +/obj/item/soap/deluxe, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "Nh" = ( /obj/structure/ore_box, /obj/effect/turf_decal/trimline/yellow/filled/arrow_cw{ @@ -6563,6 +6999,11 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/mine/mechbay) +"Nl" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/railing, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "Nn" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6640,12 +7081,6 @@ /obj/machinery/computer/order_console/mining, /turf/open/floor/iron/dark, /area/mine/production) -"NK" = ( -/obj/structure/railing/wooden_fence{ - dir = 1 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "NL" = ( /obj/structure/railing, /obj/structure/lattice/catwalk/mining, @@ -6655,6 +7090,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/laborcamp/security/maintenance) +"NQ" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "NR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -6664,9 +7103,6 @@ dir = 1 }, /area/mine/laborcamp/production) -"NS" = ( -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "NT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6804,6 +7240,19 @@ }, /turf/open/floor/iron/dark, /area/mine/laborcamp) +"OP" = ( +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) +"OQ" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "OS" = ( /obj/structure/closet/secure_closet/brig, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6814,17 +7263,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/textured_large, /area/mine/cafeteria) -"OW" = ( -/obj/structure/table/wood, -/obj/item/soap/deluxe{ - pixel_y = 11 - }, -/obj/item/soap/deluxe{ - pixel_y = 6 - }, -/obj/item/soap/deluxe, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "OZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6834,6 +7272,13 @@ dir = 1 }, /area/mine/mechbay) +"Pa" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "Pc" = ( /obj/structure/closet/crate/grave, /turf/open/misc/asteroid/basalt/lava_land_surface, @@ -7027,6 +7472,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp/production) +"Qh" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "Qi" = ( /obj/machinery/door/airlock/research/glass{ name = "Mining Station Mech Bay" @@ -7157,6 +7608,12 @@ /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron/dark, /area/mine/eva) +"Rc" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/wood/fifty, +/obj/item/lighter, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Rd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7181,6 +7638,25 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) +"Rg" = ( +/obj/structure/table/wood, +/obj/item/plate{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/plate{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/item/reagent_containers/cup/glass/mug/tea{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "Rh" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 9 @@ -7194,6 +7670,10 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Rn" = ( +/obj/structure/tank_holder/extinguisher, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Ro" = ( /obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -7239,6 +7719,15 @@ /obj/structure/closet/toolcloset, /turf/open/floor/plating, /area/mine/maintenance/service) +"Rz" = ( +/obj/structure/table/wood, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab{ + pixel_x = 6; + pixel_y = 5 + }, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "RB" = ( /obj/structure/railing/corner{ dir = 1 @@ -7273,6 +7762,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) +"RI" = ( +/obj/effect/spawner/random/lavaland_mob/raptor, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "RL" = ( /obj/structure/disposalpipe/segment, /obj/structure/lattice/catwalk, @@ -7425,6 +7918,47 @@ }, /turf/open/floor/iron/dark/textured_large, /area/mine/laborcamp/security) +"SI" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) +"SJ" = ( +/obj/structure/rack, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?" + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9; + pixel_x = 2 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 6 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 6; + pixel_x = 9 + }, +/obj/item/crowbar/large, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "SL" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -7435,6 +7969,13 @@ }, /turf/open/floor/iron/smooth_large, /area/mine/laborcamp) +"SN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "SO" = ( /obj/structure/chair/stool{ dir = 8 @@ -7516,12 +8057,6 @@ dir = 4 }, /area/mine/production) -"Tt" = ( -/obj/structure/railing/wooden_fence{ - dir = 10 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "Tu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7562,6 +8097,13 @@ /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron/dark, /area/mine/production) +"TN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "TQ" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -7706,9 +8248,7 @@ /turf/open/floor/iron/freezer, /area/mine/living_quarters) "UI" = ( -/obj/structure/railing/wooden_fence{ - dir = 4 - }, +/obj/structure/flora/ash/stem_shroom, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "UK" = ( @@ -7788,12 +8328,6 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"Vd" = ( -/obj/structure/railing/wooden_fence{ - dir = 9 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "Ve" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_large, @@ -7937,12 +8471,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/labor) -"VP" = ( -/obj/structure/railing/wooden_fence{ - dir = 8 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "VS" = ( /obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, @@ -7977,6 +8505,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/storage) +"Wf" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "Wg" = ( /obj/structure/girder, /obj/effect/turf_decal/sand/plating/volcanic, @@ -8001,6 +8533,10 @@ dir = 1 }, /area/mine/laborcamp/security) +"Ws" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "Wt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment, @@ -8201,6 +8737,11 @@ /obj/structure/lattice/catwalk/mining, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"Xx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "Xy" = ( /obj/structure/chair/stool/directional/south, /obj/effect/decal/cleanable/dirt, @@ -8258,7 +8799,7 @@ /area/mine/laborcamp) "XM" = ( /obj/structure/sign/directions/evac/directional/south{ - pixel_x = 32; + pixel_x = -32; pixel_y = 0 }, /turf/open/floor/iron/dark/textured_large, @@ -8353,6 +8894,8 @@ /area/mine/lounge) "Yg" = ( /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/textured_large, /area/mine/eva) "Yk" = ( @@ -8416,6 +8959,15 @@ dir = 1 }, /area/mine/laborcamp/quarters) +"Yz" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/effect/turf_decal/sand/plating/volcanic, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) +"YE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "YF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8424,6 +8976,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/service) +"YG" = ( +/obj/structure/fireplace, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "YJ" = ( /turf/open/floor/plating, /area/mine/maintenance/labor) @@ -8464,6 +9020,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp/production) +"YZ" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "Zb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41748,8 +42310,8 @@ eA eA pU pU -aj -aj +pU +pU aj aj aj @@ -41998,16 +42560,16 @@ MS QP LE os -SP +fn +Eh +dl +pU +BP +pU +bN +jM pU -ai -ai -ai pU -aj -aj -aj -aj aj aj "} @@ -42255,16 +42817,16 @@ JZ PR ib os -SP +iI +iI +iI pU pU -ai -ai +jM +BP +jM +pU pU -aj -aj -aj -aj aj aj "} @@ -42515,12 +43077,12 @@ Jt Zq pU pU -ai pU -aj -aj -aj -aj +pU +jM +jM +pU +pU aj aj aj @@ -42773,11 +43335,11 @@ Zq pU pU aj -aj -aj pU -aj -aj +pU +CV +BP +CV aj aj aj @@ -43030,11 +43592,11 @@ pU pU aj aj -pU -pU -aj aj aj +Gi +tF +AW aj aj aj @@ -43289,9 +43851,9 @@ aj aj aj aj -aj -aj -pU +gG +tF +HC aj aj aj @@ -43546,9 +44108,9 @@ aj aj aj pU -aj -pU -pU +CV +BP +CV aj aj aj @@ -43803,9 +44365,9 @@ aj aj aj pU -ad -ad -ai +pU +pU +pU aj aj aj @@ -44059,11 +44621,11 @@ aj aj aj pU -ai -ad -ad -ai -aj +pU +pU +BP +pU +pU aj aj "} @@ -44315,12 +44877,12 @@ aj aj aj aj +aj +aj +bN +bN pU -ad -ad -ad -ad -pU +aj aj aj "} @@ -44573,13 +45135,13 @@ aj aj aj aj -ad -ad -ad -ad +pU +pU +jM pU aj aj +aj "} (141,1,1) = {" aa @@ -44831,10 +45393,10 @@ aj aj aj pU -ad -ad -ad -ai +BP +jM +pU +pU aj aj "} @@ -45088,11 +45650,11 @@ aj aj aj pU -ai -ad -ad -ad -aj +bN +pU +pU +pU +pU aj "} (143,1,1) = {" @@ -45344,10 +45906,10 @@ aj aj aj aj +aj +pU pU pU -ai -ai pU aj aj @@ -45603,9 +46165,9 @@ aj aj aj aj -pU -pU -aj +CV +BP +CV aj aj "} @@ -45860,9 +46422,9 @@ aj aj aj aj -aj -aj -aj +Gi +tF +AW aj aj "} @@ -46116,10 +46678,10 @@ aj aj aj aj -pU -aj -aj aj +gG +tF +HC aj aj "} @@ -46372,11 +46934,11 @@ pU aj aj aj -aj pU -ai -aj -aj +pU +CV +BP +CV aj aj "} @@ -46628,12 +47190,12 @@ pU pU aj aj -aj pU -ad -ad pU -aj +pU +pU +pU +pU aj aj "} @@ -46882,16 +47444,16 @@ BP BP Lw pU -pU -aj -aj -aj -aj -ai -ad aj aj aj +pU +pU +bN +BP +jM +pU +pU aj "} (150,1,1) = {" @@ -47139,14 +47701,14 @@ BP BP Lw pU -pU -aj -aj aj aj aj pU -aj +jM +jM +jM +jM aj aj aj @@ -47381,7 +47943,7 @@ lb Yl Le Le -NU +kd Le Le BP @@ -47396,14 +47958,14 @@ BP BP Lw pU -pU -aj -aj aj aj aj pU -aj +BP +jM +bN +pU aj aj aj @@ -47637,9 +48199,9 @@ Ra oh pK NU -pU -aj -aj +BP +BP +BP JD BP BP @@ -47656,11 +48218,11 @@ pU pU aj aj -aj -aj -aj -aj -aj +pU +bN +bN +pU +pU aj aj aj @@ -47894,9 +48456,9 @@ Kc mT pK pU -aj -aj -pU +BP +Yz +BP JD BP BP @@ -47913,12 +48475,12 @@ pU pU aj aj -aj -aj pU pU -aj -aj +pU +pU +pU +pU aj aj "} @@ -48151,9 +48713,9 @@ Yg li dK pU -aj -aj -pU +vG +BP +vG zk mc mc @@ -48170,14 +48732,14 @@ pU pU aj aj -aj pU +CV +BP +CV pU aj aj aj -aj -aj "} (155,1,1) = {" aa @@ -48408,9 +48970,9 @@ Yg TQ dK pU -aj -aj -pU +Pa +BP +kj pU pU pU @@ -48428,9 +48990,9 @@ pU aj aj aj -pU -aj -aj +Gi +tF +AW aj aj aj @@ -48661,13 +49223,13 @@ lb pK Ob IL -IL +eg KV pK aj -aj -aj -aj +yV +BP +Nl pU pU pU @@ -48685,9 +49247,9 @@ aj aj aj aj -aj -aj -aj +yV +tF +NL aj aj aj @@ -48918,13 +49480,13 @@ NU pK pK dK -dK +cP pK pK aj -aj -aj -aj +yV +tF +NL aj aj pU @@ -48942,9 +49504,9 @@ aj aj aj aj -aj -aj -aj +gG +tF +HC aj aj aj @@ -49175,13 +49737,13 @@ NU ai pU pU +ft pU aj aj -aj -pU -pU -aj +yV +tF +NL aj aj aj @@ -49197,11 +49759,11 @@ aj aj pU pU -pU -pU -pU -pU -pU +aj +aj +CV +BP +CV pU pU aj @@ -49432,37 +49994,37 @@ pU pU pU pU -aj +na aj aj pU -ad -ad +yV +tF +NL +aj +aj pU aj aj aj aj +pU +aj +aj aj aj pU pU +pU +pU aj +pU +pU +pU +pU aj aj aj -GG -DB -DB -hM -hM -hM -hM -hM -hM -hM -hM -hM "} (160,1,1) = {" aa @@ -49689,15 +50251,16 @@ pU aj aj aj +na aj -aj -pU -pU -pU pU aj +yV +tF +NL aj pU +pU aj aj aj @@ -49706,20 +50269,19 @@ aj aj aj aj -aj pU -jX pU pU -NK -sQ -NS -zs -NS -NS -sQ -NS -hM +pU +jM +jM +jM +pU +pU +pU +aj +aj +aj "} (161,1,1) = {" aa @@ -49946,37 +50508,37 @@ aj aj aj aj +na aj aj aj -pU -aj -aj -aj -aj +gG +tF +HC aj aj aj aj aj +pU aj aj aj aj aj pU -jX pU pU -NK -il -NS -zs -NS -NS -il -NS -hM +jM +bN +jM +BP +pU +pU +pU +aj +aj +pU "} (162,1,1) = {" aa @@ -50203,13 +50765,13 @@ aj aj aj aj +na aj aj aj -aj -aj -aj -aj +Fl +BP +Fl pU aj aj @@ -50220,20 +50782,20 @@ aj aj aj aj -aj pU -jX pU pU -NK -NS -NS -zs -NS -NS -NS -NS -hM +jM +BP +bN +jM +pU +pU +pU +aj +aj +pU +pU "} (163,1,1) = {" aa @@ -50460,37 +51022,37 @@ ai ai pU pU -pU -pU -aj +na aj aj aj +BP +BP +BP pU pU aj aj -aj -aj -aj -aj pU -aj pU pU pU -jX +aj pU pU -Cv -qi -NS -ct -NS -NS -qi +pU +jM +jM +bN +jM qi -hM +pU +pU +pU +aj +aj +pU +pU "} (164,1,1) = {" aa @@ -50717,37 +51279,37 @@ ai ai ai ai +ft +na +na +na +eB +BP +BP +BP +BP pU pU pU pU -aj -aj pU -aj -aj -aj -pU -aj -aj -aj pU pU +Gk +BQ +AM pU +jM +jM +jM +jM pU pU +aj +aj +aj pU -ze pU -NS -NS -NS -NS -NS -uw -NS -NS -hM "} (165,1,1) = {" aa @@ -50946,266 +51508,8 @@ ZY ZY ZY ZY -pU -pU -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -pU -pU -pU -pU -pU -pU -pU -ai -ai -ai -ai -ai -pU -pU -ai -ai -ai -ai -ai -pU -pU -pU -pU -aj -aj -aj -aj -pU -pU -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU -NS -mk -sa -NS -NS -NS -OW -sa -hM -"} -(166,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -pU -pU -pU -pU -pU -wv -ad -ad -pU -pU -aj -aj -aj -aj -pU -pU -pU -aj -pU -aj -pU -pU -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY +pU +pU ZY ZY ZY @@ -51221,49 +51525,50 @@ pU pU pU pU +ai +ai +ai +ai +ai pU pU -pU -pU -pU -aj -aj -aj -aj +ai +ai +ai ai ai pU pU pU -pU -aj -aj -aj -aj +na +BP +BP +BP +BP +Fl pU pU pU pU pU +Gk +ph +Gk pU pU pU pU +jM pU pU +aj +aj +aj +aj pU pU -NS -NS -uw -NS -NS -NS -NS -NS -hM "} -(167,1,1) = {" +(166,1,1) = {" aa aa aa @@ -51280,20 +51585,20 @@ pU pU pU pU -ai -ai -ai -ai +wv +ad +ad +pU pU aj aj aj +aj pU pU pU aj -aj -aj +pU aj pU pU @@ -51471,8 +51776,6 @@ ZY ZY ZY ZY -ZY -pU pU pU pU @@ -51482,45 +51785,47 @@ pU pU pU pU -aj -aj -aj -aj -aj -aj -aj -pU -pU pU pU pU aj aj +aj +aj +ai +ai +bF +bF +Ih +zn +Ih +bF +bF +bF +Gk pU pU pU pU pU pU +Gk pU +qi pU +BP pU pU pU -jX -pU +aj +aj +aj +aj +aj +aj pU -Vd -VP -NS -Tt -NS -NS -VP -VP -hM "} -(168,1,1) = {" +(167,1,1) = {" aa aa aa @@ -51536,7 +51841,7 @@ pU pU pU pU -Ft +pU ai ai ai @@ -51545,9 +51850,9 @@ pU aj aj aj -aj -aj -aj +pU +pU +pU aj aj aj @@ -51710,7 +52015,7 @@ fQ fQ fQ fQ -fQ +ZY ZY ZY ZY @@ -51745,14 +52050,19 @@ aj aj aj aj -aj -aj -pU -pU -pU -pU +bF +bF +SJ +kh +eU +OP +ke +dn +Ih +ph +Gk pU -aj +BP pU pU pU @@ -51763,21 +52073,16 @@ pU pU pU pU +aj +aj +aj pU -jX pU +aj +aj pU -NK -NS -NS -zs -NS -NS -NS -NS -hM "} -(169,1,1) = {" +(168,1,1) = {" aa aa aa @@ -51793,15 +52098,15 @@ pU pU pU pU -ad +Ft ai ai ai ai pU -pU -pU -pU +aj +aj +aj aj aj aj @@ -51978,8 +52283,7 @@ ZY ZY ZY ZY -fQ -fQ +ZY ZY ZY ZY @@ -51996,45 +52300,46 @@ pU pU pU pU -ai -ai -ai pU aj aj aj aj +aj +aj +bF +Jy +xY +YE +eU +gR +CL +Rz +Ih +Gk +Gk +Gk pU pU pU +BP +bN +bN +jM pU pU pU +aj +aj +aj pU pU pU -pU -pU -pU -pU -pU -pU -pU -pU -jX -pU -pU -NK -il -NS -zs -NS -NS -il -NS -hM +aj +aj +aj "} -(170,1,1) = {" +(169,1,1) = {" aa aa aa @@ -52049,13 +52354,13 @@ aa pU pU pU -ad +pU ad ai ai ai ai -ad +pU pU pU pU @@ -52225,137 +52530,128 @@ fQ fQ fQ fQ -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -fQ -fQ -ZY -ZY -ZY -ZY -ZY -ZY -ZY -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -ai -ai -ai -ai -pU -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -jX -pU -pU -NK -sQ -NS -zs -NS -NS -sQ -NS -hM -"} -(171,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -pU -pU -pU -pU -ad -ai -ai -ai -ai -ad -ad -pU -pU -aj -aj -aj -aj -aj -aj -aj -pU -pU -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +fQ +fQ +ZY +ZY +ZY +ZY +ZY +ZY +ZY +pU +pU +pU +pU +pU +pU +pU +pU +pU +ai +ai +ai +pU +aj +aj +bF +yP +lu +lU +Mm +Rg +jC +bF +bF +pU +Gk +pU +pU +pU +pU +jM +bN +jM +BP +pU +pU +pU +aj +aj +aj +pU +pU +aj +aj +aj +aj +"} +(170,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +pU +pU +pU +ad +ad +ai +ai +ai +ai +ad +pU +pU +pU +aj +aj +aj +aj +aj +aj +aj +pU +pU +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ fQ fQ fQ @@ -52485,10 +52781,6 @@ fQ fQ fQ fQ -ZY -ZY -ZY -ZY fQ fQ fQ @@ -52502,6 +52794,21 @@ ZY ZY ZY ZY +ZY +ZY +ZY +fQ +fQ +ZY +ZY +ZY +ZY +ZY +ZY +ZY +pU +pU +pU pU pU pU @@ -52509,46 +52816,44 @@ pU pU pU pU -aj -aj -aj -aj ai ai ai ai pU +bF +Jy +uO +FV +eU +SN +Jy +bF pU pU pU +qi pU +BP pU +jM +bN pU +UI pU pU pU pU -pU -pU -pU -pU -pU -pU -pU -lt -UI -UI -hM -hM -hM -hM -hM -hM -hM -hM -hM +aj +aj +aj +aj +aj +aj +aj +aj "} -(172,1,1) = {" +(171,1,1) = {" aa aa aa @@ -52742,10 +53047,10 @@ fQ fQ fQ fQ -fQ -fQ -fQ -fQ +ZY +ZY +ZY +ZY fQ fQ fQ @@ -52770,42 +53075,42 @@ aj aj aj aj -aj -pU ai ai +ai +bF +sp +pN +FV +eU +JT +bF +bF +bF +Fl pU pU pU pU pU +jM pU pU +Gk +Gk +Gk +UI pU +aj pU pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +aj pU pU aj aj -aj -aj -aj -aj -aj -aj "} -(173,1,1) = {" +(172,1,1) = {" aa aa aa @@ -52817,7 +53122,7 @@ aa aa aa aa -ok +pU pU pU pU @@ -52827,7 +53132,7 @@ ai ai ai ad -pU +ad pU pU aj @@ -53009,7 +53314,6 @@ fQ fQ fQ fQ -fQ ZY ZY ZY @@ -53022,47 +53326,48 @@ pU pU pU pU +pU +pU aj aj aj aj aj -aj -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU pU +ai +bF +YG +oV +FV +xb +SN +Ig +Wf +Em +BP pU +BP pU pU pU +Fl +BP +Gk +Gk +ph +Gk +Gk pU pU pU pU pU -aj -aj -aj -aj -aj -aj -aj pU -aj pU aj aj "} -(174,1,1) = {" +(173,1,1) = {" aa aa aa @@ -53074,7 +53379,7 @@ aa aa aa aa -ad +ok pU pU pU @@ -53274,8 +53579,8 @@ ZY ZY ZY ZY -ZY -ZY +pU +pU pU pU pU @@ -53287,39 +53592,39 @@ aj aj aj aj -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +bF +Jy +hS +FV +Xx +SN +bF +bF +bF +Fl pU pU pU pU pU +BP +OQ +qC +qC +bF +Ih +Ih +bF +bF +Ih +Ih +bF +bF pU pU aj -aj -aj -aj -aj -aj -aj "} -(175,1,1) = {" +(174,1,1) = {" aa aa aa @@ -53332,15 +53637,15 @@ aa aa aa ad -ad pU pU -Si +pU +ad ai ai ai ai -yy +ad pU pU pU @@ -53524,7 +53829,6 @@ fQ fQ fQ fQ -fQ ZY ZY ZY @@ -53545,41 +53849,39 @@ aj aj aj aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +bF +oa +kS +FV +Xx +SN +KP +bF +Rn pU +Gk +Gk pU pU +Gk +Gk +CT +Gk pU +YZ +tb +HQ +HJ +HQ +HQ +tb +HQ +bF pU pU aj -aj -pU -pU -aj -aj -aj "} -(176,1,1) = {" -aa -aa -aa +(175,1,1) = {" aa aa aa @@ -53591,12 +53893,16 @@ aa aa aa aa -ok +ad +ad +pU pU +Si ai ai ai ai +yy pU pU pU @@ -53607,7 +53913,6 @@ aj aj aj aj -aj pU pU fQ @@ -53782,8 +54087,6 @@ fQ fQ fQ fQ -fQ -ZY ZY ZY ZY @@ -53802,38 +54105,40 @@ aj aj aj aj +aj +bF +Rc +qu +bO +xb +Qh +TN +bF +bF +ph +Gk pU pU +Gk +Gk +Gk +CT pU pU +YZ +GJ +HQ +HJ +HQ +HQ +GJ +HQ +Ih pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -pU -aj -aj -aj -aj aj aj "} -(177,1,1) = {" +(176,1,1) = {" aa aa aa @@ -53848,12 +54153,12 @@ aa aa aa aa +ok pU -pU -pU -ad -ad -pU +ai +ai +ai +ai pU pU pU @@ -54040,8 +54345,7 @@ fQ fQ fQ fQ -fQ -fQ +ZY ZY ZY ZY @@ -54054,43 +54358,44 @@ ZY pU pU pU +aj +aj +aj +aj +aj +bF +Ku +HE +Jy +DQ +DQ +DQ +nh +Ih +Gk +Gk pU pU pU +Gk pU +al +UI +Fl +YZ +HQ +HQ +HJ +HQ +HQ +HQ +HQ +Ih pU pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -aj -aj -aj -aj aj "} -(178,1,1) = {" +(177,1,1) = {" aa aa aa @@ -54108,8 +54413,8 @@ aa pU pU pU -pU -pU +ad +ad pU pU pU @@ -54299,7 +54604,6 @@ fQ fQ fQ fQ -fQ ZY ZY ZY @@ -54314,40 +54618,41 @@ pU pU pU pU +aj +aj +bF +bF +HE +Jy +FV +FV +Ak +zB +Ih +Gk pU pU pU pU pU pU +al pU +Gk +Fh +ja +HQ +vo +HQ +HQ +ja +ja +bF +bF pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -aj -aj -aj aj "} -(179,1,1) = {" +(178,1,1) = {" aa aa aa @@ -54362,7 +54667,6 @@ aa aa aa aa -ad pU pU pU @@ -54379,6 +54683,8 @@ aj aj aj aj +aj +pU pU fQ fQ @@ -54556,124 +54862,121 @@ fQ fQ fQ fQ -fQ -fQ -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -ZY -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -pU -aj -aj -aj -"} -(180,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HX -pU -ad -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -pU -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +pU +pU +pU +pU +pU +aj +aj +bF +bF +Ih +Ih +Ih +bF +bF +bF +Gk +pU +pU +Gk +pU +pU +pU +oD +RI +Gk +HQ +HQ +HQ +HQ +HQ +yo +HQ +HQ +HQ +Ih +pU +aj +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +pU +pU +pU +pU +pU +pU +pU +pU +pU +aj +aj +aj +aj +aj +aj +aj +pU +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ fQ fQ fQ @@ -54826,10 +55129,14 @@ ZY ZY ZY ZY +ZY pU pU pU pU +aj +aj +aj pU pU pU @@ -54839,29 +55146,27 @@ pU pU pU pU +ph +NQ pU pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +Gk +Gk +Gk +HQ +DJ +jZ +HQ +HQ +HQ +Ng +jZ +HQ +Ih aj aj -aj -aj -aj -aj -aj -pU -aj "} -(181,1,1) = {" +(180,1,1) = {" aa aa aa @@ -54873,7 +55178,9 @@ aa aa aa aa +HX pU +ad pU pU pU @@ -54887,10 +55194,8 @@ pU pU pU pU -pU -pU -pU -pU +aj +aj aj aj pU @@ -55098,27 +55403,27 @@ pU pU pU pU +Gk +Gk pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -pU -pU -pU -aj -aj +KN +Gk +Gk +Gk +HQ +HQ +yo +HQ +HQ +HQ +HQ +HQ +HQ +Ih pU aj "} -(182,1,1) = {" +(181,1,1) = {" aa aa aa @@ -55143,11 +55448,11 @@ pU pU pU pU -aj -aj -aj -aj -aj +pU +pU +pU +pU +pU aj aj pU @@ -55340,10 +55645,6 @@ ZY ZY ZY ZY -ZY -pU -pU -pU pU pU pU @@ -55360,22 +55661,26 @@ pU pU pU pU +Gk pU pU -pU -pU -aj -aj -pU -pU -pU -pU +al +Gk +Gk +FJ +SI +HQ +CA +HQ +HQ +SI +SI +bF +bF pU aj -aj -aj "} -(183,1,1) = {" +(182,1,1) = {" aa aa aa @@ -55399,7 +55704,7 @@ pU pU pU pU -aj +pU aj aj aj @@ -55616,23 +55921,23 @@ pU pU pU pU +al pU +Fl +YZ +HQ +xM +HJ +HQ +HQ +HQ +HQ +Ih pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj aj aj -pU "} -(184,1,1) = {" +(183,1,1) = {" aa aa aa @@ -55645,8 +55950,8 @@ aa aa aa pU -ad -ai +pU +pU pU pU pU @@ -55871,25 +56176,25 @@ pU pU pU pU +Gk +Gk +al pU pU +YZ +GJ +HQ +HJ +HQ +HQ +GJ +HQ +Ih pU pU pU -pU -pU -pU -pU -pU -pU -aj -aj -pU -pU -aj -aj "} -(185,1,1) = {" +(184,1,1) = {" aa aa aa @@ -55901,10 +56206,10 @@ aa aa aa aa -ad +pU ad ai -wv +pU pU pU pU @@ -55922,7 +56227,6 @@ aj aj aj pU -pU fQ fQ fQ @@ -56112,6 +56416,7 @@ ZY ZY ZY ZY +ZY pU pU pU @@ -56127,26 +56432,26 @@ pU pU pU pU +Gk +ph +Gk +CT +Ws pU +YZ +tb +HQ +HJ +HQ +HQ +tb +HQ +bF pU pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -pU -aj -aj -aj aj "} -(186,1,1) = {" +(185,1,1) = {" aa aa aa @@ -56161,7 +56466,7 @@ aa ad ad ai -ad +wv pU pU pU @@ -56368,6 +56673,7 @@ ZY ZY ZY ZY +ZY pU pU pU @@ -56383,27 +56689,26 @@ pU pU pU pU +Gk +Gk +BP +ar +uF +xp +bF +Ih +Ih +bF +bF +Ih +Ih +bF +bF pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj aj aj "} -(187,1,1) = {" +(186,1,1) = {" aa aa aa @@ -56617,7 +56922,8 @@ fQ fQ fQ fQ -fQ +ZY +ZY ZY ZY ZY @@ -56642,9 +56948,14 @@ pU pU pU pU +Fl +BP pU pU pU +Gk +pU +pU pU pU pU @@ -56652,15 +56963,9 @@ pU pU pU pU -aj -aj -aj -aj -aj -aj aj "} -(188,1,1) = {" +(187,1,1) = {" aa aa aa @@ -56675,6 +56980,7 @@ aa ad ad ai +ad pU pU pU @@ -56691,7 +56997,6 @@ aj aj aj aj -aj pU pU fQ @@ -56884,7 +57189,6 @@ ZY pU pU pU -yc pU pU pU @@ -56902,7 +57206,13 @@ pU pU pU pU +Gk +pU pU +Gk +ph +Gk +Gk pU pU pU @@ -56911,6 +57221,258 @@ pU pU aj aj +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ai +pU +pU +pU +pU +pU +pU +pU +pU +aj +aj +aj +aj +aj +aj +aj +aj +aj +pU +pU +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +ZY +ZY +ZY +ZY +ZY +ZY +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +Gk +Gk +Gk +pU +Gk +Gk +Gk +Gk +Gk +pU +pU aj aj aj @@ -57158,15 +57720,15 @@ pU pU pU pU +ph pU pU +UI +Gk +Gk +ph +Gk pU -pU -pU -pU -pU -pU -aj aj aj aj @@ -57420,8 +57982,8 @@ pU pU pU pU -pU -pU +Gk +Gk pU aj aj @@ -58430,7 +58992,7 @@ pU pU pU pU -pU +yc pU pU pU diff --git a/_maps/map_files/NSVBlueshift/Blueshift.dmm b/_maps/map_files/NSVBlueshift/Blueshift.dmm index 52216a328e9a0..1662ed843e97d 100644 --- a/_maps/map_files/NSVBlueshift/Blueshift.dmm +++ b/_maps/map_files/NSVBlueshift/Blueshift.dmm @@ -37647,6 +37647,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "hhy" = ( @@ -92218,6 +92219,7 @@ /obj/effect/landmark/navigate_destination, /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "rCH" = ( @@ -110750,10 +110752,10 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/smartfridge/drying_rack, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, +/obj/machinery/smartfridge/drying/rack, /turf/open/floor/wood, /area/station/service/chapel) "vfY" = ( @@ -112832,7 +112834,7 @@ /turf/open/floor/iron, /area/station/engineering/main) "vyB" = ( -/obj/machinery/deepfryer, +/obj/machinery/smartfridge/drying, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) "vyF" = ( diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 52b0c10a65bfc..ac39b6bb3af8b 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -10210,6 +10210,7 @@ /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/red/fourcorners, /obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/checkpoint) "cBq" = ( @@ -29795,6 +29796,7 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "hLP" = ( @@ -35061,6 +35063,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/brig) "jfs" = ( @@ -55299,6 +55302,7 @@ /obj/effect/turf_decal/tile/red/fourcorners, /obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark, /area/station/security/checkpoint) "ojM" = ( @@ -58505,7 +58509,7 @@ /area/station/science/robotics/lab) "pbr" = ( /obj/machinery/light/directional/east, -/obj/machinery/deepfryer, +/obj/machinery/smartfridge/drying, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) "pbt" = ( diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm index be9b81ba9f0c0..a389e5d09571c 100644 --- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm +++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm @@ -10,6 +10,18 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/fore) +"aaj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/break_room) "aal" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/maintenance/two, @@ -53,6 +65,16 @@ /obj/machinery/telecomms/processor/preset_one, /turf/open/floor/circuit/telecomms/server, /area/station/tcommsat/server) +"aaY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/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/diagonal, +/area/station/hallway/secondary/service) "abt" = ( /obj/machinery/shower/directional/west, /obj/structure/drain, @@ -92,17 +114,6 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron/white/smooth_large, /area/station/science/lab) -"abN" = ( -/obj/machinery/button/door/directional/north{ - id = "lawyerprivacy"; - name = "Lawyer's Privacy Control" - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 32 - }, -/obj/structure/aquarium/lawyer, -/turf/open/floor/iron/grimy, -/area/station/service/lawoffice) "abQ" = ( /turf/closed/wall, /area/station/medical/medbay/central) @@ -149,6 +160,12 @@ dir = 1 }, /area/station/engineering/main) +"acT" = ( +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/dark/corner, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "acW" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 8 @@ -283,6 +300,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) +"aeH" = ( +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "aeL" = ( /obj/machinery/status_display/evac, /turf/closed/wall/r_wall, @@ -318,32 +343,10 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"afb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "afj" = ( /obj/effect/turf_decal/tile/red/diagonal_centre, /turf/open/floor/iron/dark/diagonal, /area/station/security/office) -"afo" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/structure/closet/wardrobe/miner, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/smooth_corner{ - dir = 1 - }, -/area/station/cargo/miningdock) "aft" = ( /obj/effect/landmark/start/chaplain, /turf/open/floor/carpet/stellar, @@ -689,16 +692,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/department/science/xenobiology) -"ajR" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink/directional/west, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "ajT" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -718,6 +711,18 @@ /obj/structure/cable, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/starboard/fore) +"akj" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/dark/half, +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/mid_joiner{ + dir = 1 + }, +/obj/machinery/door/window/survival_pod/left/directional/north, +/turf/open/floor/iron/half, +/area/station/service/hydroponics) "akq" = ( /obj/machinery/computer/scan_consolenew{ dir = 4 @@ -855,15 +860,6 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"amL" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high/empty, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/lobby) "amO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -918,14 +914,6 @@ /obj/machinery/holopad, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"anI" = ( -/obj/structure/chair/sofa/corp/right{ - color = "#DE3A3A"; - dir = 4 - }, -/obj/structure/window/spawner/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "anM" = ( /obj/machinery/door/airlock/cmo{ name = "Chief Medical Officer's Quarters" @@ -1011,6 +999,9 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white/smooth_edge, /area/station/science/lab) +"aoM" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/eva_shed/port) "aoQ" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/structure/cable, @@ -1361,17 +1352,6 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating/airless, /area/station/engineering/supermatter) -"atW" = ( -/obj/machinery/vending/wardrobe/viro_wardrobe, -/obj/effect/turf_decal/trimline/dark_green/filled/line{ - dir = 10 - }, -/obj/item/toy/figure/virologist{ - pixel_y = 17 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/white, -/area/station/medical/virology) "aub" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/siding/wood{ @@ -1469,6 +1449,12 @@ dir = 1 }, /area/station/security/checkpoint/customs) +"avJ" = ( +/turf/open/floor/iron/airless{ + icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; + icon_state = "floor1" + }, +/area/space/nearstation) "avM" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -2064,6 +2050,13 @@ "aEF" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) +"aEG" = ( +/obj/machinery/pdapainter/research, +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security/telescreen/rd/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/command/heads_quarters/rd) "aEH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, @@ -2110,16 +2103,24 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/engine, /area/station/ai_monitored/security/armory) -"aFq" = ( -/obj/effect/turf_decal/bot, -/obj/structure/rack, -/obj/item/stock_parts/power_store/cell/potato, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/aft) "aFv" = ( /obj/machinery/door/firedoor, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/lobby) +"aFy" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/dna_scannernew, +/obj/machinery/requests_console/directional/south{ + department = "Genetics"; + name = "Genetics Requests console"; + pixel_y = 30 + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/white, +/area/station/science/genetics) "aFA" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 6 @@ -2219,6 +2220,16 @@ "aFY" = ( /turf/closed/wall, /area/station/engineering/atmos/storage/gas) +"aGg" = ( +/obj/machinery/griddle, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) +"aGq" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stock_parts/power_store/cell/potato, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/aft) "aGu" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -2311,6 +2322,38 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/station/medical/psychology) +"aJD" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/desk_bell{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters_south"; + name = "Pharmacy Shutters" + }, +/obj/machinery/door/window/left/directional/west, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "aJH" = ( /obj/effect/turf_decal/trimline/brown/filled/corner, /obj/structure/disposalpipe/segment{ @@ -2345,6 +2388,16 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/science/genetics) +"aKw" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/iron/smooth_corner{ + dir = 8 + }, +/area/station/cargo/miningdock) "aKM" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron/large, @@ -2450,6 +2503,19 @@ /obj/machinery/holopad/secure, /turf/open/floor/carpet, /area/station/security/courtroom) +"aLz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/chem_master/condimaster, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "aLB" = ( /obj/structure/chair/sofa/corp/right, /obj/effect/turf_decal/tile/dark/opposingcorners{ @@ -2908,6 +2974,21 @@ "aRC" = ( /turf/open/floor/carpet/green, /area/station/commons/dorms) +"aRE" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/conveyor{ + id = "cargodisposals" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/directional/west{ + c_tag = "Cargo Bay - Delivery Office Port"; + name = "cargo camera" + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/sorting) "aRQ" = ( /obj/structure/chair/office, /turf/open/floor/iron/grimy, @@ -3007,17 +3088,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/dark/smooth_edge, /area/station/security/prison) -"aTu" = ( -/obj/structure/cable, -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/smooth, -/area/station/engineering/gravity_generator) "aTI" = ( /obj/structure/transit_tube/crossing{ dir = 4 @@ -3089,28 +3159,6 @@ /obj/effect/turf_decal/tile/blue/diagonal_centre, /turf/open/floor/iron/diagonal, /area/station/hallway/secondary/exit/departure_lounge) -"aUA" = ( -/obj/structure/table, -/obj/item/stock_parts/scanning_module{ - pixel_x = -5; - pixel_y = 7 - }, -/obj/item/stock_parts/scanning_module{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/item/stock_parts/scanning_module{ - pixel_x = -5 - }, -/obj/item/stock_parts/scanning_module{ - pixel_x = 5 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "aUC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/grille, @@ -3155,19 +3203,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"aVq" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/structure/disposaloutlet{ - name = "Prisoner Doomp" - }, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/brig) "aVN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -3390,16 +3425,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"aXm" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/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, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "aXr" = ( /obj/structure/table/wood, /obj/item/paper_bin/carbon{ @@ -3642,6 +3667,16 @@ }, /turf/open/floor/iron/smooth, /area/station/command/cc_dock) +"baI" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/structure/closet/wardrobe/miner, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth_corner{ + dir = 1 + }, +/area/station/cargo/miningdock) "baK" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -3712,27 +3747,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/lobby) -"bbW" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/engineering/glass{ - name = "Shared Engineering Storage" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/storage_shared) "bcf" = ( /obj/structure/table_frame, /turf/open/floor/iron/smooth, @@ -3875,6 +3889,17 @@ /obj/structure/cable/layer3, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai) +"bdM" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + 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/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) "bdP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3896,24 +3921,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/wood/large, /area/station/commons/fitness/recreation) -"bdX" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/bot, -/obj/structure/rack, -/obj/item/reagent_containers/cup/glass/shaker, -/obj/item/clothing/mask/gas, -/obj/item/clothing/head/utility/chefhat, -/obj/item/cultivator, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/food_or_drink/donkpockets, -/obj/item/storage/box/drinkingglasses, -/obj/item/storage/box/lights/mixed, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "beb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ @@ -3931,23 +3938,6 @@ }, /turf/open/floor/iron/large, /area/station/security/courtroom) -"bee" = ( -/obj/item/radio/intercom/directional/south, -/obj/structure/table/reinforced/rglass, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/structure/noticeboard/staff{ - dir = 8; - pixel_x = -32 - }, -/obj/effect/turf_decal/siding/dark_blue{ - dir = 10 - }, -/obj/effect/turf_decal/tile/blue/half{ - dir = 4 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/bridge) "bem" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3991,6 +3981,18 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron/smooth, /area/station/cargo/sorting) +"beU" = ( +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/machinery/light_switch/directional/west, +/obj/machinery/light/directional/west, +/obj/structure/table, +/obj/machinery/fax{ + fax_name = "Service Hallway"; + name = "Service Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "beY" = ( /obj/effect/landmark/start/cargo_technician, /obj/effect/turf_decal/trimline/brown/filled/warning, @@ -4010,6 +4012,11 @@ /obj/machinery/status_display/evac, /turf/closed/wall, /area/station/security/lockers) +"bfi" = ( +/obj/structure/table/wood, +/obj/item/documents/syndicate, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) "bfB" = ( /obj/effect/turf_decal/tile/red/anticorner{ dir = 1 @@ -4152,14 +4159,6 @@ }, /turf/closed/wall/r_wall, /area/station/science/xenobiology) -"biD" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/engine, -/area/station/science/xenobiology) "biU" = ( /obj/structure/table, /obj/item/clipboard, @@ -4247,16 +4246,6 @@ /obj/machinery/vending/drugs, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/central) -"bkF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 9 - }, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/cargo/miningdock) "bkY" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical{ @@ -4331,13 +4320,6 @@ }, /turf/open/floor/carpet/black, /area/station/command/heads_quarters/qm) -"bmk" = ( -/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/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "bmt" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -4396,6 +4378,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/large, /area/station/hallway/primary/fore) +"bnh" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/glass/reinforced, +/area/station/security/execution/transfer) "bnr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -4720,9 +4706,26 @@ }, /turf/open/floor/glass/reinforced, /area/station/security/execution/transfer) +"bsF" = ( +/obj/effect/turf_decal/weather/snow, +/obj/structure/kitchenspike, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "bsI" = ( /turf/closed/wall/r_wall, /area/station/science/auxlab) +"bsU" = ( +/obj/structure/table/reinforced, +/obj/item/gun_maintenance_supplies{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/item/storage/medkit/tactical/blueshield, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/blueshield) "btc" = ( /obj/machinery/firealarm/directional/west, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -4820,14 +4823,6 @@ /obj/item/flashlight, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) -"bul" = ( -/obj/structure/flora/bush/sparsegrass, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/grass, -/area/station/medical/virology) "bup" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -4854,6 +4849,16 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) +"bux" = ( +/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/green/diagonal_centre, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "buz" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -4939,11 +4944,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/smooth_large, /area/station/security/prison/work) -"bvE" = ( -/obj/structure/table/wood, -/obj/item/documents/syndicate, -/turf/open/floor/wood, -/area/station/maintenance/rus_gambling) "bvI" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -5104,6 +5104,13 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/port/fore) +"byo" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_edge, +/area/station/cargo/bitrunning/den) "byq" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -5139,6 +5146,14 @@ /obj/effect/mapping_helpers/airlock/access/any/service/chapel_office, /turf/open/floor/catwalk_floor/iron_dark, /area/station/service/chapel/funeral) +"byA" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 8 + }, +/obj/effect/landmark/start/shaft_miner, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningoffice) "byP" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/hidden{ dir = 5 @@ -5174,12 +5189,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/small, /area/station/security/prison/garden) -"bzn" = ( -/obj/structure/closet, -/obj/item/clothing/under/costume/skyrat/bathrobe, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/white/small, -/area/station/common/pool) "bzs" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 @@ -5352,6 +5361,15 @@ "bBy" = ( /turf/closed/indestructible/opshuttle, /area/station/science/ordnance/bomb) +"bBE" = ( +/obj/machinery/newscaster/directional/east, +/obj/effect/spawner/random/bedsheet/any, +/obj/structure/bed, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms) "bBU" = ( /obj/machinery/light/small/directional/north, /obj/machinery/light_switch/directional/north, @@ -5362,6 +5380,15 @@ }, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain/private) +"bCc" = ( +/obj/machinery/brm, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + id = "mining"; + dir = 1 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "bCe" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 @@ -5381,6 +5408,28 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth, /area/station/maintenance/department/security/greater) +"bCp" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/folder/yellow{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/folder/red{ + pixel_y = 1 + }, +/obj/item/stamp/law, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/clothing/glasses/sunglasses/big{ + pixel_y = 12 + }, +/turf/open/floor/iron/grimy, +/area/station/service/lawoffice) "bCw" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -5603,6 +5652,14 @@ }, /turf/open/floor/engine, /area/station/science/ordnance/storage) +"bIb" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 5 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/drone_bay) "bIs" = ( /obj/machinery/atmospherics/components/binary/valve/digital{ dir = 4 @@ -5830,6 +5887,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"bLC" = ( +/obj/structure/table, +/obj/item/stock_parts/scanning_module{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = -5 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "bLE" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/box, @@ -5889,19 +5968,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/science/xenobiology) -"bMB" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "bMJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -6089,19 +6155,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/construction/mining/aux_base) -"bOI" = ( -/obj/structure/table, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "bOJ" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, @@ -6149,12 +6202,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"bPG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "bPI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6286,19 +6333,6 @@ dir = 4 }, /area/station/engineering/atmos) -"bRS" = ( -/obj/structure/table, -/obj/machinery/requests_console/directional/west{ - department = "Kitchen"; - name = "Kitchen Requests Console" - }, -/obj/machinery/microwave{ - desc = "Cooks and boils stuff, somehow."; - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "bSd" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ dir = 8 @@ -6685,6 +6719,16 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/engineering/atmos/storage) +"bYX" = ( +/obj/structure/table, +/obj/item/storage/bag/tray{ + pixel_y = 3 + }, +/obj/item/food/dough{ + pixel_y = 5 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "bZi" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter) @@ -6844,10 +6888,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/security/checkpoint/engineering) -"cbP" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "cbV" = ( /obj/effect/landmark/start/hangover, /obj/machinery/camera/directional/west{ @@ -6932,15 +6972,6 @@ "cdo" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/cmo) -"cdr" = ( -/obj/machinery/newscaster/directional/east, -/obj/effect/spawner/random/bedsheet/any, -/obj/structure/bed, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/commons/dorms) "cdz" = ( /obj/effect/turf_decal/trimline/neutral/filled/warning, /obj/effect/turf_decal/trimline/neutral/filled/warning, @@ -7163,6 +7194,13 @@ dir = 4 }, /area/station/command/gateway) +"cgv" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "cgx" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -7194,22 +7232,6 @@ "cgZ" = ( /turf/closed/wall, /area/station/maintenance/port/greater) -"chg" = ( -/obj/structure/table/reinforced/rglass, -/obj/item/storage/photo_album, -/obj/item/camera{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/effect/turf_decal/siding/dark_blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue/half{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/minisat/directional/west, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/bridge) "chq" = ( /obj/structure/chair/office{ dir = 8 @@ -7310,16 +7332,6 @@ }, /turf/open/floor/iron/half, /area/station/hallway/primary/central) -"ciQ" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "ciZ" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) @@ -7603,16 +7615,6 @@ "cnC" = ( /turf/closed/wall, /area/station/maintenance/port/central) -"coc" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/obj/structure/cable, -/obj/machinery/power/smes/super/full{ - name = "ai power storage unit" - }, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/ai) "cog" = ( /obj/machinery/light/floor, /turf/open/floor/engine/co2, @@ -7634,33 +7636,14 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/security/office) -"coJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - desc = "Salt. From space oceans, presumably. A staple of modern medicine."; - pixel_x = -8; - pixel_y = 12 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets/donkpocketpizza{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/storage/box/donkpockets/donkpocketteriyaki{ - pixel_x = 5; - pixel_y = 9 +"coA" = ( +/obj/structure/disposaloutlet{ + dir = 1 }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/box/red, +/turf/open/floor/engine, +/area/station/science/xenobiology) "coN" = ( /obj/structure/table, /obj/item/reagent_containers/cup/glass/mug/britcup{ @@ -7901,10 +7884,17 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos/pumproom) -"crN" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/engine, -/area/station/science/xenobiology) +"crQ" = ( +/obj/machinery/vending/wardrobe/viro_wardrobe, +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 10 + }, +/obj/item/toy/figure/virologist{ + pixel_y = 17 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white, +/area/station/medical/virology) "csd" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -8038,13 +8028,6 @@ dir = 1 }, /area/station/science/robotics/lab) -"cut" = ( -/obj/effect/turf_decal/tile/blue/full, -/turf/open/floor/iron/airless{ - icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; - icon_state = "floor1" - }, -/area/space/nearstation) "cuA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -8114,10 +8097,10 @@ /obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, /turf/open/floor/iron/white/diagonal, /area/station/science/research) -"cvp" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/cargo/miningdock) +"cvG" = ( +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "cvH" = ( /turf/closed/wall, /area/station/medical/psychology) @@ -8129,6 +8112,15 @@ dir = 1 }, /area/station/hallway/primary/aft) +"cvL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) "cwa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8226,6 +8218,14 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/fore) +"cxP" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "cxR" = ( /obj/effect/landmark/start/hangover, /obj/structure/cable, @@ -8309,6 +8309,13 @@ /obj/structure/chair/wood, /turf/open/floor/carpet/stellar, /area/station/service/chapel/funeral) +"cyI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "cyL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/random/directional/north, @@ -8371,26 +8378,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/engineering) -"czH" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/obj/machinery/button/door/directional/east{ - id = "xenobio7"; - name = "Xenobio Pen 7 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron/white/smooth_edge{ - dir = 8 - }, -/area/station/science/xenobiology) "cAd" = ( /obj/effect/turf_decal/stripes/box, /obj/machinery/power/shieldwallgen/anchored{ @@ -8465,6 +8452,21 @@ /obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/greater) +"cBc" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/medical/medbay/lobby) "cBd" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ @@ -8509,14 +8511,6 @@ "cBk" = ( /turf/closed/wall, /area/station/cargo/bitrunning/den) -"cBN" = ( -/obj/machinery/status_display/evac/directional/east, -/obj/effect/turf_decal/bot, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/atmos) "cBU" = ( /obj/structure/chair/comfy/beige{ dir = 1 @@ -8578,6 +8572,28 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/command) +"cDc" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/storage/box/trackimp{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/gun/energy/ionrifle{ + pixel_y = -6 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/ai_monitored/security/armory) "cDg" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -8628,6 +8644,13 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical/central) +"cEq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "cEx" = ( /obj/machinery/power/tracker, /obj/structure/cable, @@ -8870,12 +8893,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"cHg" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/carpet/executive, -/area/station/command/heads_quarters/hop) "cHh" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 @@ -8901,6 +8918,22 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/cargo/storage) +"cHu" = ( +/obj/structure/rack, +/obj/item/storage/briefcase{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/storage/briefcase/secure{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/grimy, +/area/station/service/lawoffice) "cHv" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/structure/table, @@ -9034,20 +9067,6 @@ /obj/effect/turf_decal/box, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/hop) -"cIT" = ( -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light_switch/directional/north{ - pixel_x = 14 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/service/hydroponics) "cIZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9162,6 +9181,19 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/engineering/atmos) +"cLr" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/structure/disposaloutlet{ + name = "Prisoner Doomp" + }, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/brig) "cLw" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/siding/blue{ @@ -9290,17 +9322,6 @@ /obj/item/knife/plastic, /turf/open/floor/iron/dark, /area/station/security/prison/mess) -"cNU" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/fore) "cOd" = ( /obj/structure/sign/poster/official/space_cops/directional/east, /obj/structure/cable, @@ -9313,12 +9334,6 @@ dir = 8 }, /area/station/hallway/secondary/command) -"cOf" = ( -/turf/open/floor/iron/airless{ - icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; - icon_state = "floor1" - }, -/area/space/nearstation) "cOi" = ( /obj/structure/sign/gym/right{ pixel_y = 32 @@ -9530,6 +9545,17 @@ dir = 1 }, /area/station/science/xenobiology) +"cQN" = ( +/obj/effect/turf_decal/siding/dark_blue/corner, +/obj/machinery/shuttle_manipulator{ + desc = "A holographic display of the ship we're on right now."; + name = "ship holographic display" + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/bridge) "cQZ" = ( /obj/item/kirbyplants/random, /obj/machinery/status_display/shuttle{ @@ -9842,22 +9868,6 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"cXk" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/atmos) "cXr" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/customs) @@ -9869,21 +9879,22 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/aft/upper) -"cXD" = ( -/obj/machinery/computer/security/mining{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningdock) "cXX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark/smooth_large, /area/station/security/lockers) +"cYk" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/east, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron/smooth, +/area/station/maintenance/department/electrical) "cYr" = ( /obj/structure/closet/crate/bin, /turf/open/floor/carpet/stellar, @@ -9992,12 +10003,6 @@ /obj/structure/transit_tube/horizontal, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/fore) -"cZW" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/storage_shared) "dac" = ( /obj/item/reagent_containers/cup/bottle/epinephrine, /obj/item/reagent_containers/cup/bottle/multiver{ @@ -10099,6 +10104,21 @@ dir = 4 }, /area/station/hallway/primary/aft) +"daH" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/item/storage/box/lights/mixed{ + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high/empty{ + pixel_y = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/warehouse) "daN" = ( /obj/machinery/door/airlock/service{ name = "Theater Access" @@ -10109,13 +10129,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/large, /area/station/service/theater) -"daO" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/bot, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/lightreplacer, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/atmos) "daQ" = ( /obj/machinery/modular_computer/preset/civilian{ dir = 4 @@ -10172,6 +10185,26 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"dbQ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "xenobio7"; + name = "Xenobio Pen 7 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, +/area/station/science/xenobiology) "dbZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10355,12 +10388,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos/pumproom) -"deu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/bitrunning/den) "dex" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/carpet, @@ -10444,6 +10471,14 @@ "dfF" = ( /turf/closed/wall, /area/station/medical/medbay/lobby) +"dfG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/railing/corner, +/obj/effect/turf_decal/siding/dark, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "dfM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, @@ -10495,6 +10530,14 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/smooth_large, /area/station/construction/mining/aux_base) +"dgw" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dgE" = ( /obj/structure/table/reinforced/rglass, /obj/machinery/fax{ @@ -10628,6 +10671,13 @@ /obj/effect/landmark/start/captain, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) +"din" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, +/obj/structure/kitchenspike, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "dir" = ( /obj/structure/sign/departments/evac, /turf/closed/wall/r_wall, @@ -10666,14 +10716,6 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) -"diL" = ( -/obj/effect/turf_decal/skyrat_decals/enclave/top/middle{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line, -/obj/effect/turf_decal/trimline/blue/mid_joiner, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "diV" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -11012,12 +11054,6 @@ }, /turf/open/floor/iron/white/diagonal, /area/station/science/xenobiology) -"dnO" = ( -/mob/living/carbon/human/species/monkey, -/obj/structure/flora/bush/sparsegrass, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/grass, -/area/station/medical/virology) "dnW" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp{ @@ -11052,17 +11088,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/pod/dark, /area/station/service/chapel/funeral) -"dou" = ( -/obj/machinery/airalarm/directional/south, -/obj/structure/rack, -/obj/effect/turf_decal/trimline/dark_red/filled/line, -/obj/item/pipe_dispenser, -/obj/item/analyzer, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/science/ordnance) "dov" = ( /obj/structure/sign/logo{ pixel_y = 32 @@ -11098,6 +11123,18 @@ "doJ" = ( /turf/closed/wall/r_wall, /area/station/engineering/transit_tube) +"doM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/dark_green/filled/warning{ + dir = 8 + }, +/obj/machinery/duct, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/medical/virology) "dpe" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced/tinted, @@ -11120,14 +11157,6 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) -"dpw" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/structure/closet/secure_closet/miner, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/miningdock) "dpx" = ( /obj/structure/table/wood, /obj/item/storage/crayons, @@ -11240,6 +11269,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/large, /area/station/hallway/primary/fore) +"drZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/ordnance) "dsg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11261,6 +11298,14 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/hallway/primary/aft) +"dss" = ( +/obj/machinery/status_display/evac/directional/east, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/atmos) "dsz" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 4 @@ -11415,6 +11460,20 @@ /obj/structure/trash_pile, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"duq" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast Door" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dus" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -11562,20 +11621,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"dwE" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 9 - }, -/obj/machinery/dna_scannernew, -/obj/machinery/requests_console/directional/south{ - department = "Genetics"; - name = "Genetics Requests console"; - pixel_y = 30 - }, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/white, -/area/station/science/genetics) "dwH" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/remains/human, @@ -11738,15 +11783,6 @@ /mob/living/basic/pet/cat/cak, /turf/open/floor/iron/smooth_large, /area/station/maintenance/starboard/greater) -"dzq" = ( -/obj/structure/window/reinforced/survival_pod/spawner/directional/south, -/obj/machinery/door/window/survival_pod/left/directional/east{ - name = "Fitness Ring" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/floor, -/turf/open/floor/iron/dark/smooth_large, -/area/station/commons/fitness/recreation/entertainment) "dzx" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -11819,16 +11855,6 @@ /obj/effect/mapping_helpers/airlock/access/any/service/crematorium, /turf/open/floor/catwalk_floor/iron_dark, /area/station/service/chapel/office) -"dAy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/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/diagonal, -/area/station/hallway/secondary/service) "dAz" = ( /obj/machinery/door/firedoor, /obj/structure/table/reinforced, @@ -11899,14 +11925,6 @@ }, /turf/open/floor/plating, /area/station/science/genetics) -"dAV" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/bitrunning/den) "dAX" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11960,6 +11978,12 @@ dir = 8 }, /area/station/hallway/primary/aft) +"dBG" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/grass, +/area/station/medical/virology) "dBK" = ( /obj/structure/chair/sofa/bench/left, /turf/open/floor/wood/large, @@ -12032,6 +12056,16 @@ "dCq" = ( /turf/closed/wall, /area/station/engineering/storage/tech) +"dCJ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/directional/west{ + c_tag = "Cargo - Mining" + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "dDf" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/blue/filled/warning{ @@ -12145,6 +12179,10 @@ /obj/machinery/field/generator, /turf/open/floor/engine, /area/station/engineering/main) +"dEv" = ( +/obj/effect/decal/cleanable/blood/xtracks, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dEx" = ( /turf/closed/wall/r_wall, /area/station/engineering/break_room) @@ -12308,21 +12346,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/station/service/library) -"dGT" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/box, -/obj/structure/railing{ - dir = 10 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/siding/dark{ - dir = 8 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "dGU" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -12479,12 +12502,6 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/freezer, /area/station/medical/treatment_center) -"dIL" = ( -/obj/structure/bed/double, -/obj/effect/spawner/random/bedsheet/double, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/station/maintenance/department/science/xenobiology) "dIM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12790,6 +12807,10 @@ }, /turf/open/floor/engine, /area/station/ai_monitored/security/armory) +"dMh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/office) "dMl" = ( /obj/structure/chair/sofa/left/brown{ dir = 8 @@ -13267,21 +13288,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/commons/dorms) -"dTe" = ( -/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/skyrat_decals/enclave/middle/right{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "dTn" = ( /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -13338,14 +13344,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) -"dTO" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 5 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/drone_bay) "dUf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13540,9 +13538,27 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/pod/dark, /area/station/engineering/storage/tech) +"dWV" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv{ + pixel_y = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/plaque/static_plaque/golden/captain{ + pixel_y = 32 + }, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "dWX" = ( /turf/closed/wall, /area/station/maintenance/department/science/xenobiology) +"dWY" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/lightreplacer, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos) "dXa" = ( /obj/effect/landmark/start/hangover, /obj/effect/landmark/navigate_destination/bar, @@ -13598,32 +13614,6 @@ }, /turf/open/floor/wood/large, /area/station/service/library) -"dXZ" = ( -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/machinery/requests_console/directional/north{ - department = "Security"; - name = "Security Requests Console"; - pixel_y = -32 - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/machinery/light/warm/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Security - Office Aft" - }, -/obj/item/radio{ - pixel_x = -6; - pixel_y = 6 - }, -/turf/open/floor/iron/dark/smooth_edge{ - dir = 1 - }, -/area/station/security/office) "dYb" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -13887,29 +13877,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/pod, /area/station/service/chapel/funeral) -"ebp" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/cup/bottle/morphine, -/obj/item/reagent_containers/cup/bottle/toxin{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/bottle/epinephrine{ - pixel_x = 8 - }, -/obj/item/reagent_containers/cup/bottle/multiver{ - pixel_x = -5 - }, -/obj/item/reagent_containers/syringe/epinephrine, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chemistry_shutters"; - name = "Pharmacy Shutters" - }, -/obj/machinery/door/window/right/directional/east, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) "ebz" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -13934,6 +13901,19 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) +"ecl" = ( +/obj/structure/table, +/obj/machinery/requests_console/directional/west{ + department = "Kitchen"; + name = "Kitchen Requests Console" + }, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "ecq" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/door/poddoor/shutters/radiation/preopen{ @@ -14444,11 +14424,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/pod/dark, /area/station/service/chapel) -"eil" = ( -/obj/machinery/chem_mass_spec, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/iron/freezer, -/area/station/medical/pharmacy) "ein" = ( /obj/structure/displaycase/forsale/kitchen{ pixel_y = 8 @@ -14506,6 +14481,32 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical/morgue) +"eiV" = ( +/obj/structure/table, +/obj/item/storage/medkit/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/medkit/brute, +/obj/item/storage/medkit/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/status_display/ai/directional/west, +/obj/effect/turf_decal/trimline/purple/filled, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/storage) "eiX" = ( /obj/effect/turf_decal/trimline/brown/filled/warning{ dir = 4 @@ -14600,10 +14601,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) -"ekG" = ( -/obj/structure/table, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "ekQ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -14677,15 +14674,6 @@ /obj/structure/cable/layer3, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai) -"ely" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/item/radio/intercom/directional/east, -/obj/machinery/light/cold/directional/east, -/obj/machinery/gibber, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "elB" = ( /obj/effect/turf_decal/tile/dark/opposingcorners{ dir = 1 @@ -14782,20 +14770,6 @@ }, /turf/open/floor/grass, /area/station/hallway/primary/central/fore) -"emO" = ( -/obj/structure/rack, -/obj/item/circuitboard/machine/exoscanner{ - pixel_y = 3 - }, -/obj/item/circuitboard/machine/exoscanner, -/obj/item/circuitboard/machine/exoscanner{ - pixel_y = -3 - }, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/trimline/brown/filled, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "enl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14821,12 +14795,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/freezer, /area/station/medical/treatment_center) -"enC" = ( -/obj/structure/bed/double, -/obj/effect/spawner/random/bedsheet/double, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/carpet, -/area/station/commons/dorms) "enJ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -15069,6 +15037,11 @@ }, /turf/open/floor/iron/large, /area/station/service/hydroponics) +"ern" = ( +/obj/effect/turf_decal/weather/snow, +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "err" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -15161,29 +15134,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/hallway/primary/aft) -"esP" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/tile/dark_blue/anticorner, -/obj/structure/secure_safe/caps_spare, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/bridge) -"esZ" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/general, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/service/glass{ - name = "Service Hall" - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/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/large, -/area/station/service/cafeteria) "etd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15593,10 +15543,6 @@ /obj/structure/flora/bush/flowers_br/style_3, /turf/open/floor/grass, /area/station/hallway/secondary/exit/departure_lounge) -"ezm" = ( -/obj/structure/sign/warning/secure_area/directional/north, -/turf/open/space/basic, -/area/space/nearstation) "ezu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -15808,6 +15754,11 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/power_room) +"eCV" = ( +/obj/structure/railing/corner, +/obj/structure/sink/kitchen/directional/west, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "eDh" = ( /obj/structure/rack, /obj/item/clothing/suit/hazardvest, @@ -15835,11 +15786,6 @@ "eDt" = ( /turf/closed/wall/r_wall, /area/station/science/research) -"eDx" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/security/checkpoint/supply) "eDF" = ( /obj/structure/chair/stool/directional/west, /obj/machinery/power/apc/auto_name/directional/south, @@ -15885,14 +15831,6 @@ /obj/effect/turf_decal/tile/neutral/diagonal_centre, /turf/open/floor/iron/dark/diagonal, /area/station/security/execution/transfer) -"eEd" = ( -/obj/structure/sign/poster/random/directional/north, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/service) "eEi" = ( /obj/effect/turf_decal/tile/dark_red/anticorner, /obj/structure/sign/poster/official/twelve_gauge/directional/east, @@ -16068,10 +16006,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/smooth_large, /area/station/hallway/secondary/entry) -"eFu" = ( -/obj/machinery/power/shuttle_engine/huge, -/turf/open/space/basic, -/area/space/nearstation) "eFE" = ( /obj/machinery/newscaster/directional/west, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -16180,25 +16114,6 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/cargo/storage) -"eGy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/fake_stairs/directional/north, -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) -"eGT" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/firealarm/directional/north, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "eGZ" = ( /obj/structure/hedge, /obj/effect/turf_decal/trimline/green/arrow_cw{ @@ -16222,22 +16137,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/smooth_edge, /area/station/science/ordnance/testlab) -"eHk" = ( -/obj/structure/table/reinforced, -/obj/item/stack/package_wrap, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/power_store/battery/high, -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/smooth, -/area/station/construction/mining/aux_base) "eHu" = ( /obj/machinery/air_sensor/air_tank, /turf/open/floor/engine/air, @@ -16447,6 +16346,20 @@ /obj/structure/flora/bush/lavendergrass, /turf/open/floor/grass, /area/station/science/genetics) +"eLd" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast Door" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "eLe" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -16553,6 +16466,14 @@ }, /turf/open/floor/iron/small, /area/station/commons/dorms) +"eMf" = ( +/obj/machinery/door/window/left/directional/west{ + req_access = list("morgue") + }, +/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/medical/morgue) "eMr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -16604,6 +16525,19 @@ dir = 1 }, /area/station/engineering/atmos/storage) +"eNr" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/fake_stairs/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "eNs" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -16625,11 +16559,19 @@ }, /turf/open/floor/engine, /area/station/ai_monitored/security/armory) -"eNH" = ( -/turf/open/floor/iron/airless{ - icon = 'modular_skyrat/modules/advanced_shuttles/icons/evac_shuttle.dmi' +"eNJ" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Service Hall"; + dir = 9; + name = "service camera" }, -/area/space/nearstation) +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, +/obj/machinery/modular_computer/preset/cargochat/service, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth_large, +/area/station/hallway/secondary/service) "eNR" = ( /obj/effect/turf_decal/trimline/green/filled/warning, /obj/structure/cable, @@ -16683,6 +16625,21 @@ /obj/effect/landmark/start/blueshield, /turf/open/floor/carpet/cyan, /area/station/command/heads_quarters/blueshield) +"ePd" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "ePm" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box, @@ -16892,14 +16849,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) -"eSB" = ( -/obj/machinery/door/window/left/directional/west{ - req_access = list("morgue") - }, -/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/medical/morgue) "eSD" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/engineering/vending_restock, @@ -17002,13 +16951,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/hallway/primary/aft) -"eUs" = ( -/obj/machinery/power/shieldwallgen/xenobiologyaccess, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/cable, -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/engine, -/area/station/science/xenobiology) "eUu" = ( /obj/docking_port/stationary/public_mining_dock{ dir = 2 @@ -17187,13 +17129,6 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/science/ordnance/testlab) -"eWX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "eXd" = ( /obj/effect/turf_decal/trimline/green/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17356,18 +17291,6 @@ /obj/structure/railing/corner, /turf/open/floor/iron/smooth, /area/station/command/cc_dock) -"eYX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/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/cafeteria, -/area/station/service/cafeteria) "eYY" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -17392,6 +17315,12 @@ "eZa" = ( /turf/open/floor/iron/smooth, /area/station/commons/vacant_room) +"eZV" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) "faf" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -17408,11 +17337,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/smooth, /area/station/maintenance/department/science/ordnance_maint) -"fam" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "faq" = ( /turf/open/floor/iron/smooth_large, /area/station/maintenance/disposal/incinerator) @@ -17616,6 +17540,13 @@ "fdG" = ( /turf/open/floor/iron/smooth_large, /area/station/engineering/lobby) +"fdN" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/telecomms_specialist, +/turf/open/floor/engine, +/area/station/tcommsat/computer) "fdP" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 @@ -17760,6 +17691,13 @@ dir = 1 }, /area/station/commons/dorms/laundry) +"fgj" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/structure/railing, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/bitrunning/den) "fgv" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 1 @@ -17826,6 +17764,26 @@ dir = 1 }, /area/station/engineering/lobby) +"fho" = ( +/obj/item/tank/jetpack/carbondioxide, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack/shelf, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "fhY" = ( /obj/machinery/airalarm/directional/north, /obj/structure/rack, @@ -17869,40 +17827,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/service/library) -"fiC" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/power_store/cell/emproof{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/effect/turf_decal/bot, -/obj/item/clothing/glasses/meson/engine, -/obj/item/storage/box/bandages{ - pixel_x = 4; - pixel_y = 5 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/main) "fiN" = ( /turf/closed/wall/r_wall, /area/station/medical/chemistry) -"fiT" = ( -/obj/effect/turf_decal/skyrat_decals/enclave/middle/left{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 - }, -/obj/effect/landmark/start/paramedic, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "fiV" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/cable, @@ -18506,6 +18433,16 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical/morgue) +"frF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/meter, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/engineering/atmos) "frH" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8; @@ -18552,12 +18489,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"fsk" = ( -/obj/effect/spawner/random/bedsheet/double, -/obj/machinery/newscaster/directional/east, -/obj/structure/bed/double/pod, -/turf/open/floor/carpet/cyan, -/area/station/commons/dorms) "fst" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/pod, @@ -18683,24 +18614,6 @@ /obj/machinery/door/airlock/maintenance_hatch, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/crew_quarters/bar) -"fva" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - desc = "Salt. From space oceans, presumably. A staple of modern medicine."; - pixel_x = 8; - pixel_y = 12 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = 8; - pixel_y = 2 - }, -/obj/effect/spawner/random/food_or_drink/cake_ingredients, -/obj/item/kitchen/rollingpin{ - pixel_x = -4 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "fve" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 @@ -18753,6 +18666,18 @@ /obj/machinery/vending/wardrobe/chem_wardrobe, /turf/open/floor/iron/freezer, /area/station/medical/chemistry) +"fvY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "fwc" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -18849,18 +18774,6 @@ /obj/item/toy/cards/deck/tarot, /turf/open/floor/iron/grimy, /area/station/commons/lounge) -"fxo" = ( -/obj/structure/table, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/item/plate, -/obj/item/holosign_creator/robot_seat/restaurant, -/turf/open/floor/iron/large, -/area/station/service/kitchen) "fxD" = ( /obj/structure/sign/warning/chem_diamond/directional/north, /obj/structure/rack/shelf, @@ -18907,10 +18820,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/carpet/stellar, /area/station/service/chapel/funeral) -"fye" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/office) "fys" = ( /obj/effect/turf_decal/trimline/purple/filled/warning{ dir = 1 @@ -19075,18 +18984,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) -"fAN" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/box/red, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 10 - }, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron/smooth, -/area/station/science/ordnance) "fAP" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 @@ -19123,6 +19020,15 @@ /obj/item/flashlight/lantern, /turf/open/floor/pod/dark, /area/station/service/chapel) +"fBw" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/effect/turf_decal/bot, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/station/tcommsat/server) "fBB" = ( /obj/structure/transit_tube/curved, /obj/structure/lattice, @@ -19186,6 +19092,13 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) +"fCy" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) "fCM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/graffiti, @@ -19202,6 +19115,18 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/smooth, /area/station/science/research/abandoned) +"fDa" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/box/red, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 10 + }, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/smooth, +/area/station/science/ordnance) "fDb" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 6 @@ -19287,6 +19212,13 @@ /obj/machinery/duct, /turf/open/floor/iron/white/smooth_large, /area/station/science/genetics) +"fEc" = ( +/obj/machinery/door/window/left/directional/east{ + name = "Animal Pen A"; + req_access = list("maintenance") + }, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "fEo" = ( /turf/closed/wall, /area/station/engineering/atmos/storage) @@ -19561,14 +19493,20 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/prison) +"fJJ" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/obj/structure/cable, +/obj/machinery/power/smes/super/full{ + name = "ai power storage unit" + }, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/ai) "fJT" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/wood/large, /area/station/hallway/secondary/exit/departure_lounge) -"fJV" = ( -/obj/machinery/door/window/left/directional/west, -/turf/open/floor/carpet/purple, -/area/station/common/night_club) "fKb" = ( /turf/open/floor/iron/smooth, /area/station/command/cc_dock) @@ -19642,6 +19580,17 @@ dir = 1 }, /area/station/engineering/atmos) +"fLi" = ( +/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 = 4 + }, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "fLo" = ( /obj/structure/closet/crate/trashcart/laundry, /obj/item/reagent_containers/hypospray/medipen, @@ -19686,6 +19635,12 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/science/ordnance_maint) +"fLZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "fMc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19709,21 +19664,6 @@ dir = 4 }, /area/station/cargo/storage) -"fMm" = ( -/obj/machinery/button/door/directional/south{ - id = "kitchen_counter"; - name = "Counter Shutters Control" - }, -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/processor{ - pixel_y = 12 - }, -/obj/structure/railing, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "fMy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19745,6 +19685,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"fNg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/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/cafeteria, +/area/station/service/cafeteria) "fNt" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper/crumpled/fluff{ @@ -19772,6 +19724,14 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/service/hydroponics) +"fNM" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "fNQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -19798,14 +19758,6 @@ }, /turf/open/floor/wood/large, /area/station/security/courtroom) -"fNX" = ( -/obj/machinery/bouldertech/refinery/smelter, -/obj/machinery/conveyor/inverted{ - dir = 5; - id = "mining" - }, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "fNY" = ( /obj/structure/closet/l3closet/virology, /obj/effect/turf_decal/trimline/dark_green/filled/line{ @@ -19814,21 +19766,6 @@ /obj/item/crowbar/red, /turf/open/floor/iron/white, /area/station/medical/virology) -"fOh" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/ears/earmuffs{ - pixel_y = 7 - }, -/obj/item/gun/energy/laser/practice, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/turf/open/floor/engine, -/area/station/security/range) "fOm" = ( /obj/effect/turf_decal/trimline/brown/filled/corner, /obj/structure/disposalpipe/segment{ @@ -20164,6 +20101,11 @@ dir = 1 }, /area/station/engineering/atmos) +"fUb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "fUc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20257,23 +20199,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/commons/lounge) -"fVm" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 9 - }, -/obj/structure/rack, -/obj/item/storage/box/syringes{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/storage/box/beakers{ - pixel_x = 6; - pixel_y = 10 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "fVn" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/trimline/red/filled/corner{ @@ -20387,20 +20312,6 @@ dir = 6 }, /area/station/service/chapel) -"fWQ" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast Door" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "fXl" = ( /obj/docking_port/stationary/random{ name = "lavaland"; @@ -20508,6 +20419,19 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"fYn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/biogenerator, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "hydroponics_counter"; + name = "Hydroponics Counter Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/service/hydroponics) "fYs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, @@ -20519,6 +20443,10 @@ /obj/machinery/meter, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) +"fYK" = ( +/obj/structure/sign/warning/biohazard/directional/south, +/turf/open/space/basic, +/area/space/nearstation) "fYR" = ( /obj/machinery/light/small/directional/east, /obj/structure/flora/bush/sparsegrass/style_random, @@ -20529,17 +20457,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/department/electrical) -"fZg" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/smooth_large, -/area/station/hallway/secondary/service) "fZo" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 6 @@ -20775,6 +20692,15 @@ }, /turf/open/floor/iron/grimy, /area/station/commons/lounge) +"gcp" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/cold/directional/east, +/obj/machinery/gibber, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "gcr" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -20855,39 +20781,12 @@ "gei" = ( /turf/open/floor/iron/large, /area/station/hallway/primary/central/aft) -"geo" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/machinery/recharger{ - pixel_x = -7; - pixel_y = 3 - }, -/obj/machinery/computer/security/telescreen/prison/directional/east, -/turf/open/floor/iron/dark, -/area/station/security/warden) "gep" = ( /obj/effect/turf_decal/bot, /obj/machinery/telecomms/server/presets/common, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) -"geA" = ( -/obj/machinery/door/window/left/directional/east{ - name = "Animal Pen A"; - req_access = list("maintenance") - }, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "geE" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -21308,19 +21207,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"gjG" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/fake_stairs/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "gjJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21519,6 +21405,17 @@ /obj/machinery/door/airlock/external, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) +"glC" = ( +/obj/structure/cable, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/smooth, +/area/station/engineering/gravity_generator) "glD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21565,12 +21462,6 @@ "gmz" = ( /turf/closed/wall, /area/station/service/hydroponics/garden/abandoned) -"gmB" = ( -/obj/structure/flora/bush/sparsegrass, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/grass, -/area/station/medical/virology) "gmD" = ( /obj/effect/turf_decal/tile/dark/fourcorners, /obj/effect/turf_decal/stripes/line{ @@ -21588,6 +21479,11 @@ /obj/effect/turf_decal/box/red, /turf/open/floor/iron/smooth, /area/station/science/ordnance) +"gmG" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/trimline/brown/filled/corner, +/turf/open/floor/iron/smooth_corner, +/area/station/cargo/bitrunning/den) "gmJ" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -21622,6 +21518,17 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/qm) +"gnw" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/radio/intercom/directional/north, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) "gnM" = ( /obj/structure/table/wood, /obj/machinery/computer/security/telescreen/entertainment/directional/east, @@ -21646,9 +21553,6 @@ /obj/structure/closet/crate/solarpanel_small, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/fore) -"got" = ( -/turf/closed/wall/r_wall, -/area/station/maintenance/eva_shed/port) "gou" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -21659,17 +21563,6 @@ /obj/structure/sign/poster/official/wtf_is_co2, /turf/closed/wall, /area/station/engineering/atmos) -"goP" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/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/smooth_edge{ - dir = 4 - }, -/area/station/cargo/bitrunning/den) "goS" = ( /turf/open/floor/iron/freezer, /area/station/medical/chemistry) @@ -21804,15 +21697,6 @@ dir = 8 }, /area/station/medical/medbay/central) -"gra" = ( -/obj/structure/rack/gunrack, -/obj/effect/spawner/armory_spawn/microfusion, -/obj/effect/turf_decal/tile/dark_red/half{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/station/ai_monitored/security/armory) "grg" = ( /obj/structure/table/reinforced, /obj/machinery/recharger{ @@ -21899,22 +21783,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) -"gsb" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/pen{ - pixel_y = 4 +"gsl" = ( +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 9 }, -/turf/open/floor/iron/smooth_edge{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/area/station/cargo/drone_bay) +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light_switch/directional/north{ + pixel_x = 14 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics) "gsL" = ( /obj/structure/showcase/cyborg/old{ dir = 8; @@ -22016,18 +21898,6 @@ /obj/effect/turf_decal/trimline/dark_red/arrow_ccw, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) -"gtJ" = ( -/obj/effect/turf_decal/bot, -/obj/structure/disposaloutlet{ - dir = 4; - name = "Cargo Deliveries" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/window/spawner/directional/south, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/service) "gtM" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/structure/closet/secure_closet/cytology, @@ -22155,18 +22025,6 @@ }, /turf/open/floor/wood/large, /area/station/hallway/secondary/exit/departure_lounge) -"gvA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/dark_green/filled/warning{ - dir = 8 - }, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/medical/virology) "gvG" = ( /turf/open/floor/engine, /area/station/science/auxlab/firing_range) @@ -22176,6 +22034,14 @@ /obj/machinery/duct, /turf/open/floor/iron/white/smooth_large, /area/station/medical/storage) +"gvO" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/dark, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "gwc" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -22374,18 +22240,6 @@ /obj/structure/window/reinforced/plasma/spawner/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"gyK" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "gzn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22555,20 +22409,6 @@ /obj/structure/cable/layer3, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai) -"gBQ" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 1 - }, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark/smooth_large, -/area/station/medical/chemistry) "gCm" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 4 @@ -22817,6 +22657,15 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/command) +"gFi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/engineering/atmos) "gFm" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north{ @@ -22864,12 +22713,6 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/carpet, /area/station/service/library) -"gFG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow, -/mob/living/basic/goat/pete, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "gFW" = ( /obj/effect/turf_decal/trimline/dark/filled/line{ dir = 1 @@ -22895,16 +22738,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/hallway/primary/aft) -"gGF" = ( -/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/skyrat_decals/enclave/top/left{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "gGT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/garbage, @@ -22985,6 +22818,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical/central) +"gHS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/light_switch/directional/west{ + pixel_x = -24 + }, +/obj/structure/cable, +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "gHW" = ( /obj/structure/table/optable{ desc = "A cold, hard place for your final rest."; @@ -23074,14 +22917,6 @@ /obj/effect/landmark/start/security_officer, /turf/open/floor/iron/dark/smooth_large, /area/station/security/brig) -"gIO" = ( -/obj/effect/turf_decal/weather/snow, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "gIT" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/barman_recipes, @@ -23195,22 +23030,29 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/hfr_room) +"gJZ" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/landmark/start/telecomms_specialist, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/lobby) +"gKa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "gKl" = ( /obj/structure/chair/wood{ dir = 8 }, /turf/open/floor/carpet/black, /area/station/service/chapel/office) -"gKB" = ( -/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/green/diagonal_centre, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "gKO" = ( /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/primary/aft) @@ -23752,17 +23594,22 @@ "gRN" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/foyer) -"gRR" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/radio/intercom/directional/north, -/obj/machinery/airalarm/directional/east, +"gRW" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/command/teleporter) +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/engineering/atmos) "gSd" = ( /obj/structure/railing/corner, /obj/structure/disposalpipe/segment, @@ -23806,21 +23653,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) -"gSO" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 5 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics - Ports"; - name = "atmospherics camera" - }, -/obj/item/radio/intercom/directional/east, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "gSS" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, @@ -24083,13 +23915,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/freezer, /area/station/medical/chemistry) -"gWT" = ( -/obj/machinery/computer/quantum_console{ - dir = 8 - }, -/obj/machinery/light/small/red/directional/east, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) "gWV" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 4 @@ -24252,21 +24077,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/greater) -"gYT" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/window/reinforced/spawner/directional/west{ - pixel_x = -4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/medical/medbay/lobby) "gZb" = ( /obj/structure/lattice/catwalk, /obj/structure/closet/crate, @@ -24295,6 +24105,13 @@ /obj/machinery/oven/range, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"gZV" = ( +/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/green/diagonal_centre, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "gZX" = ( /obj/structure/trash_pile, /turf/open/floor/iron/smooth, @@ -24373,10 +24190,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) -"haV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningoffice) "hbb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -24422,16 +24235,6 @@ /obj/machinery/portable_atmospherics/canister/anesthetic_mix, /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) -"hbG" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/window/right/directional/north{ - name = "Jim Norton's Quebecois Coffee"; - req_one_access = list("service","maint_tunnels") - }, -/turf/open/floor/wood, -/area/station/hallway/secondary/entry) "hbJ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -24652,14 +24455,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/prison) -"hdS" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/box/red, -/turf/open/floor/engine, -/area/station/science/xenobiology) "hdZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 @@ -24786,6 +24581,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/storage_shared) +"hgL" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/engineering/storage_shared) "hgW" = ( /obj/structure/trash_pile, /obj/effect/decal/cleanable/dirt, @@ -24915,6 +24716,13 @@ /obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/iron/smooth_large, /area/station/cargo/storage) +"hil" = ( +/obj/effect/landmark/start/shaft_miner, +/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/smooth_large, +/area/station/cargo/miningdock) "hio" = ( /obj/effect/turf_decal/trimline/green/corner{ dir = 8 @@ -24988,15 +24796,6 @@ /obj/structure/window/spawner/directional/east, /turf/open/misc/beach/sand, /area/station/science/research) -"hjg" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/table, -/obj/item/plate, -/obj/effect/spawner/random/trash/food_packaging, -/obj/structure/cable, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/bitrunning/den) "hji" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -25034,17 +24833,6 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/iron, /area/station/commons/lounge) -"hjR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 6 - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "hjT" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 8 @@ -25131,6 +24919,18 @@ dir = 1 }, /area/station/cargo/miningdock) +"hkU" = ( +/obj/structure/table, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/item/plate, +/obj/item/holosign_creator/robot_seat/restaurant, +/turf/open/floor/iron/large, +/area/station/service/kitchen) "hkX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -25306,25 +25106,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/service/hydroponics) -"hnT" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/button/door/directional/east{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 8 - }, -/area/station/science/xenobiology) "hnU" = ( /obj/effect/turf_decal/tile/dark/fourcorners, /obj/structure/fluff/metalpole/anchor{ @@ -25379,23 +25160,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron, /area/station/commons/storage/art) -"hpd" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/box, -/obj/machinery/button/door/directional/west{ - id = "xenobio1"; - name = "Xenobio Pen 1 Blast Door"; - req_access = list("xenobiology") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "hpe" = ( /turf/open/floor/iron/smooth_large, /area/station/security/checkpoint/engineering) @@ -25426,14 +25190,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"hqe" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/dark, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "hqf" = ( /obj/machinery/digital_clock, /turf/closed/wall/r_wall, @@ -25451,6 +25207,15 @@ dir = 8 }, /area/station/engineering/atmos/pumproom) +"hqp" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/machinery/door/window/survival_pod/left/directional/east{ + name = "Fitness Ring" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/floor, +/turf/open/floor/iron/dark/smooth_large, +/area/station/commons/fitness/recreation/entertainment) "hqu" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 @@ -25829,6 +25594,18 @@ /obj/structure/sign/departments/science/directional/north, /turf/open/floor/iron/white/smooth_edge, /area/station/hallway/primary/fore) +"hwE" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/edge, +/area/station/service/hydroponics) "hwG" = ( /obj/structure/bed/double, /obj/item/bedsheet/cmo/double, @@ -25876,26 +25653,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"hxg" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/item/stock_parts/matter_bin{ - pixel_x = -10; - pixel_y = 4 - }, -/obj/item/stock_parts/matter_bin{ - pixel_x = 2; - pixel_y = 7 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/flatpack, -/turf/open/floor/iron/white/smooth_edge, -/area/station/science/lab) "hxh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25920,19 +25677,6 @@ "hxy" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) -"hxA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/chem_master/condimaster, -/obj/structure/railing{ - dir = 6 - }, -/obj/effect/turf_decal/siding/dark{ - dir = 4 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "hxC" = ( /obj/machinery/door/airlock/mining{ name = "Drone Bay" @@ -26023,6 +25767,16 @@ }, /turf/open/floor/carpet/blue, /area/station/command/bridge) +"hyw" = ( +/obj/structure/chair/stool/directional/west{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/effect/turf_decal/tile/red/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/lounge) "hyx" = ( /obj/machinery/dna_scannernew, /obj/effect/turf_decal/delivery, @@ -26041,28 +25795,6 @@ "hzk" = ( /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/hfr_room) -"hzl" = ( -/obj/machinery/computer/cargo{ - dir = 8 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Cargo Bay - Starboard"; - name = "cargo camera" - }, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - id = 68; - name = "Unloading Doors"; - pixel_y = 6 - }, -/obj/machinery/button/door/directional/east{ - id = 69; - name = "Loading Doors"; - pixel_y = -6 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/storage) "hzm" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -26326,16 +26058,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/hop) -"hBP" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/status_display/ai/directional/west, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "hBQ" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -26351,13 +26073,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white, /area/station/medical/virology) -"hBZ" = ( -/obj/machinery/pdapainter/research, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/bot, -/obj/machinery/computer/security/telescreen/rd/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/command/heads_quarters/rd) "hCh" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -26406,6 +26121,23 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter) +"hCJ" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/service/glass{ + name = "Service Hall" + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/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/large, +/area/station/service/cafeteria) "hCL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26489,6 +26221,17 @@ /obj/effect/spawner/random/medical/minor_healing, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hDN" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_green/diagonal_centre, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/white/diagonal, +/area/station/medical/medbay/central) "hDY" = ( /obj/machinery/computer/atmos_control/mix_tank{ dir = 4 @@ -26564,15 +26307,6 @@ "hEF" = ( /turf/open/floor/iron/smooth_large, /area/station/engineering/power_room) -"hEG" = ( -/obj/structure/transit_tube/horizontal{ - dir = 1 - }, -/turf/open/floor/iron/airless{ - icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; - icon_state = "floor1" - }, -/area/space/nearstation) "hEJ" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -26632,19 +26366,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/glass/reinforced, /area/station/hallway/secondary/exit/departure_lounge) -"hFu" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Service - Service Hall"; - dir = 9; - name = "service camera" - }, -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, -/obj/machinery/modular_computer/preset/cargochat/service, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/smooth_large, -/area/station/hallway/secondary/service) "hFA" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 10 @@ -26678,10 +26399,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/aft) -"hGn" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/pod/dark, -/area/station/service/chapel/funeral) "hGq" = ( /obj/structure/chair/office{ dir = 1 @@ -26719,6 +26436,30 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/iron/smooth_large, /area/station/maintenance/disposal) +"hGX" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/left/directional/south{ + name = "Hydroponics Desk"; + req_access = list("hydroponics") + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "hydroponics_counter"; + name = "Hydroponics Counter Shutters" + }, +/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/large, +/area/station/service/hydroponics) "hHg" = ( /obj/structure/table, /obj/item/tank/internals/emergency_oxygen{ @@ -26761,6 +26502,10 @@ dir = 4 }, /area/station/hallway/primary/aft) +"hHR" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine, +/area/station/science/xenobiology) "hHT" = ( /obj/effect/turf_decal/tile/red/anticorner{ dir = 1 @@ -26791,16 +26536,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port) -"hIp" = ( -/obj/structure/safe, -/obj/item/storage/backpack/duffelbag/syndie/hitman, -/obj/item/card/id/advanced/silver/reaper, -/obj/item/lazarus_injector, -/obj/item/gun/ballistic/automatic/pistol/deagle/gold, -/obj/item/stack/spacecash/c5000, -/obj/effect/turf_decal/bot, -/turf/open/floor/engine, -/area/station/ai_monitored/command/nuke_storage) "hIu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -26814,18 +26549,14 @@ }, /turf/open/floor/iron/smooth, /area/station/science/ordnance/storage) -"hIy" = ( -/obj/structure/flora/bush/lavendergrass, -/obj/structure/window/reinforced/spawner/directional/west, -/mob/living/carbon/human/species/monkey, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/window/right/directional/south{ - name = "Monkey Pen"; - req_access = list("genetics") +"hIw" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/vending/dinnerware, +/obj/item/toy/figure/chef{ + pixel_y = 16 }, -/turf/open/floor/grass, -/area/station/science/genetics) +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "hIA" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain) @@ -26833,15 +26564,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/pod/dark, /area/station/service/chapel) -"hJg" = ( -/obj/structure/table, -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_y = 5; - pixel_x = 2 +"hJq" = ( +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/bitrunning/den) +/obj/effect/turf_decal/box, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "hJx" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ dir = 4 @@ -26876,6 +26608,27 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/engine, /area/station/engineering/main) +"hKj" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/engineering/glass{ + name = "Shared Engineering Storage" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/storage_shared) "hKm" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 9 @@ -26912,18 +26665,6 @@ dir = 8 }, /area/station/engineering/atmos) -"hKK" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 5 - }, -/obj/machinery/computer/security/telescreen/entertainment/directional/east, -/obj/structure/sign/poster/contraband/random/directional/north, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/smooth, -/area/station/cargo/bitrunning/den) "hKP" = ( /obj/item/reagent_containers/cup/bucket, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -26991,6 +26732,16 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison) +"hMt" = ( +/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/skyrat_decals/enclave/top/left{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "hMy" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -27064,14 +26815,6 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/smooth, /area/station/maintenance/department/electrical) -"hNw" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Xenobiology - Secure Cell Interior"; - name = "xenobiology camera"; - network = list("ss13","xeno","rd") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "hNy" = ( /obj/structure/railing{ dir = 8 @@ -27079,6 +26822,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/smooth_large, /area/station/service/theater) +"hNB" = ( +/obj/effect/turf_decal/weather/snow, +/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/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "hND" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27166,15 +26916,6 @@ dir = 8 }, /area/station/hallway/primary/central) -"hPC" = ( -/obj/effect/turf_decal/skyrat_decals/enclave/bottom/left{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 4 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "hPR" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_containers/cup/soda_cans/monkey_energy, @@ -27377,13 +27118,6 @@ }, /turf/open/floor/iron/white, /area/station/hallway/primary/fore) -"hSf" = ( -/obj/effect/landmark/start/shaft_miner, -/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/smooth_large, -/area/station/cargo/miningdock) "hSn" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -27480,10 +27214,6 @@ dir = 1 }, /area/station/command/gateway) -"hTj" = ( -/obj/machinery/deepfryer, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "hTl" = ( /obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -27566,21 +27296,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/lobby) -"hTQ" = ( -/obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/conveyor{ - id = "cargodisposals" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera/directional/west{ - c_tag = "Cargo Bay - Delivery Office Port"; - name = "cargo camera" - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/sorting) "hTW" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/effect/turf_decal/delivery, @@ -27742,32 +27457,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/engine/atmos/lesser) -"hWm" = ( -/obj/structure/table, -/obj/item/storage/medkit/brute{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/medkit/brute, -/obj/item/storage/medkit/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/status_display/ai/directional/west, -/obj/effect/turf_decal/trimline/purple/filled, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/medical/storage) "hWF" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -27803,6 +27492,12 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/pod/dark, /area/station/service/chapel) +"hXI" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth_edge, +/area/station/science/ordnance) "hXP" = ( /obj/structure/table, /obj/item/restraints/handcuffs/cable/red, @@ -27817,13 +27512,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) -"hXV" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/atmos) "hYg" = ( /obj/effect/turf_decal/bot, /obj/machinery/portable_atmospherics/canister/nitrogen, @@ -27967,21 +27655,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"hZv" = ( -/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/skyrat_decals/enclave/middle/left{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "hZE" = ( /obj/effect/turf_decal/trimline/green/filled/warning{ dir = 4 @@ -28048,6 +27721,28 @@ /obj/structure/cable, /turf/open/floor/plating/airless, /area/station/command/heads_quarters/rd) +"ibj" = ( +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Cargo Bay - Starboard"; + name = "cargo camera" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + id = 68; + name = "Unloading Doors"; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/east{ + id = 69; + name = "Loading Doors"; + pixel_y = -6 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) "ibt" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -28146,6 +27841,14 @@ /obj/structure/cable, /turf/open/floor/pod/dark, /area/station/service/chapel) +"icL" = ( +/obj/effect/turf_decal/skyrat_decals/enclave/top/middle{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line, +/obj/effect/turf_decal/trimline/blue/mid_joiner, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "icP" = ( /turf/open/floor/glass/reinforced, /area/station/medical/medbay/central) @@ -28177,13 +27880,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth_large, /area/station/hallway/primary/aft) -"idG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark_red/filled/corner, -/turf/open/floor/iron/smooth_corner, -/area/station/science/ordnance) "idO" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -28261,17 +27957,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/upper) -"ifj" = ( -/obj/effect/turf_decal/siding/dark_blue/corner, -/obj/machinery/shuttle_manipulator{ - desc = "A holographic display of the ship we're on right now."; - name = "ship holographic display" - }, -/obj/effect/turf_decal/tile/blue/half{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/bridge) "ifq" = ( /turf/closed/wall/r_wall, /area/station/medical/pharmacy) @@ -28291,6 +27976,20 @@ }, /turf/open/floor/iron/white/small, /area/station/common/pool) +"ige" = ( +/obj/structure/table, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/structure/desk_bell{ + pixel_x = 7; + pixel_y = 10 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "igk" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/landmark/start/chaplain, @@ -28379,15 +28078,6 @@ dir = 4 }, /area/station/medical/virology) -"ihS" = ( -/obj/machinery/light/directional/north, -/obj/machinery/bouldertech/refinery, -/obj/machinery/conveyor{ - id = "mining"; - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "ihT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28836,22 +28526,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/hop, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) -"iog" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_x = 4; - pixel_y = 18 - }, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = -8; - pixel_y = 12 - }, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "iom" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 9 @@ -28934,6 +28608,17 @@ /obj/effect/turf_decal/trimline/neutral/mid_joiner, /turf/open/floor/iron/smooth_large, /area/station/cargo/sorting) +"ioX" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Service - Cafeteria Aft"; + name = "service camera" + }, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "ioZ" = ( /obj/effect/turf_decal/stripes/end{ dir = 4 @@ -29075,6 +28760,13 @@ /obj/structure/cable, /turf/open/floor/iron/edge, /area/station/commons/fitness/recreation) +"iqF" = ( +/obj/effect/turf_decal/tile/blue/full, +/turf/open/floor/iron/airless{ + icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; + icon_state = "floor1" + }, +/area/space/nearstation) "iqM" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, @@ -29137,6 +28829,17 @@ /obj/effect/landmark/start/corrections_officer, /turf/open/floor/glass/reinforced, /area/station/security/execution/transfer) +"irB" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) "irC" = ( /obj/structure/flora/grass/jungle, /obj/structure/window/fulltile, @@ -29221,24 +28924,20 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/prison) -"iso" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/hooded/ablative{ - pixel_y = 7 - }, -/obj/item/gun/energy/temperature/security{ - pixel_y = 5 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 +"isq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/pollution_scrubber{ + pixel_x = -7; + pixel_y = 1 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/station/ai_monitored/security/armory) +/obj/structure/table, +/turf/open/floor/iron/large, +/area/station/service/kitchen) "isr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/trash_pile, @@ -29314,12 +29013,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"itf" = ( -/obj/structure/noticeboard/directional/north, -/obj/machinery/light_switch/directional/east, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/service) +"isV" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/bitrunning/den) "iti" = ( /obj/structure/table/wood, /obj/machinery/fax{ @@ -29464,6 +29170,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/command/heads_quarters/blueshield) +"iuX" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) "iuZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29512,6 +29224,18 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/medical/virology) +"ivQ" = ( +/obj/machinery/computer/order_console/cook, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth_large, +/area/station/hallway/secondary/service) "ivR" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -29586,13 +29310,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) -"iwH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/ce/directional/south, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "iwV" = ( /obj/structure/disposalpipe/junction/flip{ dir = 8 @@ -29739,6 +29456,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) +"iyG" = ( +/obj/machinery/quantum_server, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "iyK" = ( /obj/effect/mapping_helpers/iannewyear, /turf/open/floor/carpet/executive, @@ -30011,24 +29733,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"iCV" = ( -/obj/structure/disposaloutlet{ - dir = 1; - name = "Cargo Deliveries" - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/south, -/obj/structure/plasticflaps, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/storage) -"iCW" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/command/heads_quarters/qm) "iCZ" = ( /obj/machinery/computer/communications, /obj/machinery/keycard_auth{ @@ -30119,6 +29823,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth_large, /area/station/hallway/secondary/entry) +"iEJ" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/camera/directional/west{ + c_tag = "Service - Kitchen Coldroom"; + dir = 5; + name = "service camera" + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "iEL" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external/glass{ @@ -30171,13 +29884,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/fore) -"iFV" = ( -/obj/machinery/conveyor{ - id = "mining"; - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "iFY" = ( /obj/structure/cable, /obj/machinery/holopad, @@ -30401,16 +30107,6 @@ dir = 1 }, /area/station/security/prison) -"iIG" = ( -/obj/item/radio/intercom/directional/east, -/obj/structure/table, -/obj/machinery/microwave{ - desc = "Cooks and boils stuff, somehow."; - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "iJg" = ( /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 1 @@ -30452,14 +30148,6 @@ dir = 8 }, /area/station/engineering/atmos) -"iJt" = ( -/obj/machinery/firealarm/directional/east, -/obj/machinery/vending/dinnerware, -/obj/item/toy/figure/chef{ - pixel_y = 16 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "iJB" = ( /obj/structure/closet/secure_closet/security/sec, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -30543,13 +30231,6 @@ dir = 8 }, /area/station/engineering/atmos/hfr_room) -"iLb" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/textured_edge, -/area/station/cargo/bitrunning/den) "iLH" = ( /obj/effect/turf_decal/trimline/purple/filled/warning{ dir = 4 @@ -30649,6 +30330,24 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"iME" = ( +/obj/structure/closet/bombcloset, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/cold/directional/north, +/turf/open/floor/iron/smooth_edge, +/area/station/science/ordnance) +"iML" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/machinery/light_switch/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/bitrunning/den) "iMO" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_cw{ dir = 9 @@ -30671,16 +30370,16 @@ dir = 1 }, /area/station/hallway/secondary/command) -"iNa" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/directional/west{ - c_tag = "Cargo - Mining" +"iNb" = ( +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/cargo/miningdock) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "iNk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30723,6 +30422,17 @@ "iNV" = ( /turf/closed/wall, /area/station/maintenance/starboard/greater) +"iOa" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/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/smooth_edge{ + dir = 4 + }, +/area/station/cargo/bitrunning/den) "iOb" = ( /obj/structure/table, /obj/effect/spawner/random/maintenance/two, @@ -30735,12 +30445,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/construction) -"iOh" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/smooth_edge, -/area/station/science/ordnance) "iOx" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_blue{ @@ -30903,6 +30607,12 @@ /obj/machinery/meter, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance) +"iRi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "iRn" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -30984,18 +30694,6 @@ /obj/structure/cable/multilayer/connected, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat/foyer) -"iSl" = ( -/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/skyrat_decals/enclave/top/right{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 8 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "iSr" = ( /obj/structure/table, /obj/item/clothing/head/utility/welding{ @@ -31085,6 +30783,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth_large, /area/station/engineering/break_room) +"iTv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/ce/directional/south, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "iTx" = ( /obj/structure/sign/poster/official/love_ian/directional/east, /obj/machinery/status_display/evac/directional/south, @@ -31133,12 +30838,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron/grimy, /area/station/commons/lounge) -"iUy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/service/kitchen) "iUz" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -31348,6 +31047,12 @@ /obj/effect/turf_decal/tile/blue/diagonal_centre, /turf/open/floor/iron/white/diagonal, /area/station/medical/medbay/central) +"iWQ" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/carpet/black, +/area/station/command/heads_quarters/qm) "iWZ" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/stripes/line{ @@ -31369,14 +31074,6 @@ }, /turf/open/floor/plating, /area/station/security/detectives_office) -"iXi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/science/ordnance) "iXk" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/decal/cleanable/dirt, @@ -31442,6 +31139,19 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos/storage/gas) +"iXV" = ( +/obj/structure/rack/gunrack, +/obj/effect/spawner/armory_spawn/shotguns, +/obj/effect/turf_decal/tile/dark_red/half{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/cold/directional/north, +/obj/machinery/digital_clock/directional/north{ + pixel_y = 37 + }, +/turf/open/floor/engine, +/area/station/ai_monitored/security/armory) "iXW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/vault, @@ -31476,18 +31186,18 @@ dir = 8 }, /area/station/hallway/primary/central/aft) -"iYy" = ( -/obj/structure/table/reinforced, -/obj/item/gun_maintenance_supplies{ - pixel_x = -4; - pixel_y = 10 +"iYk" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 }, -/obj/item/storage/medkit/tactical/blueshield, -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/loading_area{ + dir = 1 }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/blueshield) +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) "iYz" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -31631,14 +31341,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) -"jay" = ( -/obj/structure/chair/sofa/right/brown{ - dir = 8 - }, -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningoffice) "jaz" = ( /obj/structure/table/reinforced, /obj/item/hfr_box/body/fuel_input, @@ -31648,6 +31350,33 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/hfr_room) +"jaG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets/donkpocketpizza{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/storage/box/donkpockets/donkpocketteriyaki{ + pixel_x = 5; + pixel_y = 9 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "jbe" = ( /obj/structure/table/wood/fancy/royalblack, /obj/machinery/computer/records/medical/laptop, @@ -31817,36 +31546,6 @@ /obj/machinery/door/airlock/external, /turf/open/floor/catwalk_floor, /area/station/engineering/main) -"jdH" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/machinery/light/directional/north, -/obj/structure/table, -/obj/machinery/light_switch/directional/north{ - pixel_x = 13 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) -"jdJ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ - dir = 8; - initialize_directions = 4; - name = "euthanization chamber freezer" - }, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 5 - }, -/obj/machinery/button/door/directional/east{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "jdN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/generic_maintenance_landmark, @@ -31898,6 +31597,32 @@ /obj/structure/cable, /turf/open/floor/iron/freezer, /area/station/security/checkpoint/medical) +"jeS" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 12 + }, +/obj/machinery/button/door/directional/east{ + id = "brigprison"; + name = "Prison Lockdown"; + req_access = list("brig") + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/computer/security/telescreen/isolation/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) "jfo" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -31967,6 +31692,26 @@ dir = 8 }, /area/station/hallway/primary/central/aft) +"jfR" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/machinery/recharger{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/machinery/computer/security/telescreen/prison/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/warden) "jfS" = ( /turf/closed/wall, /area/station/security/medical) @@ -32137,18 +31882,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/smooth_edge, /area/station/hallway/primary/aft) -"jio" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/dark/half, -/obj/effect/turf_decal/trimline/green/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 1 - }, -/obj/machinery/door/window/survival_pod/left/directional/north, -/turf/open/floor/iron/half, -/area/station/service/hydroponics) "jir" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 @@ -32463,6 +32196,16 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) +"jnm" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/bitrunning/den) "jnF" = ( /obj/structure/railing{ dir = 8 @@ -32597,14 +32340,6 @@ /obj/machinery/air_sensor/nitrogen_tank, /turf/open/floor/engine/n2, /area/station/engineering/atmos) -"jpk" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/exit/departure_lounge) "jpv" = ( /obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32628,6 +32363,17 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/ordnance/storage) +"jpH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "jpN" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 1 @@ -32706,19 +32452,6 @@ dir = 8 }, /area/station/medical/office) -"jqL" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/skyrat_decals/enclave/middle/right{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "jqM" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; @@ -32731,6 +32464,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/orange, /area/station/command/heads_quarters/ce) +"jrb" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sink/directional/west, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "jrj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -32749,6 +32492,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/carpet/cyan, /area/station/commons/dorms) +"jrq" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/carpet, +/area/station/security/courtroom) "jrs" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/cup/bottle/morphine{ @@ -32852,18 +32599,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/command/cc_dock) -"jsf" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 10 - }, -/obj/structure/table/glass, -/obj/item/knife/kitchen, -/obj/item/wrench, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/science/xenobiology) "jsm" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -32906,6 +32641,38 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"jsN" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/desk_bell{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "Pharmacy Shutters" + }, +/obj/machinery/door/window/left/directional/south, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "jtc" = ( /turf/open/floor/carpet, /area/station/commons/dorms) @@ -33137,15 +32904,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/edge, /area/station/hallway/primary/central) -"jvw" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/cargo/bitrunning/den) "jvx" = ( /obj/structure/table/wood, /obj/item/food/breadslice/plain, @@ -33174,6 +32932,17 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) +"jvC" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth_large, +/area/station/hallway/secondary/service) "jvJ" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 @@ -33233,10 +33002,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/lesser) -"jwN" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine, -/area/station/science/xenobiology) "jwV" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/iron/smooth, @@ -33314,12 +33079,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/cargo/storage) -"jyF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/atmos) "jyL" = ( /obj/machinery/conveyor/inverted{ dir = 9; @@ -33628,13 +33387,6 @@ /obj/effect/landmark/start/mime, /turf/open/floor/iron/herringbone, /area/station/service/theater) -"jCB" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/effect/landmark/start/telecomms_specialist, -/turf/open/floor/engine, -/area/station/tcommsat/computer) "jCE" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/siding/wood{ @@ -33677,15 +33429,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/smooth_large, /area/station/security/lockers) -"jDb" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/science/xenobiology) "jDe" = ( /obj/structure/flora/grass/jungle, /obj/structure/flora/bush/grassy, @@ -33781,19 +33524,17 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"jDI" = ( +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "jDS" = ( /obj/effect/spawner/random/trash/caution_sign, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/greater) -"jDX" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/right/directional/west{ - name = "Kitchen Deliveries"; - req_access = list("kitchen") - }, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "jDY" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/suit_storage_unit/ce, @@ -33825,16 +33566,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/holding_cell) -"jEy" = ( -/obj/structure/table/wood, -/obj/machinery/status_display/ai/directional/north, -/obj/machinery/fax{ - fax_name = "Law Office"; - name = "Law Office Fax Machine"; - pixel_y = 3 - }, -/turf/open/floor/iron/grimy, -/area/station/service/lawoffice) "jEA" = ( /obj/machinery/camera/directional/west{ c_tag = "AI Chamber - Port"; @@ -33854,6 +33585,11 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/vault, /area/station/ai_monitored/turret_protected/ai) +"jEG" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/space/nearstation) "jEK" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/bluespace_vendor/directional/south, @@ -33871,6 +33607,13 @@ /obj/structure/closet/radiation, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) +"jEP" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "jET" = ( /obj/structure/table/reinforced, /obj/machinery/camera/directional/west{ @@ -34070,22 +33813,6 @@ dir = 4 }, /area/station/hallway/primary/fore) -"jHs" = ( -/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 = 4 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/skyrat_decals/enclave/bottom/left{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "jHx" = ( /obj/effect/turf_decal/trimline/brown/filled/warning{ dir = 5 @@ -34166,6 +33893,20 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"jIT" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "Xenobio Pen 7 Blast Door" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jJk" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -34420,6 +34161,24 @@ }, /turf/open/space/basic, /area/space/nearstation) +"jMQ" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/clothing/mask/gas, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/radio/intercom/directional/south, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/hallway/primary/aft) "jMY" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -34531,6 +34290,24 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/iron/grimy, /area/station/commons/lounge) +"jOB" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4; + initialize_directions = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/engineering/atmos) "jOF" = ( /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/mixingchamber_access, @@ -34673,15 +34450,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/vaporwave, /area/station/service/barber) -"jQQ" = ( -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 1 - }, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white/smooth_corner{ - dir = 1 - }, -/area/station/science/xenobiology) "jQR" = ( /obj/machinery/door/window/left/directional/south{ name = "Research Test Chamber"; @@ -34726,10 +34494,6 @@ }, /turf/open/floor/iron/white/smooth_edge, /area/station/science/xenobiology) -"jRP" = ( -/obj/machinery/light/cold/directional/north, -/turf/open/floor/engine, -/area/station/science/xenobiology) "jSl" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/trimline/brown/filled/mid_joiner, @@ -34815,21 +34579,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"jTk" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/structure/sign/poster/contraband/random/directional/south, -/obj/item/storage/box/lights/mixed{ - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high/empty{ - pixel_y = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/cargo/warehouse) "jTn" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -34864,6 +34613,31 @@ dir = 8 }, /area/station/hallway/primary/central/aft) +"jTE" = ( +/obj/structure/table, +/obj/item/stock_parts/micro_laser{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = 2 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/drone_bay) "jTI" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -34905,23 +34679,6 @@ dir = 8 }, /area/station/command/gateway) -"jUL" = ( -/obj/machinery/light/warm/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Service - Cafeteria Fore"; - name = "service camera" - }, -/obj/machinery/firealarm/directional/north{ - pixel_x = 8 - }, -/obj/item/radio/intercom/directional/north{ - pixel_x = -6 - }, -/obj/structure/table, -/obj/item/plate, -/obj/item/food/sausage, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "jUZ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -34983,6 +34740,10 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/qm) +"jVW" = ( +/obj/structure/table, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "jWg" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 6 @@ -35017,6 +34778,10 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"jWQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/pod/dark, +/area/station/service/chapel/funeral) "jWS" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -35130,6 +34895,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/carpet, /area/station/security/courtroom) +"jYa" = ( +/obj/effect/turf_decal/tile/blue/full, +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/turf/open/floor/iron/airless{ + icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; + icon_state = "floor1" + }, +/area/space/nearstation) "jYe" = ( /obj/structure/girder/displaced, /turf/open/floor/iron/smooth, @@ -35219,12 +34994,6 @@ /obj/effect/turf_decal/bot/left, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/hfr_room) -"jZE" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/turf/open/space/basic, -/area/space/nearstation) "jZS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35260,6 +35029,17 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) +"kaF" = ( +/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 + }, +/obj/effect/turf_decal/tile/dark_green/diagonal_centre, +/turf/open/floor/iron/white/diagonal, +/area/station/medical/virology) "kaN" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, @@ -35295,6 +35075,21 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) +"kbb" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/ears/earmuffs{ + pixel_y = 7 + }, +/obj/item/gun/energy/laser/practice, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/turf/open/floor/engine, +/area/station/security/range) "kbc" = ( /obj/effect/turf_decal/trimline/dark_red/warning, /obj/structure/disposalpipe/segment{ @@ -35318,13 +35113,6 @@ dir = 4 }, /area/station/engineering/storage) -"kbi" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/drone_bay) "kbj" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -35442,6 +35230,14 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/supermatter/room) +"kde" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/modular_computer/preset/id{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) "kdk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35481,14 +35277,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/warden) -"kdS" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/obj/machinery/light_switch/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/bitrunning/den) "kek" = ( /obj/effect/turf_decal/trimline/neutral/filled/warning{ dir = 1 @@ -35583,6 +35371,29 @@ /obj/machinery/duct, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical) +"kfP" = ( +/obj/machinery/button/door/directional/north{ + id = "lawyerprivacy"; + name = "Lawyer's Privacy Control" + }, +/obj/item/radio/intercom/directional/north{ + pixel_y = 32 + }, +/obj/structure/aquarium/lawyer, +/turf/open/floor/iron/grimy, +/area/station/service/lawoffice) +"kgb" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/table/glass, +/obj/item/knife/kitchen, +/obj/item/wrench, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/science/xenobiology) "kgj" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/effect/landmark/start/hangover, @@ -35824,6 +35635,22 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/break_room) +"kjd" = ( +/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 = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/skyrat_decals/enclave/bottom/left{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "kjf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35874,19 +35701,6 @@ /obj/item/toy/cards/deck, /turf/open/floor/iron/grimy, /area/station/commons/lounge) -"kjG" = ( -/obj/structure/rack/gunrack, -/obj/effect/spawner/armory_spawn/shotguns, -/obj/effect/turf_decal/tile/dark_red/half{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/light/cold/directional/north, -/obj/machinery/digital_clock/directional/north{ - pixel_y = 37 - }, -/turf/open/floor/engine, -/area/station/ai_monitored/security/armory) "kjL" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/door/poddoor/shutters{ @@ -35924,20 +35738,6 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"kjX" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast Door" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "kkk" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/sorting/mail{ @@ -35998,15 +35798,6 @@ }, /turf/open/floor/pod/dark, /area/station/service/chapel/funeral) -"kkC" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/structure/closet/secure_closet/miner, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/miningdock) "kkI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -36184,38 +35975,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/storage) -"koc" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Bridge - Starboard"; - name = "command camera" - }, -/obj/effect/turf_decal/siding/dark_blue{ - dir = 6 - }, -/obj/structure{ - density = 1; - icon = 'icons/obj/machines/shuttle_manipulator.dmi'; - icon_state = "hologram_on"; - light_color = "#2cb2e8"; - light_range = 2; - mouse_opacity = 0; - name = "holographic projection"; - pixel_x = -32; - pixel_y = 17 - }, -/obj/structure{ - desc = "This is the ship we're on. It's amazing what Nanotrasen can do once they actually put more than ten seconds of effort into their projects."; - icon = 'icons/obj/machines/shuttle_manipulator.dmi'; - icon_state = "hologram_whiteship"; - light_color = "#2cb2e8"; - light_range = 7; - name = "Ship Hologram"; - pixel_x = -32; - pixel_y = 27 - }, -/obj/machinery/incident_display/bridge/directional/south, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/bridge) "koi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/power/apc/auto_name/directional/north, @@ -36324,20 +36083,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"koZ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/machinery/pollution_scrubber{ - pixel_x = -7; - pixel_y = 1 - }, -/obj/structure/table, -/turf/open/floor/iron/large, -/area/station/service/kitchen) "kpg" = ( /obj/effect/mapping_helpers/airlock/access/any/supply/shipping, /obj/structure/disposalpipe/segment{ @@ -36449,15 +36194,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth_large, /area/station/hallway/secondary/construction) -"krz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningdock) "krA" = ( /obj/effect/turf_decal/trimline/brown/filled/corner{ dir = 1 @@ -36730,6 +36466,15 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/hfr_room) +"kvH" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/table, +/obj/item/plate, +/obj/effect/spawner/random/trash/food_packaging, +/obj/structure/cable, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/bitrunning/den) "kvJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36930,6 +36675,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical) +"kyk" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/space/nearstation) "kyq" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 8 @@ -36945,6 +36696,22 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"kyy" = ( +/obj/machinery/door/airlock/mining{ + name = "Bitrunning Den" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/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/smooth, +/area/station/cargo/miningdock) "kyC" = ( /obj/effect/turf_decal/siding/thinplating/corner, /obj/structure/cable, @@ -37379,6 +37146,12 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/engineering/atmos/hfr_room) +"kDn" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "kDz" = ( /obj/structure/light_construct/directional/south, /obj/structure/rack, @@ -37508,17 +37281,6 @@ dir = 1 }, /area/station/security/checkpoint/customs) -"kEM" = ( -/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 - }, -/obj/effect/turf_decal/tile/dark_green/diagonal_centre, -/turf/open/floor/iron/white/diagonal, -/area/station/medical/virology) "kEP" = ( /obj/machinery/door/airlock/grunge{ name = "Funeral Room" @@ -37585,15 +37347,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"kFL" = ( -/obj/effect/spawner/random/trash/grime, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 4 - }, -/turf/open/floor/iron/smooth_corner{ - dir = 4 - }, -/area/station/cargo/bitrunning/den) "kFS" = ( /obj/effect/mapping_helpers/airlock/access/all/science/rd, /obj/machinery/door/airlock/rd/glass{ @@ -37688,6 +37441,15 @@ dir = 4 }, /area/station/security/interrogation) +"kGG" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/bitrunning/den) "kGK" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/filled/warning, @@ -37748,6 +37510,25 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/mess) +"kHC" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/button/door/directional/east{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, +/area/station/science/xenobiology) "kHE" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ @@ -37812,6 +37593,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/department/crew_quarters/bar) +"kIg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/freezer{ + critical_machine = 1; + name = "Coldroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/structure/fans/tiny, +/obj/structure/cable, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "kIi" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -37832,18 +37625,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/hallway/primary/aft) -"kIq" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/atmos) "kIt" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -37956,6 +37737,17 @@ dir = 8 }, /area/station/science/xenobiology) +"kKa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/closet/secure_closet/chemical, +/obj/item/storage/box/syringes, +/obj/item/storage/box/beakers, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/freezer, +/area/station/medical/pharmacy) "kKC" = ( /obj/effect/turf_decal/delivery, /obj/structure/closet/crate/freezer{ @@ -38177,6 +37969,26 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"kNT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall17"; + location = "hall16" + }, +/obj/effect/turf_decal/skyrat_decals/enclave/bottom/middle{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "kOf" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -38224,6 +38036,15 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"kOL" = ( +/obj/structure/rack/gunrack, +/obj/effect/spawner/armory_spawn/microfusion, +/obj/effect/turf_decal/tile/dark_red/half{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/ai_monitored/security/armory) "kOS" = ( /obj/machinery/firealarm/directional/north, /obj/effect/turf_decal/trimline/yellow/filled/warning{ @@ -38434,6 +38255,22 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/engine, /area/station/engineering/main) +"kRJ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/computer/security/telescreen/tcomms/directional/west, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/engineering) "kRU" = ( /obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/delivery, @@ -38562,10 +38399,25 @@ }, /turf/open/floor/vault, /area/station/ai_monitored/turret_protected/ai_upload) +"kTZ" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/battery/high, +/obj/machinery/light/small/directional/east, +/turf/open/floor/pod/dark, +/area/station/engineering/storage/tech) "kUb" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) +"kUc" = ( +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/engine, +/area/station/science/xenobiology) "kUd" = ( /obj/machinery/posialert/directional/north, /obj/machinery/computer/rdconsole, @@ -38584,6 +38436,20 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) +"kUB" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/exoscanner{ + pixel_y = 3 + }, +/obj/item/circuitboard/machine/exoscanner, +/obj/item/circuitboard/machine/exoscanner{ + pixel_y = -3 + }, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/trimline/brown/filled, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "kUO" = ( /obj/effect/spawner/random/contraband/prison, /turf/open/floor/iron/smooth, @@ -38776,6 +38642,39 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/smooth_large, /area/station/maintenance/disposal) +"kWA" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/reagent_containers/cup/glass/shaker, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/utility/chefhat, +/obj/item/cultivator, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/food_or_drink/donkpockets, +/obj/item/storage/box/drinkingglasses, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) +"kWE" = ( +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/delivery_chute{ + dir = 1; + name = "Prisoner Doomp" + }, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Prisoner Doomp" + }, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/brig) "kWG" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/light/directional/south, @@ -38858,6 +38757,19 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/office) +"kXU" = ( +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Ordnance Lab Starboard"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/science/ordnance) "kXW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -38985,6 +38897,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) +"kZI" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/white/smooth_corner{ + dir = 1 + }, +/area/station/science/xenobiology) "kZJ" = ( /obj/effect/turf_decal/trimline/dark_red/filled/warning{ dir = 8 @@ -39150,6 +39071,18 @@ /obj/structure/sign/delam_procedure/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"lcr" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/structure/plasticflaps, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/sorting) "lct" = ( /obj/effect/turf_decal/bot_white/left, /obj/effect/turf_decal/tile/neutral{ @@ -39273,11 +39206,14 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/power_room) -"ldU" = ( -/obj/machinery/netpod, -/obj/machinery/light/small/blacklight/directional/west, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) +"ldX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/engineering/atmos) "leb" = ( /obj/structure/cable, /turf/open/floor/iron/smooth_large, @@ -39292,14 +39228,6 @@ }, /turf/open/floor/iron/freezer, /area/station/medical/chemistry) -"lej" = ( -/obj/structure/chair/sofa/corp/right{ - color = "#DE3A3A"; - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "leB" = ( /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/service/bar, @@ -39308,11 +39236,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/crew_quarters/bar) -"leF" = ( -/obj/machinery/quantum_server, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) "leI" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 @@ -39355,6 +39278,21 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"leX" = ( +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics - Ports"; + name = "atmospherics camera" + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos) "lff" = ( /obj/item/radio/intercom/directional/north, /obj/structure/table, @@ -39662,20 +39600,6 @@ /obj/machinery/rnd/experimentor, /turf/open/floor/engine, /area/station/science/explab) -"ljG" = ( -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 8 - }, -/area/station/medical/medbay/lobby) "ljI" = ( /turf/closed/wall, /area/station/medical/morgue) @@ -39713,13 +39637,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/pod/dark, /area/station/service/chapel/funeral) -"lkz" = ( -/obj/structure/chair/sofa/corp/left{ - color = "#DE3A3A"; - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "lkG" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/structure/disposalpipe/segment, @@ -39730,10 +39647,6 @@ "lkJ" = ( /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"lkM" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/sorting) "lkR" = ( /obj/effect/spawner/random/structure/table_fancy, /obj/item/flashlight/lamp/green{ @@ -39761,12 +39674,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/office) -"llf" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/cargo/miningdock) "llk" = ( /obj/structure/table, /obj/item/stack/medical/gauze, @@ -39868,14 +39775,6 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"lmY" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "mining"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "lnc" = ( /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 @@ -39995,6 +39894,17 @@ }, /turf/open/floor/iron/grimy, /area/station/commons/lounge) +"lnT" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/plasticflaps/opaque{ + name = "Kitchen Deliveries" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "Kitchen" + }, +/turf/open/floor/iron/large, +/area/station/maintenance/starboard/greater) "lnU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40289,6 +40199,14 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark, /area/station/security/prison/mess) +"lsG" = ( +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "lsQ" = ( /obj/machinery/duct, /obj/effect/turf_decal/trimline/blue/filled/warning{ @@ -40427,6 +40345,12 @@ "luV" = ( /turf/closed/wall, /area/station/engineering/atmos) +"luX" = ( +/obj/structure/closet, +/obj/item/clothing/under/costume/skyrat/bathrobe, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white/small, +/area/station/common/pool) "lva" = ( /obj/structure/table/glass, /obj/item/book/manual/wiki/infections, @@ -40529,35 +40453,6 @@ /obj/effect/turf_decal/tile/red/diagonal_centre, /turf/open/floor/iron/dark/diagonal, /area/station/security/office) -"lvU" = ( -/obj/structure/table, -/obj/item/storage/medkit/o2{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/medkit/o2, -/obj/item/storage/medkit/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/status_display/evac/directional/west, -/obj/machinery/digital_clock/directional/north{ - pixel_y = 37 - }, -/obj/effect/turf_decal/trimline/dark_blue/filled, -/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner, -/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/medical/storage) "lvX" = ( /obj/structure/closet, /obj/item/crowbar, @@ -40585,6 +40480,16 @@ /obj/effect/landmark/navigate_destination/dockesc, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/exit/departure_lounge) +"lwq" = ( +/obj/effect/turf_decal/tile/blue/full, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron/airless{ + icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; + icon_state = "floor1" + }, +/area/space/nearstation) "lwE" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -40856,6 +40761,24 @@ "lAB" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical/central) +"lAG" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson/engine, +/obj/item/storage/box/bandages{ + pixel_x = 4; + pixel_y = 5 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/main) "lAS" = ( /turf/open/floor/iron/smooth, /area/space/nearstation) @@ -40909,13 +40832,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/security/lockers) -"lBF" = ( -/obj/structure/chair/sofa/right/brown{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningoffice) "lBP" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/line, @@ -41216,6 +41132,18 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/engineering) +"lFU" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/item/radio/intercom/directional/south, +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 3 + }, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) "lGa" = ( /obj/structure/table/wood, /obj/item/food/grown/harebell, @@ -41667,6 +41595,17 @@ }, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"lLP" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 1; + height = 13; + name = "arrivals"; + shuttle_id = "arrivals_stationary"; + width = 5 + }, +/turf/open/space/basic, +/area/space) "lLU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41700,6 +41639,12 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/service/bar) +"lMt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "lMx" = ( /obj/machinery/door/airlock/maintenance{ critical_machine = 1; @@ -41711,6 +41656,17 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical/central) +"lMC" = ( +/obj/machinery/door/window/left/directional/east{ + name = "Medbay Deliveries"; + req_access = list("medical") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/firedoor, +/obj/structure/sign/calendar/directional/south, +/obj/effect/turf_decal/delivery/blue, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/storage) "lML" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/curtain/cloth/fancy/mechanical{ @@ -41724,6 +41680,14 @@ "lMS" = ( /turf/closed/wall/r_wall, /area/station/maintenance/port) +"lMT" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/bitrunning/den) "lMZ" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver{ @@ -41838,6 +41802,13 @@ /obj/machinery/power/smes, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/aft) +"lOC" = ( +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "lOV" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/delivery, @@ -41898,6 +41869,10 @@ }, /turf/open/floor/plating, /area/station/service/barber) +"lPC" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/space/basic, +/area/space/nearstation) "lPJ" = ( /obj/effect/mapping_helpers/airlock/unres{ dir = 1 @@ -41976,6 +41951,16 @@ /obj/effect/turf_decal/bot, /turf/open/floor/pod/dark, /area/station/engineering/storage/tech) +"lQl" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/security/checkpoint/engineering) "lQo" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/extinguisher_cabinet/directional/south, @@ -42019,12 +42004,26 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/smooth_large, /area/station/security/lockers) +"lQG" = ( +/obj/structure/sign/poster/contraband/mothic_rations, +/turf/closed/wall, +/area/station/service/kitchen) "lQK" = ( /obj/structure/railing, /obj/structure/bed, /obj/structure/fluff/beach_umbrella/cap, /turf/open/floor/iron/white/small, /area/station/common/pool) +"lQM" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/dark_red/anticorner{ + dir = 1 + }, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/armory/disablers, +/turf/open/floor/engine, +/area/station/ai_monitored/security/armory) "lQO" = ( /obj/effect/turf_decal/bot_white/left, /obj/effect/turf_decal/tile/neutral{ @@ -42071,6 +42070,14 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/hallway/primary/aft) +"lRC" = ( +/obj/effect/turf_decal/skyrat_decals/enclave/top/middle{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line, +/obj/effect/turf_decal/trimline/blue/mid_joiner, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "lRD" = ( /obj/effect/turf_decal/stripes/white/line{ color = "#52B4E9"; @@ -42373,6 +42380,13 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) +"lUS" = ( +/obj/machinery/conveyor{ + id = "mining"; + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "lUZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -42670,18 +42684,6 @@ }, /turf/open/floor/wood/large, /area/station/security/courtroom) -"lYC" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/electrical) "lYN" = ( /obj/structure/disposalpipe/junction/flip{ dir = 2 @@ -42707,6 +42709,17 @@ dir = 4 }, /area/station/engineering/atmos) +"lZd" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/station/command/gateway) "lZg" = ( /turf/closed/wall/r_wall, /area/station/maintenance/port/central) @@ -42952,6 +42965,16 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) +"mdF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/window/right/directional/north{ + name = "Jim Norton's Quebecois Coffee"; + req_one_access = list("service","maint_tunnels") + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/entry) "mdG" = ( /obj/structure/window/spawner/directional/north, /mob/living/basic/lizard/tegu/gus, @@ -43117,6 +43140,17 @@ /obj/item/kirbyplants/random, /turf/open/floor/wood/large, /area/station/commons/dorms) +"mgl" = ( +/obj/structure/table/reinforced/rglass, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) "mgm" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 8 @@ -43342,6 +43376,15 @@ dir = 8 }, /area/station/security/prison) +"mjC" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/machinery/door/window/survival_pod/left/directional/west{ + name = "Fitness Ring" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/floor, +/turf/open/floor/iron/dark/smooth_large, +/area/station/commons/fitness/recreation/entertainment) "mjG" = ( /obj/item/folder/blue{ pixel_y = 4 @@ -43482,18 +43525,6 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/hallway/primary/aft) -"mkD" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/edge, -/area/station/service/hydroponics) "mkK" = ( /obj/effect/turf_decal/trimline/dark_red/filled/corner{ dir = 8 @@ -43589,6 +43620,20 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/qm) +"mna" = ( +/obj/structure/plasticflaps{ + name = "Deliveries" + }, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/right/directional/north{ + name = "Deliveries"; + req_access = list("shipping") + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/sorting) "mnf" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -43872,6 +43917,16 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/ordnance/office) +"mry" = ( +/obj/machinery/requests_console/directional/south{ + department = "Law Office"; + name = "Law Office Requests Console"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/service/lawoffice) "mrL" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -44014,14 +44069,6 @@ /mob/living/basic/trooper/syndicate/melee, /turf/open/floor/wood, /area/station/maintenance/rus_gambling) -"muZ" = ( -/obj/structure/closet/bombcloset, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/smooth, -/area/station/science/ordnance) "mvb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44046,17 +44093,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/construction/mining/aux_base) -"mvu" = ( -/obj/machinery/power/shieldwallgen/xenobiologyaccess, -/obj/structure/cable, -/obj/machinery/button/door/directional/west{ - id = "Xtestlab"; - name = "Secure Creature Pen Blast Door"; - req_access = list("xenobiology") - }, -/obj/structure/sign/warning/gas_mask/directional/west, -/turf/open/floor/engine, -/area/station/science/xenobiology) "mvz" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning, /obj/structure/disposalpipe/segment{ @@ -44107,6 +44143,26 @@ /obj/machinery/light/warm/directional/west, /turf/open/floor/wood/large, /area/station/service/library) +"mwN" = ( +/obj/structure/table/wood/fancy/royalblue, +/obj/item/stack/spacecash/c500, +/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ + pixel_x = 6; + pixel_y = 19 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -1; + pixel_y = 12 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/camera/motion/directional/west{ + c_tag = "Vault"; + network = list("vault") + }, +/obj/item/piggy_bank/vault, +/turf/open/floor/engine, +/area/station/ai_monitored/command/nuke_storage) "mwP" = ( /obj/structure/closet/emcloset/wall{ pixel_y = 32 @@ -44194,6 +44250,12 @@ dir = 8 }, /area/station/science/xenobiology) +"mxD" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/hop) "mxK" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 @@ -44208,17 +44270,6 @@ dir = 4 }, /area/station/science/research) -"mxN" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_edge{ - dir = 4 - }, -/area/station/command/gateway) "mxQ" = ( /obj/effect/turf_decal/weather/snow, /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ @@ -44534,10 +44585,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/disposal/incinerator) -"mCK" = ( -/obj/vehicle/sealed/mecha/ripley/paddy/preset, -/turf/open/floor/iron/recharge_floor, -/area/station/security/office) "mCM" = ( /obj/effect/mapping_helpers/airlock/access/all/medical/general, /obj/effect/mapping_helpers/airlock/unres{ @@ -44568,6 +44615,10 @@ /obj/effect/landmark/start/janitor, /turf/open/floor/noslip, /area/station/service/janitor) +"mDb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningoffice) "mDd" = ( /obj/structure/reagent_dispensers/plumbed{ name = "virology water reservoir" @@ -44655,6 +44706,10 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"mEa" = ( +/obj/structure/trash_pile, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "mEl" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -44764,23 +44819,6 @@ /obj/structure/sign/poster/contraband/communist_state/directional/east, /turf/open/floor/wood, /area/station/maintenance/rus_gambling) -"mFX" = ( -/obj/structure/table, -/obj/item/plate/large, -/obj/item/plate, -/obj/item/plate/small{ - pixel_y = 1 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 10; - pixel_y = 18 - }, -/obj/item/knife/butcher{ - pixel_x = 5 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "mGv" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -44954,10 +44992,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/station/security/courtroom) -"mIH" = ( -/obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/engine, -/area/station/science/xenobiology) "mII" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 @@ -44993,6 +45027,22 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/fore) +"mJw" = ( +/obj/structure/table/reinforced, +/obj/item/stack/package_wrap, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/battery/high, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth, +/area/station/construction/mining/aux_base) "mJy" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -45065,6 +45115,17 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"mKK" = ( +/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 = 4 + }, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "mKU" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -45251,6 +45312,38 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) +"mMO" = ( +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = 6; + pixel_y = 34 + }, +/obj/machinery/pdapainter, +/obj/machinery/button/door/directional/north{ + id = "hopqueue"; + name = "Queue Shutters Control"; + pixel_x = -6; + req_access = list("hop") + }, +/obj/machinery/button/door/directional/north{ + id = "hop"; + name = "Privacy Shutters Control"; + pixel_x = 6; + req_access = list("hop") + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/keycard_auth/directional/west{ + pixel_y = 25 + }, +/obj/machinery/button/ticket_machine{ + pixel_x = -6; + pixel_y = 36 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/hop) "mMS" = ( /obj/structure/chair/office{ dir = 8 @@ -45279,6 +45372,15 @@ /obj/effect/turf_decal/tile/yellow/half, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) +"mNb" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/science/xenobiology) "mNz" = ( /obj/structure/rack, /obj/effect/turf_decal/bot, @@ -45312,6 +45414,17 @@ /obj/effect/mapping_helpers/airlock/access/all/service/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/greater) +"mNK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/fake_stairs/directional/north, +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "mNO" = ( /obj/effect/turf_decal/bot, /obj/machinery/portable_atmospherics/canister/air, @@ -45421,6 +45534,19 @@ /obj/item/radio/intercom/prison/directional/north, /turf/open/floor/iron/dark/smooth_edge, /area/station/security/prison) +"mPf" = ( +/obj/structure/table, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "mPl" = ( /obj/item/radio/intercom/directional/south, /obj/structure/chair/comfy/brown{ @@ -45712,6 +45838,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/smooth_large, /area/station/hallway/primary/fore) +"mTM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) "mTO" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -45736,6 +45871,22 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/checker, /area/station/service/theater) +"mTV" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/drone_bay) "mTW" = ( /obj/structure/disposaloutlet{ dir = 8 @@ -45746,12 +45897,6 @@ /obj/effect/turf_decal/box, /turf/open/floor/plating/airless, /area/space/nearstation) -"mTY" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 5 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/bitrunning/den) "mUp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/mess, @@ -45857,11 +46002,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) -"mVt" = ( -/obj/effect/turf_decal/weather/snow, -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "mVv" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 5 @@ -45951,6 +46091,18 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/engineering/lobby) +"mWy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos) "mWD" = ( /obj/machinery/griddle, /obj/structure/extinguisher_cabinet/directional/east, @@ -46150,6 +46302,25 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/blueshield) +"mYH" = ( +/obj/structure/table, +/obj/item/food/ready_donk/mac_n_cheese{ + pixel_y = 3; + pixel_x = 2 + }, +/obj/item/food/ready_donk/nachos_grandes{ + pixel_y = 7 + }, +/obj/item/food/ready_donk/donkhiladas{ + pixel_y = 11; + pixel_x = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/bitrunning/den) "mYL" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 1 @@ -46428,16 +46599,6 @@ /obj/item/storage/fancy/donut_box, /turf/open/floor/carpet/blue, /area/station/command/bridge) -"ncR" = ( -/obj/structure/closet/bombcloset, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron/smooth_edge, -/area/station/science/ordnance) "ncU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -46490,6 +46651,19 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/smooth, /area/station/maintenance/aft) +"neg" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "nel" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/start/hangover, @@ -46528,6 +46702,26 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical) +"neW" = ( +/obj/machinery/airalarm/directional/south, +/obj/structure/rack, +/obj/effect/turf_decal/trimline/dark_red/filled/line, +/obj/item/pipe_dispenser, +/obj/item/analyzer, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/science/ordnance) +"nfb" = ( +/obj/effect/turf_decal/skyrat_decals/enclave/bottom/left{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "nfr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46602,6 +46796,20 @@ /obj/structure/grille, /turf/closed/wall/r_wall/rust, /area/station/engineering/atmos) +"nhi" = ( +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, +/area/station/medical/medbay/lobby) "nho" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46731,6 +46939,27 @@ dir = 8 }, /area/station/security/checkpoint/customs) +"nja" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/table, +/obj/item/serviette_pack{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "njb" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/east, @@ -46812,38 +47041,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_edge, /area/station/security/interrogation) -"njQ" = ( -/obj/structure/table/reinforced, -/obj/item/folder/white{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/structure/desk_bell{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chemistry_shutters_south"; - name = "Pharmacy Shutters" - }, -/obj/machinery/door/window/left/directional/west, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) "njV" = ( /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 5 @@ -46885,6 +47082,10 @@ "nkn" = ( /turf/closed/wall/r_wall, /area/station/security/office) +"nko" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/station/science/xenobiology) "nku" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/engineering/ce, @@ -46965,10 +47166,6 @@ dir = 4 }, /area/station/security/prison/work) -"nlj" = ( -/obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nll" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -47123,6 +47320,10 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/range) +"nnl" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "nnm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47236,26 +47437,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/small, /area/station/commons/dorms) -"npo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall17"; - location = "hall16" - }, -/obj/effect/turf_decal/skyrat_decals/enclave/bottom/middle{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "npI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47350,15 +47531,6 @@ }, /turf/open/floor/wood/large, /area/station/hallway/primary/fore) -"nqU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningdock) "nrb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47474,6 +47646,17 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/smooth_edge, /area/station/engineering/lobby) +"ntl" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) "ntn" = ( /obj/structure/table, /obj/effect/spawner/random/maintenance, @@ -47564,6 +47747,12 @@ /obj/effect/turf_decal/trimline/white/end, /turf/open/floor/wood, /area/station/commons/dorms) +"ntV" = ( +/obj/effect/spawner/random/bedsheet/double, +/obj/machinery/newscaster/directional/east, +/obj/structure/bed/double/pod, +/turf/open/floor/carpet/cyan, +/area/station/commons/dorms) "ntX" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 4 @@ -47823,16 +48012,6 @@ /obj/item/reagent_containers/cup/watering_can, /turf/open/floor/iron/dark/smooth_large, /area/station/service/hydroponics/garden) -"nxj" = ( -/obj/effect/turf_decal/tile/blue/full, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/turf/open/floor/iron/airless{ - icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; - icon_state = "floor1" - }, -/area/space/nearstation) "nxn" = ( /obj/machinery/door/airlock/rd{ name = "Research Director's Quarters" @@ -47907,10 +48086,14 @@ /obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/greater) -"nyf" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/miningoffice) +"nyh" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/bush/sunny, +/mob/living/carbon/human/species/monkey, +/obj/structure/sign/poster/official/fruit_bowl/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/grass, +/area/station/science/genetics) "nyC" = ( /turf/closed/wall, /area/station/service/hydroponics/garden) @@ -47956,10 +48139,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_edge, /area/station/engineering/atmos) -"nzv" = ( -/obj/machinery/griddle, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "nzw" = ( /obj/structure/rack, /obj/item/poster/random_contraband, @@ -48106,17 +48285,6 @@ }, /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) -"nBO" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - 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/smooth_edge{ - dir = 8 - }, -/area/station/cargo/miningdock) "nCl" = ( /obj/structure/chair/office/light{ dir = 4 @@ -48299,11 +48467,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/vaporwave, /area/station/service/barber) -"nFL" = ( -/obj/machinery/mass_driver/chapelgun, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/pod/dark, -/area/station/service/chapel/funeral) "nFQ" = ( /obj/machinery/barsign/all_access/directional/north, /obj/machinery/light/warm/directional/north, @@ -48397,19 +48560,6 @@ /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/research/abandoned) -"nGR" = ( -/obj/structure/chair/sofa/corp/right{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/cargo/bitrunning/den) "nGX" = ( /obj/structure/chair/sofa/right/brown{ dir = 8 @@ -48543,6 +48693,23 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/freezer, /area/station/security/checkpoint/medical) +"nJi" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + dir = 4; + location = "QM #4" + }, +/obj/effect/turf_decal/box, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/storage) "nJj" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -48736,11 +48903,16 @@ /obj/effect/spawner/random/maintenance/eight, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"nMk" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) +"nMn" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/skyrat_decals/enclave/top/right{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "nMr" = ( /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/aft) @@ -48847,6 +49019,21 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/wood, /area/station/hallway/secondary/entry) +"nNe" = ( +/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/skyrat_decals/enclave/middle/left{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "nNB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -49024,17 +49211,6 @@ }, /turf/open/floor/iron/grimy, /area/station/commons/lounge) -"nPC" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark_green/diagonal_centre, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/white/diagonal, -/area/station/medical/medbay/central) "nPI" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/grimy, @@ -49063,12 +49239,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/department/crew_quarters/bar) -"nQh" = ( -/obj/structure/bed/double, -/obj/effect/spawner/random/bedsheet/double, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/carpet/black, -/area/station/commons/dorms) "nQj" = ( /obj/machinery/cryopod{ dir = 1 @@ -49144,6 +49314,13 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/carpet/cyan, /area/station/commons/dorms) +"nRb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_red/filled/corner, +/turf/open/floor/iron/smooth_corner, +/area/station/science/ordnance) "nRd" = ( /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, @@ -49169,13 +49346,6 @@ dir = 4 }, /area/station/science/xenobiology) -"nRy" = ( -/obj/effect/turf_decal/weather/snow, -/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/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "nRz" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -49220,6 +49390,42 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/fore) +"nRP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "xenobio3"; + name = "Xenobio Pen 3 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/science/xenobiology) +"nRS" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 4; + pixel_y = 18 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "nRV" = ( /obj/structure/closet/secure_closet{ name = "contraband locker"; @@ -49260,15 +49466,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white/diagonal, /area/station/science/research) -"nSB" = ( -/obj/structure/railing{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/turf/open/floor/iron/corner, -/area/station/hallway/primary/central) "nSE" = ( /obj/machinery/light/warm/directional/north, /obj/effect/turf_decal/siding/green, @@ -49384,13 +49581,12 @@ /obj/structure/window/reinforced/survival_pod/spawner/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/commons/fitness/recreation/entertainment) -"nTI" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) +"nTN" = ( +/obj/structure/bed/double, +/obj/effect/spawner/random/bedsheet/double, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/carpet, +/area/station/commons/dorms) "nTS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49529,6 +49725,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/smooth, /area/station/engineering/power_room) +"nVc" = ( +/obj/structure/chair/plastic, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/start/bitrunner, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/bitrunning/den) "nVD" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/trimline/dark_red/filled/line{ @@ -49544,20 +49749,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/auxlab/firing_range) -"nVG" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast Door" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nVO" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/iron/dark, @@ -49762,18 +49953,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"nYG" = ( -/obj/machinery/computer/order_console/cook, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/smooth_large, -/area/station/hallway/secondary/service) "nYI" = ( /obj/effect/landmark/secequipment, /obj/structure/sign/poster/official/random/directional/north, @@ -49802,6 +49981,16 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/smooth_edge, /area/station/cargo/warehouse) +"nYZ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos) "nZg" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/disposalpipe/segment, @@ -49878,26 +50067,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /turf/open/floor/iron/dark/smooth_large, /area/station/security/brig) -"oaL" = ( -/obj/structure/table/wood, -/obj/item/taperecorder{ - pixel_x = 7; - pixel_y = 14 - }, -/obj/item/paper_bin{ - pixel_y = 2; - pixel_x = 6 - }, -/obj/item/pen{ - pixel_y = 2; - pixel_x = 6 - }, -/obj/item/flashlight/lamp{ - pixel_x = -5; - pixel_y = 2 - }, -/turf/open/floor/iron/grimy, -/area/station/service/lawoffice) "oaZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 9 @@ -49917,18 +50086,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/large, /area/station/hallway/secondary/entry) -"obz" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sink/directional/south, -/obj/effect/turf_decal/siding/green, -/obj/machinery/firealarm/directional/north{ - pixel_x = -6 - }, -/turf/open/floor/iron/edge, -/area/station/service/hydroponics) "ocb" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -49999,16 +50156,6 @@ dir = 4 }, /area/station/medical/surgery) -"ocK" = ( -/obj/structure/table, -/obj/item/storage/bag/tray{ - pixel_y = 3 - }, -/obj/item/food/dough{ - pixel_y = 5 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "ocV" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -50083,6 +50230,28 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/science/xenobiology) +"oeu" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/reagent_containers/cup/glass/bottle/goldschlager{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ + pixel_x = 8; + pixel_y = -1 + }, +/obj/machinery/requests_console/directional/east{ + department = "Bar"; + name = "Bar Requests Console"; + pixel_x = -30 + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/item/reagent_containers/cup/glass/bottle/champagne{ + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/service/bar) "oew" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -50326,6 +50495,17 @@ /obj/structure/table/wood, /turf/open/floor/carpet/cyan, /area/station/command/heads_quarters/blueshield) +"ohm" = ( +/obj/machinery/atmospherics/components/binary/crystallizer{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/engineering/atmos) "ohz" = ( /obj/machinery/light/cold/directional/north, /obj/effect/turf_decal/trimline/white/end, @@ -50348,22 +50528,6 @@ /obj/item/storage/belt/utility, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) -"ohN" = ( -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/power_store/battery/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/closet/crate/engineering, -/turf/open/floor/engine, -/area/station/engineering/main) "ohO" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 4 @@ -50427,6 +50591,32 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"oix" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/machinery/requests_console/directional/north{ + department = "Security"; + name = "Security Requests Console"; + pixel_y = -32 + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/light/warm/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Security - Office Aft" + }, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/station/security/office) "oiR" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -50455,6 +50645,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"oiY" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) "oiZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 8 @@ -50603,37 +50802,11 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/crew_quarters/bar) -"okY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/dark/corner{ - dir = 8 - }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "olf" = ( /obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth, /area/station/maintenance/port/greater) -"olm" = ( -/obj/structure/table, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/structure/desk_bell{ - pixel_x = 7; - pixel_y = 10 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "olo" = ( /obj/structure/chair/office{ dir = 8 @@ -50665,13 +50838,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/parquet, /area/station/common/night_club) -"olG" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "olS" = ( /obj/structure/bodycontainer/crematorium{ id = "crematoriumChapel" @@ -50717,6 +50883,15 @@ /obj/item/flashlight/flare/candle, /turf/open/floor/iron/smooth, /area/station/maintenance/department/crew_quarters/bar) +"omB" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/corner, +/area/station/hallway/primary/central) "omI" = ( /obj/machinery/door/airlock/maintenance{ name = "Old Bar" @@ -50747,12 +50922,31 @@ /obj/structure/sign/departments/aisat/directional/west, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat/foyer) +"onu" = ( +/obj/effect/turf_decal/skyrat_decals/enclave/middle/left{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/obj/effect/landmark/start/paramedic, +/obj/effect/turf_decal/trimline/blue/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "onB" = ( /obj/effect/turf_decal/tile/red/full, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/event_spawn, /turf/open/floor/pod/dark, /area/station/service/chapel/office) +"onC" = ( +/obj/structure/bed/double, +/obj/effect/spawner/random/bedsheet/double, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/maintenance/department/science/xenobiology) "onJ" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/cold/directional/south, @@ -51087,14 +51281,6 @@ /obj/machinery/meter, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) -"orN" = ( -/obj/effect/turf_decal/skyrat_decals/enclave/top/left{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "orT" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -51225,6 +51411,14 @@ "otw" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/freezerchamber) +"otC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/large, +/area/station/security/courtroom) "otQ" = ( /obj/effect/mapping_helpers/airlock/access/all/medical/general, /obj/machinery/door/airlock/maintenance{ @@ -51267,31 +51461,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"ouL" = ( -/obj/structure/table, -/obj/item/stock_parts/micro_laser{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = 2 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/cargo/drone_bay) "ouX" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -51427,24 +51596,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine) -"owP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/atmos) -"owU" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/light/directional/north, -/turf/open/floor/wood/large, -/area/station/security/courtroom) +"owG" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/sorting) "oxa" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/closed/wall, @@ -51537,13 +51693,6 @@ "oyg" = ( /turf/open/floor/engine, /area/station/science/explab) -"oym" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/exit/departure_lounge) "oyq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -51800,14 +51949,6 @@ "oCl" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) -"oCm" = ( -/obj/structure/sign/warning/vacuum/directional/north, -/obj/machinery/conveyor/inverted{ - dir = 6; - id = "mining" - }, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "oCo" = ( /obj/structure/railing/corner{ dir = 4 @@ -52055,26 +52196,6 @@ dir = 1 }, /area/station/science/research) -"oFQ" = ( -/obj/structure/table/wood/fancy/royalblue, -/obj/item/stack/spacecash/c500, -/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ - pixel_x = 6; - pixel_y = 19 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = -1; - pixel_y = 12 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/machinery/camera/motion/directional/west{ - c_tag = "Vault"; - network = list("vault") - }, -/obj/item/piggy_bank/vault, -/turf/open/floor/engine, -/area/station/ai_monitored/command/nuke_storage) "oFU" = ( /obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ name = "Burn Chamber Exterior Airlock" @@ -52126,11 +52247,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"oGH" = ( -/obj/machinery/light/cold/directional/south, -/obj/machinery/computer/security/telescreen/minisat/directional/south, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "oGI" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -52149,16 +52265,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/dark/small, /area/station/security/prison/garden) -"oGX" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 5 - }, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/bitrunning/den) "oHc" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52281,6 +52387,11 @@ /obj/structure/noticeboard/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/aft/greater) +"oIE" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) "oIJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -52301,6 +52412,11 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) +"oJu" = ( +/obj/effect/landmark/observer_start, +/obj/effect/turf_decal/plaque, +/turf/open/floor/iron/large, +/area/station/hallway/primary/fore) "oJw" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/door/firedoor, @@ -52323,16 +52439,6 @@ dir = 1 }, /area/station/hallway/secondary/construction) -"oJI" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/skyrat_decals/enclave/top/right{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "oJT" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -52410,6 +52516,35 @@ "oLo" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/supply) +"oLp" = ( +/obj/structure/table, +/obj/item/storage/medkit/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/medkit/o2, +/obj/item/storage/medkit/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/digital_clock/directional/north{ + pixel_y = 37 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled, +/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner, +/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/storage) "oLK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52501,6 +52636,19 @@ }, /turf/open/floor/iron/grimy, /area/station/commons/dorms) +"oMQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Telecomms Foyer" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination/tcomms, +/obj/effect/mapping_helpers/airlock/access/any/engineering/tcoms, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/turf/open/floor/engine, +/area/station/tcommsat/computer) "oMY" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/sign/departments/medbay/alt/directional/south, @@ -52615,24 +52763,6 @@ dir = 1 }, /area/station/hallway/primary/fore) -"oOw" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/engine, -/area/station/science/xenobiology) -"oOG" = ( -/obj/structure/sign/warning/electric_shock/directional/north, -/obj/effect/turf_decal/bot, -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable, -/turf/open/floor/circuit/green/telecomms/mainframe, -/area/station/tcommsat/server) "oOK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -52676,27 +52806,6 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) -"oPu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "xenobio4"; - name = "Xenobio Pen 4 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/science/xenobiology) "oPM" = ( /obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/carpet, @@ -52898,6 +53007,19 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/lesser) +"oSF" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/skyrat_decals/enclave/middle/right{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "oSK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -53007,11 +53129,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/circuit/green, /area/station/ai_monitored/command/nuke_storage) -"oUb" = ( -/obj/machinery/firealarm/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/stairs, -/area/station/cargo/bitrunning/den) "oUl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53227,22 +53344,22 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/ce) -"oWu" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 +"oWo" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/storage/photo_album, +/obj/item/camera{ + pixel_x = -4; + pixel_y = 6 }, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_y = 4 +/obj/effect/turf_decal/siding/dark_blue{ + dir = 8 }, -/obj/item/pen{ - pixel_y = 4 +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/light/directional/north, -/obj/machinery/computer/security/telescreen/tcomms/directional/west, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/engineering) +/obj/machinery/computer/security/telescreen/minisat/directional/west, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/bridge) "oWD" = ( /obj/structure/flora/bush/pointy/style_random, /obj/structure/flora/bush/sparsegrass/style_random, @@ -53306,20 +53423,6 @@ }, /turf/open/floor/grass, /area/station/command/heads_quarters/nt_rep) -"oXF" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "Xenobio Pen 7 Blast Door" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "oXG" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/popcorn, @@ -53797,6 +53900,21 @@ /obj/machinery/incident_display/delam, /turf/closed/wall/r_wall, /area/station/security/checkpoint/engineering) +"pdo" = ( +/obj/machinery/button/door/directional/south{ + id = "kitchen_counter"; + name = "Counter Shutters Control" + }, +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/processor{ + pixel_y = 12 + }, +/obj/structure/railing, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "pdt" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/box, @@ -53836,6 +53954,22 @@ }, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) +"pdM" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + dir = 4; + location = "QM #1" + }, +/obj/effect/turf_decal/box, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #3"; + suffix = "#3" + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/storage) "pdO" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 8 @@ -53856,10 +53990,6 @@ /obj/item/folder/white, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/morgue) -"pei" = ( -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "pep" = ( /obj/structure/table/glass, /obj/item/paper_bin{ @@ -53882,6 +54012,18 @@ dir = 4 }, /area/station/service/hydroponics) +"pet" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/engineering/atmos) "pev" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -53996,6 +54138,7 @@ dir = 1 }, /obj/effect/landmark/navigate_destination/sec, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark/smooth_large, /area/station/security/brig) "pfJ" = ( @@ -54325,6 +54468,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/rd) +"pjm" = ( +/obj/vehicle/sealed/mecha/ripley/paddy/preset, +/turf/open/floor/iron/recharge_floor, +/area/station/security/office) "pjp" = ( /obj/effect/turf_decal/trimline/green/filled/warning{ dir = 5 @@ -54380,6 +54527,20 @@ "pkp" = ( /turf/open/floor/plating, /area/space/nearstation) +"pkr" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast Door" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "pkH" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ @@ -54410,10 +54571,6 @@ }, /turf/open/floor/carpet/blue, /area/station/command/bridge) -"plc" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/engine, -/area/station/science/xenobiology) "plm" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -54523,17 +54680,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/grimy, /area/station/service/library) -"pmM" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/cargo/miningdock) "pmS" = ( /obj/machinery/light/floor, /turf/open/floor/engine/plasma, @@ -54604,6 +54750,33 @@ }, /turf/open/floor/iron/half, /area/station/hallway/primary/central) +"pnL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/window/right/directional/south{ + name = "Shuttle Deliveries"; + req_access = list("cargo") + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/half, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/sorting) "pnN" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -54664,6 +54837,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"poE" = ( +/obj/machinery/door/window/left/directional/west, +/turf/open/floor/carpet/purple, +/area/station/common/night_club) "poP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54755,38 +54932,12 @@ "pqh" = ( /turf/closed/wall, /area/station/cargo/warehouse) -"pqk" = ( -/obj/structure/chair/sofa/corp/left{ - desc = "Looks like someone threw it out. Covered in donut crumbs."; - dir = 4; - name = "couch" - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/obj/structure/sign/poster/contraband/random/directional/west, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/smooth, -/area/station/cargo/bitrunning/den) "pql" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/pod/dark, /area/station/service/chapel/funeral) -"pqo" = ( -/obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/light/small/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Monastery Dock"; - network = list("ss13","monastery") - }, -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable, -/turf/open/floor/pod/light, -/area/station/service/chapel) "pqu" = ( /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 4 @@ -55039,21 +55190,6 @@ dir = 8 }, /area/station/engineering/atmos) -"put" = ( -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/delivery_chute{ - dir = 1; - name = "Prisoner Doomp" - }, -/obj/machinery/door/window/brigdoor/left/directional/north{ - name = "Prisoner Doomp" - }, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/brig) "puw" = ( /obj/structure/sign/painting/parting{ pixel_x = -32 @@ -55177,13 +55313,6 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) -"pws" = ( -/obj/effect/landmark/start/shaft_miner, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningdock) "pwB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/radio{ @@ -55193,6 +55322,13 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) +"pwE" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/drone_bay) "pwH" = ( /obj/machinery/door/airlock/command{ name = "Captain's Emergency Escape" @@ -55207,6 +55343,30 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/heads_quarters/captain) +"pwI" = ( +/obj/item/storage/cans/sixsoda, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/structure/railing, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/bitrunning/den) +"pwP" = ( +/obj/structure/table, +/obj/item/storage/bag/plants{ + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/watering_can{ + pixel_y = 3 + }, +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "pwX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -55346,28 +55506,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) -"pzF" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/storage/box/trackimp{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/storage/box/chemimp{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/gun/energy/ionrifle{ - pixel_y = -6 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/station/ai_monitored/security/armory) "pzG" = ( /obj/structure/table/wood, /obj/item/restraints/handcuffs, @@ -55479,6 +55617,19 @@ dir = 1 }, /area/station/engineering/atmos) +"pAK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/dropper, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/pharmacy) "pAZ" = ( /obj/effect/turf_decal/weather/sand{ dir = 1 @@ -55523,12 +55674,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/lesser) -"pBG" = ( -/obj/machinery/status_display/evac/directional/north, -/obj/effect/spawner/random/vending/colavend, -/obj/effect/turf_decal/siding/blue, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "pBQ" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 @@ -55536,24 +55681,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) -"pBR" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Foyer" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, -/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/navigate_destination/engineering, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/lobby) "pBZ" = ( /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, @@ -55672,6 +55799,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_edge, /area/station/engineering/atmos/pumproom) +"pDj" = ( +/obj/machinery/light/warm/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Cafeteria Fore"; + name = "service camera" + }, +/obj/machinery/firealarm/directional/north{ + pixel_x = 8 + }, +/obj/item/radio/intercom/directional/north{ + pixel_x = -6 + }, +/obj/structure/table, +/obj/item/plate, +/obj/item/food/sausage, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "pDk" = ( /obj/structure/table/reinforced, /obj/item/clothing/suit/utility/radiation, @@ -55806,15 +55950,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/atmos/storage/gas) -"pFJ" = ( -/obj/item/storage/cans/sixsoda, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/structure/railing, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/bitrunning/den) "pGh" = ( /turf/open/floor/iron/white/smooth_large, /area/station/hallway/primary/fore) @@ -55911,26 +56046,6 @@ dir = 1 }, /area/station/commons/fitness/recreation/entertainment) -"pHx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "xenobio3"; - name = "Xenobio Pen 3 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/science/xenobiology) "pHz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56174,38 +56289,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/ai_monitored/security/armory) -"pLl" = ( -/obj/machinery/button/flasher{ - id = "hopflash"; - pixel_x = 6; - pixel_y = 34 - }, -/obj/machinery/pdapainter, -/obj/machinery/button/door/directional/north{ - id = "hopqueue"; - name = "Queue Shutters Control"; - pixel_x = -6; - req_access = list("hop") - }, -/obj/machinery/button/door/directional/north{ - id = "hop"; - name = "Privacy Shutters Control"; - pixel_x = 6; - req_access = list("hop") - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/keycard_auth/directional/west{ - pixel_y = 25 - }, -/obj/machinery/button/ticket_machine{ - pixel_x = -6; - pixel_y = 36 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/hop) "pLH" = ( /obj/effect/turf_decal/box/red, /obj/structure/sign/warning/hot_temp/directional/north, @@ -56234,6 +56317,26 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"pLS" = ( +/obj/structure/table/wood, +/obj/item/taperecorder{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/paper_bin{ + pixel_y = 2; + pixel_x = 6 + }, +/obj/item/pen{ + pixel_y = 2; + pixel_x = 6 + }, +/obj/item/flashlight/lamp{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/iron/grimy, +/area/station/service/lawoffice) "pMf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -56345,6 +56448,18 @@ dir = 1 }, /area/station/medical/medbay/lobby) +"pNs" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sink/directional/south, +/obj/effect/turf_decal/siding/green, +/obj/machinery/firealarm/directional/north{ + pixel_x = -6 + }, +/turf/open/floor/iron/edge, +/area/station/service/hydroponics) "pNw" = ( /obj/structure/table/glass, /obj/item/reagent_containers/cup/beaker{ @@ -56623,15 +56738,6 @@ }, /turf/open/floor/iron/smooth, /area/station/science/ordnance/office) -"pSj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/atmos) "pSm" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -56678,6 +56784,10 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance) +"pSF" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/atmos) "pSJ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -56850,6 +56960,14 @@ /obj/structure/table/reinforced/rglass, /turf/open/floor/wood/large, /area/station/command/heads_quarters/rd) +"pWe" = ( +/obj/structure/sign/poster/random/directional/north, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/large, +/area/station/hallway/secondary/service) "pWf" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -56875,6 +56993,16 @@ /obj/item/stack/sheet/cardboard, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/security/greater) +"pWp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/drone_bay) "pWq" = ( /turf/closed/wall, /area/station/security/courtroom) @@ -57104,18 +57232,6 @@ /obj/structure/grille/broken, /turf/open/floor/iron/smooth, /area/station/maintenance/department/crew_quarters/bar) -"pYe" = ( -/obj/structure/chair/stool/directional/west{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/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/cafeteria, -/area/station/service/cafeteria) "pYi" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -57301,6 +57417,14 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/prison) +"pZJ" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/station/security/courtroom) "pZN" = ( /turf/closed/wall, /area/station/service/bar) @@ -57322,28 +57446,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/pod/dark, /area/station/service/chapel) -"qaf" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/machinery/light_switch/directional/east{ - pixel_y = 11 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 1 - }, -/obj/machinery/button/door/directional/east{ - id = "chemistry_shutters"; - name = "Shutters Control"; - req_access = list("pharmacy") - }, -/obj/effect/turf_decal/bot_red, -/obj/machinery/chem_dispenser, -/turf/open/floor/iron/dark/smooth_large, -/area/station/medical/pharmacy) "qai" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 @@ -57657,14 +57759,12 @@ }, /turf/open/floor/iron/white/small, /area/station/common/pool) -"qcQ" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 +"qcK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/box, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/turf/closed/wall, +/area/station/service/kitchen) "qcR" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_blue{ @@ -57909,6 +58009,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"qge" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposaloutlet{ + dir = 4; + name = "Cargo Deliveries" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/large, +/area/station/hallway/secondary/service) "qgv" = ( /obj/item/radio/intercom/directional/west, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -57938,13 +58050,6 @@ "qgT" = ( /turf/open/floor/iron/white, /area/station/hallway/primary/fore) -"qgY" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/structure/railing, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/cargo/bitrunning/den) "qhe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58161,6 +58266,12 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine/atmos/lesser) +"qjH" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/space/nearstation) "qkb" = ( /obj/structure/bed/pod{ desc = "An old medical bed, just waiting for replacement with something up to date."; @@ -58262,28 +58373,6 @@ "qlN" = ( /turf/closed/wall/r_wall, /area/station/science/robotics/lab) -"qlQ" = ( -/obj/item/clothing/shoes/magboots{ - pixel_x = -4 - }, -/obj/item/clothing/shoes/magboots{ - pixel_x = 3 - }, -/obj/item/clothing/shoes/magboots{ - pixel_y = 4 - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/rack/shelf, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 5 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "qlS" = ( /obj/machinery/door/airlock/research{ name = "Circuit Testing Lab" @@ -58460,29 +58549,18 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/lesser) -"qor" = ( -/obj/item/plate/oven_tray{ - pixel_x = -2; - pixel_y = 1 - }, -/obj/item/plate/oven_tray{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/clothing/suit/apron/chef{ - pixel_y = 11 - }, -/obj/item/book/manual/wiki/cooking_to_serve_man{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/structure/table, -/obj/item/knife/kitchen{ - pixel_x = -13; - pixel_y = 3 +"qos" = ( +/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 = 4 }, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "qoE" = ( /obj/machinery/digital_clock{ pixel_y = 5 @@ -58528,16 +58606,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/circuit, /area/station/science/research/abandoned) -"qoU" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen/ce/directional/west, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/security/checkpoint/engineering) "qoV" = ( /obj/structure/table/wood/fancy/cyan, /obj/effect/turf_decal/siding/wood{ @@ -58650,15 +58718,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/morgue) -"qpX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningdock) "qqa" = ( /obj/effect/spawner/random/structure/barricade, /turf/open/floor/iron/smooth, @@ -58685,33 +58744,6 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/engineering/main) -"qrc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/window/right/directional/south{ - name = "Shuttle Deliveries"; - req_access = list("cargo") - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/brown/half, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/sorting) "qrF" = ( /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark/smooth_large, @@ -58805,19 +58837,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical) -"qsW" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Telecomms Foyer" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/navigate_destination/tcomms, -/obj/effect/mapping_helpers/airlock/access/any/engineering/tcoms, -/obj/effect/mapping_helpers/airlock/access/any/command/general, -/turf/open/floor/engine, -/area/station/tcommsat/computer) "qta" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -58843,6 +58862,17 @@ /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/iron/smooth, /area/station/maintenance/department/science/ordnance_maint) +"qtm" = ( +/obj/machinery/computer/security/mining{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) "qtp" = ( /obj/machinery/door/window/left/directional/east{ name = "Justice Storage"; @@ -58859,17 +58889,6 @@ /obj/effect/turf_decal/bot_red, /turf/open/floor/iron/dark/smooth_large, /area/station/security/execution/education) -"qtr" = ( -/obj/machinery/computer/shuttle/mining{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/miningdock) "qts" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/item/kirbyplants/random, @@ -59037,15 +59056,6 @@ }, /turf/open/floor/wood/parquet, /area/station/common/night_club) -"qwy" = ( -/obj/structure/chair/stool/directional/west{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "qwH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59106,6 +59116,12 @@ }, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"qxK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/cold/directional/west, +/obj/machinery/computer/security/telescreen/tcomms/directional/west, +/turf/open/floor/engine, +/area/station/tcommsat/computer) "qxO" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/medical) @@ -59331,13 +59347,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/fore) -"qAn" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "qAt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -59352,14 +59361,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/cargo/storage) -"qAA" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/flora/bush/sunny, -/mob/living/carbon/human/species/monkey, -/obj/structure/sign/poster/official/fruit_bowl/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/grass, -/area/station/science/genetics) "qAD" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, @@ -59435,6 +59436,24 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"qBO" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/hooded/ablative{ + pixel_y = 7 + }, +/obj/item/gun/energy/temperature/security{ + pixel_y = 5 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/ai_monitored/security/armory) "qBR" = ( /obj/structure/transit_tube, /obj/structure/lattice, @@ -59456,12 +59475,6 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/hallway/secondary/entry) -"qCq" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/siding/wood, -/obj/item/kirbyplants/random, -/turf/open/floor/wood/large, -/area/station/security/courtroom) "qCB" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -59510,6 +59523,15 @@ "qDk" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical/morgue) +"qDl" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/right/directional/west{ + name = "Kitchen Deliveries"; + req_access = list("kitchen") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "qDp" = ( /obj/structure/chair/office/light, /obj/effect/turf_decal/trimline/neutral/filled/warning, @@ -59580,6 +59602,13 @@ }, /turf/open/floor/iron/large, /area/station/service/hydroponics) +"qEv" = ( +/obj/machinery/power/shieldwallgen/xenobiologyaccess, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/cable, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) "qEC" = ( /obj/structure/reagent_dispensers/watertank/high, /obj/effect/turf_decal/stripes/line, @@ -59626,6 +59655,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/smooth_large, /area/station/hallway/primary/aft) +"qEP" = ( +/obj/structure/bed/double, +/obj/effect/spawner/random/bedsheet/double, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/carpet/black, +/area/station/commons/dorms) "qET" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, @@ -59721,20 +59756,6 @@ dir = 8 }, /area/station/hallway/primary/fore) -"qGR" = ( -/obj/structure/plasticflaps{ - name = "Deliveries" - }, -/obj/structure/window/reinforced/spawner/directional/west{ - pixel_x = -4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/window/right/directional/north{ - name = "Deliveries"; - req_access = list("shipping") - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/sorting) "qGT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59942,6 +59963,11 @@ }, /turf/open/space/basic, /area/space/nearstation) +"qIL" = ( +/obj/machinery/light/cold/directional/south, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "qIS" = ( /obj/effect/spawner/random/trash/grime, /obj/effect/decal/cleanable/dirt, @@ -60080,34 +60106,6 @@ dir = 8 }, /area/station/science/ordnance/testlab) -"qKP" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/armor/vest/alt/sec{ - pixel_y = 2 - }, -/obj/item/clothing/suit/armor/vest/alt/sec{ - pixel_x = -4; - pixel_y = -6 - }, -/obj/item/clothing/suit/armor/vest/alt/sec{ - pixel_x = 4; - pixel_y = -6 - }, -/obj/structure/window/reinforced/spawner/directional/north{ - pixel_y = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/dark_red/half{ - dir = 4 - }, -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/station/ai_monitored/security/armory) "qLf" = ( /obj/machinery/light_switch/directional/east, /obj/effect/turf_decal/trimline/blue/filled/warning{ @@ -60160,6 +60158,11 @@ }, /turf/open/floor/iron/small, /area/station/commons/dorms) +"qLC" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/office) "qLI" = ( /obj/structure/table/reinforced/rglass, /obj/machinery/recharger, @@ -60532,6 +60535,11 @@ dir = 8 }, /area/station/commons/fitness/recreation) +"qSs" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/smartfridge/drying, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "qSu" = ( /turf/open/floor/iron/large, /area/station/hallway/primary/fore) @@ -60584,6 +60592,28 @@ }, /turf/open/floor/wood/large, /area/station/service/theater) +"qSU" = ( +/obj/item/clothing/shoes/magboots{ + pixel_x = -4 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = 3 + }, +/obj/item/clothing/shoes/magboots{ + pixel_y = 4 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/rack/shelf, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 5 + }, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "qSW" = ( /obj/machinery/door/airlock/research{ name = "Research Division Access" @@ -60682,24 +60712,6 @@ dir = 1 }, /area/station/engineering/atmos) -"qTS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/drone_bay) -"qUc" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/modular_computer/preset/id{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/carpet/purple, -/area/station/command/heads_quarters/rd) "qUl" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -60782,17 +60794,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/prison/work) -"qVb" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/wooden_tv{ - pixel_y = 8 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/plaque/static_plaque/golden/captain{ - pixel_y = 32 - }, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "qVj" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60819,6 +60820,11 @@ }, /turf/open/floor/iron/small, /area/station/commons/dorms) +"qVs" = ( +/turf/open/floor/iron/airless{ + icon = 'modular_skyrat/modules/advanced_shuttles/icons/evac_shuttle.dmi' + }, +/area/space/nearstation) "qVt" = ( /obj/machinery/status_display/supply{ pixel_x = 32 @@ -60912,18 +60918,6 @@ }, /turf/open/floor/wood/large, /area/station/security/courtroom) -"qWG" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/structure/plasticflaps, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/sorting) "qWR" = ( /obj/structure/sign/warning/vacuum, /turf/closed/wall, @@ -60962,6 +60956,10 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine) +"qXo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/command/heads_quarters/qm) "qXq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60970,14 +60968,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark/smooth_large, /area/station/command/gateway) -"qXs" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/wood/large, -/area/station/security/courtroom) "qXG" = ( /obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, /obj/structure/disposalpipe/segment, @@ -61164,6 +61154,11 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/engine, /area/station/medical/chemistry) +"raL" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs, +/area/station/cargo/bitrunning/den) "raM" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -61422,41 +61417,11 @@ }, /turf/open/floor/engine, /area/station/ai_monitored/security/armory) -"rfc" = ( -/obj/structure/table/reinforced/rglass, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/pen{ - pixel_y = 4 - }, -/turf/open/floor/carpet/purple, -/area/station/command/heads_quarters/rd) "rfk" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/head/cone, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine) -"rfn" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "xenobio2"; - name = "Xenobio Pen 2 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/science/xenobiology) "rfo" = ( /obj/effect/turf_decal/vg_decals/atmos/air, /turf/open/floor/engine/air, @@ -61514,6 +61479,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /turf/open/floor/engine, /area/station/tcommsat/computer) +"rfZ" = ( +/obj/machinery/power/shieldwallgen/xenobiologyaccess, +/obj/structure/cable, +/obj/machinery/button/door/directional/west{ + id = "Xtestlab"; + name = "Secure Creature Pen Blast Door"; + req_access = list("xenobiology") + }, +/obj/structure/sign/warning/gas_mask/directional/west, +/turf/open/floor/engine, +/area/station/science/xenobiology) "rga" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_cw{ dir = 1 @@ -61603,19 +61579,6 @@ /obj/effect/turf_decal/tile/purple/diagonal_centre, /turf/open/floor/iron/white/diagonal, /area/station/science/research) -"rhi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 10 - }, -/obj/structure/window/reinforced/spawner/directional/west{ - pixel_x = -4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "rhr" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -61967,6 +61930,15 @@ /obj/structure/sign/warning/no_smoking/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/storage_shared) +"rlB" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/structure/trash_pile, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/bitrunning/den) "rlC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62064,15 +62036,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/prison) -"rnb" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/structure/trash_pile, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/bitrunning/den) "rne" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -62101,6 +62064,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/smooth_edge, /area/station/science/ordnance/testlab) +"rnz" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/cargo/bitrunning/den) "rnF" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -62146,23 +62118,6 @@ /obj/effect/spawner/random/trash/hobo_squat, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"rob" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 4 - }, -/obj/machinery/requests_console/directional/south{ - department = "Pharmacy"; - name = "Pharmacy Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/ore_update, -/obj/effect/turf_decal/bot_red, -/obj/machinery/chem_dispenser, -/turf/open/floor/iron/dark/smooth_large, -/area/station/medical/pharmacy) "rog" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -62284,32 +62239,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat/service) -"rpN" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_y = 12 - }, -/obj/machinery/button/door/directional/east{ - id = "brigprison"; - name = "Prison Lockdown"; - req_access = list("brig") - }, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/computer/security/telescreen/isolation/directional/north, -/turf/open/floor/iron/dark, -/area/station/security/corrections_officer) "rpS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62362,6 +62291,15 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/smooth, /area/station/hallway/primary/aft) +"rri" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high/empty, +/turf/open/floor/iron/smooth_edge, +/area/station/engineering/lobby) "rrm" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -62401,13 +62339,6 @@ dir = 8 }, /area/station/science/lab) -"rrI" = ( -/obj/machinery/door/window/left/directional/west{ - name = "Animal Pen B"; - req_access = list("maintenance") - }, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "rrX" = ( /obj/machinery/power/terminal{ dir = 4 @@ -62495,6 +62426,13 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) +"rtG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/sorting) "rtS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62617,6 +62555,14 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/lesser) +"rvu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/box, +/obj/structure/sign/poster/official/moth_piping/directional/north, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos) "rvw" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/north, @@ -62638,18 +62584,6 @@ /obj/machinery/duct, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical) -"rvS" = ( -/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 = 4 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "rvY" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -62674,20 +62608,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/medical/break_room) -"rwT" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/atmos) "rwV" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -62771,16 +62691,6 @@ }, /turf/open/floor/cult, /area/station/service/library) -"ryN" = ( -/obj/machinery/requests_console/directional/south{ - department = "Law Office"; - name = "Law Office Requests Console"; - pixel_x = 32; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/service/lawoffice) "ryU" = ( /obj/effect/landmark/start/botanist, /obj/effect/turf_decal/trimline/green/corner{ @@ -62833,6 +62743,18 @@ }, /turf/open/space/basic, /area/space/nearstation) +"rzO" = ( +/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/skyrat_decals/enclave/bottom/right{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "rzR" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -62874,22 +62796,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood/large, /area/station/command/heads_quarters/hop) -"rAD" = ( -/obj/structure/rack, -/obj/item/storage/briefcase{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/storage/briefcase/secure{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/clothing/glasses/sunglasses, -/obj/machinery/status_display/evac/directional/east, -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/grimy, -/area/station/service/lawoffice) "rAU" = ( /turf/closed/wall, /area/station/engineering/main) @@ -63175,6 +63081,18 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark, /area/station/medical/break_room) +"rDN" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/effect/turf_decal/skyrat_decals/enclave/bottom/right{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/command) "rDO" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/command/captain, @@ -63341,12 +63259,6 @@ }, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) -"rGx" = ( -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/dark/corner, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "rGH" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, @@ -63382,24 +63294,6 @@ dir = 4 }, /area/station/security/prison) -"rHt" = ( -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/warm/directional/south, -/obj/effect/turf_decal/bot, -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_y = 7 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = -4; - pixel_y = -5 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 8; - pixel_y = -5 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/atmos) "rHw" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_cw{ dir = 1 @@ -63548,12 +63442,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) -"rJs" = ( -/obj/structure/flora/bush/fullgrass, -/obj/structure/flora/bush/ferny, -/obj/structure/window/fulltile, -/turf/open/floor/grass, -/area/station/service/kitchen) "rJK" = ( /obj/structure/flora/ocean/longseaweed, /obj/effect/spawner/liquids_spawner{ @@ -63612,18 +63500,14 @@ dir = 1 }, /area/station/hallway/primary/aft) -"rKK" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/light_switch/directional/west, -/obj/machinery/light/directional/west, -/obj/structure/table, -/obj/machinery/fax{ - fax_name = "Service Hallway"; - name = "Service Fax Machine"; - pixel_y = 3 +"rKL" = ( +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 4 }, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "rKM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -63791,6 +63675,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"rNj" = ( +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/turf/open/floor/iron/airless{ + icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; + icon_state = "floor1" + }, +/area/space/nearstation) "rNk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63873,6 +63766,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"rOw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/bitrunning/den) "rOA" = ( /turf/open/floor/glass/reinforced, /area/station/science/research) @@ -63890,24 +63789,6 @@ dir = 1 }, /area/station/medical/medbay/central) -"rOM" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - initialize_directions = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/engineering/atmos) "rOQ" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine/atmos) @@ -64136,14 +64017,24 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port) -"rSO" = ( -/obj/structure/chair/sofa/corp/right{ - color = "#DE3A3A"; - dir = 8 +"rSX" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = 8; + pixel_y = 12 }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = 8; + pixel_y = 2 + }, +/obj/effect/spawner/random/food_or_drink/cake_ingredients, +/obj/item/kitchen/rollingpin{ + pixel_x = -4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "rSZ" = ( /obj/item/kirbyplants/random, /obj/item/radio/intercom/directional/west, @@ -64236,11 +64127,11 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/large, /area/station/commons/fitness/recreation/entertainment) -"rTT" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) +"rTR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pod, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) "rTW" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 @@ -64435,6 +64326,13 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"rVJ" = ( +/obj/machinery/computer/records/medical{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/hop) "rWc" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -64705,31 +64603,6 @@ }, /turf/open/floor/iron, /area/station/commons/lounge) -"sbx" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/landmark/start/assistant, -/obj/machinery/light_switch/directional/north{ - pixel_x = 13 - }, -/obj/structure/window/spawner/directional/west, -/obj/structure/chair/sofa/corp/left{ - color = "#DE3A3A"; - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) -"sbH" = ( -/obj/effect/turf_decal/skyrat_decals/enclave/bottom/middle{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "sbU" = ( /obj/machinery/power/smes, /turf/open/floor/catwalk_floor/iron_smooth, @@ -64804,6 +64677,13 @@ dir = 4 }, /area/station/hallway/primary/central) +"scZ" = ( +/obj/machinery/door/window/left/directional/west{ + name = "Animal Pen B"; + req_access = list("maintenance") + }, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "sdb" = ( /obj/effect/mapping_helpers/burnt_floor, /obj/effect/spawner/random/structure/closet_maintenance, @@ -64836,6 +64716,10 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"sdl" = ( +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "sdt" = ( /obj/docking_port/stationary/laborcamp_home{ dir = 8 @@ -64948,18 +64832,6 @@ }, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) -"sfx" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/medical/break_room) "sfG" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 8 @@ -65020,6 +64892,10 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"sgl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/miningoffice) "sgn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -65134,6 +65010,11 @@ }, /turf/open/floor/iron/white/smooth_edge, /area/station/medical/medbay/central) +"shC" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint/supply) "shE" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -65203,6 +65084,11 @@ }, /turf/open/floor/engine, /area/station/science/auxlab/firing_range) +"sjg" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos) "sjl" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/item/radio/intercom/prison/directional/south, @@ -65586,14 +65472,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/medical/virology) -"soZ" = ( -/obj/effect/turf_decal/skyrat_decals/enclave/top/middle{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/line, -/obj/effect/turf_decal/trimline/blue/mid_joiner, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "spi" = ( /obj/structure/table, /obj/item/flashlight{ @@ -65677,6 +65555,18 @@ }, /turf/open/floor/grass, /area/station/command/heads_quarters/nt_rep) +"spL" = ( +/obj/effect/turf_decal/skyrat_decals/enclave/bottom/middle{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "spQ" = ( /obj/item/stack/sheet/iron/fifty{ pixel_y = 3 @@ -65694,12 +65584,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/maintenance/rus_gambling) -"sqo" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/virology) +"sqg" = ( +/obj/structure/closet, +/obj/structure/window/spawner/directional/south, +/obj/item/clothing/under/costume/skyrat/bathrobe, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white/small, +/area/station/common/pool) "sqD" = ( /obj/structure/table/optable, /obj/effect/turf_decal/tile/blue/full, @@ -65718,18 +65611,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/engine/atmos) -"sqL" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/cargo/miningdock) "sqQ" = ( /obj/machinery/power/solar{ id = "aftport"; @@ -65823,14 +65704,6 @@ /obj/effect/landmark/navigate_destination/research, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) -"ssw" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Hydroponics" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/turf/open/floor/iron/large, -/area/station/service/hydroponics) "ssL" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -65897,17 +65770,6 @@ /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/wood, /area/station/commons/dorms) -"stM" = ( -/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 = 4 - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "stN" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -65950,6 +65812,19 @@ }, /turf/open/floor/iron/large, /area/station/security/detectives_office) +"sur" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "suv" = ( /obj/effect/turf_decal/trimline/green/filled/warning{ dir = 8 @@ -66116,11 +65991,6 @@ dir = 8 }, /area/station/hallway/secondary/command) -"sxf" = ( -/obj/machinery/power/shuttle_engine/propulsion, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/plating, -/area/space/nearstation) "sxs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66399,6 +66269,18 @@ }, /turf/open/floor/wood/large, /area/station/service/theater) +"sCj" = ( +/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/skyrat_decals/enclave/top/right{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "sCk" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine/air, @@ -66437,38 +66319,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/security/brig) -"sCO" = ( -/obj/structure/table/reinforced, -/obj/item/folder/white{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/structure/desk_bell{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chemistry_shutters"; - name = "Pharmacy Shutters" - }, -/obj/machinery/door/window/left/directional/south, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) "sCQ" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -66584,6 +66434,16 @@ }, /turf/open/floor/iron/smooth_large, /area/station/cargo/storage) +"sDP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/miningdock) "sDV" = ( /obj/structure/toilet{ pixel_y = 8 @@ -66619,6 +66479,24 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) +"sEd" = ( +/obj/machinery/firealarm/directional/south, +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_y = 7 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -4; + pixel_y = -5 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = -5 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos) "sEf" = ( /turf/closed/wall/mineral/iron, /area/station/service/chapel) @@ -66760,12 +66638,6 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/hallway/secondary/exit/departure_lounge) -"sFq" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/turf/open/floor/pod/dark, -/area/station/engineering/storage/tech) "sFt" = ( /obj/effect/turf_decal/tile/dark/fourcorners, /obj/structure/disposalpipe/trunk{ @@ -66898,6 +66770,19 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/smooth_large, /area/station/hallway/primary/aft) +"sGR" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Monastery Dock"; + network = list("ss13","monastery") + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable, +/turf/open/floor/pod/light, +/area/station/service/chapel) "sHo" = ( /obj/machinery/camera/directional/east{ c_tag = "Chapel Office"; @@ -66982,12 +66867,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/security/prison) -"sIs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "sIy" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -67074,13 +66953,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/large, /area/station/hallway/primary/fore) -"sJb" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/tlv_cold_room, -/obj/structure/kitchenspike, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "sJd" = ( /turf/closed/wall, /area/station/commons/vacant_room/office) @@ -67506,6 +67378,23 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/command/gateway) +"sNJ" = ( +/obj/item/radio/intercom/directional/south, +/obj/structure/table/reinforced/rglass, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/noticeboard/staff{ + dir = 8; + pixel_x = -32 + }, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 10 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/bridge) "sNU" = ( /obj/structure/chair/office/light{ dir = 4 @@ -67518,6 +67407,20 @@ dir = 8 }, /area/station/science/genetics) +"sNW" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/chemistry) "sOc" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -67543,11 +67446,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/small, /area/station/hallway/primary/central) -"sOh" = ( -/obj/effect/landmark/observer_start, -/obj/effect/turf_decal/plaque, -/turf/open/floor/iron/large, -/area/station/hallway/primary/fore) "sOp" = ( /obj/effect/turf_decal/plaque{ icon_state = "L7" @@ -67759,6 +67657,16 @@ }, /turf/open/floor/iron/smooth, /area/station/service/hydroponics/garden/abandoned) +"sSd" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/obj/structure/table, +/obj/machinery/light_switch/directional/north{ + pixel_x = 13 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "sSf" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 8 @@ -67781,6 +67689,11 @@ /obj/structure/transit_tube/crossing, /turf/open/space/basic, /area/space/nearstation) +"sSm" = ( +/obj/structure/flora/bush/jungle/a/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/service/kitchen) "sSn" = ( /obj/effect/turf_decal/trimline/brown/filled/line, /obj/structure/table, @@ -67908,6 +67821,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/aft) +"sTD" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) "sUo" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -68221,6 +68142,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood/large, /area/station/service/theater) +"sXU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/atmos) "sXX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68624,6 +68552,18 @@ dir = 8 }, /area/station/medical/virology) +"tdG" = ( +/obj/structure/chair/stool/directional/west{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/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/cafeteria, +/area/station/service/cafeteria) "tdL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -68631,30 +68571,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/port) -"tdO" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/pen{ - pixel_y = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/window/left/directional/south{ - name = "Hydroponics Desk"; - req_access = list("hydroponics") - }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "hydroponics_counter"; - name = "Hydroponics Counter Shutters" - }, -/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/large, -/area/station/service/hydroponics) "tdY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68830,12 +68746,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine/atmos) -"tfX" = ( -/obj/machinery/power/shuttle_engine/heater, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/plating, -/area/space/nearstation) "tga" = ( /obj/structure/drain, /obj/item/soap/deluxe, @@ -68851,12 +68761,6 @@ }, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) -"tge" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "tgh" = ( /obj/structure/table, /obj/item/wirecutters, @@ -69036,19 +68940,6 @@ dir = 8 }, /area/station/hallway/primary/central/aft) -"tiJ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/biogenerator, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "hydroponics_counter"; - name = "Hydroponics Counter Shutters" - }, -/obj/machinery/door/firedoor, -/obj/structure/window/spawner/directional/east, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/service/hydroponics) "tiL" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -69088,16 +68979,6 @@ }, /turf/open/floor/iron/large, /area/station/commons/fitness/recreation) -"tja" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/light_switch/directional/west{ - pixel_x = -24 - }, -/obj/structure/cable, -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "tjr" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/hfr_room) @@ -69212,17 +69093,6 @@ /obj/structure/transit_tube/curved/flipped, /turf/open/space/basic, /area/space/nearstation) -"tlk" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/plasticflaps/opaque{ - name = "Kitchen Deliveries" - }, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "Kitchen" - }, -/turf/open/floor/iron/large, -/area/station/maintenance/starboard/greater) "tlq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -69248,6 +69118,12 @@ /obj/machinery/cell_charger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/engineering) +"tlW" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) "tmb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/light/small/directional/west, @@ -69284,46 +69160,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/office) -"tms" = ( -/obj/structure/table/reinforced, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/lockbox/loyalty{ - pixel_y = -11 - }, -/obj/structure/window/reinforced/spawner/directional/north{ - pixel_y = 1 - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/item/storage/box/flashbangs{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/storage/box/teargas{ - pixel_x = 6; - pixel_y = -6 - }, -/turf/open/floor/engine, -/area/station/ai_monitored/security/armory) "tmu" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/landmark/secequipment, @@ -69755,15 +69591,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/aft/greater) -"trR" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/icecream_vat, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "tsb" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -69941,18 +69768,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen/abandoned) -"tuw" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/item/radio/intercom/directional/south, -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 3 - }, -/obj/item/stock_parts/power_store/cell/high, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/cargo/miningdock) "tuC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/stripes/line{ @@ -70064,6 +69879,23 @@ }, /turf/open/misc/asteroid, /area/station/commons/dorms) +"tvP" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/obj/machinery/button/door/directional/west{ + id = "xenobio1"; + name = "Xenobio Pen 1 Blast Door"; + req_access = list("xenobiology") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "twa" = ( /obj/machinery/airalarm/directional/west, /obj/structure/rack, @@ -70671,6 +70503,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) +"tDA" = ( +/obj/structure/table, +/obj/machinery/light/directional/north, +/obj/item/plate/large, +/obj/item/plate, +/obj/item/plate/small{ + pixel_y = 1 + }, +/obj/item/knife/butcher{ + pixel_x = 5 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 10; + pixel_y = 18 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "tDI" = ( /obj/machinery/portable_atmospherics/canister, /obj/effect/turf_decal/box, @@ -70755,42 +70604,6 @@ }, /turf/open/floor/plating, /area/station/science/ordnance/storage) -"tEH" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - dir = 4; - location = "QM #4" - }, -/obj/effect/turf_decal/box, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #1"; - suffix = "#1" - }, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/storage) -"tEI" = ( -/obj/structure/table, -/obj/item/food/ready_donk/mac_n_cheese{ - pixel_y = 3; - pixel_x = 2 - }, -/obj/item/food/ready_donk/nachos_grandes{ - pixel_y = 7 - }, -/obj/item/food/ready_donk/donkhiladas{ - pixel_y = 11; - pixel_x = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/bitrunning/den) "tEK" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ dir = 10 @@ -71011,6 +70824,24 @@ }, /turf/open/floor/iron/large, /area/station/commons/vacant_room/commissary) +"tIf" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Foyer" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/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/navigate_destination/engineering, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/lobby) "tIh" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 8 @@ -71377,6 +71208,29 @@ /obj/effect/turf_decal/tile/purple/diagonal_centre, /turf/open/floor/iron/white/diagonal, /area/station/science/research) +"tNI" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin{ + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/rag{ + pixel_y = 4 + }, +/obj/machinery/requests_console/directional/south{ + department = "Service Hall"; + name = "Service Hall Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/item/radio/headset/headset_srv{ + pixel_x = -11; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "tNN" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/grass, @@ -71390,15 +71244,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/white/diagonal, /area/station/medical/medbay/central) -"tOa" = ( -/obj/structure/chair/plastic, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/landmark/start/bitrunner, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/bitrunning/den) "tOr" = ( /obj/effect/spawner/liquids_spawner, /obj/machinery/light/cold/directional/south, @@ -71554,6 +71399,28 @@ dir = 1 }, /area/station/medical/medbay/central) +"tQP" = ( +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/battery/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/closet/crate/engineering, +/turf/open/floor/engine, +/area/station/engineering/main) +"tQV" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/pod/dark, +/area/station/engineering/storage/tech) "tQY" = ( /obj/effect/spawner/random/trash/garbage, /turf/open/floor/catwalk_floor/iron_smooth, @@ -71582,6 +71449,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/freezer, /area/station/medical/pharmacy) +"tRE" = ( +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "tRQ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -71602,6 +71473,15 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/fore) +"tRX" = ( +/obj/machinery/light/directional/north, +/obj/machinery/bouldertech/refinery, +/obj/machinery/conveyor{ + id = "mining"; + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "tRY" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/effect/turf_decal/siding/wood/end{ @@ -71645,11 +71525,6 @@ dir = 4 }, /area/station/hallway/secondary/command) -"tSE" = ( -/obj/structure/flora/bush/jungle/a/style_3, -/obj/structure/window/fulltile, -/turf/open/floor/grass, -/area/station/service/kitchen) "tSH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/green{ @@ -71674,6 +71549,16 @@ dir = 8 }, /area/station/commons/fitness/recreation/entertainment) +"tST" = ( +/obj/structure/safe, +/obj/item/storage/backpack/duffelbag/syndie/hitman, +/obj/item/card/id/advanced/silver/reaper, +/obj/item/lazarus_injector, +/obj/item/gun/ballistic/automatic/pistol/deagle/gold, +/obj/item/stack/spacecash/c5000, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/ai_monitored/command/nuke_storage) "tTp" = ( /obj/machinery/turretid{ control_area = "/area/station/ai_monitored/turret_protected/aisat_interior"; @@ -71703,11 +71588,6 @@ "tTx" = ( /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/central) -"tTC" = ( -/obj/structure/railing/corner, -/obj/structure/sink/kitchen/directional/west, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "tTI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71716,6 +71596,10 @@ }, /turf/open/floor/wood/large, /area/station/command/heads_quarters/rd) +"tTO" = ( +/obj/machinery/light/cold/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "tTQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71772,15 +71656,6 @@ /obj/effect/mapping_helpers/mail_sorting/service/kitchen, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/fore) -"tUw" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/camera/directional/west{ - c_tag = "Service - Kitchen Coldroom"; - dir = 5; - name = "service camera" - }, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "tUB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ @@ -71970,6 +71845,17 @@ }, /turf/open/floor/carpet/orange, /area/station/command/heads_quarters/ce) +"tXX" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/virology) +"tYp" = ( +/obj/machinery/chem_mass_spec, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron/freezer, +/area/station/medical/pharmacy) "tYr" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -71980,20 +71866,24 @@ }, /turf/open/floor/iron/smooth, /area/station/command/cc_dock) +"tYW" = ( +/obj/structure/sign/warning/vacuum/directional/north, +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "mining" + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"tZi" = ( +/obj/structure/noticeboard/directional/north, +/obj/machinery/light_switch/directional/east, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/hallway/secondary/service) "tZj" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner, /turf/open/floor/iron/freezer, /area/station/medical/chemistry) -"tZm" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/pen{ - pixel_y = 4 - }, -/turf/open/floor/carpet/black, -/area/station/service/chapel/office) "tZx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72160,28 +72050,6 @@ }, /turf/open/floor/wood, /area/station/maintenance/department/science/xenobiology) -"ubu" = ( -/obj/structure/table/wood/fancy/black, -/obj/item/reagent_containers/cup/glass/bottle/goldschlager{ - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ - pixel_x = 8; - pixel_y = -1 - }, -/obj/machinery/requests_console/directional/east{ - department = "Bar"; - name = "Bar Requests Console"; - pixel_x = -30 - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/item/reagent_containers/cup/glass/bottle/champagne{ - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/service/bar) "ubW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -72197,6 +72065,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/dark/smooth_large, /area/station/security/brig) "ubZ" = ( @@ -72440,11 +72309,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/smooth_large, /area/station/science/auxlab) -"ueJ" = ( -/obj/structure/table, -/obj/effect/spawner/random/entertainment/deck, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/miningoffice) "ueO" = ( /obj/structure/closet/toolcloset, /obj/item/clothing/glasses/meson/engine, @@ -72605,19 +72469,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/pod, /area/station/service/chapel/office) -"uhH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/table/reinforced/rglass, -/obj/item/reagent_containers/cup/beaker/large, -/obj/item/reagent_containers/cup/beaker/large, -/obj/item/reagent_containers/dropper, -/turf/open/floor/iron/dark/smooth_large, -/area/station/medical/pharmacy) "uhK" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -72764,6 +72615,14 @@ /obj/effect/turf_decal/bot, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) +"ujK" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "ujY" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 6 @@ -73041,6 +72900,17 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/surgery) +"ung" = ( +/obj/machinery/computer/shuttle/mining{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) "uno" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/suit_storage_unit/rd, @@ -73160,6 +73030,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/large, /area/station/commons/fitness/recreation/entertainment) +"upB" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/firealarm/directional/north, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "upF" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced/plasma, @@ -73497,6 +73375,14 @@ }, /turf/open/floor/iron/large, /area/station/service/hydroponics) +"usF" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Xenobiology - Secure Cell Interior"; + name = "xenobiology camera"; + network = list("ss13","xeno","rd") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "usJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -73652,14 +73538,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos/storage) -"uuh" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/chair{ - dir = 1; - name = "Accused" - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/courtroom) "uup" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -73712,16 +73590,6 @@ dir = 1 }, /area/station/construction/mining/aux_base) -"uvy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/meter, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/atmos) "uvB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73929,6 +73797,26 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/smooth_edge, /area/station/engineering/lobby) +"uyE" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 8; + initialize_directions = 4; + name = "euthanization chamber freezer" + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/button/door/directional/east{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "uyG" = ( /obj/machinery/door/firedoor, /obj/machinery/duct, @@ -73939,6 +73827,12 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/treatment_center) +"uyH" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/station/security/courtroom) "uyJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74137,6 +74031,14 @@ dir = 8 }, /area/station/security/checkpoint/engineering) +"uAJ" = ( +/obj/effect/turf_decal/skyrat_decals/enclave/top/left{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/corner, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "uAN" = ( /obj/structure/flora/grass/jungle, /obj/structure/window/fulltile, @@ -74220,25 +74122,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/cargo/sorting) -"uBX" = ( -/obj/structure/window/reinforced/spawner/directional/north{ - pixel_y = 1 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"uCe" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/power_store/battery/high, -/obj/machinery/light/small/directional/east, -/turf/open/floor/pod/dark, -/area/station/engineering/storage/tech) "uCn" = ( /obj/machinery/portable_atmospherics/canister/plasma, /turf/open/floor/engine/plasma, @@ -74377,23 +74260,21 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"uEb" = ( -/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 = 4 - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "uEg" = ( /obj/structure/filingcabinet, /obj/item/folder/documents, /obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/station/ai_monitored/command/nuke_storage) +"uEh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) "uEu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74484,6 +74365,12 @@ dir = 4 }, /area/station/cargo/storage) +"uFN" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/tile/dark_blue/anticorner, +/obj/structure/secure_safe/caps_spare, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/bridge) "uFY" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -74590,6 +74477,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/disposal) +"uHi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/atmos) "uHj" = ( /obj/structure/tank_dispenser/oxygen{ pixel_x = -1; @@ -74602,13 +74495,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/gateway) -"uHn" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/effect/turf_decal/bot, -/obj/machinery/computer/crew, -/obj/machinery/computer/security/telescreen/cmo/directional/north, -/turf/open/floor/iron/freezer, -/area/station/security/checkpoint/medical) "uHq" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 @@ -74635,11 +74521,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/eva_shed/starboard) -"uHA" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "uHB" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood/corner{ @@ -74778,6 +74659,10 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/atmos) +"uKe" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "uKg" = ( /obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine, @@ -74840,16 +74725,6 @@ /obj/structure/window/fulltile, /turf/open/floor/grass, /area/station/hallway/primary/fore) -"uKZ" = ( -/obj/structure/chair/stool/directional/west{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/lounge) "uLe" = ( /turf/open/floor/iron/smooth_large, /area/station/cargo/office) @@ -74890,6 +74765,14 @@ /obj/structure/window/reinforced/plasma/spawner/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/aft/lesser) +"uLB" = ( +/obj/machinery/bouldertech/refinery/smelter, +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "mining" + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "uLH" = ( /obj/effect/turf_decal/delivery, /obj/machinery/space_heater, @@ -74992,29 +74875,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/wood/large, /area/station/command/heads_quarters/blueshield) -"uNs" = ( -/obj/structure/table, -/obj/item/kitchen/rollingpin{ - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/rag{ - pixel_y = 4 - }, -/obj/machinery/requests_console/directional/south{ - department = "Service Hall"; - name = "Service Hall Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/item/radio/headset/headset_srv{ - pixel_x = -11; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "uNu" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters/preopen{ @@ -75147,21 +75007,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/library) -"uOA" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/ears/earmuffs{ - pixel_y = 7 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 4 - }, -/obj/item/gun/energy/laser/carbine/practice, -/turf/open/floor/engine, -/area/station/security/range) "uOO" = ( /turf/open/floor/wood/large, /area/station/service/theater) @@ -75274,16 +75119,6 @@ /obj/structure/cable, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai) -"uQm" = ( -/obj/effect/turf_decal/tile/blue/full, -/obj/structure/transit_tube/horizontal{ - dir = 1 - }, -/turf/open/floor/iron/airless{ - icon = 'modular_skyrat/modules/advanced_shuttles/icons/erokez.dmi'; - icon_state = "floor1" - }, -/area/space/nearstation) "uQo" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_ccw, /obj/structure/disposalpipe/segment{ @@ -75427,14 +75262,6 @@ }, /turf/open/floor/wood/large, /area/station/hallway/secondary/exit/departure_lounge) -"uSC" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/machinery/camera/directional/north, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/power_room) "uSX" = ( /obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment, @@ -75453,13 +75280,6 @@ }, /turf/open/floor/vault, /area/station/ai_monitored/turret_protected/ai_upload) -"uTk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/sorting) "uTs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, @@ -75515,6 +75335,14 @@ }, /turf/open/floor/iron/smooth_large, /area/station/cargo/sorting) +"uTK" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/medical/virology) "uTT" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -75528,6 +75356,29 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/cargo/storage) +"uUf" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/bottle/morphine, +/obj/item/reagent_containers/cup/bottle/toxin{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/epinephrine{ + pixel_x = 8 + }, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = -5 + }, +/obj/item/reagent_containers/syringe/epinephrine, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "Pharmacy Shutters" + }, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "uUm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -75540,6 +75391,11 @@ }, /turf/open/floor/wood, /area/station/maintenance/port/aft) +"uUB" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "uUL" = ( /obj/structure/punching_bag, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -75603,10 +75459,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/hallway/primary/aft) -"uVw" = ( -/obj/structure/trash_pile, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) "uVG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -75929,6 +75781,13 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/carpet/cyan, /area/station/commons/dorms) +"vao" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningoffice) "vaq" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/structure/disposalpipe/segment{ @@ -75949,21 +75808,6 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) -"vaJ" = ( -/obj/structure/table, -/obj/item/storage/bag/plants{ - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/watering_can{ - pixel_y = 3 - }, -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/diagonal, -/area/station/hallway/secondary/service) "vaL" = ( /obj/structure/table/reinforced, /obj/structure/sign/calendar/directional/west, @@ -76043,6 +75887,11 @@ dir = 8 }, /area/station/engineering/atmos) +"vcv" = ( +/obj/machinery/mass_driver/chapelgun, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/pod/dark, +/area/station/service/chapel/funeral) "vcx" = ( /obj/structure/transit_tube/horizontal{ dir = 1 @@ -76183,26 +76032,12 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) -"veR" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/bot, -/obj/machinery/light/directional/south, -/turf/open/floor/wood/large, -/area/station/security/courtroom) "vfc" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 }, /turf/open/floor/wood/large, /area/station/security/courtroom) -"vfg" = ( -/obj/structure/chair/wood{ - dir = 1 - }, -/turf/open/floor/carpet/black, -/area/station/command/heads_quarters/qm) "vfn" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -76243,6 +76078,14 @@ /obj/effect/turf_decal/stripes/end, /turf/open/floor/pod/dark, /area/station/engineering/storage/tech) +"vga" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/iron/large, +/area/station/service/hydroponics) "vgc" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -76292,6 +76135,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) +"vha" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/window/right/directional/north{ + name = "Warehouse Deliveries"; + req_access = list("cargo") + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) +"vhh" = ( +/obj/structure/flora/bush/jungle, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/service/hydroponics) "vhl" = ( /obj/machinery/door/airlock{ id_tag = "Toilet1"; @@ -76343,6 +76203,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"vil" = ( +/obj/structure/table, +/obj/effect/spawner/random/entertainment/deck, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningoffice) "vio" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -76365,6 +76230,20 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/auxlab/firing_range) +"viy" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 3 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 3 + }, +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/lab) "viA" = ( /obj/effect/spawner/liquids_spawner, /obj/structure/railing, @@ -76581,30 +76460,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/carpet/green, /area/station/commons/dorms) -"vlP" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/structure/table/reinforced, -/obj/machinery/requests_console/directional/south{ - department = "Engineering"; - dir = 4; - name = "Engineering Requests Console"; - pixel_x = 30; - pixel_y = 0 - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/item/storage/medkit/fire{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/radio/off{ - pixel_x = 6; - pixel_y = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/lobby) "vlS" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/n2o, /obj/structure/window/reinforced/plasma/spawner/directional/north, @@ -76811,6 +76666,34 @@ dir = 4 }, /area/station/security/prison) +"vod" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_y = 2 + }, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_x = -4; + pixel_y = -6 + }, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_x = 4; + pixel_y = -6 + }, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/half{ + dir = 4 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/ai_monitored/security/armory) "vof" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -76863,6 +76746,16 @@ /obj/effect/landmark/start/warden, /turf/open/floor/iron/dark/smooth_large, /area/station/security/warden) +"vps" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/north, +/turf/open/floor/wood/large, +/area/station/security/courtroom) "vpA" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/iron/dark/smooth_large, @@ -76929,6 +76822,27 @@ "vqW" = ( /turf/open/floor/wood, /area/station/hallway/secondary/entry) +"vqX" = ( +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth, +/area/station/science/ordnance) +"vri" = ( +/obj/structure/chair/sofa/corp/left{ + desc = "Looks like someone threw it out. Covered in donut crumbs."; + dir = 4; + name = "couch" + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/structure/sign/poster/contraband/random/directional/west, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/smooth, +/area/station/cargo/bitrunning/den) "vrk" = ( /obj/effect/turf_decal/box/white{ color = "#EFB341" @@ -76981,14 +76895,6 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) -"vrL" = ( -/obj/effect/turf_decal/stripes/box, -/obj/machinery/rnd/production/techfab/department/service, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/service) "vrU" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -77024,11 +76930,6 @@ /obj/machinery/space_heater, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine/atmos/lesser) -"vsK" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/office) "vsS" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 @@ -77051,22 +76952,6 @@ dir = 8 }, /area/station/hallway/primary/fore) -"vte" = ( -/obj/machinery/door/airlock/mining{ - name = "Bitrunning Den" - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/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/smooth, -/area/station/cargo/miningdock) "vti" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -77096,11 +76981,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/pod/dark, /area/station/service/chapel) -"vtw" = ( -/obj/structure/chair/stool/directional/south, -/obj/effect/landmark/start/telecomms_specialist, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/lobby) "vty" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, @@ -77388,16 +77268,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/cargo/sorting) -"vwn" = ( -/obj/structure/rack, -/obj/effect/turf_decal/tile/dark_red/anticorner{ - dir = 1 - }, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/turf_decal/delivery, -/obj/effect/spawner/random/armory/disablers, -/turf/open/floor/engine, -/area/station/ai_monitored/security/armory) "vwo" = ( /turf/open/floor/catwalk_floor/iron_smooth, /area/station/commons/vacant_room) @@ -77451,11 +77321,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"vxf" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/trimline/brown/filled/corner, -/turf/open/floor/iron/smooth_corner, -/area/station/cargo/bitrunning/den) "vxv" = ( /mob/living/basic/butterfly, /turf/closed/wall/mineral/iron, @@ -77506,16 +77371,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"vyb" = ( -/obj/machinery/light/warm/directional/east, -/obj/machinery/status_display/ai/directional/east, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/delivery/red, -/obj/machinery/restaurant_portal/restaurant, -/turf/open/floor/iron/smooth_large, -/area/station/service/cafeteria) "vyc" = ( /obj/machinery/door/firedoor, /obj/structure/table/reinforced, @@ -77720,6 +77575,18 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) +"vBI" = ( +/obj/structure/flora/bush/lavendergrass, +/obj/structure/window/reinforced/spawner/directional/west, +/mob/living/carbon/human/species/monkey, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/right/directional/south{ + name = "Monkey Pen"; + req_access = list("genetics") + }, +/turf/open/floor/grass, +/area/station/science/genetics) "vBO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -77969,24 +77836,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"vFC" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/item/clothing/mask/gas, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/radio/intercom/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/hallway/primary/aft) "vFE" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/iron/grimy, @@ -78045,11 +77894,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"vGE" = ( -/obj/structure/flora/bush/jungle, -/obj/structure/window/fulltile, -/turf/open/floor/grass, -/area/station/service/hydroponics) "vGO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -78062,6 +77906,16 @@ /obj/structure/railing, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) +"vGV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/structure/table, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "vHa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78090,14 +77944,6 @@ }, /turf/closed/wall, /area/station/cargo/warehouse) -"vHh" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/box, -/obj/structure/sign/poster/official/moth_piping/directional/north, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/atmos) "vHj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -78142,6 +77988,21 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/fore) +"vHW" = ( +/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/skyrat_decals/enclave/middle/right{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/medbay/lobby) "vHX" = ( /turf/closed/wall, /area/station/commons/toilet) @@ -78159,21 +78020,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/brig) -"vIt" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "vIv" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/command/nuke_storage) @@ -78320,12 +78166,6 @@ }, /turf/open/floor/iron/herringbone, /area/station/service/theater) -"vKi" = ( -/obj/machinery/power/shuttle_engine/heater, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/plating, -/area/space/nearstation) "vKz" = ( /obj/structure/disposalpipe/junction{ dir = 2 @@ -78469,11 +78309,6 @@ /obj/structure/flora/bush/flowers_pp, /turf/open/floor/grass, /area/station/hallway/primary/central) -"vMc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pod, -/turf/open/floor/wood, -/area/station/maintenance/rus_gambling) "vMg" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -78481,6 +78316,14 @@ /obj/machinery/power/energy_accumulator/tesla_coil, /turf/open/floor/engine, /area/station/engineering/main) +"vMj" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) "vMr" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/bot, @@ -78679,6 +78522,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/maintenance/port/aft) +"vPl" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/green/diagonal_centre, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/icecream_vat, +/turf/open/floor/iron/diagonal, +/area/station/hallway/secondary/service) "vPr" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -79032,11 +78884,6 @@ dir = 4 }, /area/station/engineering/atmos) -"vUt" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/sorting) "vUB" = ( /obj/machinery/incident_display/delam, /turf/closed/wall/r_wall, @@ -79219,15 +79066,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/lesser) -"vWH" = ( -/obj/machinery/brm, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/conveyor{ - id = "mining"; - dir = 1 - }, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "vWI" = ( /obj/machinery/firealarm/directional/south, /obj/structure/closet/secure_closet/engineering_welding, @@ -79414,10 +79252,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/brig) -"vZc" = ( -/obj/structure/cable, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "vZk" = ( /obj/machinery/cryopod, /obj/effect/turf_decal/siding/white, @@ -79516,18 +79350,6 @@ /obj/structure/sign/poster/official/wtf_is_co2/directional/west, /turf/open/floor/engine, /area/station/science/ordnance/storage) -"vZY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/freezer{ - critical_machine = 1; - name = "Coldroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/structure/fans/tiny, -/obj/structure/cable, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "wab" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/bottle/holywater{ @@ -79568,10 +79390,6 @@ }, /turf/open/floor/iron/edge, /area/station/commons/storage/primary) -"waK" = ( -/obj/machinery/firealarm/directional/east, -/turf/open/floor/glass/reinforced, -/area/station/security/execution/transfer) "waM" = ( /obj/item/radio/intercom, /obj/structure/table/wood/fancy/red, @@ -79642,6 +79460,23 @@ }, /turf/open/floor/iron/large, /area/station/commons/dorms) +"wbB" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/rack, +/obj/item/storage/box/syringes{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/box/beakers{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "wbC" = ( /obj/structure/hedge, /obj/machinery/status_display/evac/directional/west, @@ -79796,6 +79631,21 @@ /obj/machinery/light/floor, /turf/open/misc/beach/sand, /area/station/hallway/primary/central/fore) +"weS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos) "weV" = ( /obj/structure/table, /obj/item/paper_bin/construction, @@ -79843,15 +79693,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/general, /turf/open/floor/iron/white/smooth_large, /area/station/medical/office) -"wfp" = ( -/obj/structure/closet, -/obj/structure/window/spawner/directional/south, -/obj/item/clothing/under/costume/skyrat/bathrobe, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/white/small, -/area/station/common/pool) "wfJ" = ( /obj/structure/table, /obj/machinery/button/curtain{ @@ -79986,11 +79827,6 @@ /obj/structure/table/wood/fancy, /turf/open/floor/pod/dark, /area/station/service/chapel) -"whq" = ( -/obj/structure/table, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "whu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -80009,6 +79845,16 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) +"whX" = ( +/obj/structure/table/wood, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/fax{ + fax_name = "Law Office"; + name = "Law Office Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron/grimy, +/area/station/service/lawoffice) "whY" = ( /obj/structure/closet/secure_closet/evidence, /obj/effect/turf_decal/bot, @@ -80253,6 +80099,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/grimy, /area/station/commons/lounge) +"wlF" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/crew, +/obj/machinery/computer/security/telescreen/cmo/directional/north, +/turf/open/floor/iron/freezer, +/area/station/security/checkpoint/medical) "wlK" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, @@ -80338,6 +80191,16 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/freezer, /area/station/medical/surgery) +"wna" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/turf/open/floor/carpet/black, +/area/station/service/chapel/office) "wne" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/green/corner{ @@ -80394,6 +80257,12 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/space/nearstation) +"woA" = ( +/mob/living/carbon/human/species/monkey, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/medical/virology) "woB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/large, @@ -80402,27 +80271,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) -"woE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/table, -/obj/item/serviette_pack{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - desc = "Salt. From space oceans, presumably. A staple of modern medicine."; - pixel_x = -8; - pixel_y = 12 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "woG" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 @@ -80463,6 +80311,18 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/fore) +"woN" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/structure/sign/poster/contraband/random/directional/north, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/smooth, +/area/station/cargo/bitrunning/den) "woT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/stripes/line, @@ -80539,10 +80399,6 @@ }, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai) -"wpJ" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/carpet, -/area/station/security/courtroom) "wpK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -80618,6 +80474,15 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/engine/atmos) +"wrn" = ( +/obj/structure/chair/stool/directional/west{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "wrA" = ( /obj/structure/rack, /obj/item/clothing/head/helmet/sec{ @@ -80668,25 +80533,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/glass/reinforced, /area/station/security/execution/transfer) -"wrN" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/obj/machinery/button/door/directional/east{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 8 - }, -/area/station/science/xenobiology) "wrO" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/smooth_edge{ @@ -80736,6 +80582,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/aft/greater) +"wsk" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/station/science/xenobiology) "wsl" = ( /obj/machinery/vending/autodrobe, /obj/effect/turf_decal/bot, @@ -81030,37 +80884,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/smooth_large, /area/station/cargo/sorting) -"wwr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/structure/closet/secure_closet/chemical, -/obj/item/storage/box/syringes, -/obj/item/storage/box/beakers, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/freezer, -/area/station/medical/pharmacy) -"wwv" = ( -/obj/item/tank/jetpack/carbondioxide, -/obj/item/tank/jetpack/carbondioxide{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/tank/jetpack/carbondioxide{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/rack/shelf, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "wwA" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral{ @@ -81161,13 +80984,6 @@ /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) -"wxE" = ( -/obj/effect/turf_decal/box/red, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "wxG" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -81488,6 +81304,16 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/commons/dorms) +"wBf" = ( +/obj/machinery/light/warm/directional/east, +/obj/machinery/status_display/ai/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/restaurant_portal/restaurant, +/turf/open/floor/iron/smooth_large, +/area/station/service/cafeteria) "wBk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -81599,6 +81425,30 @@ }, /turf/open/floor/grass, /area/station/science/research) +"wCR" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/structure/table/reinforced, +/obj/machinery/requests_console/directional/south{ + department = "Engineering"; + dir = 4; + name = "Engineering Requests Console"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/item/storage/medkit/fire{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/lobby) "wCT" = ( /obj/structure/chair/sofa/bench, /obj/effect/turf_decal/siding/wood{ @@ -81614,6 +81464,15 @@ "wDc" = ( /turf/closed/wall, /area/station/hallway/primary/central) +"wDj" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/station/science/xenobiology) "wDv" = ( /obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, @@ -81645,6 +81504,38 @@ }, /turf/open/floor/wood/large, /area/station/service/theater) +"wDN" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Bridge - Starboard"; + name = "command camera" + }, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 6 + }, +/obj/structure{ + density = 1; + icon = 'icons/obj/machines/shuttle_manipulator.dmi'; + icon_state = "hologram_on"; + light_color = "#2cb2e8"; + light_range = 2; + mouse_opacity = 0; + name = "holographic projection"; + pixel_x = -32; + pixel_y = 17 + }, +/obj/structure{ + desc = "This is the ship we're on. It's amazing what Nanotrasen can do once they actually put more than ten seconds of effort into their projects."; + icon = 'icons/obj/machines/shuttle_manipulator.dmi'; + icon_state = "hologram_whiteship"; + light_color = "#2cb2e8"; + light_range = 7; + name = "Ship Hologram"; + pixel_x = -32; + pixel_y = 27 + }, +/obj/machinery/incident_display/bridge/directional/south, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/bridge) "wDO" = ( /obj/machinery/door/airlock{ name = "Law Office" @@ -81747,10 +81638,6 @@ }, /turf/open/floor/noslip, /area/station/service/janitor) -"wEJ" = ( -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/atmos) "wEK" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -81817,18 +81704,6 @@ dir = 4 }, /area/station/ai_monitored/command/storage/eva) -"wFR" = ( -/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/skyrat_decals/enclave/bottom/right{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/medbay/lobby) "wFV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -81859,10 +81734,6 @@ dir = 1 }, /area/station/engineering/atmos/storage) -"wGd" = ( -/obj/structure/sign/warning/biohazard/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "wGg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -81931,6 +81802,27 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) +"wHA" = ( +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/engineering/atmos) +"wHF" = ( +/obj/machinery/computer/quantum_console{ + dir = 8 + }, +/obj/machinery/light/small/red/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "wHN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/mess, @@ -82011,6 +81903,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/science/xenobiology) +"wJx" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair{ + dir = 1; + name = "Accused" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/courtroom) "wJK" = ( /obj/structure/plaque/static_plaque/atmos, /turf/closed/wall, @@ -82093,6 +81993,25 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/disposal/incinerator) +"wKq" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, +/area/station/science/xenobiology) "wKt" = ( /turf/open/floor/vault, /area/station/ai_monitored/turret_protected/ai_upload) @@ -82108,17 +82027,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) -"wKH" = ( -/obj/machinery/door/window/left/directional/east{ - name = "Medbay Deliveries"; - req_access = list("medical") - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/door/firedoor, -/obj/structure/sign/calendar/directional/south, -/obj/effect/turf_decal/delivery/blue, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/storage) "wKP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -82292,6 +82200,29 @@ /obj/structure/sign/calendar/directional/west, /turf/open/floor/wood/large, /area/station/science/research) +"wMw" = ( +/obj/item/plate/oven_tray{ + pixel_x = -2; + pixel_y = 1 + }, +/obj/item/plate/oven_tray{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/clothing/suit/apron/chef{ + pixel_y = 11 + }, +/obj/item/book/manual/wiki/cooking_to_serve_man{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/knife/kitchen{ + pixel_x = -13; + pixel_y = 3 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "wMA" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 4 @@ -82474,20 +82405,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/iron/smooth, /area/station/maintenance/aft/lesser) -"wOJ" = ( -/obj/structure/window/spawner/directional/south, -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 3 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_y = 3 - }, -/obj/effect/turf_decal/trimline/purple/filled/line, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/lab) "wOP" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/kitchen, @@ -82595,14 +82512,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/vaporwave, /area/station/service/barber) -"wQi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/railing/corner, -/obj/effect/turf_decal/siding/dark, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "wQo" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/green/filled/warning{ @@ -82622,11 +82531,6 @@ dir = 4 }, /area/station/service/hydroponics/garden) -"wQw" = ( -/obj/effect/turf_decal/weather/snow, -/obj/structure/kitchenspike, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "wQx" = ( /obj/effect/turf_decal/tile/red/anticorner{ dir = 8 @@ -82843,6 +82747,25 @@ }, /turf/open/floor/engine/o2, /area/station/engineering/atmos) +"wUW" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "xenobio2"; + name = "Xenobio Pen 2 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/science/xenobiology) "wVn" = ( /obj/machinery/light/small/directional/north, /obj/structure/cable, @@ -82873,6 +82796,10 @@ /obj/structure/table, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"wVD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/sorting) "wVH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -82899,22 +82826,6 @@ /obj/item/reagent_containers/spray/cleaner, /turf/open/floor/iron/dark, /area/station/medical/break_room) -"wVQ" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - dir = 4; - location = "QM #1" - }, -/obj/effect/turf_decal/box, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #3"; - suffix = "#3" - }, -/turf/open/floor/iron/smooth_edge, -/area/station/cargo/storage) "wWw" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/chair/office{ @@ -83185,6 +83096,12 @@ /obj/effect/turf_decal/trimline/white/mid_joiner, /turf/open/floor/carpet/black, /area/station/commons/dorms) +"xcq" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/ferny, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/service/kitchen) "xcD" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 5 @@ -83269,6 +83186,11 @@ /obj/effect/turf_decal/tile/dark_blue/fourcorners, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) +"xfg" = ( +/obj/machinery/netpod, +/obj/machinery/light/small/blacklight/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "xfl" = ( /obj/structure/dresser, /obj/item/radio/intercom/directional/south, @@ -83281,13 +83203,6 @@ }, /turf/open/floor/iron/smooth, /area/station/command/cc_dock) -"xfA" = ( -/obj/machinery/computer/records/medical{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/carpet/executive, -/area/station/command/heads_quarters/hop) "xfB" = ( /obj/structure/chair/sofa/bench/left, /obj/effect/landmark/start/hangover, @@ -83321,22 +83236,6 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/break_room) -"xgj" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/box, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/atmos) -"xgl" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Service - Cafeteria Aft"; - name = "service camera" - }, -/obj/structure/chair/sofa/corp/left{ - color = "#DE3A3A"; - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "xgv" = ( /obj/machinery/smartfridge/chemistry/virology/preloaded, /obj/effect/turf_decal/trimline/dark_green/filled/line{ @@ -83512,19 +83411,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) -"xjf" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 4 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Science - Ordnance Lab Starboard"; - name = "science camera"; - network = list("ss13","rd") - }, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/science/ordnance) "xjI" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -83607,24 +83493,18 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, /area/station/hallway/primary/central/aft) -"xkt" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/door/window/right/directional/north{ - name = "Warehouse Deliveries"; - req_access = list("cargo") - }, -/obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "xkA" = ( /obj/structure/disposalpipe/junction{ dir = 1 }, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) +"xkM" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/bitrunning/den) "xkP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -83797,6 +83677,21 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"xmN" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/ears/earmuffs{ + pixel_y = 7 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/item/gun/energy/laser/carbine/practice, +/turf/open/floor/engine, +/area/station/security/range) "xmO" = ( /obj/machinery/door/firedoor, /obj/structure/table/reinforced, @@ -83820,12 +83715,6 @@ /obj/item/holosign_creator/robot_seat/bar, /turf/open/floor/iron/large, /area/station/service/bar) -"xmU" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/turf/open/space/basic, -/area/space/nearstation) "xna" = ( /obj/structure/chair/sofa/bench, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -83859,6 +83748,23 @@ "xnw" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/engineering) +"xnP" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 4 + }, +/obj/machinery/requests_console/directional/south{ + department = "Pharmacy"; + name = "Pharmacy Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/effect/turf_decal/bot_red, +/obj/machinery/chem_dispenser, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/pharmacy) "xnR" = ( /obj/structure/cable, /obj/item/stack/sheet/cardboard, @@ -83894,6 +83800,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"xou" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "xoG" = ( /obj/machinery/biogenerator, /obj/item/reagent_containers/cup/beaker{ @@ -84138,16 +84049,6 @@ /obj/effect/turf_decal/tile/blue/diagonal_centre, /turf/open/floor/iron/diagonal, /area/station/hallway/secondary/exit/departure_lounge) -"xqM" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/iron/smooth_corner{ - dir = 8 - }, -/area/station/cargo/miningdock) "xqO" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/burgundy, @@ -84246,6 +84147,14 @@ dir = 4 }, /area/station/engineering/atmos/hfr_room) +"xrO" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/power_room) "xrZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -84353,17 +84262,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical) -"xtF" = ( -/obj/machinery/atmospherics/components/binary/crystallizer{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/atmos) +"xtx" = ( +/obj/machinery/deepfryer, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "xtI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -84379,10 +84281,6 @@ "xud" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) -"xum" = ( -/obj/structure/sign/poster/contraband/mothic_rations, -/turf/closed/wall, -/area/station/service/kitchen) "xur" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/trimline/green/filled/line, @@ -84799,6 +84697,19 @@ "xAr" = ( /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"xAy" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/landmark/start/assistant, +/obj/machinery/light_switch/directional/north{ + pixel_x = 13 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/cafeteria) "xAC" = ( /obj/structure/railing{ dir = 8 @@ -84809,6 +84720,13 @@ }, /turf/open/floor/wood/parquet, /area/station/common/night_club) +"xAE" = ( +/obj/effect/landmark/start/shaft_miner, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) "xAV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -85003,12 +84921,6 @@ /obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/iron/smooth, /area/station/maintenance/port/central) -"xEU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/cold/directional/west, -/obj/machinery/computer/security/telescreen/tcomms/directional/west, -/turf/open/floor/engine, -/area/station/tcommsat/computer) "xFd" = ( /turf/open/floor/iron/kitchen, /area/station/service/kitchen) @@ -85140,6 +85052,27 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/station/security/detectives_office) +"xGk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "xenobio4"; + name = "Xenobio Pen 4 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/science/xenobiology) "xGr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/garbage, @@ -85154,6 +85087,15 @@ dir = 4 }, /area/station/hallway/primary/fore) +"xGx" = ( +/obj/effect/spawner/random/trash/grime, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/smooth_corner{ + dir = 4 + }, +/area/station/cargo/bitrunning/den) "xGA" = ( /turf/closed/wall, /area/station/maintenance/aft) @@ -85188,10 +85130,6 @@ dir = 8 }, /area/station/hallway/secondary/command) -"xHj" = ( -/obj/structure/sign/warning/biohazard/directional/south, -/turf/open/space/basic, -/area/space/nearstation) "xHn" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/warning{ @@ -85207,6 +85145,12 @@ dir = 8 }, /area/station/hallway/primary/fore) +"xHx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/weather/snow, +/mob/living/basic/goat/pete, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "xHB" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -85476,28 +85420,6 @@ }, /turf/open/floor/plating, /area/station/security/execution/transfer) -"xMV" = ( -/obj/structure/table/wood, -/obj/item/folder/blue{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/folder/yellow{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/folder/red{ - pixel_y = 1 - }, -/obj/item/stamp/law, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/clothing/glasses/sunglasses/big{ - pixel_y = 12 - }, -/turf/open/floor/iron/grimy, -/area/station/service/lawoffice) "xMY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -85541,27 +85463,6 @@ /obj/structure/cable, /turf/open/floor/plating/airless, /area/station/command/heads_quarters/rd) -"xNl" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "engielock"; - name = "Engineering Lockdown Blast Door" - }, -/obj/machinery/door/airlock/engineering/glass{ - name = "EngineRoom" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "xNE" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, @@ -85724,18 +85625,6 @@ dir = 1 }, /area/station/science/xenobiology) -"xQM" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/obj/effect/turf_decal/skyrat_decals/enclave/bottom/right{ - color = "#52B4E9" - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/command) "xQQ" = ( /obj/structure/sign/directions/medical/directional/west{ dir = 2; @@ -86032,6 +85921,27 @@ }, /turf/open/floor/iron/large, /area/station/service/hydroponics) +"xTy" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "engielock"; + name = "Engineering Lockdown Blast Door" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "EngineRoom" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "xTF" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -86090,16 +86000,20 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/medical/morgue) -"xUG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" +"xUK" = ( +/obj/structure/disposaloutlet{ + dir = 1; + name = "Cargo Deliveries" }, -/obj/structure/table, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/south, +/obj/structure/plasticflaps, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) "xUP" = ( /obj/item/reagent_containers/cup/bucket/wooden{ name = "waste bucket" @@ -86345,6 +86259,16 @@ /obj/item/storage/box/lights/mixed, /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) +"xYN" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/table, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "xZa" = ( /obj/effect/turf_decal/trimline/green/filled/line, /turf/open/floor/iron/edge{ @@ -86452,6 +86376,46 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/grimy, /area/station/service/library) +"ybu" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/lockbox/loyalty{ + pixel_y = -11 + }, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/item/storage/box/flashbangs{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/box/teargas{ + pixel_x = 6; + pixel_y = -6 + }, +/turf/open/floor/engine, +/area/station/ai_monitored/security/armory) "ybE" = ( /obj/effect/turf_decal/trimline/green/filled/warning{ dir = 1 @@ -86569,6 +86533,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/lab) +"ycB" = ( +/obj/effect/turf_decal/stripes/box, +/obj/machinery/rnd/production/techfab/department/service, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/large, +/area/station/hallway/secondary/service) "ycD" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth_large, @@ -86581,6 +86553,10 @@ dir = 8 }, /area/station/security/brig) +"ycM" = ( +/obj/machinery/power/shuttle_engine/huge, +/turf/open/space/basic, +/area/space/nearstation) "ycQ" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 6 @@ -86918,6 +86894,10 @@ dir = 4 }, /area/station/hallway/secondary/command) +"yib" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "yis" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -86958,32 +86938,12 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"yjr" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 1; - height = 13; - name = "arrivals"; - shuttle_id = "arrivals_stationary"; - width = 5 - }, -/turf/open/space/basic, -/area/space) "yjw" = ( /obj/machinery/door/firedoor, /turf/open/floor/iron/stairs/left{ dir = 1 }, /area/station/engineering/atmos) -"yjD" = ( -/obj/structure/window/reinforced/survival_pod/spawner/directional/north, -/obj/machinery/door/window/survival_pod/left/directional/west{ - name = "Fitness Ring" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor, -/turf/open/floor/iron/dark/smooth_large, -/area/station/commons/fitness/recreation/entertainment) "yjP" = ( /obj/machinery/requests_console/directional/east{ department = "Chemistry"; @@ -87122,6 +87082,26 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/space/basic, /area/space/nearstation) +"ylz" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/item/stock_parts/matter_bin{ + pixel_x = -10; + pixel_y = 4 + }, +/obj/item/stock_parts/matter_bin{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/flatpack, +/turf/open/floor/iron/white/smooth_edge, +/area/station/science/lab) "ylS" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -87133,6 +87113,28 @@ /obj/effect/turf_decal/box, /turf/open/floor/wood/large, /area/station/command/heads_quarters/rd) +"ylT" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/machinery/light_switch/directional/east{ + pixel_y = 11 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 1 + }, +/obj/machinery/button/door/directional/east{ + id = "chemistry_shutters"; + name = "Shutters Control"; + req_access = list("pharmacy") + }, +/obj/effect/turf_decal/bot_red, +/obj/machinery/chem_dispenser, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/pharmacy) (1,1,1) = {" ttw @@ -99516,7 +99518,7 @@ ttw gPJ kbK ttw -xmU +iuX xMq xMq xMq @@ -99786,7 +99788,7 @@ xMq xMq ttw odJ -xmU +iuX gPJ gPJ gPJ @@ -101056,7 +101058,7 @@ jkZ jkZ shM vFF -oGH +qIL uQV uQV uQV @@ -101845,7 +101847,7 @@ dYb uQi bWK lvx -coc +fJJ rDp rDp xMq @@ -103375,7 +103377,7 @@ nAH nAH wkT eeN -cBN +dss sZR rDp rDp @@ -103410,7 +103412,7 @@ ttw ttw ttw ttw -wGd +cvG ttw ttw ttw @@ -103475,7 +103477,7 @@ vnu jgz xMq ttw -wGd +cvG ttw ttw ttw @@ -103898,7 +103900,7 @@ xMq xMq ttw odJ -jZE +tlW gPJ gPJ gPJ @@ -103980,11 +103982,11 @@ vnu mDd pCd vnu -dnO -gmB +woA +dBG cmO -bul -dnO +uTK +woA vnu iHU oUn @@ -104142,7 +104144,7 @@ ttw gPJ kbK ttw -jZE +tlW xMq xMq xMq @@ -104239,7 +104241,7 @@ bKT lNn fVz ihB -gvA +doM ihB mKo pQY @@ -104249,7 +104251,7 @@ cIZ oCP kXw aQo -atW +crQ qbX qbX ttw @@ -104704,7 +104706,7 @@ iGR qNd ttw qNd -wGd +cvG ttw ttw ttw @@ -104948,10 +104950,10 @@ kVR kVR kVR kVR -fVm +wbB nRo -jDb -jsf +mNb +kgb oMs hKy hKy @@ -105019,9 +105021,9 @@ uhb qRj vnu vMv -sqo +tXX bGR -sqo +tXX kzj qbX ttw @@ -105192,20 +105194,20 @@ dWX dWX jMf iDa -dIL +onC dWX woJ djc axD kVR uiw -hNw +usF uiw uiw aIs -mvu +rfZ wYK -jQQ +kZI bxT wFV gtM @@ -105272,7 +105274,7 @@ uNN xBD vnu ltw -kEM +kaF gAh vnu fZs @@ -105456,11 +105458,11 @@ dfs lSP kVR uiw -plc +nko uiw -hdS +coA vRS -oOw +wDj sYn vBO ktF @@ -105712,10 +105714,10 @@ djc ajP ajP kVR -jRP -jwN -nlj -mIH +tTO +hHR +kUc +dEv rCy cfa jRN @@ -105972,9 +105974,9 @@ kVR uiw uiw uiw -wxE +cgv aIs -eUs +qEv iMC tDI rjU @@ -105993,7 +105995,7 @@ eWG nZn jKg tdv -ezm +lPC ttw ttw iLQ @@ -106043,7 +106045,7 @@ cBU xpf cvH pZE -nPC +hDN mCN pxe hAp @@ -106214,7 +106216,7 @@ ttw ttw ttw ttw -xHj +fYK dWX dWX mIm @@ -106480,13 +106482,13 @@ kVR uiw sYU uiw -crN +uKe sYU oGz -crN +uKe sYU uiw -crN +uKe sYU uiw oMs @@ -106737,13 +106739,13 @@ kVR uiw agX uiw -crN +uKe tAl uiw -crN +uKe tAl uiw -crN +uKe agX uiw oMs @@ -106881,7 +106883,7 @@ uUU oVO pkp xXo -eFu +ycM ttw ttw ttw @@ -106994,13 +106996,13 @@ kVR raP uiw iVS -biD +wsk uiw iVS -biD +wsk uiw iVS -biD +wsk uiw iVS oMs @@ -107321,7 +107323,7 @@ cyO qHI xtk dub -sfx +aaj rwr hsr kcD @@ -107505,16 +107507,16 @@ bMr oRY vEz pdg -hpd +tvP sig xNR -rfn +wUW ckQ sLA -pHx +nRP gbf iIn -oPu +xGk gbf bLi ykd @@ -107531,7 +107533,7 @@ bSW mkK sYC eHA -fAN +fDa eyy nFs uvj @@ -107910,7 +107912,7 @@ uUU oVO pkp xXo -eFu +ycM ttw ttw ttw @@ -108019,16 +108021,16 @@ bMr oRY bie efz -jdJ +uyE xyc bwJ -hnT +kHC jcW bwJ -czH +dbQ jcW bwJ -wrN +wKq jcW kJT ldB @@ -108278,16 +108280,16 @@ oRY kVR mom mQW -nVG +eLd biy lEa -fWQ +duq biy mXv -oXF +jIT biy meR -kjX +pkr xtW oMs gdS @@ -108536,13 +108538,13 @@ kVR lXQ uiw jSr -qcQ +dgw uiw jSr -qcQ +dgw uiw jSr -qcQ +dgw uiw jSr oMs @@ -108551,9 +108553,9 @@ qeQ nQM oMs oew -iXi -idG -xjf +drZ +nRb +kXU kxt olt otw @@ -108793,13 +108795,13 @@ kVR uiw tAl uiw -crN +uKe agX uiw -crN +uKe xXU uiw -crN +uKe tAl uiw oMs @@ -108807,11 +108809,11 @@ qtI xAo agi fmb -ncR +iME vHj -dou +neW ciZ -iOh +hXI iue otw fDb @@ -108828,7 +108830,7 @@ xqO ttw ttw ttw -yjr +lLP ttw qjA bgi @@ -109050,13 +109052,13 @@ kVR uiw hsn uiw -crN +uKe hsn uba -crN +uKe hsn uiw -crN +uKe hsn uiw oMs @@ -109064,7 +109066,7 @@ irF qbI dnE oMs -muZ +vqX bem nIB ciZ @@ -109298,7 +109300,7 @@ gPJ gPJ ttw ttw -xHj +fYK dWX dWX mIm @@ -110893,7 +110895,7 @@ qCd eFq cSD lbX -hbG +mdF gOn gIW iTA @@ -110916,10 +110918,10 @@ sAM ahd rba sAM -lvU +oLp ady gJm -hWm +eiV sAM sAM sAM @@ -111180,7 +111182,7 @@ kam aQC aZe kyH -wKH +lMC uyk mCM fsR @@ -111513,7 +111515,7 @@ deE wTj pkp xXo -eFu +ycM ttw ttw ttw @@ -112169,7 +112171,7 @@ yhC mWZ stJ nQY -fsk +ntV fAW xsT mhe @@ -113008,7 +113010,7 @@ pkR lGH qoS lMS -vHh +rvu jAK iwz fTR @@ -113022,7 +113024,7 @@ wyk kVc dYh nyT -rHt +sEd luV nca nEW @@ -113197,7 +113199,7 @@ vRi eFp stJ jCE -cdr +bBE juC ieX mhe @@ -113297,8 +113299,8 @@ kkr ltK pJO pJO -rOM -vIt +jOB +weS toq jKu nES @@ -113544,7 +113546,7 @@ fDu fKt fTR vGe -daO +dWY nAn dYh nny @@ -113554,8 +113556,8 @@ hwW hzM dYh dYh -jyF -uvy +uHi +frF toq vsH dSC @@ -113812,7 +113814,7 @@ dYh nmg dYh dYh -xtF +ohm toq nFg hYA @@ -114015,7 +114017,7 @@ aeg ljI ljI rIN -eSB +eMf nPN pdU xRR @@ -114067,9 +114069,9 @@ pVr nAn dYh dYh -hXV -wEJ -pSj +sXU +pSF +gFi toq lEm wme @@ -114226,7 +114228,7 @@ omp stJ iWk nlu -enC +nTN mWD mhe deV @@ -114321,12 +114323,12 @@ dYh vHY hUp wQU -ciQ -rwT +nYZ +wHA kLU -hXV -wEJ -owP +sXU +pSF +ldX toq uat wme @@ -114578,12 +114580,12 @@ kMj nbD tDe luV -xgj -xgj -gSO -cXk -kIq -afb +sjg +sjg +leX +gRW +pet +mWy toq dKF flr @@ -114794,7 +114796,7 @@ xtI qDk oBl lMj -oOG +fBw rXD jOc sHv @@ -114848,7 +114850,7 @@ brI gAd pkp xXo -eFu +ycM ttw ttw ttw @@ -115203,7 +115205,7 @@ ipH cuA prO sOq -qVb +dWV ria iqc sfj @@ -115253,7 +115255,7 @@ eey oEk stJ lbM -nQh +qEP sDB oVp mhe @@ -115541,7 +115543,7 @@ vQf cnC abF lZg -uHn +wlF fch tKO ivR @@ -115564,9 +115566,9 @@ vFl pPp xPa xnl -xEU +qxK kKL -jCB +fdN pzK sHv pIN @@ -115987,7 +115989,7 @@ sLq toU nya bFO -hBZ +aEG lKw ted uHB @@ -116249,8 +116251,8 @@ bcn vWw kFf rMc -rfc -qUc +mgl +kde glp vkJ cLi @@ -116337,7 +116339,7 @@ gcy lMj lMj lMj -qsW +oMQ lMj sHv sEL @@ -116476,7 +116478,7 @@ jrF uHj qSd cgu -mxN +lZd bYj iqM rjh @@ -116862,7 +116864,7 @@ rzr gXL cxR gXL -vFC +jMQ fpH fpH fpH @@ -116903,7 +116905,7 @@ gmz gAd pkp xXo -eFu +ycM ttw ttw ttw @@ -117272,7 +117274,7 @@ imR vwo fUU vBP -dwE +aFy gIr vmI gWa @@ -117307,7 +117309,7 @@ snO eVs jbu sVX -ubu +oeu pjd emE uzB @@ -117595,8 +117597,8 @@ xFM sHA bVR nCl -ljG -hjR +nhi +jpH tWj kqY tQF @@ -117674,7 +117676,7 @@ gmz ngt pkp xXo -eFu +ycM ttw ttw ttw @@ -117887,8 +117889,8 @@ iGy pEX dYi xnw -oWu -qoU +kRJ +lQl jWq joZ hxy @@ -118018,9 +118020,9 @@ oXW tGR jqn jqn -cut -cut -cut +iqF +iqF +iqF nAw wLb tuF @@ -118043,15 +118045,15 @@ imR wMT eoq vBP -qAA -hIy +nyh +vBI hlx ujy uhX lTE -hxg +ylz abG -wOJ +viy stA gWZ uEX @@ -118109,8 +118111,8 @@ cdR cdR cdR cdR -gYT -rhi +cBc +sur hxh wMl lVF @@ -118150,7 +118152,7 @@ iYZ uAE tlS hxy -ohN +tQP mAy mAy mcP @@ -118274,10 +118276,10 @@ fWA rpg bcB fWA -hEG -hEG -uQm -hEG +rNj +rNj +jYa +rNj vcx dDM gTL @@ -118289,7 +118291,7 @@ kAm oHW wSc cmH -gRR +gnw pBc qLf xLF @@ -118363,9 +118365,9 @@ xna xRC hTP qPN -orN -fiT -hPC +uAJ +onu +nfb hKr wLP aFv @@ -118531,9 +118533,9 @@ jqn jqn mXy jqn -cut -cut -cut +iqF +iqF +iqF lyY doJ doJ @@ -118589,7 +118591,7 @@ oUR lnS cHc waR -uKZ +hyw nmm sgE pEL @@ -118620,16 +118622,16 @@ gtE pGB jrm kGL -diL +lRC nzP -sbH +spL sSx htb fDn aAN hns qZl -ebp +uUf fDn fDn dof @@ -118698,7 +118700,7 @@ qbp oWM pkp xXo -eFu +ycM ttw ttw ttw @@ -118784,7 +118786,7 @@ ttw xMq xMq xMq -got +aoM lbj jSB ska @@ -118877,9 +118879,9 @@ uai xRC sSx sSx -iSl -dTe -wFR +sCj +vHW +rzO tsB jLi fDn @@ -119045,9 +119047,9 @@ xxv pcM cIK ska -cut -cut -cut +iqF +iqF +iqF lyY okp kID @@ -119055,7 +119057,7 @@ xmK azd oSL cmH -iYy +bsU sCm pCy cmH @@ -119302,9 +119304,9 @@ xxv wcM xxv xxv -eNH -eNH -eNH +qVs +qVs +qVs lyY rhY vuW @@ -119399,10 +119401,10 @@ tJU ykT vVO twU -wwr +kKa mJB -eil -uhH +tYp +pAK mAC nIJ ifq @@ -119438,7 +119440,7 @@ wBI qZQ eAg dEO -cZW +hgL uIw taK bom @@ -119469,7 +119471,7 @@ qbp nIl pkp xXo -eFu +ycM ttw ttw ttw @@ -119557,11 +119559,11 @@ ttw ttw xxv ska -got -nxj -cut -cut -eNH +aoM +lwq +iqF +iqF +qVs lyY qzL dPF @@ -119569,9 +119571,9 @@ kYF nag wav dTL -chg +oWo yeg -bee +sNJ fHb tvm tvm @@ -119653,7 +119655,7 @@ gLN gLN ojZ cwM -sCO +jsN hGE gQm fft @@ -119661,7 +119663,7 @@ sUt daB mYW kyV -rob +xnP ifq fvW yiT @@ -119814,11 +119816,11 @@ ttw ttw xMq oBb -eNH -cut +qVs +iqF xMq xMq -eNH +qVs lyY hfv aiw @@ -119911,19 +119913,19 @@ gLN itW jWg rUf -qaf +ylT wEK pKg nXW kgk fDn -njQ +aJD dPv eEq xkq xkq fiN -gBQ +sNW lLk xgA fiN @@ -119943,7 +119945,7 @@ tRQ gXL erh lPT -amL +rri lqJ fdG lCP @@ -120071,7 +120073,7 @@ ttw ttw xMq oBb -eNH +qVs xMq xMq xMq @@ -120208,7 +120210,7 @@ qfk wBI wBI uIw -bbW +hKj uIw wBI jtJ @@ -120328,10 +120330,10 @@ ttw ttw xMq oBb -eNH +qVs xMq -cut -cut +iqF +iqF lyY wsm gIo @@ -120348,9 +120350,9 @@ eSv bbh soM srd -gGF -hZv -jHs +hMt +nNe +kjd osT wwH cMY @@ -120498,7 +120500,7 @@ qbp oWM pkp xXo -eFu +ycM ttw ttw ttw @@ -120585,9 +120587,9 @@ ttw ttw xMq oBb -eNH -cut -cut +qVs +iqF +iqF xMq lyY wSg @@ -120605,9 +120607,9 @@ ndC cbA fHb vxI -soZ +icL odp -npo +kNT rCi gQK kek @@ -120638,7 +120640,7 @@ kIt fWc amP cyN -sOh +oJu sOp nPs qSu @@ -120713,13 +120715,13 @@ wEg uit qCR dJj -pBR +tIf puq fol oxL enl lOY -xNl +xTy sJO qQu pkH @@ -120842,14 +120844,14 @@ ttw ttw xMq oBb -eNH +qVs xMq -cut -cut +iqF +iqF lyY ckL xgQ -esP +uFN pMp pWG gDz @@ -120862,9 +120864,9 @@ wLh bIN sFN vGz -oJI -jqL -xQM +nMn +oSF +rDN mab mev gaf @@ -120985,7 +120987,7 @@ hiQ akW hPu wik -fiC +lAG hLh sPF tUK @@ -121099,7 +121101,7 @@ ttw ttw xMq oBb -eNH +qVs xMq xMq xMq @@ -121159,8 +121161,8 @@ qSu qSu rUj bPZ -sbx -anI +xAy +aeH lxC cnA rUb @@ -121189,7 +121191,7 @@ iLL jiu vMa atS -nSB +omB tVg fmp aeN @@ -121356,11 +121358,11 @@ ttw ttw xMq oBb -eNH -cut +qVs +iqF xMq xMq -eNH +qVs lyY wsr tCy @@ -121416,8 +121418,8 @@ qSu gYN dqJ bPZ -jUL -ekG +pDj +jVW kLz cnA rUb @@ -121525,7 +121527,7 @@ qbp oWM pkp xXo -eFu +ycM ttw ttw ttw @@ -121614,16 +121616,16 @@ ttw aei bZk aei -nxj -cut -cut -eNH +lwq +iqF +iqF +qVs lyY sXl lSU ekt tuU -ifj +cQN gSK umJ rju @@ -121673,13 +121675,13 @@ wAA mDP cau cau -qwy -qwy -qwy -pYe -eYX -lkz -lej +wrn +wrn +wrn +tdG +fNg +jDI +rKL rUb qQh fVT @@ -121872,15 +121874,15 @@ aei cAd aei aei -eNH -eNH -eNH +qVs +qVs +qVs lyY xbj ydE qcR oTz -koc +wDN xlE xlE xlE @@ -121903,9 +121905,9 @@ gxZ qMk bYy eFF -jEy -xMV -oaL +whX +bCp +pLS gzU hjW gDp @@ -121928,16 +121930,16 @@ vDG qAl jSC jSC -rJs -koZ +xcq +isq tdn -xUG -fxo -olm -gyK -woE +vGV +hkU +ige +gKa +nja gOt -vyb +wBf kPh ooa hZp @@ -121975,7 +121977,7 @@ uDE xcg xyf mEL -yjD +mjC ieO ieO tcz @@ -122000,7 +122002,7 @@ gwM rKH nwm efQ -vtw +gJZ nDn hAj enY @@ -122129,9 +122131,9 @@ aei cRr rbc bZk -cut -cut -cut +iqF +iqF +iqF lyY wot mMZ @@ -122152,15 +122154,15 @@ vJT xjX jOs pWq -owU -qCq -wpJ +vps +uyH +jrq kmg -wpJ -qXs -veR +jrq +pZJ +otC eFF -abN +kfP oCY lbh xFH @@ -122177,23 +122179,23 @@ uND vZb gIK fWD -put +kWE vHZ -aVq +cLr dcg pzr lcT bnA -bRS -qor -hTj -pei +ecl +wMw +xtx +sdl xFd -tTC -bOI -bMB -rSO -xgl +eCV +mPf +neg +lsG +ioX fLp oie oRJ @@ -122296,7 +122298,7 @@ qbp nIl pkp xXo -eFu +ycM ttw ttw ttw @@ -122417,10 +122419,10 @@ sVP nLB oRj wDO -ryN +mry kNJ uLI -rAD +cHu hjW pzG qnC @@ -122441,18 +122443,18 @@ gzn tUt lkG wrT -coJ -tge +jaG +iRi xRG xRG -fam -fMm +fUb +pdo jSC -esZ +hCJ bPZ bPZ fLp -cIT +gsl hhJ pep udR @@ -122517,7 +122519,7 @@ aTR mLJ kSN cEE -vlP +wCR rAU qvp xCw @@ -122643,9 +122645,9 @@ usB usB uHz usB -cut -cut -cut +iqF +iqF +iqF lyY xlE xlE @@ -122698,18 +122700,18 @@ hvD uKp eGd jSC -jdH +sSd ibK xFd -ocK -rGx -hxA +bYX +acT +aLz bnA -aXm -rKK -hBP -vGE -mkD +iNb +beU +hJq +vhh +hwE fuP roz wne @@ -122749,7 +122751,7 @@ hsq ptW uDd uDd -dzq +hqp cFx uAx jfo @@ -122900,10 +122902,10 @@ lOc tIo bKX vfM -cOf -cOf -cut -cOf +avJ +avJ +iqF +avJ sKT elm lje @@ -122915,9 +122917,9 @@ jlB xlE lPh kyd -qlQ +qSU jDE -wwv +fho ygP uOg pwX @@ -122955,23 +122957,23 @@ hvD hUS eGd bnA -nzv +aGg puH xFd gZD -hqe -eGy +gvO +mNK ogb -dAy -nTI -olG -tiJ +aaY +cyI +lOC +fYn wQo jGl -jio +akj hzT mqk -jio +akj qaD fLp nhJ @@ -123158,9 +123160,9 @@ usB sPi usB usB -cut -cut -cut +iqF +iqF +iqF sKT xha vGj @@ -123212,23 +123214,23 @@ jrX hUS eGd bnA -nzv -vZc -nMk +aGg +tRE +xou gZD -wQi -gjG +dfG +eNr cbf -dAy -eWX +aaY +cEq vOZ -ssw +vga bmN jGl -jio +akj hzT mqk -jio +akj rMh fLp tzs @@ -123326,7 +123328,7 @@ qbp oWM pkp xXo -eFu +ycM ttw ttw ttw @@ -123468,18 +123470,18 @@ wzH hRr fba cUM -xum -whq +lQG +tDA orv xFd -iog -okY -dGT -tSE +nRS +fvY +ePd +sSm ctf -gKB -ajR -tdO +bux +jrb +hGX slL qEr bKI @@ -123700,7 +123702,7 @@ sah boH dBW ugu -uuh +wJx nkn uXb tpZ @@ -123726,18 +123728,18 @@ hvD hUS eGd bnA -fva -sIs +rSX +lMt pow pow tgy jSC -iUy -uEb -vrL +qcK +mKK +ycB fLp fLp -obz +pNs jru qKf nGh @@ -123805,7 +123807,7 @@ mII fAJ fAJ fAJ -aFq +aGq iyw duy jnT @@ -123983,15 +123985,15 @@ hvD hUS eGd bnA -iIG -mFX +xYN +qSs bLx ehn -iJt +hIw jSC -nYG -rvS -vaJ +ivQ +qos +pwP fLp hnJ cCw @@ -124025,9 +124027,9 @@ jki rtS ueT aCq -bzn -bzn -wfp +luX +luX +sqg bzY xPw kOY @@ -124072,7 +124074,7 @@ eLf dZy rGo eEu -uSC +xrO iZl hEF hEF @@ -124097,7 +124099,7 @@ qbp nIl pkp xXo -eFu +ycM ttw ttw ttw @@ -124242,21 +124244,21 @@ slJ hfU hfU hfU -vZY +kIg hfU hfU jSC -hFu +eNJ ctf -uNs +tNI fLp pKd wxX mqk -jio +akj llF mqk -jio +akj jCH fLp uuO @@ -124497,23 +124499,23 @@ hvD dSe hzx hfU -eGT -tja -nRy -mVt +upB +gHS +hNB +ern hfU -gtJ -fZg +qge +jvC koq -trR +vPl fLp fNL wxX mqk -jio +akj llF mqk -jio +akj grQ fLp rjf @@ -124741,7 +124743,7 @@ xBE bCE ntX owg -geo +jfR bki oEC qXR @@ -124754,15 +124756,15 @@ hvD hUS eGd hfU -sJb -gFG -gIO -tUw +din +xHx +cxP +iEJ hfU -eEd -bPG -stM -bdX +pWe +fLZ +fLi +kWA fLp qEC iAM @@ -124842,7 +124844,7 @@ cBe aNf vOp vlh -aTu +glC aNw urg fNT @@ -125011,13 +125013,13 @@ nJH hUS fyP hfU -wQw -qAn -ely -jDX +bsF +jEP +gcp +qDl hfU -itf -bmk +tZi +gZV dIM rMB fLp @@ -125113,7 +125115,7 @@ wfL mWh oWn dJr -iwH +iTv dhx rTf sxN @@ -125219,7 +125221,7 @@ sDX fAL kSP mQl -pBG +kDn udZ dFA hcD @@ -125271,7 +125273,7 @@ iNV iNV qzy iNV -tlk +lnT iNV iNV mNF @@ -125330,8 +125332,8 @@ xud xud qok xud -qWG -hTQ +lcr +aRE vwl brl wwf @@ -125588,11 +125590,11 @@ cxF qok xud kpq -qrc +pnL txh fTO gjv -vUt +owG ssQ vIF ekf @@ -125733,7 +125735,7 @@ rib sDX eBf lGY -pLl +mMO uzl pRD oHt @@ -125749,7 +125751,7 @@ vIv vIv gcg umw -oFQ +mwN vIv vIv xMq @@ -125767,7 +125769,7 @@ mjP fXZ vnv ojJ -dXZ +oix eCc iQl pIY @@ -126007,7 +126009,7 @@ jlD fRq pSw brB -hIp +tST vIv ttw ngD @@ -126098,7 +126100,7 @@ vwJ wKg fdP cJR -xkt +vha vHg hCV ioP @@ -126106,7 +126108,7 @@ pXL uTI djy rop -lkM +wVD wsP szj aqJ @@ -126250,8 +126252,8 @@ lGY kEv cIS iEv -cHg -cHg +mxD +mxD xSq tAU aNG @@ -126602,7 +126604,7 @@ cYz onP bnV nTW -vfg +iWQ gnh koK fyT @@ -126619,7 +126621,7 @@ atg jTg uBW jhD -qGR +mna fwW mnR iQy @@ -126765,7 +126767,7 @@ lGY lgF iyK ntp -xfA +rVJ qNc tAU hBH @@ -126859,7 +126861,7 @@ cYz onP iUM lZh -vfg +iWQ hRM yhD cpg @@ -126876,7 +126878,7 @@ vXh jTg nLC qni -lkM +wVD cfZ tjR eiX @@ -126889,8 +126891,8 @@ ewh kbD uqw fZM -uCe -sFq +kTZ +tQV rSz spv nju @@ -127042,17 +127044,17 @@ ngD ngD frc vnb -vwn +lQM ewC -tms -pzF -iso +ybu +cDc +qBO pKY nRV iqx oPQ lvS -mCK +pjm eCc bSl cXX @@ -127070,7 +127072,7 @@ nyC aMk xla uiz -geA +fEc tNN iNV sJy @@ -127135,9 +127137,9 @@ hne mth rop rli -fye +dMh vuu -fye +dMh uzc qid rli @@ -127299,7 +127301,7 @@ jbe jYs oTE vnb -kjG +iXV dfM wrA dSa @@ -127383,14 +127385,14 @@ vFv tqu gmb vFv -jTk +daH pqh rop rop gSW xGe sSn -lkM +wVD jLQ ukJ nTB @@ -127426,7 +127428,7 @@ ash mRA dtb xsG -lYC +cYk ile sId dJo @@ -127445,7 +127447,7 @@ sJd gUC pkp xXo -eFu +ycM ttw ttw ttw @@ -127525,7 +127527,7 @@ ttw ttw ttw hBA -cNU +irB ayO vgz taf @@ -127556,7 +127558,7 @@ soS xWZ gRx vnb -gra +kOL dMg iSJ pVK @@ -127647,14 +127649,14 @@ cRU joy bey dGK -lkM +wVD rRS uLe bmS tkn gjm wJg -fye +dMh pgc gwM mGO @@ -127815,7 +127817,7 @@ hiN vnb gEO aFp -qKP +vod iWZ nzM vVt @@ -127858,7 +127860,7 @@ tDO wkm gDf djz -vMc +rTR ykh wtQ yep @@ -127890,7 +127892,7 @@ izK mgS onP ofb -iCW +qXo onP pqh vCX @@ -127899,11 +127901,11 @@ vCX nvF pqh pqh -uTk +rtG rop rop pOV -lkM +wVD rop nUi xaD @@ -127911,7 +127913,7 @@ ltN xHW uLe kMM -fye +dMh pgc lxc gpK @@ -128098,7 +128100,7 @@ nyC aPj kiL qNW -rrI +scZ iJo wqd uco @@ -128113,7 +128115,7 @@ pzh ykh fop qLu -bvE +bfi pBo aWR ykh @@ -128168,7 +128170,7 @@ dNV uSX wjH wMS -vsK +qLC umD jgI rKH @@ -128425,7 +128427,7 @@ lCU eSk leb eEz -vsK +qLC mnf tWE rbW @@ -128918,8 +128920,8 @@ xud xud xud xdZ -nyf -nyf +sgl +sgl yaj wuW sFi @@ -128936,9 +128938,9 @@ sFi sFi sFi oLo -eDx -eDx -eDx +shC +shC +shC oLo sUo rzr @@ -129167,16 +129169,16 @@ xMq xMq xMq oXI -fNX -iNa -bkF +uLB +dCJ +sDP hQq qBe odX ipj ekQ bNu -lBF +vao yaj xMq sFi @@ -129192,7 +129194,7 @@ xTN git uho cHk -eDx +shC mqJ kBs nnr @@ -129424,20 +129426,20 @@ odJ xqO xMq oXI -ihS -cvp -nqU +tRX +nnl +uEh bcW njG xCF xCF xXC -ueJ +vil gjq -nyf +sgl gZb wuW -wVQ +pdM udn aRn fun @@ -129453,7 +129455,7 @@ oLo nGM lGO pHC -eDx +shC dsj idx fsd @@ -129681,17 +129683,17 @@ ttw odJ xMq oXI -iFV -lmY -krz +lUS +fNM +mTM lon -cbP +yib szk -haV +mDb xXC -jay +byA dMl -nyf +sgl cKl wuW eGw @@ -129710,7 +129712,7 @@ sSV lKg npI oyG -eDx +shC hDf vNs mvz @@ -129938,10 +129940,10 @@ ttw odJ xMq oXI -oCm -vWH -krz -pmM +tYW +bCc +mTM +ntl oXI pjT pjT @@ -129974,7 +129976,7 @@ pPy vxH hdZ aic -eHk +mJw xUk tKV tKV @@ -130192,23 +130194,23 @@ ttw ttw ttw ttw -cbP -cbP -cbP -qtr -cXD -qpX -tuw +yib +yib +yib +ung +qtm +cvL +lFU oXI jBq -gsb +mTV efH -ouL -aUA +jTE +bLC pjT xMq sFi -tEH +nJi udn cLG sny @@ -130264,7 +130266,7 @@ wIM eWs kLc unI -fJV +poE mRm mRm rgt @@ -130458,7 +130460,7 @@ ucK hkN oXI mXQ -qTS +pWp nNB ens cRT @@ -130529,7 +130531,7 @@ unI otq pkp xXo -eFu +ycM ttw ttw ttw @@ -130681,9 +130683,9 @@ eON aZX kSB tuq -jpk +vMj pvA -oym +fCy skC hqK udg @@ -130706,16 +130708,16 @@ ttw ttw ttw ttw -cbP -cbP -cbP -dpw -pws +yib +yib +yib +sTD +xAE ucK hwL oXI hwR -kbi +pwE kVH gJs jXN @@ -130727,13 +130729,13 @@ tKA uHr oQK xJt -hzl +ibj xJt qAu xbQ qVt xbQ -iCV +xUK sFi bwv wbf @@ -130966,13 +130968,13 @@ ttw odJ xMq oXI -kkC -pws -hSf -llf +oiY +xAE +hil +eZV oXI -emO -dTO +kUB +bIb wyB iVW coN @@ -131160,7 +131162,7 @@ bsr iru gpO lcd -waK +bnh rPq rPq xRQ @@ -131223,10 +131225,10 @@ ttw odJ xMq oXI -xqM -sqL -nBO -afo +aKw +iYk +bdM +baI oXI pjT pjT @@ -131482,11 +131484,11 @@ xMq oXI oXI oXI -vte +kyy oXI oXI qBt -ldU +xfg qBt cBk ttw @@ -131552,7 +131554,7 @@ lAi jBK pkp xXo -eFu +ycM ttw ttw ttw @@ -131682,7 +131684,7 @@ qtc wnu vei hsu -fOh +kbb iVa iVa jFA @@ -131737,12 +131739,12 @@ xMq xMq xMq cBk -pqk -nGR -goP -kdS -oUb -dAV +vri +isV +iOa +iML +raL +lMT ksB oxn wYd @@ -131939,7 +131941,7 @@ mpF nnj tdY mpu -uOA +xmN iVa iVa mVl @@ -131994,13 +131996,13 @@ ttw ttw xMq cBk -hjg -hJg -tOa -qgY +kvH +kGG +nVc +fgj fth -iLb -deu +byo +rOw oky wYd ttw @@ -132183,7 +132185,7 @@ aBX qsw tod xTY -rpN +jeS pcq mbW vWY @@ -132251,14 +132253,14 @@ kUb ttw xMq cBk -hKK -kFL -vxf -pFJ +woN +xGx +gmG +pwI qhU -mTY -jvw -rnb +xkM +rnz +rlB wYd ttw ttw @@ -132509,12 +132511,12 @@ ttw xMq cBk cBk -oGX -tEI +jnm +mYH cBk -uVw -leF -gWT +mEa +iyG +wHF cBk cBk xMq @@ -139940,7 +139942,7 @@ npZ uzo erR wab -tZm +wna okt npZ npZ @@ -139952,8 +139954,8 @@ qyC qyC qyC qyC -uHA -rTT +oIE +uUB xMq ttw ttw @@ -140211,7 +140213,7 @@ xvm qyC tGk tGk -uBX +ujK xMq ttw ttw @@ -140980,8 +140982,8 @@ cyA gCp jxh afD -nFL -hGn +vcv +jWQ cwn xMq ttw @@ -142756,7 +142758,7 @@ woT azl rfw jYD -pqo +sGR sEf rFe fMc @@ -142782,7 +142784,7 @@ dKO sEf qtL qtL -vKi +qjH puG ttw ttw @@ -143296,8 +143298,8 @@ ntY sEf qtL qtL -tfX -sxf +kyk +jEG ttw ttw ttw @@ -143809,7 +143811,7 @@ omg omg sEf qtL -vKi +qjH puG ttw ttw @@ -144323,8 +144325,8 @@ cFz cGp sEf qtL -tfX -sxf +kyk +jEG ttw ttw ttw @@ -145353,7 +145355,7 @@ sEf qtL qtL dPU -sxf +jEG ttw ttw ttw diff --git a/_maps/map_files/biodome/biodome.dmm b/_maps/map_files/biodome/biodome.dmm index c00d8c6b68462..70b27e77995ae 100644 --- a/_maps/map_files/biodome/biodome.dmm +++ b/_maps/map_files/biodome/biodome.dmm @@ -27243,6 +27243,7 @@ /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/machinery/light/directional/north, +/obj/effect/mapping_helpers/apc/cell_10k, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) "jGl" = ( @@ -66518,9 +66519,7 @@ /area/station/commons/vacant_room/office) "wZi" = ( /obj/structure/cable, -/obj/machinery/power/smes{ - charge = 5e+006 - }, +/obj/machinery/power/smes/full, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "wZn" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 8039f5c170be9..c9756094124d6 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -6936,9 +6936,8 @@ /area/centcom/tdome/observation) "Ga" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/taperecorder, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/fax, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) "Gb" = ( diff --git a/_maps/map_files/generic/CentCom_skyrat_z2.dmm b/_maps/map_files/generic/CentCom_skyrat_z2.dmm index 274728a23d207..80300a0c849e4 100644 --- a/_maps/map_files/generic/CentCom_skyrat_z2.dmm +++ b/_maps/map_files/generic/CentCom_skyrat_z2.dmm @@ -5396,7 +5396,7 @@ /obj/effect/turf_decal/weather/snow/corner{ dir = 10 }, -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /turf/open/misc/dirt/planet, /area/centcom/holding/cafe/park) "cEy" = ( diff --git a/_maps/map_files/moonstation/moonstation.dmm b/_maps/map_files/moonstation/moonstation.dmm index f9988a1d780a5..c50a90984c085 100644 --- a/_maps/map_files/moonstation/moonstation.dmm +++ b/_maps/map_files/moonstation/moonstation.dmm @@ -14956,7 +14956,7 @@ /obj/item/reagent_containers/cup/glass/bottle/holywater{ desc = "A flask of holy water allegedly containing the first seed planted in the Garden of Eden"; name = "flask of the first holy seed"; - list_reagents = list(/datum/reagent/consumable/cum = 100); + list_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/water/holywater = 95); pixel_y = 2 }, /turf/open/floor/iron/dark, @@ -21955,7 +21955,7 @@ /turf/open/floor/plating, /area/station/security/prison/work) "gcc" = ( -/obj/machinery/power/smes/engineering, +/obj/machinery/power/smes/full, /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/computer) @@ -43460,7 +43460,7 @@ /turf/open/floor/plating, /area/station/engineering/asteroid_lobby) "mdP" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -64491,7 +64491,7 @@ /obj/effect/turf_decal/siding/dark_green, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/mapping_helpers/apc/full_charge, +/obj/effect/mapping_helpers/apc/cell_10k, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) "rYe" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 8e5717b9df42d..c3413e8770be9 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -11241,7 +11241,7 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "cON" = ( -/obj/machinery/deepfryer, +/obj/machinery/smartfridge/drying, /turf/open/floor/iron/white/side{ dir = 8 }, @@ -32291,6 +32291,7 @@ }, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig) "kul" = ( @@ -47384,6 +47385,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/navigate_destination/sec, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig) "pLs" = ( @@ -53608,6 +53610,7 @@ }, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig) "rUe" = ( @@ -66153,6 +66156,7 @@ /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig) "wiU" = ( diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 1ea449e2f2fad..d1985e8f4244a 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -448,6 +448,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/science/xenobiology) +"agM" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + name = "Security Shutters"; + id = "xbprotect"; + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "agO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, @@ -1028,6 +1040,23 @@ /obj/item/lighter, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) +"aqz" = ( +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"aqG" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "aqM" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -1654,17 +1683,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/central) -"aBl" = ( -/obj/structure/table, -/obj/item/storage/box/syringes{ - pixel_x = -8; - pixel_y = 11 - }, -/obj/item/storage/box/beakers{ - pixel_x = 4 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "aBy" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 8 @@ -2187,17 +2205,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"aKk" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - name = "shutter control"; - id = "xbprotect" - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "aKl" = ( /obj/structure/chair, /obj/machinery/airalarm/directional/north, @@ -2387,6 +2394,15 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/research) +"aNF" = ( +/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 = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "aNH" = ( /obj/machinery/door/airlock/security/glass{ name = "Security Entry"; @@ -2403,6 +2419,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig/entrance) "aNR" = ( @@ -2833,6 +2850,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"aXc" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/mapping_helpers/apc/cell_5k, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "aXg" = ( /obj/structure/railing{ dir = 10 @@ -3075,17 +3101,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) -"bbY" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - name = "shutter control"; - id = "xbprotect1" - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "bca" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/landmark/start/bartender, @@ -3292,6 +3307,17 @@ }, /turf/open/misc/asteroid, /area/station/maintenance/department/science) +"bfq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "bfD" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3369,13 +3395,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"bhm" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "bhv" = ( /obj/structure/window/reinforced/plasma/spawner/directional/south, /obj/machinery/power/energy_accumulator/tesla_coil/anchored, @@ -3697,11 +3716,6 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/engine) -"bou" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "boy" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -3755,6 +3769,10 @@ }, /turf/open/floor/iron, /area/station/security/interrogation) +"bqs" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "bqz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, @@ -3868,13 +3886,6 @@ "brV" = ( /turf/open/floor/engine, /area/station/command/corporate_dock) -"bso" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "bsw" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -3943,16 +3954,6 @@ dir = 8 }, /area/station/service/chapel) -"btS" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "btU" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass, @@ -4872,6 +4873,15 @@ /obj/machinery/door/window/right/directional/west, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"bIP" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "bJc" = ( /obj/structure/railing/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5560,6 +5570,10 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"bXM" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "bYa" = ( /obj/structure/filingcabinet/employment, /turf/open/floor/carpet, @@ -5690,6 +5704,10 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) +"caH" = ( +/obj/structure/sign/warning/directional/west, +/turf/closed/wall/rust, +/area/station/medical/chemistry/minisat) "caP" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -5940,16 +5958,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"cfk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk/multiz{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "cfv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6454,6 +6462,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) +"cra" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "crb" = ( /obj/machinery/door/poddoor/shutters/window{ id = "armory"; @@ -6595,6 +6609,25 @@ "csW" = ( /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) +"ctf" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 16; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "cti" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -6651,11 +6684,6 @@ /obj/item/trash/shrimp_chips, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"cuo" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/broken_flooring/pile, -/turf/open/floor/plating, -/area/station/science/ordnance) "cuq" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/bar, @@ -6703,10 +6731,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"cvQ" = ( -/obj/structure/sign/warning/directional/west, -/turf/closed/wall/rust, -/area/station/medical/chemistry/minisat) "cvT" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -6992,16 +7016,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/storage) -"cBB" = ( -/obj/machinery/airalarm/directional/east, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/clothing/head/utility/welding, -/obj/effect/turf_decal/siding/purple{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/science/robotics/mechbay) "cBD" = ( /obj/machinery/door/airlock/grunge{ name = "Prison Forestry" @@ -7317,6 +7331,12 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"cIk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "cIx" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ dir = 4 @@ -7685,6 +7705,15 @@ "cPt" = ( /turf/closed/wall/r_wall, /area/station/science/lab) +"cPu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "cPx" = ( /obj/structure/table, /obj/item/hfr_box/corner, @@ -7695,18 +7724,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"cPz" = ( -/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 = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "cPE" = ( /obj/machinery/light/small/directional/west, /turf/open/misc/asteroid, @@ -7775,6 +7792,16 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) +"cQx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/pipe_dispenser{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/item/pipe_dispenser, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "cQK" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -7999,14 +8026,6 @@ }, /turf/open/floor/iron, /area/station/security) -"cUQ" = ( -/obj/machinery/door/airlock/command{ - name = "Research Director's Observatory" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/science/ordnance/testlab) "cVb" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ color = "#000000" @@ -8321,6 +8340,12 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/robotics/lab) +"daT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/north, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "dba" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -8416,6 +8441,10 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"dci" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "dcl" = ( /obj/effect/turf_decal/sand/plating, /obj/item/pickaxe, @@ -8518,14 +8547,6 @@ }, /turf/open/floor/plating, /area/station/commons/vacant_room/commissary) -"ddx" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/station/asteroid) "ddF" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -8644,6 +8665,16 @@ }, /turf/open/floor/plating, /area/station/medical/storage) +"dgR" = ( +/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/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "dgS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8787,6 +8818,23 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/misc/asteroid, /area/station/hallway/secondary/entry) +"dir" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Minisat" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry/minisat) "diz" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -9288,21 +9336,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w, /turf/open/space/basic, /area/space/nearstation) -"dqS" = ( -/obj/machinery/door_buttons/airlock_controller{ - idExterior = "xeno_airlock_exterior"; - idInterior = "xeno_airlock_interior"; - idSelf = "xeno_airlock_control"; - name = "Access Console"; - pixel_x = -25; - pixel_y = -25; - req_access = list("xenobiology") - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "dqW" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -9337,6 +9370,21 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) +"drx" = ( +/obj/machinery/door_buttons/airlock_controller{ + idExterior = "xeno_airlock_exterior"; + idInterior = "xeno_airlock_interior"; + idSelf = "xeno_airlock_control"; + name = "Access Console"; + pixel_x = -25; + pixel_y = -25; + req_access = list("xenobiology") + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "drz" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/disposal/bin, @@ -9626,14 +9674,6 @@ /obj/item/kirbyplants/potty, /turf/open/floor/wood, /area/station/commons/lounge) -"dxy" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "dxA" = ( /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -9656,6 +9696,17 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"dxZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/obj/item/flashlight/glowstick/blue{ + start_on = 1; + light_range = 2 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "dyb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -10145,16 +10196,6 @@ /obj/structure/fluff/minepost, /turf/open/misc/asteroid, /area/station/maintenance/department/cargo) -"dEi" = ( -/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/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "dEn" = ( /obj/machinery/portable_atmospherics/canister/plasma, /obj/structure/window/reinforced/spawner/directional/east, @@ -10246,6 +10287,23 @@ /obj/structure/cable, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) +"dGi" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + req_access = list("ordnance"); + name = "Ordnance Storage Shutter Control"; + id = "ordstorage" + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "dGq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -10468,6 +10526,14 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"dJr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_half{ + dir = 8 + }, +/area/station/science/xenobiology) "dJJ" = ( /obj/structure/plasticflaps, /obj/machinery/navbeacon{ @@ -10490,17 +10556,6 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) -"dKh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box/red, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "dKp" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10731,6 +10786,17 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) +"dPh" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/machinery/light/directional/south, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "dPk" = ( /obj/machinery/button/elevator/directional/east{ id = "cargo" @@ -10813,21 +10879,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"dQw" = ( -/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/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) -"dQA" = ( -/obj/structure/cable, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "dQQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -10843,12 +10894,6 @@ }, /turf/open/floor/plating, /area/station/service/lawoffice) -"dRc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/storage) "dRh" = ( /obj/structure/closet/secure_closet/cytology, /turf/open/floor/iron/dark/small, @@ -10916,10 +10961,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/medical/chemistry/minisat) -"dSc" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/science/ordnance) "dSl" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/structure/cable, @@ -11317,6 +11358,11 @@ /obj/structure/reagent_dispensers/wall/peppertank/directional/south, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"dYY" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/sign/poster/official/wtf_is_co2/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "dYZ" = ( /obj/effect/spawner/random/maintenance/two, /obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask, @@ -11370,6 +11416,15 @@ dir = 1 }, /area/station/command/meeting_room) +"dZQ" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "eam" = ( /obj/structure/chair{ dir = 8 @@ -11397,6 +11452,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"eaL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "eaS" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -11924,10 +11983,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /turf/open/floor/circuit/telecomms, /area/station/science/xenobiology) -"ekq" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "eky" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -12177,6 +12232,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"epB" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "epE" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -12627,6 +12687,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/service/library) +"exS" = ( +/obj/structure/cable, +/obj/effect/turf_decal/sand/plating, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/turf/open/floor/plating, +/area/station/asteroid) "exT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -12663,16 +12731,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/security/prison/work) -"eyJ" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) +"eyx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "eyN" = ( /obj/structure/table, /obj/item/grenade/chem_grenade/smart_metal_foam{ @@ -12949,6 +13012,15 @@ /obj/structure/marker_beacon/yellow, /turf/open/space/openspace, /area/space/nearstation) +"eCJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "eCO" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/line, @@ -13222,14 +13294,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"eHw" = ( -/obj/machinery/processor/slime, -/obj/effect/turf_decal/bot_red, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "eHA" = ( /obj/structure/railing/corner{ dir = 1 @@ -13270,12 +13334,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"eIF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ - chamber_id = "o2ordance" - }, -/turf/open/floor/engine/o2, -/area/station/science/ordnance) "eIO" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall, @@ -13368,6 +13426,14 @@ "eKR" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) +"eLb" = ( +/obj/machinery/door/airlock/command{ + name = "Research Director's Observatory" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/science/ordnance/testlab) "eLe" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -13466,6 +13532,15 @@ }, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) +"eNt" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8; + name = "Oxygen Chamber Injection Port" + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "eNS" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/structure/disposalpipe/segment{ @@ -13696,13 +13771,6 @@ "eSS" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/cargo) -"eSW" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "eTd" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -13731,6 +13799,12 @@ /obj/item/trash/waffles, /turf/open/floor/iron, /area/station/hallway/primary/central) +"eTG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/storage) "eTZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 8 @@ -13743,14 +13817,9 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, /area/station/maintenance/department/science) -"eUs" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"eUB" = ( /turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) +/area/station/medical/treatment_center) "eUD" = ( /obj/effect/turf_decal/plaque{ icon_state = "L12" @@ -14201,18 +14270,6 @@ }, /turf/open/floor/iron/textured, /area/station/security/processing) -"fei" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - name = "Security Shutters"; - id = "xbprotect"; - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "feu" = ( /obj/effect/landmark/start/janitor, /obj/effect/decal/cleanable/dirt, @@ -14391,11 +14448,6 @@ }, /turf/open/floor/plating, /area/station/commons/storage/art) -"fhM" = ( -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "fhN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/maintenance, @@ -15476,12 +15528,6 @@ /obj/machinery/space_heater, /turf/open/misc/asteroid, /area/station/maintenance/central/greater) -"fAL" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/dark_blue/half/contrasted, -/obj/machinery/incident_display/bridge/directional/south, -/turf/open/floor/iron, -/area/station/command/bridge) "fAR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -15751,6 +15797,11 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/command/corporate_showroom) +"fEW" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/rd) "fFb" = ( /obj/structure/railing{ dir = 1 @@ -16204,6 +16255,13 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/iron, /area/station/commons/storage/tools) +"fNi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/portable_atmospherics/scrubber/huge/movable, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "fNk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, @@ -16259,9 +16317,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/security/brig/entrance) -"fNF" = ( -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "fNW" = ( /obj/effect/landmark/carpspawn, /turf/open/space/openspace, @@ -16400,12 +16455,6 @@ }, /turf/open/floor/iron, /area/station/security/warden) -"fPK" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "fPV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16650,6 +16699,14 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"fTO" = ( +/obj/machinery/processor/slime, +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "fTX" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) @@ -16872,6 +16929,16 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"fYW" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/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 = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "fYX" = ( /obj/machinery/power/solar{ id = "foreport"; @@ -17045,13 +17112,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white/smooth_large, /area/station/science/ordnance/storage) -"gbY" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ - dir = 4; - chamber_id = "o2ordance" - }, -/turf/open/floor/engine/o2, -/area/station/science/ordnance) "gcb" = ( /obj/structure/table, /obj/item/storage/box/firingpins{ @@ -17148,6 +17208,14 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/glass/reinforced, /area/station/science/research) +"gdM" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "gdP" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -17247,14 +17315,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"gfj" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "gft" = ( /obj/structure/transport/linear/public, /obj/effect/landmark/transport/transport_id{ @@ -17438,6 +17498,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/drone_bay) +"gjo" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "xbprotect" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "gjt" = ( /obj/machinery/pdapainter/medbay, /obj/effect/turf_decal/trimline/dark_blue/filled/line{ @@ -17605,6 +17676,15 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"gmb" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "gmd" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -18025,17 +18105,6 @@ /obj/item/book/manual/wiki/engineering_guide, /turf/open/floor/iron, /area/station/engineering/lobby) -"guz" = ( -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "guF" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -18043,6 +18112,10 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) +"guJ" = ( +/obj/item/radio/intercom/chapel/directional/west, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "guN" = ( /obj/structure/table/glass, /obj/item/folder/white, @@ -18663,11 +18736,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"gEX" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/closet/firecloset, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "gFg" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/siding/purple{ @@ -19022,10 +19090,6 @@ dir = 1 }, /area/station/engineering/atmos/storage/gas) -"gLS" = ( -/obj/structure/lattice/catwalk, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "gLZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -19951,11 +20015,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"hcj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/tank/oxygen, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "hcm" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/carpet, @@ -20400,6 +20459,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/service/library) +"hld" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "hle" = ( /obj/machinery/light/directional/south, /obj/structure/table/glass, @@ -20443,6 +20510,16 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"hmd" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "hmg" = ( /obj/machinery/requests_console/directional/north{ name = "Bar Requests Console"; @@ -20955,23 +21032,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/virology) -"hsJ" = ( -/obj/structure/closet/crate/freezer, -/obj/item/food/icecreamsandwich, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/obj/structure/sign/departments/chemistry/directional/west, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) -"hsV" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "hsW" = ( /turf/open/floor/iron/dark, /area/station/cargo/drone_bay) @@ -20993,6 +21053,16 @@ }, /turf/open/floor/iron, /area/station/security) +"htn" = ( +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "htw" = ( /obj/effect/spawner/random/structure/closet_empty/crate, /obj/effect/spawner/random/maintenance, @@ -21025,15 +21095,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet/purple, /area/station/service/library) -"htS" = ( -/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 = 4 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "htV" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -21370,17 +21431,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/science/xenobiology) -"hAP" = ( -/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 = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "hAV" = ( /obj/structure/table/wood, /obj/item/flashlight/flare/candle{ @@ -21391,15 +21441,6 @@ dir = 4 }, /area/station/service/chapel) -"hBb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/south, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "hBi" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -21459,6 +21500,16 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/hallway/primary/central) +"hCB" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/airlock/research{ + name = "Ordnance Auxiliary Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hCJ" = ( /obj/structure/railing{ dir = 8 @@ -21571,6 +21622,15 @@ /obj/effect/landmark/start/mime, /turf/open/floor/carpet, /area/station/service/theater) +"hEw" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "hED" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) @@ -21629,21 +21689,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/commons/dorms) -"hFV" = ( -/obj/machinery/door/airlock/research{ - autoclose = 0; - frequency = 1449; - id_tag = "xeno_airlock_interior"; - name = "Xenobiology Lab Internal Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "hFY" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -21964,6 +22009,13 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) +"hNI" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hNN" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -22058,6 +22110,15 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) +"hPn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "hPp" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -22379,10 +22440,10 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"hTm" = ( -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) +"hTv" = ( +/obj/structure/railing/corner, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hTQ" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 1; @@ -22518,6 +22579,11 @@ /obj/machinery/telecomms/hub/preset, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) +"hWl" = ( +/obj/effect/turf_decal/sand/plating, +/obj/structure/broken_flooring/pile, +/turf/open/floor/plating, +/area/station/science/ordnance) "hWt" = ( /obj/effect/turf_decal/box/corners{ dir = 8 @@ -22594,13 +22660,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"hXz" = ( -/obj/machinery/atmospherics/components/tank/air/layer4, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "hXK" = ( /obj/structure/closet/cardboard, /obj/effect/turf_decal/stripes/line, @@ -22941,18 +23000,6 @@ /obj/structure/flora/rock/style_random, /turf/open/misc/asteroid, /area/station/maintenance/department/science) -"iep" = ( -/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/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ieI" = ( /obj/structure/cable/layer3, /turf/open/floor/circuit/telecomms/mainframe, @@ -22974,6 +23021,14 @@ }, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) +"ieU" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "ifc" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/firealarm/directional/south, @@ -23216,14 +23271,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/reinforced, /area/station/maintenance/port/greater) -"ikQ" = ( -/obj/structure/cable, -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/turf/open/floor/plating, -/area/station/asteroid) +"ikJ" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "ilb" = ( /obj/effect/turf_decal/tile/red/diagonal_edge, /turf/open/floor/iron/dark, @@ -23381,14 +23433,6 @@ dir = 8 }, /area/station/medical/pharmacy) -"inM" = ( -/obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ - dir = 4 - }, -/obj/structure/fireaxecabinet/directional/east, -/turf/open/floor/iron, -/area/station/command/bridge) "ioa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, @@ -23397,6 +23441,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"ioh" = ( +/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 = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "iol" = ( /turf/closed/wall/r_wall, /area/station/service/lawoffice) @@ -23501,16 +23557,6 @@ "ipx" = ( /turf/closed/wall/r_wall, /area/station/science/cytology) -"ipB" = ( -/obj/machinery/door/firedoor/heavy, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/door/airlock/research{ - name = "Ordnance Auxiliary Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ipJ" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -23713,16 +23759,6 @@ "isT" = ( /turf/open/openspace, /area/station/engineering/break_room) -"isX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "ita" = ( /obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted, /obj/machinery/light_switch/directional/east, @@ -23822,6 +23858,14 @@ "ivx" = ( /turf/open/floor/glass/reinforced/airless, /area/station/asteroid) +"ivy" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/box/red, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ivC" = ( /obj/machinery/camera/autoname/directional/north{ network = list("ss13","engine") @@ -23959,12 +24003,6 @@ /obj/effect/turf_decal/stripes/asteroid/line, /turf/open/floor/plating/airless, /area/space/nearstation) -"iya" = ( -/obj/structure/sign/warning/chem_diamond/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "iyb" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -24375,13 +24413,6 @@ "iFN" = ( /turf/closed/wall/r_wall, /area/station/science/server) -"iFO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "iFU" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -24475,6 +24506,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/asteroid) +"iHV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "iHY" = ( /obj/structure/sign/warning/explosives/directional/east, /obj/effect/turf_decal/siding/purple/corner{ @@ -24511,15 +24547,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/cargo/warehouse) -"iIy" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "iIB" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -24719,28 +24746,6 @@ /obj/machinery/recharger, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/hop) -"iLP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) -"iLV" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/pen{ - pixel_x = 9; - pixel_y = 4 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "iLZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -24844,6 +24849,21 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"iOk" = ( +/obj/machinery/door/airlock/research{ + autoclose = 0; + frequency = 1449; + id_tag = "xeno_airlock_interior"; + name = "Xenobiology Lab Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "iOE" = ( /obj/item/pickaxe/mini, /turf/open/misc/asteroid, @@ -24872,12 +24892,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/corner, /turf/open/floor/iron, /area/station/engineering/lobby) -"iPb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "iPd" = ( /obj/machinery/firealarm/directional/north, /turf/open/floor/carpet/executive, @@ -24938,17 +24952,20 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"iPR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "iPS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) +"iQo" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "iQt" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/food_packaging, @@ -25242,6 +25259,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) +"iXB" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "iXR" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -25252,11 +25275,6 @@ /obj/structure/sign/warning/biohazard/directional/east, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) -"iYp" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/command/heads_quarters/rd) "iYB" = ( /obj/machinery/door/airlock/command{ name = "Chief Medical Officer's Office" @@ -25304,15 +25322,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"iZs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "iZz" = ( /obj/structure/lattice, /turf/open/openspace, @@ -25570,6 +25579,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) +"jej" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "jer" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/landmark/event_spawn, @@ -25594,6 +25610,15 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"jeV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "jeY" = ( /obj/structure/railing/corner{ dir = 1 @@ -25822,6 +25847,14 @@ /obj/docking_port/stationary/syndicate, /turf/open/space/openspace, /area/space) +"jiP" = ( +/obj/effect/turf_decal/sand/plating, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/station/asteroid) "jjp" = ( /obj/item/reagent_containers/cup/bottle/fake_gbs, /turf/closed/mineral/random/stationside/asteroid/porus{ @@ -26388,13 +26421,6 @@ "jsC" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical/central) -"jsG" = ( -/obj/structure/cable, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/hallway/secondary/entry) "jsL" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -26421,6 +26447,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/disposal) +"jtp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "jtv" = ( /obj/structure/chair/plastic, /obj/effect/decal/cleanable/dirt/dust, @@ -26514,6 +26548,15 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/engineering/atmos/upper) +"jvp" = ( +/obj/structure/window/spawner/directional/east, +/obj/machinery/power/apc/auto_name/directional/south{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "jvt" = ( /obj/structure/closet/secure_closet/chemical, /obj/effect/turf_decal/stripes/line{ @@ -26933,16 +26976,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"jCl" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","medbay") - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "jCm" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ dir = 8 @@ -27281,9 +27314,6 @@ dir = 1 }, /area/station/service/chapel) -"jHl" = ( -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) "jHn" = ( /obj/structure/railing{ dir = 8 @@ -27771,17 +27801,6 @@ /obj/structure/disposalpipe/junction, /turf/open/floor/iron, /area/station/security/office) -"jPn" = ( -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "jPq" = ( /obj/machinery/light/small/dim/directional/south, /turf/open/misc/asteroid, @@ -27980,12 +27999,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark/textured_large, /area/station/science/xenobiology) -"jSX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "jSY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -28405,6 +28418,9 @@ }, /turf/open/floor/iron, /area/station/security/breakroom) +"kbc" = ( +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "kbg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -28420,15 +28436,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"kbA" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "kbD" = ( /obj/machinery/newscaster/directional/south, /obj/effect/turf_decal/siding/purple, @@ -28661,6 +28668,19 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron, /area/station/service/hydroponics) +"keb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Secure Pen" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "ked" = ( /obj/structure/cable, /turf/open/floor/wood, @@ -28772,13 +28792,6 @@ }, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"kgB" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/table, -/obj/item/holosign_creator/atmos, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kgT" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/door/firedoor, @@ -28889,15 +28902,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"kiS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "kiT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/stripes, @@ -29347,12 +29351,6 @@ }, /turf/open/floor/iron/dark/smooth_edge, /area/station/science/xenobiology) -"kpt" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "kpw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -29552,6 +29550,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) +"krO" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "krP" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) @@ -29634,16 +29636,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/security/mechbay) -"ksN" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/pipe_dispenser{ - pixel_x = 3; - pixel_y = 7 - }, -/obj/item/pipe_dispenser, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ksR" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 8 @@ -30148,23 +30140,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/cargo) -"kBZ" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - req_access = list("ordnance"); - name = "Ordnance Storage Shutter Control"; - id = "ordstorage" - }, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "kCc" = ( /obj/effect/landmark/secequipment, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -30182,6 +30157,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) +"kCh" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/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 = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "kCn" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -30653,17 +30638,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft/upper) -"kKV" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Chemistry Minisat" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/effect/landmark/navigate_destination/chemfactory, -/turf/open/floor/iron/white, -/area/station/medical/chemistry/minisat) "kLi" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/station/maintenance/department/medical/central) @@ -31015,6 +30989,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kSc" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "kSm" = ( /obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/table, @@ -31038,13 +31022,6 @@ }, /turf/open/floor/iron/white/herringbone, /area/station/science/breakroom) -"kSB" = ( -/obj/machinery/light/directional/north, -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kSH" = ( /obj/machinery/medical_kiosk{ pixel_x = -2 @@ -31235,6 +31212,15 @@ "kUX" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmospherics_engine) +"kVh" = ( +/obj/structure/closet/crate/freezer, +/obj/item/food/icecreamsandwich, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/structure/sign/departments/chemistry/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "kVF" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -31414,19 +31400,6 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"kZf" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/structure/fireaxecabinet/mechremoval/directional/east, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/iron/dark/textured, -/area/station/science/robotics/lab) "kZg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31607,20 +31580,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"lcj" = ( -/obj/item/stack/sheet/glass, -/obj/item/clothing/glasses/welding, -/obj/item/disk/tech_disk{ - pixel_y = 6 - }, -/obj/item/reagent_containers/dropper, -/obj/structure/table, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/ore_update, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/white, -/area/station/science/lab) "lcv" = ( /obj/machinery/camera/autoname/directional/south, /turf/open/floor/glass/reinforced, @@ -31678,6 +31637,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"leZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/hallway/secondary/entry) "lfd" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/access/all/engineering/external, @@ -31873,42 +31838,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/misc/asteroid, /area/station/maintenance/central/greater) -"lhY" = ( -/obj/structure/table, -/obj/item/stack/sheet/iron/fifty{ - pixel_x = 3; - pixel_y = 6 - }, -/obj/item/construction/plumbing{ - pixel_x = 34; - pixel_y = 6 - }, -/obj/item/stack/ducts/fifty{ - pixel_x = 26; - pixel_y = 2 - }, -/obj/item/stack/ducts/fifty{ - pixel_x = 25; - pixel_y = 1 - }, -/obj/item/stack/ducts/fifty{ - pixel_x = 24; - pixel_y = -1 - }, -/obj/item/stack/ducts/fifty{ - pixel_x = 23; - pixel_y = -3 - }, -/obj/item/stack/ducts/fifty{ - pixel_x = 23; - pixel_y = -5 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "lib" = ( /obj/machinery/light/directional/west, /turf/open/floor/circuit/green, @@ -31947,16 +31876,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) -"liI" = ( -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/storage/box/monkeycubes, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "liQ" = ( /obj/structure/table, /obj/item/reagent_containers/cup/glass/coffee, @@ -32003,12 +31922,6 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) -"ljy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "ljF" = ( /obj/structure/weightmachine/weightlifter, /obj/machinery/camera/autoname/directional/east, @@ -32456,6 +32369,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"luh" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "luq" = ( /obj/effect/turf_decal/stripes{ dir = 4 @@ -32505,16 +32422,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) -"luR" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "luW" = ( /obj/machinery/door/airlock/grunge{ name = "Chapel" @@ -32752,13 +32659,6 @@ }, /turf/open/floor/iron/textured_large, /area/station/medical/treatment_center) -"lzg" = ( -/obj/structure/cable, -/obj/effect/landmark/navigate_destination/dockarrival, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/hallway/secondary/entry) "lzj" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/effect/decal/cleanable/dirt, @@ -32916,6 +32816,11 @@ /obj/structure/chair/sofa/bench/left, /turf/open/floor/iron/white/textured_large, /area/station/science/research) +"lBZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "lCk" = ( /obj/effect/turf_decal/siding/dark_blue{ dir = 1 @@ -32975,6 +32880,18 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/iron, /area/station/maintenance/central/greater) +"lCS" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = 9; + pixel_y = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "lCY" = ( /obj/effect/spawner/random/maintenance/two, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -33124,6 +33041,14 @@ "lFG" = ( /turf/open/floor/glass, /area/station/command/meeting_room) +"lFI" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light_switch/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "lFJ" = ( /obj/effect/decal/cleanable/blood/old, /obj/item/flashlight/flare/candle, @@ -33497,11 +33422,6 @@ }, /turf/open/floor/iron/checker, /area/station/science/research) -"lNc" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "lNe" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, /turf/open/floor/plating, @@ -33890,6 +33810,13 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/bridge) +"lUy" = ( +/obj/structure/cable, +/obj/effect/landmark/navigate_destination/dockarrival, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/hallway/secondary/entry) "lUF" = ( /obj/structure/transport/linear/public, /obj/machinery/elevator_control_panel{ @@ -33996,19 +33923,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"lXg" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research/glass{ - name = "Secure Pen" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "lXu" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -34158,16 +34072,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/lockers) -"lYU" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8; - name = "Oxygen Chamber Injection Port" - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "lYZ" = ( /obj/machinery/computer/communications, /obj/effect/turf_decal/tile/blue/half/contrasted, @@ -34640,6 +34544,15 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) +"miR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "miV" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, @@ -35065,6 +34978,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"mqn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "mqz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/east, @@ -35545,9 +35465,6 @@ /obj/effect/turf_decal/trimline/dark_red/filled/warning, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"myJ" = ( -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "myV" = ( /obj/structure/window/spawner/directional/south, /obj/structure/window/spawner/directional/west, @@ -35659,11 +35576,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/patients_rooms/room_a) -"mBp" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/plating, -/area/station/science/ordnance) "mBt" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -36484,13 +36396,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured_half, /area/station/science/xenobiology) -"mQO" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light_switch/directional/east, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "mQP" = ( /obj/structure/lattice, /obj/structure/cable, @@ -36542,6 +36447,17 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood, /area/station/commons/lounge) +"mRC" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Xenobiology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "mRI" = ( /obj/effect/mob_spawn/corpse/human/clown, /turf/open/misc/asteroid, @@ -36851,6 +36767,19 @@ }, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) +"mYh" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + name = "Security Shutters"; + id = "xbprotect1"; + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "mYs" = ( /obj/machinery/door/airlock/public/glass{ name = "Gateway Chamber" @@ -37648,10 +37577,6 @@ "nkM" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) -"nkW" = ( -/obj/item/radio/intercom/chapel/directional/west, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "nli" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/machinery/airalarm/directional/east, @@ -37671,6 +37596,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"nlx" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "nlI" = ( /obj/effect/landmark/start/depsec/engineering, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -37914,18 +37845,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"npI" = ( -/obj/machinery/light/small/dim/directional/west, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) "npL" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -38492,12 +38411,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"nBY" = ( -/obj/machinery/air_sensor/oxygen_tank{ - chamber_id = "o2ordance" - }, -/turf/open/floor/engine/o2, -/area/station/science/ordnance) "nCb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -38703,6 +38616,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/detectives_office) +"nGb" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table, +/obj/item/holosign_creator/atmos, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nGd" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -38775,6 +38695,17 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"nIa" = ( +/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 = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "nIb" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -39103,6 +39034,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"nNF" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/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/white, +/area/station/science/ordnance/testlab) "nNK" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -39329,6 +39267,17 @@ /obj/item/emergency_bed, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) +"nUN" = ( +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nUS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -39495,16 +39444,6 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/white, /area/station/medical/virology) -"nZg" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) "nZo" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -39578,6 +39517,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/upper) +"oaz" = ( +/obj/machinery/light/directional/north, +/obj/structure/table, +/obj/item/hand_labeler{ + pixel_y = 10; + pixel_x = -13 + }, +/obj/item/folder, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "oaF" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -39621,15 +39570,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig/entrance) -"obh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "obx" = ( /obj/structure/railing, /obj/effect/decal/cleanable/dirt/dust, @@ -39754,6 +39694,7 @@ /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig/entrance) "odG" = ( @@ -40086,6 +40027,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"olY" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8; + name = "Oxygen Chamber Injection Port" + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "omv" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/backpack, @@ -40381,12 +40332,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"osc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) +"orY" = ( +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "osd" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -40451,6 +40399,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"osT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "osX" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -40696,6 +40649,26 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/service/bar) +"oxW" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance) +"oyd" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "ordauxgarage" + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plating, +/area/station/science/ordnance) "oyq" = ( /obj/machinery/light/cold/directional/west, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -40825,17 +40798,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"oAM" = ( -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/structure/cable, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance) "oAO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, @@ -41577,6 +41539,12 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark, /area/station/command/bridge) +"oOP" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/machinery/incident_display/bridge/directional/south, +/turf/open/floor/iron, +/area/station/command/bridge) "oOR" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/green{ @@ -41856,6 +41824,14 @@ /obj/structure/chair/sofa/bench/right, /turf/open/floor/iron, /area/station/hallway/primary/central) +"oTP" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "oTW" = ( /obj/structure/closet/secure_closet/quartermaster, /obj/machinery/light/small/directional/east, @@ -42350,10 +42326,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"pbq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) "pbA" = ( /obj/machinery/air_sensor/incinerator_tank, /turf/open/floor/engine/airless, @@ -42468,23 +42440,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security) -"pdL" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Chemistry Minisat" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry/minisat) "pdR" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -42603,6 +42558,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/security/detectives_office) +"pgI" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "pgJ" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/red/fourcorners, @@ -42745,6 +42705,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) +"piH" = ( +/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/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "piS" = ( /obj/structure/girder/displaced, /obj/effect/turf_decal/sand/plating, @@ -42803,10 +42774,13 @@ dir = 8 }, /area/station/service/theater) -"pjM" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/engine/o2, -/area/station/science/ordnance) +"pjK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light_switch/directional/east, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "pjN" = ( /obj/structure/transit_tube/horizontal{ dir = 2 @@ -43366,25 +43340,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) -"puf" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/table, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 16; - pixel_y = 1 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 8; - pixel_y = 10 - }, -/obj/structure/sign/poster/contraband/random/directional/north, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) "pui" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/bot_white, @@ -43603,6 +43558,16 @@ /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating/airless, /area/station/maintenance/department/medical/central) +"pxU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "pxY" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, @@ -43942,6 +43907,10 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry) +"pDr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "pDs" = ( /obj/structure/chair, /obj/machinery/light/small/directional/north, @@ -44014,6 +43983,16 @@ }, /turf/open/floor/iron/textured, /area/station/engineering/storage/tech) +"pEq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pEH" = ( /turf/closed/wall/rock/porous, /area/station/cargo/miningoffice) @@ -44216,11 +44195,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"pIE" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "pIF" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor/right/directional/north{ @@ -44520,14 +44494,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) -"pOs" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/radio/intercom/directional/north, -/obj/machinery/light_switch/directional/east, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "pOv" = ( /obj/structure/chair/pew{ dir = 4 @@ -44558,20 +44524,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"pPe" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/door/airlock/research/glass{ - name = "Chemistry Minisat" - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "pPv" = ( /obj/effect/turf_decal/box/corners{ dir = 1 @@ -44821,13 +44773,6 @@ /obj/effect/mapping_helpers/airlock/welded, /turf/open/floor/plating, /area/station/asteroid) -"pTg" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/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/white, -/area/station/science/ordnance/testlab) "pTn" = ( /obj/structure/kitchenspike, /obj/machinery/light/directional/west, @@ -45262,18 +45207,6 @@ /obj/structure/railing, /turf/open/openspace, /area/station/science/xenobiology) -"qas" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/computer/atmos_control/oxygen_tank{ - atmos_chambers = list(o2ordance="Oxygen Supply") - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "qaz" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -45542,6 +45475,12 @@ "qfB" = ( /turf/closed/wall, /area/station/medical/pharmacy) +"qfE" = ( +/obj/machinery/air_sensor/oxygen_tank{ + chamber_id = "o2ordance" + }, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "qfJ" = ( /obj/structure/sign/poster/random/directional/north, /obj/structure/table/wood/fancy/orange, @@ -45755,19 +45694,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/security/mechbay) -"qiZ" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - name = "Security Shutters"; - id = "xbprotect1"; - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/firealarm/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "qjc" = ( /obj/structure/cable, /obj/machinery/door/airlock/external{ @@ -45845,10 +45771,6 @@ /obj/item/screwdriver, /turf/open/floor/iron, /area/station/hallway/primary/central) -"qkP" = ( -/obj/structure/railing/corner, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qlc" = ( /obj/effect/spawner/random/structure/chair_comfy{ dir = 1 @@ -47031,6 +46953,16 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"qIQ" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "qIS" = ( /obj/machinery/cryo_cell, /obj/structure/window/reinforced/spawner/directional/west, @@ -47749,6 +47681,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"qXg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "qXm" = ( /turf/open/floor/iron/showroomfloor, /area/station/engineering/main) @@ -47765,6 +47705,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/lobby) +"qXA" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/computer/atmos_control/oxygen_tank{ + atmos_chambers = list(o2ordance="Oxygen Supply") + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "qXB" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/security_all, @@ -48147,6 +48099,11 @@ /obj/machinery/telecomms/processor/preset_one, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) +"rdM" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/plating, +/area/station/science/ordnance) "rdP" = ( /obj/machinery/chem_dispenser, /obj/machinery/newscaster/directional/east, @@ -48278,6 +48235,14 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/central) +"rfA" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "rfQ" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -48694,6 +48659,18 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"rkK" = ( +/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/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "rkL" = ( /obj/structure/table, /obj/structure/window/spawner/directional/east, @@ -48871,16 +48848,6 @@ }, /turf/open/floor/plating, /area/station/service/library) -"roD" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "roG" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/structure/cable, @@ -49154,6 +49121,14 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"rtq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "rts" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -49301,6 +49276,15 @@ /obj/item/piggy_bank/vault, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) +"rwA" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "rwD" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood/corner{ @@ -49633,6 +49617,11 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"rBq" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "rBt" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -49889,6 +49878,16 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /turf/open/floor/plating, /area/station/cargo/storage) +"rEV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "rFb" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -50123,6 +50122,12 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"rJv" = ( +/obj/structure/sign/warning/chem_diamond/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "rJy" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot, @@ -51240,15 +51245,6 @@ /obj/structure/lattice/catwalk, /turf/open/openspace, /area/station/science/xenobiology) -"sbT" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8; - name = "Oxygen Chamber Injection Port" - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "sbU" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/structure/crate, @@ -51604,6 +51600,14 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron/dark, /area/station/security/lockers) +"siU" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "siX" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, /obj/machinery/meter/monitored/waste_loop, @@ -51840,14 +51844,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"smH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "smM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52033,6 +52029,20 @@ /obj/effect/spawner/random/trash/bucket, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"spU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Minisat" + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "sqb" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -52093,6 +52103,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology/hallway) +"sqW" = ( +/obj/structure/chair/sofa/bench, +/obj/effect/landmark/start/prisoner, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison) "sqZ" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -52230,6 +52246,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"stk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "stp" = ( /obj/structure/railing{ dir = 1 @@ -52382,6 +52410,17 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"svE" = ( +/obj/structure/table, +/obj/item/storage/box/syringes{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/storage/box/beakers{ + pixel_x = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "svK" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -53343,15 +53382,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"sNL" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Xenobiology Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "sNP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ @@ -53724,12 +53754,6 @@ /obj/structure/fluff/minepost, /turf/open/misc/asteroid, /area/station/maintenance/port/greater) -"sVW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/hallway/secondary/entry) "sWd" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/broken_flooring/side, @@ -53959,6 +53983,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"sZr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/storage) "sZs" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/siding/wood, @@ -54517,6 +54547,19 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"tky" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "tkD" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning, /obj/structure/railing, @@ -54528,9 +54571,6 @@ /obj/machinery/light/floor/broken, /turf/open/floor/iron, /area/station/hallway/primary/central) -"tkO" = ( -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance) "tkR" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/south{ @@ -54828,6 +54868,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/station/maintenance/central/lesser) +"tqf" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ + dir = 4; + chamber_id = "o2ordance" + }, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "tqk" = ( /obj/machinery/conveyor{ id = "garbage"; @@ -55091,17 +55138,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) -"tuC" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/box/red, -/obj/machinery/light/directional/south, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "tuE" = ( /obj/effect/spawner/structure/window/hollow/middle{ dir = 4 @@ -55116,15 +55152,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark, /area/station/medical/chemistry/minisat) -"tuG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "tuH" = ( /obj/machinery/light/dim/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55143,14 +55170,6 @@ /obj/machinery/computer/security/telescreen/ordnance/directional/south, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) -"tuV" = ( -/obj/structure/rack, -/obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/trimline/yellow/filled/corner, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) "tuY" = ( /obj/effect/turf_decal/trimline/blue/arrow_ccw{ dir = 1 @@ -55184,17 +55203,18 @@ }, /turf/open/floor/wood/parquet, /area/station/service/theater) +"tvt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "tvB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"tvQ" = ( -/obj/structure/chair/sofa/bench, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/iron, -/area/station/security/prison) "twf" = ( /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "soup"; @@ -55303,6 +55323,20 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"tyS" = ( +/obj/item/stack/sheet/glass, +/obj/item/clothing/glasses/welding, +/obj/item/disk/tech_disk{ + pixel_y = 6 + }, +/obj/item/reagent_containers/dropper, +/obj/structure/table, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/iron/white, +/area/station/science/lab) "tzk" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -55404,16 +55438,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine/cult, /area/station/service/library) -"tAG" = ( -/obj/machinery/door/airlock/research{ - glass = 1; - name = "Slime Euthanization Chamber"; - opacity = 0 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "tAL" = ( /obj/item/exodrone, /obj/machinery/exodrone_launcher, @@ -55541,6 +55565,14 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/textured, /area/station/cargo/miningoffice) +"tCz" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "tCE" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55611,16 +55643,6 @@ /obj/structure/tank_holder/oxygen, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"tDv" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/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 = 9 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "tDw" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/stripes/line{ @@ -55654,6 +55676,11 @@ }, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance) +"tEm" = ( +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) "tEn" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue{ @@ -55733,12 +55760,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"tFk" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "tFD" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -55808,11 +55829,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"tGL" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/structure/cable, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "tGM" = ( /obj/machinery/firealarm/directional/south, /obj/structure/closet/emcloset, @@ -55898,11 +55914,24 @@ dir = 8 }, /area/station/command/meeting_room) +"tId" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ + chamber_id = "o2ordance" + }, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "tIr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/warden) +"tIs" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "tIE" = ( /obj/effect/landmark/secequipment, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -56013,6 +56042,10 @@ }, /turf/open/floor/iron, /area/station/maintenance/solars/starboard/fore) +"tKD" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/science/ordnance) "tKX" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical{ @@ -56367,6 +56400,11 @@ /obj/structure/sign/poster/random/directional/north, /turf/open/openspace, /area/station/science/research) +"tPE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "tPJ" = ( /obj/machinery/light_switch/directional/west, /obj/structure/disposalpipe/segment, @@ -56612,6 +56650,18 @@ }, /turf/open/floor/iron/dark, /area/station/security/warden) +"tUr" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "tUD" = ( /obj/structure/cable, /turf/open/floor/iron/dark/side{ @@ -56904,6 +56954,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"tZR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "tZW" = ( /obj/machinery/camera/autoname/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57042,14 +57098,6 @@ /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"ubI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "ubV" = ( /obj/structure/chair{ dir = 1 @@ -57213,15 +57261,6 @@ dir = 1 }, /area/station/engineering/atmos/storage/gas) -"ueM" = ( -/obj/structure/window/spawner/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "ueX" = ( /obj/machinery/exodrone_launcher, /turf/open/floor/iron/dark, @@ -57268,14 +57307,6 @@ /obj/machinery/computer/security/telescreen/normal/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"ugb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ugh" = ( /obj/machinery/door/airlock/research{ name = "Research and Development Lab" @@ -57536,6 +57567,16 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) +"uke" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/storage/box/monkeycubes, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "ukl" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance" @@ -57782,6 +57823,11 @@ /obj/machinery/atmospherics/components/binary/valve, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"uoP" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "uoY" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, @@ -58213,11 +58259,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"uwk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "uww" = ( /obj/structure/table/reinforced, /obj/structure/desk_bell{ @@ -58499,11 +58540,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/airless, /area/station/asteroid) -"uCd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) "uCj" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/red/opposingcorners{ @@ -58573,16 +58609,6 @@ /obj/machinery/telecomms/receiver/preset_right, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) -"uDc" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/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 = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "uDd" = ( /obj/structure/sign/painting/library{ pixel_y = -32 @@ -58767,6 +58793,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) +"uGx" = ( +/obj/item/toy/plush/lizard_plushie/green{ + name = "Hauls-The-Crates" + }, +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/departments/exodrone/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/cargo) "uGS" = ( /obj/structure/chair/office/tactical{ dir = 8 @@ -58784,12 +58819,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"uHz" = ( -/obj/structure/lattice/catwalk, -/turf/open/openspace{ - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/station/science/xenobiology) "uHA" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -59564,18 +59593,6 @@ }, /turf/open/floor/iron, /area/station/security) -"uVy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "uVI" = ( /obj/structure/grille, /turf/open/misc/asteroid/airless, @@ -59647,11 +59664,17 @@ dir = 1 }, /area/station/command/heads_quarters/qm) -"uWN" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/command/heads_quarters/rd) +"uWI" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Minisat" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/landmark/navigate_destination/chemfactory, +/turf/open/floor/iron/white, +/area/station/medical/chemistry/minisat) "uWX" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -59907,6 +59930,9 @@ /obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"vbL" = ( +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance) "vbV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -60225,15 +60251,6 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"viw" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/mapping_helpers/apc/cell_5k, -/obj/effect/mapping_helpers/apc/full_charge, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "viK" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 8 @@ -60377,12 +60394,6 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/plating, /area/station/maintenance/disposal) -"vkH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/storage) "vkM" = ( /obj/machinery/light_switch/directional/north, /obj/structure/easel, @@ -60737,6 +60748,16 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/large, /area/station/commons/locker) +"vrw" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/utility/welding, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/robotics/mechbay) "vrF" = ( /turf/open/floor/iron/stairs/right{ dir = 8 @@ -60801,10 +60822,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/morgue) -"vtF" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "vtN" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -61199,17 +61216,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"vCu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 6 - }, -/obj/item/flashlight/glowstick/blue{ - start_on = 1; - light_range = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "vCw" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -61550,15 +61556,6 @@ }, /turf/open/floor/wood/tile, /area/station/security/courtroom) -"vHs" = ( -/obj/item/toy/plush/lizard_plushie/green{ - name = "Hauls-The-Crates" - }, -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/sign/departments/exodrone/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/department/cargo) "vHA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61831,16 +61828,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/upper) -"vNf" = ( -/obj/machinery/light/directional/north, -/obj/structure/table, -/obj/item/hand_labeler{ - pixel_y = 10; - pixel_x = -13 - }, -/obj/item/folder, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "vNg" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/old, @@ -62062,6 +62049,14 @@ "vQB" = ( /turf/closed/wall, /area/station/cargo/boutique) +"vQP" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/obj/structure/fireaxecabinet/directional/east, +/turf/open/floor/iron, +/area/station/command/bridge) "vQT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62452,14 +62447,6 @@ dir = 1 }, /area/station/engineering/atmos/upper) -"vXQ" = ( -/obj/structure/cable, -/obj/machinery/firealarm/directional/east, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lab) "vXS" = ( /obj/structure/broken_flooring/side, /obj/effect/decal/cleanable/dirt/dust, @@ -62513,6 +62500,13 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark, /area/station/commons/locker) +"vZu" = ( +/obj/machinery/atmospherics/components/tank/air/layer4, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "vZF" = ( /obj/structure/dresser, /obj/effect/decal/cleanable/dirt, @@ -62778,6 +62772,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"wea" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "weg" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 1 @@ -62850,11 +62850,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"wft" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "wfy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -63740,6 +63735,16 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) +"wxP" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "wxQ" = ( /obj/machinery/computer/operating{ dir = 8 @@ -64740,6 +64745,42 @@ /obj/machinery/gravity_generator/main, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) +"wOJ" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/construction/plumbing{ + pixel_x = 34; + pixel_y = 6 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 26; + pixel_y = 2 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 25; + pixel_y = 1 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 24; + pixel_y = -1 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 23; + pixel_y = -3 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 23; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "wOK" = ( /obj/structure/chair/comfy/brown{ dir = 8; @@ -64761,10 +64802,32 @@ /obj/structure/girder, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"wPx" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 15 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/structure/fireaxecabinet/mechremoval/directional/east, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/iron/dark/textured, +/area/station/science/robotics/lab) "wPy" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"wPP" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Xenobiology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "wPU" = ( /obj/machinery/light/small/directional/west, /turf/open/misc/asteroid, @@ -64879,15 +64942,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/service/theater) -"wSC" = ( -/obj/structure/window/spawner/directional/east, -/obj/machinery/power/apc/auto_name/directional/south{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "wTc" = ( /obj/machinery/meter/monitored/distro_loop, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, @@ -65186,15 +65240,6 @@ }, /turf/open/floor/iron, /area/station/security/office) -"wYS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "wYW" = ( /obj/machinery/door/airlock/research{ autoclose = 0; @@ -65615,6 +65660,17 @@ "xeS" = ( /turf/open/floor/iron, /area/station/commons/storage/primary) +"xeT" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "xbprotect1" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "xeW" = ( /obj/effect/turf_decal/tile/brown{ dir = 8 @@ -65682,6 +65738,13 @@ /obj/machinery/photobooth, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"xgc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "xgn" = ( /obj/structure/mannequin/skeleton{ starting_items = list() @@ -65794,12 +65857,6 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) -"xiI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "xiM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66010,14 +66067,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/lobby) -"xms" = ( -/obj/structure/table, -/obj/effect/spawner/random/trash/crushed_can{ - pixel_x = 7; - pixel_y = 15 - }, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) "xmy" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 @@ -66159,6 +66208,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"xpb" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "xpn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -66226,20 +66285,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) +"xqG" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/hallway/secondary/entry) "xqO" = ( /obj/docking_port/stationary/escape_pod{ dir = 8 }, /turf/open/space/basic, /area/space) -"xqT" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "xqY" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -66322,6 +66380,14 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) +"xrY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "xsj" = ( /obj/machinery/netpod, /obj/structure/cable, @@ -66582,15 +66648,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"xwU" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - name = "shutter control"; - id = "ordauxgarage" - }, -/obj/structure/tank_dispenser, -/turf/open/floor/plating, -/area/station/science/ordnance) "xxe" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -66667,10 +66724,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/library) -"xyl" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "xyG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/power/apc/auto_name/directional/south, @@ -67077,14 +67130,6 @@ }, /turf/open/floor/glass, /area/station/command/meeting_room) -"xFA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "xFH" = ( /obj/structure/stairs/east, /turf/open/floor/iron/white/smooth_large, @@ -67139,17 +67184,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/wood, /area/station/service/cafeteria) -"xGE" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Xenobiology Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "xGG" = ( /obj/machinery/computer/camera_advanced/xenobio, /obj/effect/turf_decal/stripes/line, @@ -67192,11 +67226,6 @@ /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, /turf/open/floor/plating, /area/station/command/corporate_showroom) -"xHN" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/structure/sign/poster/official/wtf_is_co2/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "xHT" = ( /obj/structure/cable, /obj/machinery/light/warm/dim/directional/south, @@ -68023,12 +68052,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"xYT" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "xYZ" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 @@ -68110,14 +68133,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"yaB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "yaM" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt, @@ -68141,19 +68156,6 @@ }, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"ybj" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ybo" = ( /turf/open/floor/iron/white/textured_corner{ dir = 8 @@ -68364,15 +68366,14 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"yeC" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 4 +"yew" = ( +/obj/structure/table, +/obj/effect/spawner/random/trash/crushed_can{ + pixel_x = 7; + pixel_y = 15 }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "yeO" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -68395,10 +68396,6 @@ /obj/effect/landmark/start/hangover/closet, /turf/open/misc/asteroid, /area/station/asteroid) -"yfh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/medical/treatment_center) "yfl" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -68674,12 +68671,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"ykV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/broken/directional/north, -/obj/machinery/atmospherics/components/tank/oxygen, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "ylf" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 8 @@ -81780,7 +81771,7 @@ jtd bPP gUa mxq -vHs +uGx bVs ycz bVs @@ -82336,9 +82327,9 @@ phV kFT kFT qIS -wft -lNc -cPz +osT +uoP +ioh gzw dKw amK @@ -82593,9 +82584,9 @@ hQK dPg fvo jPO -wft -vtF -dQw +osT +dci +piH xaC dKw dKw @@ -82850,9 +82841,9 @@ sGt ltj fvo pwn -yfh -myJ -dEi +eaL +eUB +dgR uPg bui yit @@ -83107,9 +83098,9 @@ bhZ pgJ fvo lcM -yfh -yfh -hAP +eaL +eaL +nIa crz bui yit @@ -84319,7 +84310,7 @@ hME hME tSc wUe -tvQ +sqW imQ rhY tsk @@ -96667,7 +96658,7 @@ hSi sRM kZA gkQ -fAL +oOP eKR eKR juw @@ -97180,7 +97171,7 @@ jTd rkz lrc eHa -inM +vQP ita hOb cwq @@ -103883,7 +103874,7 @@ tdk hkc swi dHy -cBB +vrw trL nMP xOU @@ -104131,7 +104122,7 @@ wWY eZN cPt alA -btS +qIQ irJ rBI cPt @@ -104387,8 +104378,8 @@ vfJ xbu gMK cPt -lcj -gfj +tyS +tCz dfr mKF cPt @@ -104408,7 +104399,7 @@ qnQ xcb wCO tld -kZf +wPx azv azv azv @@ -104645,7 +104636,7 @@ eIV gMK cPt voQ -gfj +tCz urh ooy cPt @@ -104902,7 +104893,7 @@ gLw jmY cPt kKJ -obh +hEw xWb cUe cPt @@ -105159,7 +105150,7 @@ rXG raz cPt toV -obh +hEw irJ cPt cPt @@ -105416,7 +105407,7 @@ oBP raz wtr rrq -htS +aNF irJ jRN jyQ @@ -105673,9 +105664,9 @@ oBP vfJ cPt cPt -luR -bhm -vXQ +wxP +xgc +hld ugh aZs jDP @@ -108760,14 +108751,14 @@ aku aku ilp gOY -pjM -eIF -mBp -qas +luh +tId +rdM +qXA boy gql abh -cfk +pEq uPL sSN nal @@ -109017,10 +109008,10 @@ foX ilp ilp gOY -gbY -nBY -dSc -kSB +tqf +qfE +tKD +hNI atb qVB iOH @@ -109274,11 +109265,11 @@ aku ilp ilp jTB -vkH -dRc +eTG +sZr gOY -guz -iep +nUN +rkK nTZ urY czh @@ -109531,14 +109522,14 @@ ilp ilp jTB jTB -lYU -sbT +olY +eNt gOY rSB bwj mSG rSh -dxy +ivy gOY wOn gOY @@ -109789,16 +109780,16 @@ ilp jTB jGd eBH -xiI -jPn -smH +cIk +aqz +qXg lCw vlz fDz fDz bPc efJ -tuC +dPh gOY cxg cxg @@ -110047,8 +110038,8 @@ jTB dkr hbH naU -iIy -iZs +rwA +eCJ aMG vlz xTs @@ -110305,7 +110296,7 @@ sqJ wiT rBt aPG -tuG +cPu mqb vlz fDz @@ -110570,7 +110561,7 @@ fDz oWy fDz dyd -dKh +bfq gOY cxg vxX @@ -110818,8 +110809,8 @@ jTB gbV jqY rus -roD -ugb +xpb +rfA nCo tGW tGW @@ -111072,14 +111063,14 @@ aku ieo ilp jTB -xHN -tGL -iFO -kBZ -qkP +dYY +epB +mqn +dGi +hTv tTK tvB -iPR +fNi nkM vxZ dyS @@ -111330,13 +111321,13 @@ vfR ilp jTB jTB -mQO +pjK ioL gOY aks tTK -yaB -xqT +rtq +oTP xfQ cAG xXF @@ -111592,8 +111583,8 @@ jTB gOY gOY tTK -ueM -wSC +dZQ +jvp nkM vxZ pZK @@ -111843,14 +111834,14 @@ aku aku pkw gsW -gEX -xFA -hBb +ikJ +jtp +hPn gOY iJZ lcd -ybj -ksN +tky +cQx efL cQu wgI @@ -112102,10 +112093,10 @@ aku ajs gop cqf -cuo -ipB +hWl +hCB cmn -uDc +fYW cut rcR efL @@ -112359,11 +112350,11 @@ aku vjB jEw cmn -xwU +oyd gOY -pOs -tDv -kgB +lFI +kCh +nGb icz efL nbS @@ -112619,8 +112610,8 @@ grm gsW gOY gOY -oAM -tkO +oxW +vbL gOY nkM nkM @@ -112876,8 +112867,8 @@ xAd upd upd kAI -osc -pTg +cra +nNF uvx mna gXw @@ -113130,7 +113121,7 @@ aku aku vfR vfJ -fhM +pgI vfJ moe jxe @@ -113387,8 +113378,8 @@ tsz lJq obA vfJ -vCu -ubI +dxZ +xrY moe tLh dlE @@ -113900,9 +113891,9 @@ lJq jBM lJq obA -ykV -hcj -hcj +daT +eyx +eyx moe mJU bpW @@ -144518,7 +144509,7 @@ vxX mUQ kLL cts -cvQ +caH lCA pux eYP @@ -146061,8 +146052,8 @@ vxX iJm uKm eYP -kKV -pdL +uWI +dir eYP fnh qoN @@ -146317,7 +146308,7 @@ vxX vxX vxX uKm -npI +tUr iLo lYg oHC @@ -146574,10 +146565,10 @@ unk vxX vxX oTe -puf -pbq +ctf +pDr cMK -iya +rJv fnh kGS fnh @@ -146829,13 +146820,13 @@ ibx ibx unk hvw -ddx +jiP uKm -xms +yew jSE hgS jHQ -uVy +stk jHQ bhV jHQ @@ -147087,9 +147078,9 @@ ibx fvF duU hmA -ikQ -tFk -kiS +exS +nlx +miR kYT kYT kYT @@ -147345,8 +147336,8 @@ unk ibx vxX unk -tuV -iLP +siU +pxU kYT bUZ vzG @@ -147603,7 +147594,7 @@ ibx vxX bGk bGk -pPe +spU bGk rRy cOb @@ -147859,8 +147850,8 @@ vxX taj vxX bGk -hsJ -isX +kVh +rEV bGk bGk ncR @@ -148116,8 +148107,8 @@ ibx ibx vxX bGk -lhY -wYS +wOJ +jeV tGR hNN pLA @@ -148373,7 +148364,7 @@ ibx vxX vxX bGk -jCl +kSc dhj dhj xmy @@ -152501,7 +152492,7 @@ wYY tSn xas xhJ -hXz +vZu xOF dgS kzI @@ -154785,25 +154776,25 @@ wjI wjI uXD cYC -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ dFc uXD uXD @@ -155042,7 +155033,7 @@ uXD uXD uXD uGW -sVW +leZ rCL sTB kAc @@ -155060,7 +155051,7 @@ kAc kAc sTB vAo -sVW +leZ sZF pLP pLP @@ -155299,7 +155290,7 @@ aLN aLN uXD jYf -sVW +leZ vVC sxV sxV @@ -155317,7 +155308,7 @@ sxV sxV sxV mJV -sVW +leZ sZF pLP pLP @@ -155556,7 +155547,7 @@ aLN aLN ntQ hPS -sVW +leZ sby sxV sxV @@ -155574,7 +155565,7 @@ sxV sxV sxV hrI -jsG +xqG wDr uXD uXD @@ -155813,7 +155804,7 @@ aLN aLN hVN hPS -sVW +leZ sby sxV sxV @@ -155831,7 +155822,7 @@ sxV sxV sxV hrI -sVW +leZ lGP rzJ gMk @@ -156070,7 +156061,7 @@ aLN jhc jYG hPS -sVW +leZ sby sxV sxV @@ -156088,7 +156079,7 @@ sxV sxV idV hrI -sVW +leZ khL uXD uet @@ -156327,7 +156318,7 @@ aLN aLN vzi hPS -sVW +leZ sby sxV sxV @@ -156345,7 +156336,7 @@ sxV sxV sxV hrI -sVW +leZ lGP rzJ gMk @@ -156584,7 +156575,7 @@ aLN aLN uXD hPS -sVW +leZ sby sxV sxV @@ -156602,7 +156593,7 @@ sxV sxV sxV hrI -sVW +leZ qgy uXD uXD @@ -156841,7 +156832,7 @@ aLN aLN uXD cDl -sVW +leZ vVC sxV sxV @@ -156859,7 +156850,7 @@ sxV sxV sxV mJV -sVW +leZ sZF pLP pLP @@ -157098,7 +157089,7 @@ jJb jJb jJb ata -sVW +leZ hbb xkO nhm @@ -157116,7 +157107,7 @@ nhm nhm xkO lCp -sVW +leZ sZF pLP pLP @@ -157355,25 +157346,25 @@ dRq bfN uhi bOr -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -lzg -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW -sVW +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +lUy +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ +leZ wLu uXD uXD @@ -176613,7 +176604,7 @@ raz raz nzk fpY -uWN +fEW ssg vtN ylR @@ -177126,14 +177117,14 @@ vmk uba pBN nzk -iYp +tEm wYI -jHl -jHl -jHl -jHl -uCd -uCd +kbc +kbc +kbc +kbc +iHV +iHV tcx qJN uHQ @@ -177389,8 +177380,8 @@ wFI mmU ibE wts -nZg -yeC +hmd +bIP iFN kHf xkL @@ -178418,7 +178409,7 @@ kxB kxB kxB moe -cUQ +eLb iFN iFN iFN @@ -178673,8 +178664,8 @@ mNZ ivx wkG jYT -nkW -hTm +guJ +bXM rIJ moe vxX @@ -183828,7 +183819,7 @@ gQq klu xEs xEs -hFV +iOk xEs xEs qRY @@ -184085,7 +184076,7 @@ gQq sbR gQq arS -dqS +drx qad gQq abm @@ -184342,7 +184333,7 @@ gQq sbR gQq ibl -jSX +tZR qad gQq abm @@ -184599,7 +184590,7 @@ gQq sbR gQq ibl -jSX +tZR qad gQq abm @@ -184856,7 +184847,7 @@ ubn gYI ybO xgq -jSX +tZR ueJ ybO gYI @@ -185108,17 +185099,17 @@ wBd rWL jQS jQS -kpt -uwk -uwk -ljy -ljy -jSX -ljy -ljy -jSX -jSX -viw +wea +tPE +tPE +tvt +tvt +tZR +tvt +tvt +tZR +tZR +aXc jQS jQS geB @@ -185365,17 +185356,17 @@ wBd hAL jQS ojC -uwk +tPE lKY lKY -bou +lBZ nRj nem ciV -uwk +tPE lKY lKY -jSX +tZR kkD jQS cku @@ -185622,17 +185613,17 @@ jQS hAL jQS qWt -uwk +tPE lKY hQH -aKk +gjo csf oIh pPY -bbY +xeT gCP lKY -jSX +tZR hLA jQS cku @@ -185879,7 +185870,7 @@ wBd hAL jQS jQS -fei +agM gMy gwx jQS @@ -185889,7 +185880,7 @@ wmO jQS xDf gtE -qiZ +mYh jQS jQS cku @@ -186134,21 +186125,21 @@ oJt wAT ezg agA -sNL -bso -uwk +wPP +tIs +tPE lKY -eHw -xyl -gLS -gLS -uHz +fTO +wmO +ybO +ybO +ybO wmO rmi lKY -jSX -kbA -xGE +tZR +gmb +mRC awC vbV wAT @@ -186393,17 +186384,17 @@ wBd rWL jQS uVe -uwk +tPE avA -liI -xyl -gLS -gLS -uHz +uke +wmO +ybO +ybO +ybO wmO xGG uBm -bou +lBZ rWp jQS hAL @@ -186650,17 +186641,17 @@ jQS hye jQS qZX -uwk +tPE lKY -eyJ -xyl -gLS -gLS -uHz +iQo +wmO +ybO +ybO +ybO wmO bLI lKY -bou +lBZ gDl jQS hye @@ -186907,17 +186898,17 @@ jQS jQS jQS iXn -hsV +ieU cWL -xyl -fNF -xyl -tAG +tMz +jQS +wmO +htn jgA jQS tMz ybo -xYT +aqG lVq jQS jQS @@ -187162,21 +187153,21 @@ hhX hhX fZF jQS -iLV +lCS jEt -eUs +gdM rdn -iPb -fNF -fNF -fNF +dJr +wnA +wnA +wnA wnA viT bUl cNh -fPK +iXB jEt -aBl +svE jQS fZF hhX @@ -187419,19 +187410,19 @@ hhX hhX fZF jQS -vNf +oaz fXW -eSW -ekq -dQA -dQA -dQA -dQA -ekq -ekq -ekq -ekq -pIE +jej +krO +krO +krO +krO +krO +krO +krO +krO +krO +rBq mCT sQU jQS @@ -187683,7 +187674,7 @@ cWc wnA wnA jfD -ekq +krO olE wnA wnA @@ -187940,7 +187931,7 @@ jQS bGL vBD rxC -ekq +krO jpe wnA trg @@ -188197,7 +188188,7 @@ jQS tbU byC tbU -lXg +keb tbU byC tbU @@ -188451,13 +188442,13 @@ hhX hhX fZF jQS -fNF -fNF -fNF -gLS -fNF -fNF -fNF +orY +orY +orY +bqs +orY +orY +orY jQS fZF hhX @@ -188708,13 +188699,13 @@ hhX hhX fZF jQS -fNF -fNF -fNF -gLS -fNF -fNF -fNF +orY +orY +orY +bqs +orY +orY +orY jQS fZF hhX @@ -188965,13 +188956,13 @@ hhX hhX fZF jQS -fNF -fNF -fNF -fNF -fNF -fNF -fNF +orY +orY +orY +orY +orY +orY +orY jQS fZF hhX @@ -189222,13 +189213,13 @@ hhX hhX fZF jQS -fNF -fNF -fNF -fNF -fNF -fNF -fNF +orY +orY +orY +orY +orY +orY +orY jQS fZF hhX @@ -189480,11 +189471,11 @@ hhX fZF jQS jQS -fNF -fNF -fNF -fNF -fNF +orY +orY +orY +orY +orY jQS jQS fZF diff --git a/_maps/safehouses/ice.dmm b/_maps/safehouses/ice.dmm index f7faa99739652..96d689339ab87 100644 --- a/_maps/safehouses/ice.dmm +++ b/_maps/safehouses/ice.dmm @@ -148,7 +148,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/small/directional/west, -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /turf/open/floor/iron, /area/virtual_domain/safehouse) "O" = ( diff --git a/_maps/skyrat/automapper/templates/mining/lavaland_ashwalker_nenest.dmm b/_maps/skyrat/automapper/templates/mining/lavaland_ashwalker_nenest.dmm index e488cbeb68477..4b3b6c09e2715 100644 --- a/_maps/skyrat/automapper/templates/mining/lavaland_ashwalker_nenest.dmm +++ b/_maps/skyrat/automapper/templates/mining/lavaland_ashwalker_nenest.dmm @@ -1193,7 +1193,7 @@ /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "RV" = ( -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) diff --git a/_maps/templates/lazy_templates/voidwalker_void.dmm b/_maps/templates/lazy_templates/voidwalker_void.dmm new file mode 100644 index 0000000000000..2f4dadf760098 --- /dev/null +++ b/_maps/templates/lazy_templates/voidwalker_void.dmm @@ -0,0 +1,1101 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/black, +/area/centcom/voidwalker_void) +"z" = ( +/obj/effect/wisp_food, +/turf/open/floor/black, +/area/centcom/voidwalker_void) +"W" = ( +/obj/effect/landmark/voidwalker_void, +/turf/open/floor/black, +/area/centcom/voidwalker_void) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +W +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +W +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(28,1,1) = {" +a +a +a +W +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/virtual_domains/abductor_ship.dmm b/_maps/virtual_domains/abductor_ship.dmm index 35bf563eb45c4..b182c50ed6683 100644 --- a/_maps/virtual_domains/abductor_ship.dmm +++ b/_maps/virtual_domains/abductor_ship.dmm @@ -1,7 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "bK" = ( /turf/closed/wall/mineral/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cp" = ( /obj/structure/table/abductor, /obj/item/food/soylentgreen{ @@ -9,7 +9,7 @@ pixel_y = 5 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cr" = ( /obj/item/flashlight/lantern{ pixel_x = 4; @@ -31,7 +31,7 @@ "fk" = ( /obj/effect/mob_spawn/corpse/human/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ge" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -40,7 +40,7 @@ desc = "A funky looking disc, built into the floor." }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gO" = ( /obj/structure/table/abductor, /obj/item/poster/random_abductor{ @@ -48,7 +48,7 @@ pixel_y = 3 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ih" = ( /obj/structure/table/abductor, /obj/item/storage/belt/military/abductor{ @@ -60,7 +60,7 @@ pixel_y = -1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kl" = ( /obj/structure/table_frame/abductor, /obj/item/organ/internal/lungs{ @@ -72,7 +72,7 @@ pixel_y = 1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kt" = ( /obj/structure/table/abductor, /obj/item/multitool/abductor{ @@ -84,11 +84,11 @@ pixel_x = -1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kN" = ( /obj/machinery/fat_sucker, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lC" = ( /obj/structure/table/abductor, /obj/item/clothing/head/helmet/abductor{ @@ -100,10 +100,10 @@ pixel_y = -4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lN" = ( -/turf/open/floor/holofloor/hyperspace, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "lR" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -111,11 +111,11 @@ "lW" = ( /obj/machinery/iv_drip, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mR" = ( /obj/machinery/abductor/pad, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nT" = ( /obj/structure/table/abductor, /obj/item/food/soylentgreen{ @@ -123,19 +123,18 @@ pixel_y = -1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "oL" = ( /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pL" = ( -/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, -/turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/closed/indestructible/alien/nodiagonal, +/area/virtual_domain) "pT" = ( /obj/effect/decal/cleanable/blood/footprints, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rw" = ( /obj/structure/table/abductor, /obj/item/toy/plush/abductor/agent{ @@ -143,7 +142,7 @@ pixel_y = 8 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rY" = ( /obj/modular_map_root/safehouse{ key = "abductor" @@ -158,14 +157,14 @@ pixel_y = -3 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "to" = ( /obj/effect/decal/cleanable/molten_object{ pixel_x = 9; pixel_y = 7 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uk" = ( /obj/structure/table/abductor, /obj/item/wrench/abductor{ @@ -177,35 +176,35 @@ pixel_y = 4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uw" = ( /obj/structure/bed/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ux" = ( /obj/machinery/door/airlock/abductor{ name = "Command Center"; locked = 1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uD" = ( /obj/machinery/computer/camera_advanced/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vY" = ( /obj/machinery/door/airlock/abductor{ name = "Repair Bay" }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vZ" = ( /obj/machinery/abductor/gland_dispenser, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xB" = ( /turf/closed/indestructible/opsglass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xM" = ( /obj/effect/decal/cleanable/molten_object{ pixel_x = -6; @@ -213,58 +212,62 @@ }, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yt" = ( /obj/effect/decal/cleanable/blood/xtracks, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "zX" = ( /obj/machinery/abductor/experiment, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "AG" = ( /obj/item/shell/server, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"Bj" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/alien/nodiagonal, +/area/virtual_domain) "Fy" = ( /obj/effect/decal/cleanable/molten_object/large{ pixel_x = -5; pixel_y = 14 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GX" = ( /obj/structure/chair/office{ dir = 4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "IC" = ( /obj/structure/table/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JC" = ( /obj/item/organ/external/tail/cat, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JR" = ( /obj/machinery/door/airlock/abductor{ name = "Experimentation Lab" }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JU" = ( /obj/structure/closet/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KK" = ( /obj/structure/bed/abductor, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KX" = ( -/turf/closed/indestructible/binary, -/area/space) +/turf/open/floor/holofloor/hyperspace, +/area/space/virtual_domain) "Lz" = ( /obj/structure/table/abductor, /obj/item/melee/baton/abductor{ @@ -277,40 +280,40 @@ pixel_y = 7 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mr" = ( /obj/machinery/chem_dispenser/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "MC" = ( /obj/item/kirbyplants/photosynthetic, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ne" = ( /obj/machinery/abductor/console, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NW" = ( /obj/structure/server, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "PB" = ( /obj/item/organ/external/antennae, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Qp" = ( /turf/template_noop, -/area/space) +/area/template_noop) "QC" = ( /obj/structure/chair/comfy/teal{ dir = 8 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Rd" = ( /obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Rg" = ( /obj/structure/table/abductor, /obj/item/ammo_box/magazine/smgm45, @@ -327,17 +330,17 @@ "RI" = ( /obj/machinery/door/airlock/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sd" = ( /obj/machinery/recharge_station, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ub" = ( /obj/structure/chair/comfy/shuttle{ dir = 8 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Uf" = ( /obj/item/flashlight/seclite{ pixel_x = 9; @@ -364,20 +367,20 @@ pixel_x = 3 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "UX" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vl" = ( /obj/machinery/harvester, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "VE" = ( /obj/structure/table/abductor, /obj/item/storage/box/alienhandcuffs, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "VY" = ( /obj/effect/mob_spawn/corpse/human/abductor{ pixel_x = 9; @@ -385,7 +388,7 @@ }, /obj/effect/decal/cleanable/xenoblood, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "We" = ( /obj/structure/table/abductor, /obj/item/dualsaber/green{ @@ -402,27 +405,27 @@ /obj/structure/table/abductor, /obj/item/weldingtool/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "WS" = ( /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "XU" = ( /obj/effect/decal/cleanable/xenoblood/xgibs/body, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yq" = ( /obj/effect/decal/cleanable/xenoblood/xsplatter, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YV" = ( /turf/closed/indestructible/alien, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZM" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" Qp @@ -440,18 +443,14 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +pL +pL +pL +pL +pL +pL +pL Qp Qp Qp @@ -480,20 +479,16 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +YV +YV +YV +YV +YV +YV +YV +YV +pL Qp Qp Qp @@ -520,22 +515,18 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +YV +kN +lW +uw +IC +IC +uw +lW +kN +YV +pL Qp Qp Qp @@ -560,24 +551,20 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +YV +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +YV +pL Qp Qp Qp @@ -600,26 +587,22 @@ Qp Qp Qp Qp -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -Qp -Qp -Qp -Qp +pL +YV +WS +WS +WS +WS +WS +WS +WS +WS +WS +oL +WS +WS +YV +pL Qp Qp Qp @@ -640,28 +623,24 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV -YV -YV -YV -YV -YV -YV -YV -YV -YV +pL YV +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS YV -KX -KX -Qp -Qp -Qp -Qp +pL Qp Qp Qp @@ -672,38 +651,34 @@ Qp "} (7,1,1) = {" Qp +lN +lN +lN +lN Qp Qp Qp Qp -Qp -Qp -Qp -Qp -KX -KX +pL YV +WS +WS +WS +MC YV YV YV -kN -lW -uw -IC -IC -uw -lW -kN +WS +WS YV YV YV +MC +WS +WS +WS YV -KX -KX -Qp -Qp -Qp -Qp +pL Qp Qp Qp @@ -712,40 +687,36 @@ Qp Qp "} (8,1,1) = {" +lN +lN +KX +KX +lN Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -KX -KX +pL YV +lW +WS +WS YV YV YV -WS -WS -WS -WS -WS -WS -WS -WS +bK +YV WS WS YV YV YV YV -KX -KX -Qp -Qp -Qp -Qp +YV +WS +WS +lW +YV +pL Qp Qp Qp @@ -753,178 +724,14 @@ Qp Qp "} (9,1,1) = {" -Qp -Qp -Qp -KX -KX -KX -KX -KX -KX -YV -YV -YV -YV -WS -WS -WS -WS -WS -WS -WS -WS -WS -oL -WS -WS -YV -YV -YV -YV -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(10,1,1) = {" -Qp -Qp -KX -KX -lN -lN -lN -lN -YV -YV -YV -YV -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -YV -YV -YV -YV -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(11,1,1) = {" -Qp -KX -KX -lN -lN -lN lN -YV -YV -YV -YV -WS -WS -WS -MC -YV -YV -YV -WS -WS -YV -YV -YV -MC -WS -WS -WS -YV -YV -YV -YV KX KX -Qp -Qp -Qp -Qp -Qp -Qp -"} -(12,1,1) = {" KX -KX -lN -lN -lN lN -YV -YV -YV -YV -lW -WS -WS -YV -YV -YV -bK -YV -WS -WS -YV -YV -YV -YV -YV -WS -WS -lW -YV -YV -YV -YV -KX -KX Qp Qp -Qp -Qp -Qp -"} -(13,1,1) = {" -KX -lN -lN -lN -lN -YV -YV -YV +pL YV WS WS @@ -947,24 +754,20 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp Qp "} -(14,1,1) = {" -KX -lN +(10,1,1) = {" lN +KX +KX +KX lN -YV -YV -YV +Qp +pL YV WS WS @@ -989,22 +792,18 @@ UX WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp "} -(15,1,1) = {" -KX -lN +(11,1,1) = {" lN +KX +KX +KX lN -YV -bK +pL YV UX WS @@ -1031,20 +830,16 @@ Vl WS MC YV -bK -YV -YV -KX -KX +pL Qp Qp "} -(16,1,1) = {" -KX -lN -lN +(12,1,1) = {" lN -YV +KX +KX +KX +pL bK YV WS @@ -1073,18 +868,14 @@ YV YV YV YV -bK -YV -YV -KX -Qp +Bj Qp "} -(17,1,1) = {" -KX -lN -lN +(13,1,1) = {" lN +KX +KX +KX YV bK YV @@ -1115,18 +906,14 @@ YV AG YV YV -bK -YV -KX -Qp -Qp +pL "} -(18,1,1) = {" -KX -lN -lN +(14,1,1) = {" lN -YV +KX +KX +KX +pL YV YV MC @@ -1156,17 +943,14 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(19,1,1) = {" -KX -lN -lN +(15,1,1) = {" lN +KX +KX +KX +xB pL YV YV @@ -1175,7 +959,6 @@ YV YV YV YV -YV MC WS WS @@ -1197,18 +980,14 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(20,1,1) = {" -KX -lN +(16,1,1) = {" lN -pL -pL +KX +KX +xB +xB uD ZM ZM @@ -1238,17 +1017,13 @@ xB xB xB YV -bK -YV -KX -Qp -Qp +pL "} -(21,1,1) = {" -KX -lN +(17,1,1) = {" lN -pL +KX +KX +xB Ne WS WS @@ -1279,17 +1054,13 @@ WS WS WS YV -bK -YV -KX -Qp -Qp +pL "} -(22,1,1) = {" -KX -lN +(18,1,1) = {" lN -pL +KX +KX +xB Lz WS WS @@ -1320,17 +1091,13 @@ WS oL WS YV -bK -YV -KX -Qp -Qp +pL "} -(23,1,1) = {" -KX -lN +(19,1,1) = {" lN -pL +KX +KX +xB Ne WS WS @@ -1361,18 +1128,14 @@ WS WS WS YV -bK -YV -KX -Qp -Qp +pL "} -(24,1,1) = {" -KX -lN +(20,1,1) = {" lN -pL -pL +KX +KX +xB +xB uD Ub Ub @@ -1402,17 +1165,14 @@ xB xB xB YV -bK -YV -KX -Qp -Qp +pL "} -(25,1,1) = {" -KX -lN -lN +(21,1,1) = {" lN +KX +KX +KX +xB pL YV YV @@ -1421,7 +1181,6 @@ YV YV YV YV -YV MC WS WS @@ -1443,18 +1202,14 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(26,1,1) = {" -KX -lN -lN +(22,1,1) = {" lN -YV +KX +KX +KX +pL YV YV MC @@ -1484,17 +1239,13 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(27,1,1) = {" -KX -lN -lN +(23,1,1) = {" lN +KX +KX +KX YV bK YV @@ -1525,18 +1276,14 @@ bK AG YV YV -bK -YV -KX -Qp -Qp +pL "} -(28,1,1) = {" -KX -lN -lN +(24,1,1) = {" lN -YV +KX +KX +KX +pL bK YV WS @@ -1565,20 +1312,16 @@ YV YV YV YV -bK -YV -YV -KX -Qp +pL Qp "} -(29,1,1) = {" -KX -lN +(25,1,1) = {" lN +KX +KX +KX lN -YV -bK +pL YV WS WS @@ -1605,22 +1348,18 @@ UX WS MC YV -bK -YV -YV -KX -KX +pL Qp Qp "} -(30,1,1) = {" -KX -lN +(26,1,1) = {" lN +KX +KX +KX lN -YV -YV -YV +Qp +pL YV WS WS @@ -1645,24 +1384,20 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp "} -(31,1,1) = {" -KX -lN -lN +(27,1,1) = {" lN +KX +KX +KX lN -YV -YV -YV +Qp +Qp +pL YV gF WS @@ -1685,26 +1420,22 @@ WS WS gF YV -YV -YV -YV -KX -KX +pL Qp Qp Qp Qp "} -(32,1,1) = {" -KX -KX -lN +(28,1,1) = {" lN lN +KX +KX lN -YV -YV -YV +Qp +Qp +Qp +pL YV lW oL @@ -1725,28 +1456,24 @@ WS WS lW YV -YV -YV -YV -KX -KX +pL Qp Qp Qp Qp Qp "} -(33,1,1) = {" +(29,1,1) = {" Qp -KX -KX lN lN lN lN -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV WS WS @@ -1765,11 +1492,7 @@ WS WS oL YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1777,18 +1500,18 @@ Qp Qp Qp "} -(34,1,1) = {" +(30,1,1) = {" Qp Qp -KX -KX -lN -lN -lN -lN -YV -YV -YV +Qp +Qp +Qp +Qp +Qp +Qp +Qp +Qp +pL YV WS WS @@ -1805,11 +1528,7 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1818,19 +1537,19 @@ Qp Qp Qp "} -(35,1,1) = {" +(31,1,1) = {" Qp Qp Qp -KX -KX -KX -KX -KX -KX -YV -YV -YV +Qp +Qp +Qp +Qp +Qp +Qp +Qp +Qp +pL YV WS WS @@ -1845,11 +1564,7 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1859,7 +1574,7 @@ Qp Qp Qp "} -(36,1,1) = {" +(32,1,1) = {" Qp Qp Qp @@ -1868,11 +1583,11 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV zX WS @@ -1885,11 +1600,7 @@ GX WS zX YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1900,7 +1611,7 @@ Qp Qp Qp "} -(37,1,1) = {" +(33,1,1) = {" Qp Qp Qp @@ -1910,11 +1621,11 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV Sd sv @@ -1925,11 +1636,7 @@ Sd kt Sd YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1941,7 +1648,7 @@ Qp Qp Qp "} -(38,1,1) = {" +(34,1,1) = {" Qp Qp Qp @@ -1952,14 +1659,11 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV YV YV @@ -1968,213 +1672,7 @@ YV YV YV YV -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(39,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(40,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(41,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(42,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(43,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL Qp Qp Qp @@ -2187,19 +1685,7 @@ Qp Qp Qp "} -(44,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +(35,1,1) = {" Qp Qp Qp @@ -2215,6 +1701,14 @@ Qp Qp Qp Qp +pL +pL +pL +pL +pL +pL +pL +pL Qp Qp Qp diff --git a/_maps/virtual_domains/ash_drake.dmm b/_maps/virtual_domains/ash_drake.dmm index f789e44fbc69f..e4189071fbba0 100644 --- a/_maps/virtual_domains/ash_drake.dmm +++ b/_maps/virtual_domains/ash_drake.dmm @@ -34,6 +34,10 @@ /obj/structure/marker_beacon/bronze, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) +"p" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) "q" = ( /mob/living/simple_animal/hostile/megafauna/dragon, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -42,12 +46,8 @@ /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors/virtual_domain) "u" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) -"v" = ( /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "G" = ( /obj/structure/marker_beacon/purple, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -71,56 +71,55 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u u "} (2,1,1) = {" -v -s +u s s s @@ -164,10 +163,11 @@ s s s s -v +p +u "} (3,1,1) = {" -v +u s s s @@ -212,10 +212,10 @@ s J J s -v +u "} (4,1,1) = {" -v +u s s J @@ -260,10 +260,10 @@ J J J s -v +u "} (5,1,1) = {" -v +u s s J @@ -308,10 +308,10 @@ J J s s -v +u "} (6,1,1) = {" -v +u s s J @@ -356,10 +356,10 @@ J J s s -v +u "} (7,1,1) = {" -v +u s s J @@ -404,10 +404,10 @@ J J J s -v +u "} (8,1,1) = {" -v +u s s J @@ -452,10 +452,10 @@ J J s s -v +u "} (9,1,1) = {" -v +u s J J @@ -500,10 +500,10 @@ a J J s -v +u "} (10,1,1) = {" -v +u s J J @@ -548,10 +548,10 @@ a J J s -v +u "} (11,1,1) = {" -v +u s s J @@ -596,10 +596,10 @@ a J J s -v +u "} (12,1,1) = {" -v +u s s J @@ -644,10 +644,10 @@ J J J s -v +u "} (13,1,1) = {" -v +u s s J @@ -692,10 +692,10 @@ a J J s -v +u "} (14,1,1) = {" -v +u s s J @@ -740,10 +740,10 @@ a J J s -v +u "} (15,1,1) = {" -v +u s J J @@ -788,10 +788,10 @@ a J J s -v +u "} (16,1,1) = {" -v +u s J J @@ -836,10 +836,10 @@ a J J s -v +u "} (17,1,1) = {" -v +u s s J @@ -884,10 +884,10 @@ a J J s -v +u "} (18,1,1) = {" -v +u s s J @@ -932,10 +932,10 @@ J J s s -v +u "} (19,1,1) = {" -v +u s J J @@ -980,10 +980,10 @@ a J J s -v +u "} (20,1,1) = {" -v +u s J J @@ -1028,10 +1028,10 @@ a J J s -v +u "} (21,1,1) = {" -v +u s s J @@ -1076,10 +1076,10 @@ a J s s -v +u "} (22,1,1) = {" -v +u s s J @@ -1124,10 +1124,10 @@ a J s s -v +u "} (23,1,1) = {" -v +u s J J @@ -1172,10 +1172,10 @@ a J s s -v +u "} (24,1,1) = {" -v +u s J J @@ -1220,10 +1220,10 @@ a J J s -v +u "} (25,1,1) = {" -v +u s s J @@ -1268,10 +1268,10 @@ J J J s -v +u "} (26,1,1) = {" -v +u s s J @@ -1316,10 +1316,10 @@ a J J s -v +u "} (27,1,1) = {" -v +u s s J @@ -1364,10 +1364,10 @@ a J J s -v +u "} (28,1,1) = {" -v +u s J J @@ -1412,10 +1412,10 @@ J J J s -v +u "} (29,1,1) = {" -v +u s J J @@ -1460,10 +1460,10 @@ J J s s -v +u "} (30,1,1) = {" -v +u s s J @@ -1508,10 +1508,10 @@ J J s s -v +u "} (31,1,1) = {" -v +u s s a @@ -1556,10 +1556,10 @@ J J J s -v +u "} (32,1,1) = {" -v +u s s a @@ -1604,10 +1604,10 @@ J J J s -v +u "} (33,1,1) = {" -v +u s s s @@ -1652,10 +1652,10 @@ J J J s -v +u "} (34,1,1) = {" -v +u s s s @@ -1700,53 +1700,53 @@ s s s s -v +u "} (35,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u "} diff --git a/_maps/virtual_domains/beach_bar.dmm b/_maps/virtual_domains/beach_bar.dmm index 25ccbe37ec2d4..0b3a037c463f1 100644 --- a/_maps/virtual_domains/beach_bar.dmm +++ b/_maps/virtual_domains/beach_bar.dmm @@ -169,9 +169,6 @@ }, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"iz" = ( -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "iR" = ( /obj/structure/table, /obj/item/book/manual/wiki/barman_recipes, @@ -213,9 +210,8 @@ /turf/open/floor/sepia, /area/virtual_domain/fullbright) "kv" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "kG" = ( /obj/structure/table, /obj/machinery/reagentgrinder, @@ -295,15 +291,6 @@ /obj/machinery/computer/arcade/battle, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"pL" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/chair/stool/directional/south, -/obj/item/storage/backpack/duffelbag, -/obj/item/clothing/under/shorts/red, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "pT" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -498,9 +485,15 @@ /obj/item/clothing/neck/beads, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"xW" = ( -/turf/open/space/basic, -/area/space) +"xR" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/stool/directional/south, +/obj/item/storage/backpack/duffelbag, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) "ya" = ( /obj/structure/table/wood, /obj/item/reagent_containers/pill/zoom, @@ -682,6 +675,14 @@ /obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/mineral/sandstone, /area/virtual_domain/fullbright) +"Em" = ( +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/obj/structure/table, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) "Et" = ( /obj/machinery/light/small/directional/east, /obj/effect/mapping_helpers/burnt_floor, @@ -1007,6 +1008,10 @@ /obj/machinery/computer/slot_machine, /turf/open/floor/wood, /area/virtual_domain/fullbright) +"VE" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/virtual_domain) "VH" = ( /obj/machinery/light/directional/west, /turf/open/floor/wood, @@ -1078,14 +1083,6 @@ /obj/item/toy/seashell, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"Yj" = ( -/obj/item/reagent_containers/condiment/enzyme, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5 - }, -/obj/structure/table, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "Yq" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -1129,42 +1126,42 @@ pr pr pr pr -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv kv "} (2,1,1) = {" @@ -1172,8 +1169,7 @@ pr pr pr pr -iz -Al +kv Al Al Al @@ -1208,14 +1204,15 @@ Al Al Al Al -iz +VE +kv "} (3,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1251,14 +1248,14 @@ gl gl gl Al -iz +kv "} (4,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1294,14 +1291,14 @@ gl gl gl Al -iz +kv "} (5,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1337,14 +1334,14 @@ gl gl gl Al -iz +kv "} (6,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1380,14 +1377,14 @@ gl gl gl Al -iz +kv "} (7,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1423,14 +1420,14 @@ ml FM gl Al -iz +kv "} (8,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1466,14 +1463,14 @@ ml ml gl Al -iz +kv "} (9,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1509,14 +1506,14 @@ ml ml gl Al -iz +kv "} (10,1,1) = {" pr pr pr pr -iz +kv Al Al Al @@ -1552,14 +1549,14 @@ ml ml gl Al -iz +kv "} (11,1,1) = {" -iz -iz -iz -iz -iz +kv +kv +kv +kv +kv Al Al Al @@ -1595,10 +1592,10 @@ ml ml gl Al -iz +kv "} (12,1,1) = {" -iz +kv Al Al Al @@ -1638,10 +1635,10 @@ ml ml gl Al -iz +kv "} (13,1,1) = {" -iz +kv Al Fn Fn @@ -1681,10 +1678,10 @@ ml sT gl Al -iz +kv "} (14,1,1) = {" -iz +kv Al Fn VA @@ -1724,10 +1721,10 @@ gl gl gl Al -iz +kv "} (15,1,1) = {" -iz +kv Al Fn VA @@ -1767,10 +1764,10 @@ gl gl gl Al -iz +kv "} (16,1,1) = {" -iz +kv Al Fn pC @@ -1810,10 +1807,10 @@ gl gl gl Al -iz +kv "} (17,1,1) = {" -iz +kv Al Fn Mw @@ -1853,10 +1850,10 @@ gl gl gl Al -iz +kv "} (18,1,1) = {" -iz +kv Al Fn Mz @@ -1896,10 +1893,10 @@ gl gl gl Al -iz +kv "} (19,1,1) = {" -iz +kv Al Fn Fn @@ -1939,10 +1936,10 @@ gl gl gl Al -iz +kv "} (20,1,1) = {" -iz +kv Al Fn zU @@ -1982,10 +1979,10 @@ gl Al gl Al -iz +kv "} (21,1,1) = {" -iz +kv Al Fn wD @@ -2025,10 +2022,10 @@ Al Al Al Al -iz +kv "} (22,1,1) = {" -iz +kv Al Fn Fn @@ -2060,18 +2057,18 @@ Ww dj Fn Al -iz -iz -iz -iz -iz -iz -iz -iz -iz +kv +kv +kv +kv +kv +kv +kv +kv +kv "} (23,1,1) = {" -iz +kv Al xb Fn @@ -2103,7 +2100,8 @@ Ww dj Fn Al -iz +kv +pr pr pr pr @@ -2111,10 +2109,9 @@ pr pr pr pr -xW "} (24,1,1) = {" -iz +kv Al xb Fn @@ -2123,7 +2120,7 @@ Gz WX wD BM -Yj +Em TG mq ri @@ -2146,7 +2143,8 @@ Ww pZ Fn Al -iz +kv +pr pr pr pr @@ -2154,10 +2152,9 @@ pr pr pr pr -xW "} (25,1,1) = {" -iz +kv Al xb Fn @@ -2189,7 +2186,8 @@ Ww dj Fn Al -iz +kv +pr pr pr pr @@ -2197,10 +2195,9 @@ pr pr pr pr -xW "} (26,1,1) = {" -iz +kv Al xb Fn @@ -2232,7 +2229,8 @@ Ww dj Fn Al -iz +kv +pr pr pr pr @@ -2240,10 +2238,9 @@ pr pr pr pr -xW "} (27,1,1) = {" -iz +kv Al Fn Fn @@ -2275,7 +2272,8 @@ KZ dj Fn Al -iz +kv +pr pr pr pr @@ -2283,10 +2281,9 @@ pr pr pr pr -xW "} (28,1,1) = {" -iz +kv Al Fn Nr @@ -2304,7 +2301,7 @@ Ud Ud YN wD -pL +xR CA Uh wD @@ -2318,7 +2315,8 @@ Ww pZ Fn Al -iz +kv +pr pr pr pr @@ -2326,10 +2324,9 @@ pr pr pr pr -xW "} (29,1,1) = {" -iz +kv Al Fn wD @@ -2361,7 +2358,8 @@ Bu Xt Fn Al -iz +kv +pr pr pr pr @@ -2369,10 +2367,9 @@ pr pr pr pr -xW "} (30,1,1) = {" -iz +kv Al Fn Ds @@ -2404,7 +2401,8 @@ Fn Fn Fn Al -iz +kv +pr pr pr pr @@ -2412,10 +2410,9 @@ pr pr pr pr -xW "} (31,1,1) = {" -iz +kv Al Fn TG @@ -2447,7 +2444,8 @@ Fn Al Al Al -iz +kv +pr pr pr pr @@ -2455,10 +2453,9 @@ pr pr pr pr -xW "} (32,1,1) = {" -iz +kv Al Fn TG @@ -2490,7 +2487,8 @@ Fn Fn Al Al -iz +kv +pr pr pr pr @@ -2498,10 +2496,9 @@ pr pr pr pr -xW "} (33,1,1) = {" -iz +kv Al Fn EP @@ -2533,7 +2530,8 @@ OW Fn Fn Al -iz +kv +pr pr pr pr @@ -2541,10 +2539,9 @@ pr pr pr pr -xW "} (34,1,1) = {" -iz +kv Al Fn Xv @@ -2576,7 +2573,8 @@ aE jg Fn Al -iz +kv +pr pr pr pr @@ -2584,10 +2582,9 @@ pr pr pr pr -xW "} (35,1,1) = {" -iz +kv Al Fn Fn @@ -2619,7 +2616,8 @@ aE NM Fn Al -iz +kv +pr pr pr pr @@ -2627,10 +2625,9 @@ pr pr pr pr -xW "} (36,1,1) = {" -iz +kv Al Fn kK @@ -2662,7 +2659,8 @@ aE uk Fn Al -iz +kv +pr pr pr pr @@ -2670,10 +2668,9 @@ pr pr pr pr -xW "} (37,1,1) = {" -iz +kv Al Fn Ia @@ -2705,7 +2702,8 @@ Cv Fn Fn Al -iz +kv +pr pr pr pr @@ -2713,10 +2711,9 @@ pr pr pr pr -xW "} (38,1,1) = {" -iz +kv Al Fn tZ @@ -2748,7 +2745,8 @@ Fn Fn Al Al -iz +kv +pr pr pr pr @@ -2756,10 +2754,9 @@ pr pr pr pr -xW "} (39,1,1) = {" -iz +kv Al Fn Fn @@ -2791,7 +2788,8 @@ Al Al Al Al -iz +kv +pr pr pr pr @@ -2799,10 +2797,9 @@ pr pr pr pr -xW "} (40,1,1) = {" -iz +kv Al Al Al @@ -2834,7 +2831,8 @@ Al Al Al Al -iz +kv +pr pr pr pr @@ -2842,48 +2840,47 @@ pr pr pr pr -xW "} (41,1,1) = {" -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -pr -pr -pr -pr -pr -pr -pr -xW +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +pr +pr +pr +pr +pr +pr +pr +pr "} diff --git a/_maps/virtual_domains/blood_drunk_miner.dmm b/_maps/virtual_domains/blood_drunk_miner.dmm index 7fffbabfc0b62..e8f55523670fa 100644 --- a/_maps/virtual_domains/blood_drunk_miner.dmm +++ b/_maps/virtual_domains/blood_drunk_miner.dmm @@ -13,9 +13,8 @@ /turf/template_noop, /area/virtual_domain/safehouse) "d" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "f" = ( /obj/structure/stone_tile{ dir = 1 @@ -85,9 +84,6 @@ /obj/structure/stone_tile/cracked, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"v" = ( -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "w" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -117,6 +113,10 @@ /obj/effect/mob_spawn/corpse/human/miner, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) +"D" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) "G" = ( /obj/structure/stone_tile{ dir = 4 @@ -208,56 +208,55 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d d "} (2,1,1) = {" -v -s +d s s s @@ -301,10 +300,11 @@ s s s s -v +D +d "} (3,1,1) = {" -v +d s s s @@ -349,10 +349,10 @@ s J J s -v +d "} (4,1,1) = {" -v +d s s J @@ -397,10 +397,10 @@ J J J s -v +d "} (5,1,1) = {" -v +d s s J @@ -445,10 +445,10 @@ J J s s -v +d "} (6,1,1) = {" -v +d s s J @@ -493,10 +493,10 @@ J J s s -v +d "} (7,1,1) = {" -v +d s s J @@ -541,10 +541,10 @@ J J J s -v +d "} (8,1,1) = {" -v +d s s J @@ -589,10 +589,10 @@ J J s s -v +d "} (9,1,1) = {" -v +d s J J @@ -637,10 +637,10 @@ a J J s -v +d "} (10,1,1) = {" -v +d s J J @@ -685,10 +685,10 @@ a J J s -v +d "} (11,1,1) = {" -v +d s s J @@ -733,10 +733,10 @@ a J J s -v +d "} (12,1,1) = {" -v +d s s J @@ -781,10 +781,10 @@ J J J s -v +d "} (13,1,1) = {" -v +d s s J @@ -829,10 +829,10 @@ a J J s -v +d "} (14,1,1) = {" -v +d s s J @@ -877,10 +877,10 @@ a J J s -v +d "} (15,1,1) = {" -v +d s J J @@ -925,10 +925,10 @@ a J J s -v +d "} (16,1,1) = {" -v +d s J J @@ -973,10 +973,10 @@ a J J s -v +d "} (17,1,1) = {" -v +d s s J @@ -1021,10 +1021,10 @@ a J J s -v +d "} (18,1,1) = {" -v +d s s J @@ -1069,10 +1069,10 @@ J J s s -v +d "} (19,1,1) = {" -v +d s J J @@ -1117,10 +1117,10 @@ a J J s -v +d "} (20,1,1) = {" -v +d s J J @@ -1165,10 +1165,10 @@ a J J s -v +d "} (21,1,1) = {" -v +d s s J @@ -1213,10 +1213,10 @@ a J s s -v +d "} (22,1,1) = {" -v +d s s J @@ -1261,10 +1261,10 @@ a J s s -v +d "} (23,1,1) = {" -v +d s J J @@ -1309,10 +1309,10 @@ a J s s -v +d "} (24,1,1) = {" -v +d s J J @@ -1357,10 +1357,10 @@ a J J s -v +d "} (25,1,1) = {" -v +d s s J @@ -1405,10 +1405,10 @@ J J J s -v +d "} (26,1,1) = {" -v +d s s J @@ -1453,10 +1453,10 @@ a J J s -v +d "} (27,1,1) = {" -v +d s s J @@ -1501,10 +1501,10 @@ a J J s -v +d "} (28,1,1) = {" -v +d s J J @@ -1549,10 +1549,10 @@ J J J s -v +d "} (29,1,1) = {" -v +d s J J @@ -1597,10 +1597,10 @@ J J s s -v +d "} (30,1,1) = {" -v +d s s J @@ -1645,10 +1645,10 @@ J J s s -v +d "} (31,1,1) = {" -v +d s s a @@ -1693,10 +1693,10 @@ J J J s -v +d "} (32,1,1) = {" -v +d s s a @@ -1741,10 +1741,10 @@ J J J s -v +d "} (33,1,1) = {" -v +d s s s @@ -1789,10 +1789,10 @@ J J J s -v +d "} (34,1,1) = {" -v +d s s s @@ -1837,53 +1837,53 @@ s s s s -v +d "} (35,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d "} diff --git a/_maps/virtual_domains/breeze_bay.dmm b/_maps/virtual_domains/breeze_bay.dmm index b1d9b904d83b0..6035cfd2000ea 100644 --- a/_maps/virtual_domains/breeze_bay.dmm +++ b/_maps/virtual_domains/breeze_bay.dmm @@ -28,13 +28,6 @@ /obj/effect/landmark/bitrunning/loot_signal, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"l" = ( -/obj/effect/baseturf_helper/virtual_domain, -/obj/modular_map_root/safehouse{ - key = "wood" - }, -/turf/template_noop, -/area/virtual_domain/safehouse) "m" = ( /obj/item/fishing_rod{ pixel_x = 5; @@ -48,6 +41,10 @@ /obj/structure/table/wood, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) +"n" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/water/beach, +/area/virtual_domain/fullbright) "o" = ( /obj/structure/flora/tree/jungle/style_5, /turf/open/misc/beach/sand, @@ -63,6 +60,13 @@ /obj/structure/fluff/beach_umbrella/syndi, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) +"v" = ( +/obj/effect/baseturf_helper/virtual_domain, +/obj/modular_map_root/safehouse{ + key = "wood" + }, +/turf/template_noop, +/area/virtual_domain/safehouse) "y" = ( /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/misc/beach/sand, @@ -174,10 +178,6 @@ /obj/machinery/light/small/directional/west, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"Z" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/virtual_domain/fullbright) (1,1,1) = {" a @@ -204,7 +204,7 @@ a a a a -Z +a "} (2,1,1) = {" a @@ -230,7 +230,7 @@ i Q i i -i +n a "} (3,1,1) = {" @@ -244,7 +244,7 @@ I I I I -l +v N P Q diff --git a/_maps/virtual_domains/bubblegum.dmm b/_maps/virtual_domains/bubblegum.dmm index ef6957448925a..5343fe7d17b77 100644 --- a/_maps/virtual_domains/bubblegum.dmm +++ b/_maps/virtual_domains/bubblegum.dmm @@ -46,9 +46,6 @@ /mob/living/simple_animal/hostile/megafauna/bubblegum, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"F" = ( -/turf/open/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "G" = ( /obj/structure/marker_beacon/violet, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -61,10 +58,13 @@ /obj/structure/marker_beacon/indigo, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"R" = ( +"N" = ( /obj/effect/baseturf_helper/virtual_domain, -/turf/open/indestructible/binary, +/turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors/virtual_domain) +"R" = ( +/turf/open/indestructible/binary, +/area/virtual_domain) "S" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -91,66 +91,65 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R R "} (2,1,1) = {" -F -Z +R Z Z Z @@ -204,10 +203,11 @@ Z Z Z Z -F +N +R "} (3,1,1) = {" -F +R Z Z Z @@ -262,10 +262,10 @@ Z Z Z Z -F +R "} (4,1,1) = {" -F +R Z Z Z @@ -287,7 +287,7 @@ Z Z Z Z -F +R Z Z Z @@ -303,7 +303,7 @@ Z Z Z Z -F +R Z Z Z @@ -320,10 +320,10 @@ Z Z Z Z -F +R "} (5,1,1) = {" -F +R Z Z Z @@ -378,10 +378,10 @@ Z Z Z Z -F +R "} (6,1,1) = {" -F +R Z Z Z @@ -436,13 +436,13 @@ Z Z Z Z -F +R "} (7,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -494,13 +494,13 @@ Z Z Z Z -F +R "} (8,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -552,13 +552,13 @@ Z Z Z Z -F +R "} (9,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -610,10 +610,10 @@ Z Z Z Z -F +R "} (10,1,1) = {" -F +R Z Z Z @@ -666,12 +666,12 @@ Z Z Z Z -F +R Z -F +R "} (11,1,1) = {" -F +R Z Z Z @@ -724,12 +724,12 @@ Z Z Z Z -F +R Z -F +R "} (12,1,1) = {" -F +R Z Z Z @@ -784,10 +784,10 @@ Z Z Z Z -F +R "} (13,1,1) = {" -F +R Z Z Z @@ -842,10 +842,10 @@ Z Z Z Z -F +R "} (14,1,1) = {" -F +R Z Z Z @@ -900,10 +900,10 @@ Z Z Z Z -F +R "} (15,1,1) = {" -F +R Z Z Z @@ -958,10 +958,10 @@ Z Z Z Z -F +R "} (16,1,1) = {" -F +R Z Z Z @@ -1016,10 +1016,10 @@ Z Z Z Z -F +R "} (17,1,1) = {" -F +R Z Z Z @@ -1074,10 +1074,10 @@ Z Z Z Z -F +R "} (18,1,1) = {" -F +R Z Z Z @@ -1132,10 +1132,10 @@ Z Z Z Z -F +R "} (19,1,1) = {" -F +R Z Z Z @@ -1190,10 +1190,10 @@ Z Z Z Z -F +R "} (20,1,1) = {" -F +R Z Z Z @@ -1248,10 +1248,10 @@ Z Z Z Z -F +R "} (21,1,1) = {" -F +R Z Z Z @@ -1306,10 +1306,10 @@ Z Z Z Z -F +R "} (22,1,1) = {" -F +R Z Z Z @@ -1364,10 +1364,10 @@ Z Z Z Z -F +R "} (23,1,1) = {" -F +R Z Z Z @@ -1422,10 +1422,10 @@ Z Z Z Z -F +R "} (24,1,1) = {" -F +R Z Z Z @@ -1480,13 +1480,13 @@ Z Z Z Z -F +R "} (25,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -1538,10 +1538,10 @@ Z Z Z Z -F +R "} (26,1,1) = {" -F +R Z Z Z @@ -1595,11 +1595,11 @@ Z Z Z Z -F -F +R +R "} (27,1,1) = {" -F +R Z Z Z @@ -1654,10 +1654,10 @@ Z Z Z Z -F +R "} (28,1,1) = {" -F +R Z Z Z @@ -1712,10 +1712,10 @@ Z Z Z Z -F +R "} (29,1,1) = {" -F +R Z Z Z @@ -1770,10 +1770,10 @@ Z Z Z Z -F +R "} (30,1,1) = {" -F +R Z Z Z @@ -1828,10 +1828,10 @@ Z Z Z Z -F +R "} (31,1,1) = {" -F +R Z Z Z @@ -1886,10 +1886,10 @@ Z Z Z Z -F +R "} (32,1,1) = {" -F +R Z Z Z @@ -1944,10 +1944,10 @@ Z Z Z Z -F +R "} (33,1,1) = {" -F +R Z Z Z @@ -2002,10 +2002,10 @@ Z Z Z Z -F +R "} (34,1,1) = {" -F +R Z Z Z @@ -2060,10 +2060,10 @@ Z Z Z Z -F +R "} (35,1,1) = {" -F +R Z Z Z @@ -2118,10 +2118,10 @@ Z Z Z Z -F +R "} (36,1,1) = {" -F +R Z Z Z @@ -2176,10 +2176,10 @@ Z Z Z Z -F +R "} (37,1,1) = {" -F +R Z Z Z @@ -2234,10 +2234,10 @@ Z Z Z Z -F +R "} (38,1,1) = {" -F +R Z Z Z @@ -2292,10 +2292,10 @@ Z Z Z Z -F +R "} (39,1,1) = {" -F +R Z Z Z @@ -2350,10 +2350,10 @@ Z Z Z Z -F +R "} (40,1,1) = {" -F +R Z Z Z @@ -2408,10 +2408,10 @@ Z Z Z Z -F +R "} (41,1,1) = {" -F +R Z Z Z @@ -2466,13 +2466,13 @@ Z Z Z Z -F +R "} (42,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -2524,10 +2524,10 @@ Z Z Z Z -F +R "} (43,1,1) = {" -F +R Z Z Z @@ -2582,10 +2582,10 @@ Z Z Z Z -F +R "} (44,1,1) = {" -F +R Z Z Z @@ -2640,10 +2640,10 @@ Z Z Z Z -F +R "} (45,1,1) = {" -F +R Z Z Z @@ -2698,10 +2698,10 @@ Z Z Z Z -F +R "} (46,1,1) = {" -F +R Z Z Z @@ -2756,10 +2756,10 @@ Z Z Z Z -F +R "} (47,1,1) = {" -F +R Z Z Z @@ -2814,10 +2814,10 @@ Z Z Z Z -F +R "} (48,1,1) = {" -F +R Z Z Z @@ -2872,10 +2872,10 @@ Z Z Z Z -F +R "} (49,1,1) = {" -F +R Z Z Z @@ -2925,15 +2925,15 @@ Z Z Z Z -F +R Z Z Z Z -F +R "} (50,1,1) = {" -F +R Z Z Z @@ -2988,10 +2988,10 @@ Z Z Z Z -F +R "} (51,1,1) = {" -F +R Z Z Z @@ -3046,18 +3046,18 @@ Z Z Z Z -F +R "} (52,1,1) = {" -F +R Z Z Z Z Z Z -F -F +R +R Z Z Z @@ -3070,7 +3070,7 @@ Z Z Z Z -F +R Z Z Z @@ -3093,7 +3093,7 @@ Z Z Z Z -F +R Z Z Z @@ -3104,10 +3104,10 @@ Z Z Z Z -F +R "} (53,1,1) = {" -F +R Z Z Z @@ -3143,7 +3143,7 @@ Z Z Z Z -F +R Z Z Z @@ -3162,10 +3162,10 @@ Z Z Z Z -F +R "} (54,1,1) = {" -F +R Z Z Z @@ -3203,7 +3203,7 @@ Z Z Z Z -F +R Z Z Z @@ -3215,68 +3215,68 @@ Z Z Z Z -F +R Z Z Z Z -F +R "} (55,1,1) = {" -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R "} diff --git a/_maps/virtual_domains/clown_planet.dmm b/_maps/virtual_domains/clown_planet.dmm index 72cc1280b63cc..1973dacfb889b 100644 --- a/_maps/virtual_domains/clown_planet.dmm +++ b/_maps/virtual_domains/clown_planet.dmm @@ -7,15 +7,15 @@ /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "aI" = ( /obj/item/bikehorn/airhorn, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "aM" = ( /obj/item/bikehorn, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "aP" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -23,7 +23,7 @@ /obj/effect/decal/cleanable/food/pie_smudge, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ba" = ( /obj/structure/mecha_wreckage/honker, /obj/structure/disposalpipe/segment{ @@ -31,7 +31,7 @@ invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bi" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -39,19 +39,20 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bp" = ( /turf/open/indestructible/light, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bq" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "by" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -59,26 +60,26 @@ }, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bR" = ( /obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/hope, /obj/effect/decal/cleanable/blood/old, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bU" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "cw" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "cM" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -87,7 +88,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "cW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -95,21 +96,21 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ed" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /obj/machinery/light/small/directional/west, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "eE" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "fh" = ( /obj/effect/mob_spawn/corpse/human/damaged, /obj/effect/decal/cleanable/blood/old, @@ -118,7 +119,13 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) +"gd" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "gr" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -127,25 +134,24 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/effect/baseturf_helper/virtual_domain, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "gH" = ( /obj/item/bikehorn, /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "gK" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "hK" = ( /obj/item/clothing/head/cone, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "hY" = ( /turf/template_noop, /area/template_noop) @@ -157,24 +163,24 @@ dir = 4 }, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ik" = ( /turf/open/lava/smooth, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "iR" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ki" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "kn" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -182,7 +188,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lj" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -191,14 +197,14 @@ dir = 8 }, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lm" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/machinery/light/small/directional/east, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lr" = ( /obj/item/bikehorn, /obj/effect/decal/cleanable/dirt, @@ -207,60 +213,63 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lx" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ly" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "lP" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "mD" = ( /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "mE" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "mF" = ( /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "nE" = ( /obj/effect/mapping_helpers/no_lava, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "oA" = ( /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "oI" = ( /obj/structure/table/glass, /obj/item/grown/bananapeel/bluespace, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "pl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ps" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) +"qg" = ( +/turf/closed/wall/r_wall, +/area/lavaland/surface/outdoors/virtual_domain) "qM" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 @@ -268,7 +277,7 @@ /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "rg" = ( /obj/item/coin/bananium, /obj/item/coin/bananium, @@ -276,19 +285,13 @@ /obj/item/coin/bananium, /obj/machinery/light/small/directional/west, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "rh" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/open/indestructible/white, -/area/virtual_domain) -"rr" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/closed/indestructible/binary, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "rH" = ( /obj/structure/disposalpipe/junction/yjunction{ dir = 1; @@ -297,46 +300,39 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) -"rT" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/closed/indestructible/binary, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "sq" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "sT" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 1 }, /obj/effect/mapping_helpers/mail_sorting/supply/qm_office, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tt" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/indestructible/light, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tv" = ( /obj/effect/mob_spawn/corpse/human/damaged, /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tF" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "tI" = ( /obj/item/coin/bananium, /obj/item/coin/bananium, @@ -344,15 +340,15 @@ /obj/item/coin/bananium, /obj/machinery/light/small/directional/east, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "uX" = ( /obj/effect/mapping_helpers/no_lava, /mob/living/basic/clown, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "uY" = ( /turf/closed/mineral/bananium, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "uZ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -362,13 +358,13 @@ /obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/escape, /obj/item/pen/fourcolor, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "wz" = ( /obj/machinery/light/small/directional/south, /obj/effect/mapping_helpers/no_lava, /mob/living/basic/clown, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "xt" = ( /obj/modular_map_root/safehouse{ key = "mine" @@ -379,17 +375,17 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "yz" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "yS" = ( /obj/structure/marker_beacon/yellow, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "yZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -397,16 +393,16 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "zm" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "zA" = ( /obj/structure/statue/bananium/clown, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "zF" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -415,14 +411,14 @@ dir = 8 }, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Aa" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Bi" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -431,7 +427,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Cp" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -439,7 +435,7 @@ }, /obj/machinery/light/small/directional/west, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Cs" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -448,7 +444,7 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Do" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -456,7 +452,7 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "DL" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -464,35 +460,42 @@ /obj/item/bikehorn, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ex" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) +"Fb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "FI" = ( /obj/item/reagent_containers/cup/glass/trophy/gold_cup, /obj/structure/table/glass, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Gg" = ( /obj/structure/table/glass, /obj/item/gun/magic/staff/honk, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Hq" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Hr" = ( /obj/structure/table/glass, /obj/item/clothing/shoes/clown_shoes/banana_shoes, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "HQ" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -500,10 +503,13 @@ /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ie" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "Iz" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -511,20 +517,20 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "IN" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "IY" = ( /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Jv" = ( /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "JB" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -533,28 +539,28 @@ /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ka" = ( /obj/effect/decal/cleanable/food/pie_smudge, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Kh" = ( /obj/effect/mob_spawn/corpse/human/damaged, /obj/effect/decal/cleanable/blood/old, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "KG" = ( /obj/item/pickaxe, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "KI" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Lv" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -562,18 +568,18 @@ }, /obj/machinery/light/small/directional/east, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Nv" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "NB" = ( /obj/machinery/disposal/delivery_chute, /obj/structure/disposalpipe/trunk{ dir = 1 }, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "NL" = ( /obj/machinery/disposal/delivery_chute{ desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN"; @@ -583,12 +589,12 @@ /obj/structure/disposalpipe/trunk, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "NW" = ( /obj/structure/table/glass, /obj/item/reagent_containers/spray/waterflower/superlube, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ok" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -596,7 +602,7 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ov" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -604,7 +610,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "PJ" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -612,10 +618,10 @@ }, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "PM" = ( /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "PQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -623,20 +629,20 @@ }, /obj/item/pickaxe, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "QP" = ( /turf/template_noop, /area/virtual_domain/safehouse) "QX" = ( /obj/structure/closet/crate/secure/bitrunning/encrypted, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Rh" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Rx" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -645,13 +651,7 @@ /obj/structure/table, /obj/item/flashlight/lamp/bananalamp, /turf/open/indestructible/white, -/area/virtual_domain) -"RU" = ( -/obj/structure/disposalpipe/segment{ - invisibility = 101 - }, -/turf/closed/indestructible/binary, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Sg" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -660,13 +660,13 @@ /obj/effect/decal/cleanable/food/pie_smudge, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Sm" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Tm" = ( /obj/effect/decal/cleanable/food/pie_smudge, /obj/structure/disposalpipe/segment{ @@ -674,13 +674,13 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Tx" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "TH" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -689,60 +689,59 @@ dir = 8 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "TK" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ug" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UL" = ( /obj/effect/decal/cleanable/oil, /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UN" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UQ" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UY" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Vx" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 + dir = 5 }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "VI" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "VQ" = ( /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ww" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -751,40 +750,40 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "WB" = ( /obj/machinery/disposal/delivery_chute{ dir = 1 }, /obj/structure/disposalpipe/trunk, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "WT" = ( /obj/machinery/door/airlock/bananium, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "WX" = ( /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Xp" = ( /obj/machinery/light/directional/south, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "XB" = ( /obj/machinery/light/directional/north, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Yb" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "YP" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ZR" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -793,44 +792,44 @@ dir = 4 }, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -Ie -Ie -rT -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -rr hY +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF hY hY hY @@ -842,9 +841,9 @@ hY hY "} (2,1,1) = {" -Ie -Ie -Vx +hY +tF +gd Ie Ie Ie @@ -876,7 +875,7 @@ Ie Ie Ie Vx -hY +tF hY hY hY @@ -888,41 +887,41 @@ hY hY "} (3,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Vx hY +tF +Fb +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +Fb +tF hY hY hY @@ -934,41 +933,41 @@ hY hY "} (4,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -by -by -by +hY +tF +Fb +tF +tF +tF +qg +qg +qg ik ik ik ik ik -by -by -Ie -Ie -Ie -Ie -Ie -by -by +qg +qg +tF +tF +hY +tF +tF +qg +qg ik ik ik -by -by -by -Ie -Ie -Ie -Ie -Vx +qg +qg +qg +tF +tF hY +tF +Fb +tF hY hY hY @@ -980,13 +979,13 @@ hY hY "} (5,1,1) = {" -Ie -Ie -Vx -Ie -Ie -by -by +hY +tF +Fb +tF +tF +qg +qg ik ik ik @@ -995,26 +994,26 @@ Sm Hq Sm ik -by -by -Ie -Ie -Ie -by -by +qg +qg +tF +tF +tF +qg +qg ik ik tq mD ik ik -by -by -Ie -Ie -Ie -Vx -hY +qg +qg +tF +tF +tF +Fb +tF hY hY hY @@ -1026,12 +1025,12 @@ hY hY "} (6,1,1) = {" -Ie -Ie -Vx -Ie -by -by +hY +tF +Fb +tF +qg +qg ik ik IN @@ -1042,11 +1041,11 @@ yZ aP Sm ik -by -by -by -by -by +qg +qg +qg +qg +qg Nv IY tq @@ -1055,12 +1054,12 @@ ik ik ik ik -by -by -Ie -Ie -Vx -hY +qg +qg +tF +tF +Fb +tF hY hY hY @@ -1072,14 +1071,14 @@ hY hY "} (7,1,1) = {" -Ie -Ie -Vx -Ie -by +hY +tF +Fb +tF +qg ik ik -by +qg Bi cw UQ @@ -1088,11 +1087,11 @@ UQ UY KI ik -by +qg IY Jv IY -by +qg IY Jv Kh @@ -1102,11 +1101,11 @@ ik tq ik ik -by -Ie -Ie -Vx -hY +qg +tF +tF +Fb +tF hY hY hY @@ -1118,11 +1117,11 @@ hY hY "} (8,1,1) = {" -Ie -Ie -Vx -by -by +hY +tF +Fb +qg +qg ik IN Tm @@ -1133,7 +1132,7 @@ UQ Sm KI KI -by +qg zm oA IY @@ -1144,15 +1143,15 @@ Jv IY IY IY -by +qg ik mD ik -by -by -Ie -Vx -hY +qg +qg +tF +Fb +tF hY hY hY @@ -1164,10 +1163,10 @@ hY hY "} (9,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik ik UN @@ -1180,14 +1179,14 @@ KI YP Cp uY -by +qg sq oA IY -by -by +qg +qg Jv -by +qg IY IY IY @@ -1195,25 +1194,25 @@ tq ik ik ik -by -Ie -Vx -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie +qg +tF +Fb +tF +tF +tF +tF +tF +tF +tF +tF +tF tF "} (10,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik IN UQ @@ -1227,8 +1226,8 @@ YP YP KG uY -by -by +qg +qg oA IY IY @@ -1238,28 +1237,28 @@ IY gH Jv Xp -by +qg ik ik -by -by +qg +qg KI +qg +qg +qg +qg +qg +qg +qg +qg by -by -by -by -by -by -by -by -by -Ie +tF "} (11,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik yz fh @@ -1277,7 +1276,7 @@ oA oA oA IY -by +qg IY IY Jv @@ -1287,8 +1286,8 @@ IY ik tq ik -by -by +qg +qg iR PM PM @@ -1298,14 +1297,14 @@ PM PM PM PM -by -Ie +qg +tF "} (12,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik Hq TK @@ -1319,12 +1318,12 @@ PQ tt bp uY -by +qg oA oA IY IY -by +qg IY IY IY @@ -1334,7 +1333,7 @@ ik tq ik ik -by +qg iR yS PM @@ -1344,14 +1343,14 @@ PM PM yS PM -by -Ie +qg +tF "} (13,1,1) = {" -Ie -Ie -Vx -by +tF +tF +Fb +qg ik UN UQ @@ -1364,23 +1363,23 @@ KI YP Lv WX -by -by +qg +qg oA IY IY -by -by +qg +qg IY IY -by +qg IY Jv ik mD tq ik -by +qg iR PM PM @@ -1390,12 +1389,12 @@ PM PM PM PM -by -Ie +qg +tF "} (14,1,1) = {" -Ie -by +tF +qg KI nE nE @@ -1412,12 +1411,12 @@ KI ps TK Sm -by -by -by +qg +qg +qg zA rg -by +qg XB IY Jv @@ -1426,7 +1425,7 @@ IY ik tq ik -by +qg iR PM QP @@ -1436,16 +1435,16 @@ QP QP xt PM -by -Ie +qg +tF "} (15,1,1) = {" -Ie -by +tF +qg ij hK nE -by +qg yz UQ UQ @@ -1458,13 +1457,13 @@ Do Iz kn Ww -by -by +qg +qg FI mF mF mF -by +qg IY Jv Jv @@ -1472,7 +1471,7 @@ IY ik tq ik -by +qg ZR PM QP @@ -1482,12 +1481,12 @@ QP QP QP PM -by -Ie +qg +tF "} (16,1,1) = {" -Ie -by +tF +qg VQ uX NL @@ -1505,20 +1504,20 @@ pl Do Ex UY -by +qg Ug oI NW mF -by -by +qg +qg Jv IY IY ik tq ik -by +qg PM PM QP @@ -1528,16 +1527,16 @@ QP QP QP PM -by -Ie +qg +tF "} (17,1,1) = {" -Ie -by +tF +qg VQ bR wz -by +qg Hq UQ Sm @@ -1560,11 +1559,11 @@ WT IY Jv IY -by +qg ik tq ik -by +qg PM PM QP @@ -1574,12 +1573,12 @@ QP QP QP PM -by -Ie +qg +tF "} (18,1,1) = {" -Ie -by +tF +qg VQ uX PJ @@ -1597,12 +1596,12 @@ Ok mE rH pl -by +qg mF Hr Gg mF -by +qg IY IY IY @@ -1610,7 +1609,7 @@ IY ik tq ik -by +qg PM PM QP @@ -1620,17 +1619,17 @@ QP QP QP PM -by -Ie +qg +tF "} (19,1,1) = {" -Ie -by +tF +qg zF uX nE -by -by +qg +qg Ww Ww Ww @@ -1643,12 +1642,12 @@ UY Ka KI tv -by +qg FI mF mF QX -by +qg IY IY IY @@ -1656,7 +1655,7 @@ IY ik tq ik -by +qg lj PM QP @@ -1666,34 +1665,34 @@ QP QP QP PM -by -Ie +qg +tF "} (20,1,1) = {" -Ie -by +tF +qg KI nE nE ik -by +qg Ww Ww Cs Do Do KI -by -by +qg +qg bQ -by +qg ba -by +qg IY -by +qg zA tI -by +qg XB IY Jv @@ -1702,7 +1701,7 @@ IY ik tq ik -by +qg iR PM QP @@ -1712,17 +1711,17 @@ QP QP gr PM -by -Ie +qg +tF "} (21,1,1) = {" -Ie -Ie -Vx -by +tF +tF +Fb +qg ik -by -by +qg +qg Do Do Do @@ -1732,13 +1731,13 @@ KI rh ed gK -by +qg UL Sm IY IY -by -by +qg +qg Kh IY IY @@ -1748,7 +1747,7 @@ ik tq mD ik -by +qg iR PM PM @@ -1758,17 +1757,17 @@ PM PM PM PM -by -Ie +qg +tF "} (22,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik -by -by +qg +qg JB Sg KI @@ -1779,12 +1778,12 @@ YP bp bp uY -by +qg bQ oA IY IY -by +qg IY Jv IY @@ -1794,7 +1793,7 @@ ik tq ik ik -by +qg iR PM PM @@ -1804,14 +1803,14 @@ PM PM PM PM -by -Ie +qg +tF "} (23,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik cM eE @@ -1827,7 +1826,7 @@ bp WB TK Aa -by +qg IY IY Jv @@ -1836,11 +1835,11 @@ Jv IY aM Xp -by +qg tq ik -by -by +qg +qg iR PM PM @@ -1850,17 +1849,17 @@ PM PM PM PM -by -Ie +qg +tF "} (24,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik -by -by +qg +qg lP Do Do @@ -1871,7 +1870,7 @@ bq Rh WX uY -by +qg oA oA IY @@ -1880,33 +1879,33 @@ Jv Jv IY IY -by -by +qg +qg ik mD ik -by -by +qg +qg KI -by -by -by -by -by -by -by -by -by -Ie +qg +qg +qg +qg +qg +qg +qg +qg +qg +tF "} (25,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik -by -by +qg +qg pl Do KI @@ -1916,7 +1915,7 @@ KI rh lm uY -by +qg sq oA IY @@ -1924,35 +1923,35 @@ IY IY IY IY -by +qg IY IY ik mD ik ik -by -Ie -Vx -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie +qg +tF +Fb +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF "} (26,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik ik -by +qg yd Do Do @@ -1960,8 +1959,8 @@ Do Ex lx KI -by -by +qg +qg oA oA IY @@ -1972,15 +1971,15 @@ aM IY IY IY -by +qg ik tq ik -by -by -Ie -Vx -hY +qg +qg +tF +Fb +tF hY hY hY @@ -1992,41 +1991,41 @@ hY hY "} (27,1,1) = {" -Ie -Ie -Vx -by -by +hY +tF +Fb +qg +qg ik -by -by +qg +qg Ex lx HQ UQ UQ bU -by +qg ik -by +qg Yb IY IY -by +qg IY IY -by +qg IY IY ik mD ik ik -by -Ie -Ie -Vx -hY +qg +tF +tF +Fb +tF hY hY hY @@ -2038,27 +2037,27 @@ hY hY "} (28,1,1) = {" -Ie -Ie -Vx -Ie -by -by +hY +tF +Fb +tF +qg +qg ik ik -by +qg mD -by +qg Ka lP mD -by +qg ik -by -by -by -by -by +qg +qg +qg +qg +qg IY IY IY @@ -2067,12 +2066,12 @@ ik ik ik ik -by -by -Ie -Ie -Vx -hY +qg +qg +tF +tF +Fb +tF hY hY hY @@ -2084,41 +2083,41 @@ hY hY "} (29,1,1) = {" -Ie -Ie -Vx -Ie -Ie -by -by +hY +tF +Fb +tF +tF +qg +qg ik ik ik tq tq tq -by +qg ik -by -by -Ie -Ie -Ie -by -by +qg +qg +tF +tF +tF +qg +qg ik ik mD tq ik ik -by -by -Ie -Ie -Ie -Vx -hY +qg +qg +tF +tF +tF +Fb +tF hY hY hY @@ -2130,41 +2129,41 @@ hY hY "} (30,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -by -by -by +hY +tF +Fb +tF +tF +tF +qg +qg +qg ik ik ik ik ik -by -by -Ie -Ie -Ie -Ie -Ie -by -by +qg +qg +tF +tF +hY +tF +tF +qg +qg ik ik ik -by -by -by -Ie -Ie -Ie -Ie -Vx +qg +qg +qg +tF +tF hY +tF +Fb +tF hY hY hY @@ -2176,41 +2175,41 @@ hY hY "} (31,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Vx hY +tF +Fb +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +Fb +tF hY hY hY @@ -2222,56 +2221,9 @@ hY hY "} (32,1,1) = {" -Ie -Ie -VI -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -ly -hY -hY -hY -hY -hY hY -hY -hY -hY -hY -"} -(33,1,1) = {" -Ie -Ie -Ie -Ie +tF +VI Ie Ie Ie @@ -2302,7 +2254,54 @@ Ie Ie Ie Ie +ly +tF +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(33,1,1) = {" hY +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF hY hY hY diff --git a/_maps/virtual_domains/colossus.dmm b/_maps/virtual_domains/colossus.dmm index 19570e13daf81..d246ad52fa1e7 100644 --- a/_maps/virtual_domains/colossus.dmm +++ b/_maps/virtual_domains/colossus.dmm @@ -34,9 +34,8 @@ /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) "q" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/open/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "r" = ( /obj/machinery/light/small/blacklight/directional/south, /obj/effect/baseturf_helper/virtual_domain, @@ -45,13 +44,14 @@ "s" = ( /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/virtual_domain) +"t" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) "u" = ( /obj/structure/marker_beacon/indigo, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"v" = ( -/turf/open/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "x" = ( /obj/structure/marker_beacon/purple, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -91,56 +91,55 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q q "} (2,1,1) = {" -v -k +q k k k @@ -184,10 +183,11 @@ k k k k -v +t +q "} (3,1,1) = {" -v +q k a a @@ -232,10 +232,10 @@ a k k k -v +q "} (4,1,1) = {" -v +q k a a @@ -280,10 +280,10 @@ a a a k -v +q "} (5,1,1) = {" -v +q k a a @@ -328,10 +328,10 @@ a a s k -v +q "} (6,1,1) = {" -v +q k a a @@ -376,10 +376,10 @@ a s s k -v +q "} (7,1,1) = {" -v +q k a a @@ -424,10 +424,10 @@ a a s k -v +q "} (8,1,1) = {" -v +q k a a @@ -472,10 +472,10 @@ a a k k -v +q "} (9,1,1) = {" -v +q k a a @@ -520,10 +520,10 @@ a a k k -v +q "} (10,1,1) = {" -v +q k k a @@ -568,10 +568,10 @@ a a k k -v +q "} (11,1,1) = {" -v +q k k a @@ -616,10 +616,10 @@ a a a k -v +q "} (12,1,1) = {" -v +q k k a @@ -664,10 +664,10 @@ a a a k -v +q "} (13,1,1) = {" -v +q k k a @@ -712,10 +712,10 @@ a a a k -v +q "} (14,1,1) = {" -v +q k a a @@ -760,10 +760,10 @@ a a a k -v +q "} (15,1,1) = {" -v +q k a a @@ -808,10 +808,10 @@ a a a k -v +q "} (16,1,1) = {" -v +q k a a @@ -856,10 +856,10 @@ a a a k -v +q "} (17,1,1) = {" -v +q k a a @@ -904,10 +904,10 @@ a a a k -v +q "} (18,1,1) = {" -v +q k a a @@ -952,10 +952,10 @@ a a a k -v +q "} (19,1,1) = {" -v +q k a a @@ -1000,10 +1000,10 @@ a a a k -v +q "} (20,1,1) = {" -v +q k a a @@ -1048,10 +1048,10 @@ a a a k -v +q "} (21,1,1) = {" -v +q k a a @@ -1096,10 +1096,10 @@ U N a k -v +q "} (22,1,1) = {" -v +q k a a @@ -1144,10 +1144,10 @@ U U a k -v +q "} (23,1,1) = {" -v +q k a a @@ -1192,10 +1192,10 @@ U U a k -v +q "} (24,1,1) = {" -v +q k a a @@ -1240,10 +1240,10 @@ U U a k -v +q "} (25,1,1) = {" -v +q k a a @@ -1288,10 +1288,10 @@ U U a k -v +q "} (26,1,1) = {" -v +q k a a @@ -1336,10 +1336,10 @@ U U a k -v +q "} (27,1,1) = {" -v +q k a a @@ -1384,10 +1384,10 @@ U D a k -v +q "} (28,1,1) = {" -v +q k a a @@ -1432,10 +1432,10 @@ a a a k -v +q "} (29,1,1) = {" -v +q k a a @@ -1480,10 +1480,10 @@ a a a k -v +q "} (30,1,1) = {" -v +q k a a @@ -1528,10 +1528,10 @@ a a a k -v +q "} (31,1,1) = {" -v +q k a a @@ -1576,10 +1576,10 @@ a a a k -v +q "} (32,1,1) = {" -v +q k a a @@ -1624,10 +1624,10 @@ a a a k -v +q "} (33,1,1) = {" -v +q k a a @@ -1672,10 +1672,10 @@ a a a k -v +q "} (34,1,1) = {" -v +q k k a @@ -1720,10 +1720,10 @@ a a a k -v +q "} (35,1,1) = {" -v +q k k a @@ -1768,10 +1768,10 @@ a a a k -v +q "} (36,1,1) = {" -v +q k k a @@ -1816,10 +1816,10 @@ a a a k -v +q "} (37,1,1) = {" -v +q k k a @@ -1864,10 +1864,10 @@ a a k k -v +q "} (38,1,1) = {" -v +q k a a @@ -1912,10 +1912,10 @@ a a k k -v +q "} (39,1,1) = {" -v +q k a a @@ -1960,10 +1960,10 @@ a a a k -v +q "} (40,1,1) = {" -v +q k a a @@ -2008,10 +2008,10 @@ a a a k -v +q "} (41,1,1) = {" -v +q k a a @@ -2056,10 +2056,10 @@ a a a k -v +q "} (42,1,1) = {" -v +q k a a @@ -2104,10 +2104,10 @@ a a a k -v +q "} (43,1,1) = {" -v +q k a k @@ -2152,10 +2152,10 @@ k a a k -v +q "} (44,1,1) = {" -v +q k k k @@ -2200,53 +2200,53 @@ k k k k -v +q "} (45,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q "} diff --git a/_maps/virtual_domains/fredingtonfastingbear.dmm b/_maps/virtual_domains/fredingtonfastingbear.dmm index 4da8210c90e1a..422395c72bc97 100644 --- a/_maps/virtual_domains/fredingtonfastingbear.dmm +++ b/_maps/virtual_domains/fredingtonfastingbear.dmm @@ -1,11 +1,11 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aV" = ( /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bu" = ( /obj/machinery/oven/range, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bL" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -14,7 +14,7 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/greenglow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bP" = ( /obj/structure/sign/poster/official/report_crimes, /turf/closed/indestructible/reinforced, @@ -23,7 +23,7 @@ /obj/machinery/chem_dispenser/drinks/beer, /obj/structure/table/wood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bW" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -32,7 +32,7 @@ pixel_y = 6 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cn" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -41,40 +41,41 @@ pixel_y = 2 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cp" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /mob/living/basic/bear/snow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cY" = ( /obj/structure/sign/poster/official/no_erp/directional/north, /obj/structure/sign/poster/official/no_erp/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dl" = ( /obj/structure/sign/poster/contraband/blood_geometer/directional/south, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dz" = ( /obj/structure/table/wood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dN" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/blood/xtracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dV" = ( /obj/structure/table/glass, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ex" = ( -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/obj/structure/sign/poster/contraband/bountyhunters/directional/south, +/turf/template_noop, +/area/virtual_domain) "eE" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -83,28 +84,28 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "eW" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fd" = ( /obj/structure/table/wood/poker, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fo" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/shaker{ pixel_x = 5 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fy" = ( /obj/machinery/stove, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fz" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -114,15 +115,15 @@ pixel_y = 6 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fU" = ( /obj/effect/decal/cleanable/blood/footprints, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gl" = ( /obj/structure/sign/poster/contraband/blasto_detergent, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gL" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -132,7 +133,7 @@ }, /obj/machinery/light/built/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hq" = ( /obj/structure/table/reinforced, /obj/item/flashlight/seclite{ @@ -147,11 +148,11 @@ "hI" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hK" = ( /obj/item/trash/popcorn, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hR" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -160,7 +161,7 @@ /obj/effect/decal/cleanable/confetti, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "jE" = ( /obj/structure/sign/poster/abductor/ayy_over_tizira, /obj/structure/sign/poster/official/the_owl, @@ -174,71 +175,71 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kf" = ( /obj/structure/chair/stool/bar/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "km" = ( /obj/structure/chair/sofa/corp/left{ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kL" = ( /obj/machinery/light/built/directional/west, /obj/item/light/tube/broken, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lc" = ( /obj/machinery/vending/boozeomat, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lL" = ( /obj/structure/table, /obj/item/kitchen/rollingpin/illegal, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lP" = ( /obj/machinery/vending/sovietsoda, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lS" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ma" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/table, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ms" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mC" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/table, /obj/item/food/pizza, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mX" = ( /obj/machinery/computer/arcade/amputation{ dir = 1 }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ng" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nF" = ( /obj/effect/spawner/structure/window/reinforced/indestructible, /turf/open/floor/iron, @@ -251,11 +252,11 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/item/clothing/mask/animal/small/bear/cursed, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nX" = ( /obj/structure/chair/sofa/corp/left, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ob" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -263,12 +264,12 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/greenglow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "of" = ( /obj/structure/railing, /obj/effect/decal/cleanable/fuel_pool/hivis, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "oO" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -276,23 +277,23 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pr" = ( /obj/machinery/light/built/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pK" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 4 }, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pX" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/item/restraints/legcuffs/beartrap/prearmed, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ql" = ( /obj/structure/table/reinforced, /obj/item/toy/plush/nukeplushie{ @@ -307,20 +308,20 @@ /area/virtual_domain/protected_space/fullbright) "qK" = ( /turf/closed/indestructible/fakedoor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rc" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "re" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ri" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -329,14 +330,14 @@ }, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rB" = ( /obj/item/trash/boritos/green{ pixel_x = 4; pixel_y = 11 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rD" = ( /obj/machinery/door/poddoor{ id = "door2" @@ -350,21 +351,20 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sg" = ( -/obj/structure/sign/poster/contraband/bountyhunters/directional/south, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/template_noop, +/area/virtual_domain) "si" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table, /obj/item/balloon_mallet, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sk" = ( /obj/machinery/computer/slot_machine, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sl" = ( /obj/effect/spawner/structure/window/reinforced/indestructible, /obj/structure/sign/poster/contraband/space_cola/directional/north, @@ -375,28 +375,28 @@ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "td" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/chempuff, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "to" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "tC" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "tI" = ( /obj/item/trash/can, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "tN" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -405,7 +405,7 @@ /obj/structure/table/wood/poker, /obj/item/trash/ready_donk, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ud" = ( /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/cafeteria, @@ -415,40 +415,40 @@ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uZ" = ( /obj/effect/decal/cleanable/food/salt, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ve" = ( /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vk" = ( /obj/structure/railing, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vm" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vs" = ( /obj/structure/closet/secure_closet/freezer/cream_pie, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vw" = ( /mob/living/basic/bear/butter, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vy" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/cleanable/blood/gibs/down, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vz" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/iron, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vF" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -458,18 +458,18 @@ id = "door2" }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vG" = ( /obj/structure/closet/secure_closet/freezer/kitchen, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vR" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table, /obj/item/trash/tray, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vT" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -478,7 +478,7 @@ }, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "wM" = ( /obj/item/toy/balloon/heart, /obj/machinery/light/built/directional/west, @@ -486,47 +486,47 @@ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xa" = ( /obj/structure/railing, /obj/structure/curtain/cloth/fancy/mechanical/start_closed, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xk" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/table, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xv" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/structure/sign/poster/official/moth_hardhat/directional/west, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xY" = ( /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yz" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yB" = ( /obj/structure/railing, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "zU" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ag" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -534,11 +534,11 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ak" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "AF" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/bottle/goldschlager{ @@ -549,23 +549,23 @@ pixel_x = -4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bc" = ( /turf/template_noop, /area/virtual_domain/safehouse) "Bf" = ( /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bj" = ( /obj/machinery/computer/arcade/amputation, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bo" = ( /obj/machinery/door/airlock, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "BU" = ( /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/cafeteria, @@ -578,16 +578,16 @@ }, /obj/effect/decal/cleanable/blood/gibs/up, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Cm" = ( /turf/template_noop, -/area/space) +/area/template_noop) "Ct" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/light/built/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Dx" = ( /obj/effect/decal/cleanable/fuel_pool, /obj/effect/decal/cleanable/confetti, @@ -596,7 +596,7 @@ "Dz" = ( /mob/living/basic/bear/fightpit, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "DV" = ( /obj/machinery/door/airlock, /turf/open/floor/iron/cafeteria, @@ -609,14 +609,14 @@ }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "EP" = ( /obj/structure/railing{ dir = 4 }, /obj/effect/decal/cleanable/leaper_sludge, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Fc" = ( /turf/closed/indestructible/reinforced, /area/virtual_domain/protected_space/fullbright) @@ -625,29 +625,29 @@ /obj/machinery/light/built/directional/west, /obj/structure/fake_stairs/wood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "FA" = ( /obj/effect/decal/cleanable/food/flour, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Gb" = ( /obj/item/trash/peanuts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Gn" = ( /obj/machinery/light/built/directional/east, /obj/effect/decal/cleanable/food/tomato_smudge, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GD" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GK" = ( /obj/structure/closet/crate/trashcart/filled, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Hi" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -655,12 +655,12 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ho" = ( /obj/effect/decal/cleanable/fuel_pool/hivis, /mob/living/basic/bear/fightpit, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "HE" = ( /obj/structure/table/reinforced, /obj/item/gun/energy/laser{ @@ -685,11 +685,11 @@ "HG" = ( /obj/structure/curtain/cloth/fancy/mechanical, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "If" = ( /mob/living/basic/bear/russian, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Io" = ( /obj/structure/closet/crate/trashcart/filled, /turf/open/misc/dirt/jungle, @@ -697,12 +697,12 @@ "IX" = ( /obj/machinery/computer/arcade/amputation, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "IY" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck/syndicate, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Jh" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -712,13 +712,13 @@ pixel_y = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JD" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JF" = ( /obj/modular_map_root/safehouse{ key = "wood" @@ -735,11 +735,11 @@ }, /obj/item/trash/pistachios, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KJ" = ( /mob/living/basic/bear/fightpit, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ln" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -748,11 +748,11 @@ }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "LP" = ( /obj/item/trash/shrimp_chips, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "LU" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -762,7 +762,7 @@ id = "door1" }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mc" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -774,24 +774,24 @@ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mm" = ( /obj/structure/chair/stool/bar/directional/north, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mq" = ( /obj/structure/sign/poster/contraband/ambrosia_vulgaris/directional/west, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ML" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "MO" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "MS" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -800,84 +800,84 @@ pixel_y = 2 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ne" = ( /turf/closed/indestructible/binary, -/area/space) +/area/virtual_domain/fullbright) "Nz" = ( /obj/structure/sign/poster/official/pda_ad/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NA" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NE" = ( /obj/structure/sign/poster/abductor/ayy_cops/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Od" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ox" = ( /obj/structure/sign/poster/official/the_owl, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "OB" = ( /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "OD" = ( /mob/living/basic/bear/russian, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "OM" = ( /obj/structure/table, /obj/effect/decal/cleanable/food/salt, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Pm" = ( /obj/structure/chair/sofa/corp/right, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "PK" = ( /obj/structure/curtain/cloth/fancy/mechanical, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Qg" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/item/toy/balloon/heart, /obj/machinery/light/built/directional/west, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "RB" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/light/built/directional/west, /obj/effect/decal/cleanable/glass/plastitanium, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sp" = ( /obj/structure/chair/sofa/corp, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sr" = ( /obj/effect/decal/cleanable/blood/footprints{ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "SE" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/light/built/directional/east, /obj/effect/decal/cleanable/glass/plastitanium, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "SW" = ( /obj/machinery/door/poddoor{ id = "door1" @@ -891,11 +891,11 @@ pixel_y = 6 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Tp" = ( /obj/structure/sign/poster/official/soft_cap_pop_art, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Tq" = ( /turf/open/misc/dirt/jungle, /area/virtual_domain/fullbright) @@ -907,34 +907,34 @@ }, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "TR" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/cleanable/ants/fire, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "TW" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /mob/living/basic/bear/snow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Uj" = ( /obj/structure/curtain/bounty/start_closed, /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "Ux" = ( /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "UR" = ( /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "UW" = ( /obj/structure/sign/poster/official/no_erp/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vd" = ( /turf/open/floor/iron/cafeteria, /area/virtual_domain/protected_space/fullbright) @@ -942,14 +942,14 @@ /obj/structure/table, /obj/item/kitchen/tongs, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vs" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/decal/cleanable/blood/gibs/old, /obj/machinery/light/built/directional/west, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "VS" = ( /obj/structure/table/reinforced, /obj/item/modular_computer/laptop/preset/civilian, @@ -958,7 +958,7 @@ "VW" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Wj" = ( /obj/structure/sign/poster/contraband/free_key/directional, /turf/closed/indestructible/reinforced, @@ -966,7 +966,7 @@ "Wy" = ( /obj/effect/decal/cleanable/molten_object/large, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "WG" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -975,11 +975,11 @@ }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "XG" = ( /obj/machinery/roulette, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yd" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -987,26 +987,26 @@ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ye" = ( /obj/structure/table/glass, /obj/item/reagent_containers/cup/soda_cans/grey_bull, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yy" = ( /obj/machinery/computer/arcade/amputation{ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YK" = ( /obj/effect/spawner/random/trash, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YL" = ( /obj/item/trash/raisins, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YT" = ( /obj/machinery/button/door/directional/west{ id = "door1" @@ -1016,30 +1016,30 @@ "Zf" = ( /obj/machinery/deepfryer, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Zj" = ( /mob/living/basic/bear/fightpit, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Zp" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZL" = ( /obj/structure/railing{ dir = 4 }, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZU" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZZ" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -1047,7 +1047,7 @@ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" Cm @@ -1095,9 +1095,6 @@ Cm Cm Cm Cm -Cm -Cm -Cm "} (2,1,1) = {" Cm @@ -1115,6 +1112,13 @@ Cm Cm Cm Cm +Uj +Uj +Uj +Uj +Uj +Uj +Uj Cm Cm Cm @@ -1138,6 +1142,8 @@ Cm Cm Cm Cm +"} +(3,1,1) = {" Cm Cm Cm @@ -1148,13 +1154,18 @@ Cm Cm Cm Cm -"} -(3,1,1) = {" Cm Cm Cm Cm Cm +Uj +MO +OB +OB +OB +OB +Uj Cm Cm Cm @@ -1178,6 +1189,8 @@ Cm Cm Cm Cm +"} +(4,1,1) = {" Cm Cm Cm @@ -1193,13 +1206,18 @@ Cm Cm Cm Cm +Uj +OB +OB +OB +OB +Zj +Uj Cm Cm Cm Cm Cm -"} -(4,1,1) = {" Cm Cm Cm @@ -1218,12 +1236,10 @@ Cm Cm Cm Cm +"} +(5,1,1) = {" Cm Cm -Ne -Ne -Ne -Ne Cm Cm Cm @@ -1237,6 +1253,13 @@ Cm Cm Cm Cm +Uj +vm +OB +OB +OB +vm +Uj Cm Cm Cm @@ -1248,8 +1271,6 @@ Cm Cm Cm Cm -"} -(5,1,1) = {" Cm Cm Cm @@ -1262,19 +1283,30 @@ Cm Cm Cm Cm +"} +(6,1,1) = {" Cm Cm Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne +Cm +Cm +ve +ve +ve +ve +ve +ve +Ox +ve +ve +ve +ve +ve +OB +OB +OB +ve +ve Cm Cm Cm @@ -1299,12 +1331,29 @@ Cm Cm Cm "} -(6,1,1) = {" +(7,1,1) = {" Cm Cm Cm Cm Cm +ve +sk +Ux +Ux +kL +Ux +Ux +UR +Ux +Ux +Ux +Fy +EP +ZL +ZL +wM +ve Cm Cm Cm @@ -1315,16 +1364,6 @@ Cm Cm Cm Cm -Ne -Uj -Uj -Uj -Uj -Uj -Uj -Uj -Ne -Ne Cm Cm Cm @@ -1338,18 +1377,41 @@ Cm Cm Cm Cm +"} +(8,1,1) = {" Cm Cm Cm Cm Cm +ve +GK +Gb +Ux +IX +rB +YL +mX +UR +Ux +Ux +Ux +UR +UR +Ux +Ux +ve Cm Cm +ve +ve +ve +ve +ve +ve Cm Cm Cm -"} -(7,1,1) = {" Cm Cm Cm @@ -1362,23 +1424,38 @@ Cm Cm Cm Cm +"} +(9,1,1) = {" Cm Cm -Ne -Ne -Uj -MO -OB -OB -OB -OB -Uj -Ne Cm Cm Cm +gl +GK +Ux +Ux +Bj +Ux +Ux +Yy +Bf +Ux +Ux +Ux +Zp +rc +re +Ux +ve Cm Cm +ve +Ux +Ux +Ux +Ux +ve Cm Cm Cm @@ -1394,15 +1471,38 @@ Cm Cm Cm Cm +"} +(10,1,1) = {" Cm Cm Cm Cm -"} -(8,1,1) = {" Cm +ve +GK +Ux +Ux +Bj +UR +Ux +Yy +Ux +Ux +Ux +Ux +Ke +re +re +Ux +Tp Cm Cm +ve +Ux +vw +Ux +Ux +ve Cm Cm Cm @@ -1414,29 +1514,42 @@ Cm Cm Cm Cm -Ne -Ne -Uj -OB -OB -OB -OB -Zj -Uj -Ne -Ne -Ne Cm Cm Cm Cm +"} +(11,1,1) = {" Cm Cm Cm Cm Cm +ve +sk +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +re +re +re +Ux +ve Cm Cm +ve +Ux +Ux +Ux +Ux +ve Cm Cm Cm @@ -1448,98 +1561,49 @@ Cm Cm Cm Cm -"} -(9,1,1) = {" Cm Cm Cm Cm +"} +(12,1,1) = {" Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne Uj -vm -OB -OB -OB -vm Uj -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(10,1,1) = {" -Cm -Cm -Cm -Cm -Cm -Ne +Uj +Uj ve ve ve ve +Ux +Ux +Ux +Wy ve ve -Ox +NE +Ux +Ux +Ux +Ux +Ho ve ve ve ve ve -OB -OB -OB ve ve -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm +ve +ve +ve +UW +UW +cY +UW +ve +ve Cm Cm Cm @@ -1549,29 +1613,43 @@ Cm Cm Cm "} -(11,1,1) = {" -Cm -Cm -Cm -Cm +(13,1,1) = {" Cm -Ne +Uj +OB +OB +dl +hI +to +Vs +dN +vT +oO +ML +EO +WG +Qg ve -sk -Ux -Ux -kL -Ux -Ux -UR Ux +xY Ux Ux -Fy -EP -ZL -ZL -wM +NA +NA +NA +NA +RB +NA +NA +zU +NA +NA +NA +yz +yz +yz +yz +nP ve Ne Ne @@ -1581,1092 +1659,373 @@ Ne Ne Ne Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(12,1,1) = {" -Cm -Cm -Cm -Cm +(14,1,1) = {" Cm -Ne +Uj +OB +OB +OB +xa +jZ +to +eW +bW +ma +to +hR +tC +MS ve -GK -Gb -Ux -IX -rB -YL -mX -UR Ux +XG +XG Ux +NA +pX +NA +NA +NA +NA +NA +NA +NA +NA +td +yz +LU +yz +ob +bL +ve +Ne +Bc +Bc +Bc +Bc +Bc +JF +Ne +"} +(15,1,1) = {" +Cm +Uj +OB +OB +OB +HG +of +ML +ZU +mC +vR +ML +tC +Jh +to Ux -UR -UR Ux +Od +tZ Ux +TR +ve ve -Ne -Ne ve ve ve ve ve +Fc +Fc +sl +SW +Fc +Wj +Fc +ve +ve ve +Bc +Bc +Bc +Bc +Bc +Bc Ne +"} +(16,1,1) = {" Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(13,1,1) = {" -Cm -Cm -Cm -Cm -Cm -Ne -gl -GK -Ux -Ux -Bj -Ux -Ux -Yy -Bf -Ux -Ux -Ux -Zp -rc -re -Ux -ve -Ne -Ne -ve -Ux -Ux -Ux -Ux -ve -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(14,1,1) = {" -Cm -Cm -Cm -Ne -Ne -Ne -ve -GK -Ux -Ux -Bj -UR -Ux -Yy -Ux -Ux -Ux -Ux -Ke -re -re -Ux -Tp -Ne -Ne -ve -Ux -vw -Ux -Ux -ve -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(15,1,1) = {" -Cm -Ne -Ne -Ne -Ne -Ne -ve -sk -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -re -re -re -Ux -ve -Ne -Ne -ve -Ux -Ux -Ux -Ux -ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(16,1,1) = {" -Cm -Ne -Uj -Uj -Uj -Uj -ve -ve -ve -ve -Ux -Ux -Ux -Wy -ve -ve -NE -Ux -Ux -Ux -Ux -Ho -ve -ve -ve -ve -ve -ve -ve -ve -ve -ve -UW -UW -cY -UW -ve -ve -Ne -Ne -Cm -Cm -Cm -Cm -Ne -Ne -Cm -Cm -"} -(17,1,1) = {" -Cm -Ne Uj OB OB -dl -hI +OB +HG +vk to -Vs -dN -vT -oO ML -EO -WG -Qg -ve +Ln +ZZ +to +ZZ +Yd +eW Ux -xY +hK +fd Ux Ux NA -NA -NA -NA -RB -NA -NA -zU -NA -NA -NA -yz -yz -yz -yz -nP +vz +tI +VW ve +sg +sg +sg +Fc +hq +ud +Dx +YT +Vd +Fc +Tq +Tq +Tq +Bc +Bc +Bc +Bc +Bc +Bc Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -"} -(18,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -xa -jZ -to -eW -bW -ma -to -hR -tC -MS -ve -Ux -XG -XG -Ux -NA -pX -NA -NA -NA -NA -NA -NA -NA -NA -td -yz -LU -yz -ob -bL -ve -Ne -Bc -Bc -Bc -Bc -Bc -JF -Ne -Cm -Cm -"} -(19,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -HG -of -ML -ZU -mC -vR -ML -tC -Jh -to -Ux -Ux -Od -tZ -Ux -TR -ve -ve -ve -ve -ve -ve -ve -Fc -Fc -sl -SW -Fc -Wj -Fc -ve -ve -ve -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(20,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -HG -vk -to -ML -Ln -ZZ -to -ZZ -Yd -eW -Ux -hK -fd -Ux -Ux -NA -vz -tI -VW -ve -ex -ex -ex -Fc -hq -ud -Dx -YT -Vd -Fc -Tq -Tq -Tq -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(21,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -HG -vk -ML -to -ML -cn -ML -to -ML -ZU -Ux -Ux -fd -Ux -Ux -NA -Ux -Ux -lP -qK -ex -ex -sg -jE -VS -Vd -Vd -Vd -Vd -DV -Tq -Tq -Tq -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(22,1,1) = {" -Cm -Ne -Uj -OB -OB -pK -PK -yB -to -ML -EO -Ag -to -Ag -EO -eW -Ux -Ux -fd -Ux -Ux -NA -vz -LP -lc -ve -ex -ex -ex -JW -ql -BU -ud -HE -Vd -Fc -Io -Tq -Tq -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(23,1,1) = {" -Cm -Ne -Uj -OB -OB -pK -xa -Mc -JD -ZU -xk -tC -ML -si -ma -ZU -YK -Ux -fd -IY -Ux -NA -ve -ve -ve -ve -ve -ve -ve -Fc -Fc -nF -rD -Fc -bP -Fc -ve -ve -ve -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(24,1,1) = {" -Cm -Ne -Uj -OB -OB -If -ve -ML -rY -ML -tC -Jh -to -ma -fz -TW -ve -Ux -XG -XG -Ux -NA -NA -NA -NA -NA -NA -NA -xv -NA -NA -NA -yz -vF -yz -yz -Hi -ve -Ne -Bc -Bc -Bc -Bc -Bc -tN -Ne -Cm -Cm -"} -(25,1,1) = {" -Cm -Ne -Uj -OB -OB -vm -ve -lS -gL -ms -ri -TG -eW -Yd -Ce -Ct -ve -Ux -Ux -Ux -Ux -cp -NA -NA -NA -SE -NA -NA -vy -NA -NA -NA -yz -yz -yz -yz -eE -ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -"} -(26,1,1) = {" -Cm -Ne -Uj -Uj -Uj -Uj -ve -ve -ve -ve -GD -Ux -Ux -Ux -ve -ve -ve -Ux -Ux -Ux -Ux -Ux -ve -ve -ve -ve -ve -ve -qK -ve -ve -Nz -ve -ve -ve -ve -ve -ve -Ne -Ne -Ne -Ne -Cm -Cm -Ne -Cm -Cm -Cm -"} -(27,1,1) = {" -Cm -Ne -Ne -Ne -Ne -Ne -ve -OD -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(28,1,1) = {" -Cm -Cm -Ne -Ne -Ne -Ne -ve -kf -kf -kf -kf -kf -kf -Ux -Ux -Ux -Ux -Ux -Pm -Ye -km -Ux -ve -ve -ve -ve -ve -ve -ve -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(29,1,1) = {" -Cm -Cm -Cm -Cm -Ne -Ne -ve -dz -dz -dz -dz -dz -dz -Mm -Ux -Ux -Ux -Ux -Sp -dV -ur -Ux -Bo -aV -uZ -KJ -Ve -lL -ve -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(30,1,1) = {" -Cm -Cm -Cm -Cm +(17,1,1) = {" Cm -Ne -Mq -bR -Ux -Ux +Uj +OB +OB +OB +HG +vk +ML +to +ML +cn +ML +to +ML +ZU Ux Ux -dz -Mm +fd Ux Ux +NA Ux -Dz -nX -Ti -sR Ux -Bo -aV -aV -FA -aV -OM -ve -Ne +lP +qK +sg +sg +ex +jE +VS +Vd +Vd +Vd +Vd +DV +Tq +Tq +Tq +Bc +Bc +Bc +Bc +Bc +Bc Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(31,1,1) = {" -Cm -Cm -Cm -Cm +(18,1,1) = {" Cm -Ne -ve -lc -Ux -fo -AF -pr -dz -Mm +Uj +OB +OB +pK +PK +yB +to +ML +EO +Ag +to +Ag +EO +eW Ux Ux -ng -fU -fU -pr +fd Ux Ux +NA +vz +LP +lc ve -ve -ve -vG -aV -Zf -ve -Ne +sg +sg +sg +JW +ql +BU +ud +HE +Vd +Fc +Io +Tq +Tq +Bc +Bc +Bc +Bc +Bc +Bc Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(32,1,1) = {" -Cm -Cm -Cm -Cm +(19,1,1) = {" Cm -Ne -ve -ve -qK -ve -ve +Uj +OB +OB +pK +xa +Mc +JD +ZU +xk +tC +ML +si +ma +ZU +YK +Ux +fd +IY +Ux +NA ve ve ve ve -Ux -Sr ve ve ve +Fc +Fc +nF +rD +Fc +bP +Fc ve ve ve +Bc +Bc +Bc +Bc +Bc +Bc Ne +"} +(20,1,1) = {" +Cm +Uj +OB +OB +If ve -vG -aV -fy +ML +rY +ML +tC +Jh +to +ma +fz +TW +ve +Ux +XG +XG +Ux +NA +NA +NA +NA +NA +NA +NA +xv +NA +NA +NA +yz +vF +yz +yz +Hi ve Ne +Bc +Bc +Bc +Bc +Bc +tN Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(33,1,1) = {" -Cm -Cm -Cm +(21,1,1) = {" Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne +Uj +OB +OB +vm +ve +lS +gL +ms +ri +TG +eW +Yd +Ce +Ct ve Ux -Sr +Ux +Ux +Ux +cp +NA +NA +NA +SE +NA +NA +vy +NA +NA +NA +yz +yz +yz +yz +eE ve Ne Ne @@ -2674,122 +2033,47 @@ Ne Ne Ne Ne -ve -vs -Gn -bu -ve Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm +Ne "} -(34,1,1) = {" -Cm -Cm -Cm +(22,1,1) = {" Cm -Ne -Ne -ve -ve +Uj +Uj +Uj +Uj ve ve ve ve +GD +Ux +Ux +Ux ve ve ve Ux Ux +Ux +Ux +Ux ve ve ve ve ve ve -Ne +qK ve ve +Nz +ve ve ve ve -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(35,1,1) = {" -Cm -Cm -Cm -Cm -Ne -Ne ve -Ux -Ux -Ux -Ux -Ux -Dz -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm Cm Cm Cm @@ -2799,19 +2083,18 @@ Cm Cm Cm "} -(36,1,1) = {" +(23,1,1) = {" +Cm Cm Cm Cm Cm -Ne -Ne ve -Ak -Ux -Ux -Ux -Ux +OD +Ux +Ux +Ux +Ux Ux Ux Ux @@ -2823,58 +2106,6 @@ Ux Ux Ux ve -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(37,1,1) = {" -Cm -Cm -Cm -Cm -Ne -Ne -ve -ve -ve -qK -qK -ve -ve -ve -ve -ve -ve -ve -ve -qK -qK -ve -ve -Ne -Ne Cm Cm Cm @@ -2899,36 +2130,35 @@ Cm Cm Cm "} -(38,1,1) = {" -Cm -Cm -Cm +(24,1,1) = {" Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne Cm Cm Cm Cm +ve +kf +kf +kf +kf +kf +kf +Ux +Ux +Ux +Ux +Ux +Pm +Ye +km +Ux +ve +ve +ve +ve +ve +ve +ve Cm Cm Cm @@ -2946,19 +2176,36 @@ Cm Cm Cm Cm +"} +(25,1,1) = {" Cm Cm -"} -(39,1,1) = {" Cm Cm Cm -Ne -Ne -Ne -Ne -Ne -Ne +ve +dz +dz +dz +dz +dz +dz +Mm +Ux +Ux +Ux +Ux +Sp +dV +ur +Ux +Bo +aV +uZ +KJ +Ve +lL +ve Cm Cm Cm @@ -2976,11 +2223,36 @@ Cm Cm Cm Cm +"} +(26,1,1) = {" Cm Cm Cm Cm Cm +Mq +bR +Ux +Ux +Ux +Ux +dz +Mm +Ux +Ux +Ux +Dz +nX +Ti +sR +Ux +Bo +aV +aV +FA +aV +OM +ve Cm Cm Cm @@ -2999,15 +2271,35 @@ Cm Cm Cm "} -(40,1,1) = {" +(27,1,1) = {" Cm Cm Cm Cm -Ne -Ne -Ne Cm +ve +lc +Ux +fo +AF +pr +dz +Mm +Ux +Ux +ng +fU +fU +pr +Ux +Ux +ve +ve +ve +vG +aV +Zf +ve Cm Cm Cm @@ -3025,12 +2317,36 @@ Cm Cm Cm Cm +"} +(28,1,1) = {" Cm Cm Cm Cm Cm +ve +ve +qK +ve +ve +ve +ve +ve +ve +Ux +Sr +ve +ve +ve +ve +ve +ve Cm +ve +vG +aV +fy +ve Cm Cm Cm @@ -3049,13 +2365,12 @@ Cm Cm Cm "} -(41,1,1) = {" +(29,1,1) = {" Cm Cm Cm Cm Cm -Ne Cm Cm Cm @@ -3064,12 +2379,21 @@ Cm Cm Cm Cm +ve +Ux +Sr +ve Cm Cm Cm Cm Cm Cm +ve +vs +Gn +bu +ve Cm Cm Cm @@ -3087,19 +2411,41 @@ Cm Cm Cm Cm +"} +(30,1,1) = {" Cm Cm Cm Cm Cm +ve +ve +ve +ve +ve +ve +ve +ve +ve +Ux +Ux +ve +ve +ve +ve +ve +ve Cm +ve +ve +ve +ve +ve Cm Cm Cm Cm Cm -"} -(42,1,1) = {" Cm Cm Cm @@ -3112,11 +2458,30 @@ Cm Cm Cm Cm +"} +(31,1,1) = {" Cm Cm Cm Cm Cm +ve +Ux +Ux +Ux +Ux +Ux +Dz +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +ve Cm Cm Cm @@ -3140,16 +2505,33 @@ Cm Cm Cm Cm +"} +(32,1,1) = {" Cm Cm Cm Cm Cm +ve +Ak +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +ve Cm Cm Cm -"} -(43,1,1) = {" Cm Cm Cm @@ -3170,11 +2552,30 @@ Cm Cm Cm Cm +"} +(33,1,1) = {" Cm Cm Cm Cm Cm +ve +ve +ve +qK +qK +ve +ve +ve +ve +ve +ve +ve +ve +qK +qK +ve +ve Cm Cm Cm diff --git a/_maps/virtual_domains/gondola_asteroid.dmm b/_maps/virtual_domains/gondola_asteroid.dmm index 6ed8763f9a6f5..d01ab29e14032 100644 --- a/_maps/virtual_domains/gondola_asteroid.dmm +++ b/_maps/virtual_domains/gondola_asteroid.dmm @@ -1,38 +1,39 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "c" = ( /turf/open/space/basic, -/area/space) +/area/space/virtual_domain) "e" = ( -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/random, +/area/virtual_domain) "g" = ( /obj/structure/marker_beacon{ light_color = "#FFE8AA"; light_range = 20 }, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "h" = ( /turf/closed/mineral/random, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "m" = ( /obj/structure/closet/crate/secure/bitrunning/encrypted/gondola, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "n" = ( /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "o" = ( /turf/template_noop, /area/template_noop) "q" = ( /obj/structure/flora/tree/palm, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "r" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -40,22 +41,25 @@ "s" = ( /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "t" = ( /turf/template_noop, /area/virtual_domain/safehouse) +"v" = ( +/turf/open/misc/asteroid/airless, +/area/virtual_domain) "w" = ( /obj/structure/water_source/puddle, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "y" = ( /obj/structure/flora/bush/stalky/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "z" = ( /mob/living/basic/pet/gondola/virtual_domain, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "A" = ( /obj/structure/chair/wood{ dir = 8 @@ -64,27 +68,23 @@ /area/virtual_domain/safehouse) "C" = ( /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "D" = ( /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "F" = ( /obj/structure/flora/bush/grassy/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "I" = ( /obj/structure/flora/bush/reed/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "J" = ( /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) -"K" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "M" = ( /obj/structure/table/wood, /obj/item/storage/bag/tray, @@ -95,7 +95,7 @@ "N" = ( /obj/structure/flora/bush/large/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "O" = ( /obj/modular_map_root/safehouse{ key = "shuttle_space" @@ -105,19 +105,19 @@ "Q" = ( /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "T" = ( /obj/structure/flora/bush/sunny/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "V" = ( /obj/structure/flora/coconuts, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "W" = ( /obj/structure/flora/bush/ferny/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" o @@ -245,7 +245,7 @@ h h a a -K +a o o o @@ -469,7 +469,7 @@ h h h h -e +v a a a @@ -514,7 +514,7 @@ C h h h -e +v c c c @@ -559,7 +559,7 @@ C h h h -e +v c c c @@ -604,7 +604,7 @@ C h h h -e +v c c c @@ -649,7 +649,7 @@ C h h h -e +v c c c @@ -694,7 +694,7 @@ C h h h -e +v c c c @@ -739,7 +739,7 @@ h h h h -e +v c c c @@ -784,7 +784,7 @@ h h h h -e +v c c c @@ -829,7 +829,7 @@ h h h h -e +v c c c @@ -1021,7 +1021,7 @@ a "} (21,1,1) = {" a -e +v h h h @@ -1066,8 +1066,8 @@ a "} (22,1,1) = {" a -e -e +v +v h h h @@ -1111,8 +1111,8 @@ a "} (23,1,1) = {" a -e -e +v +v h h h @@ -1156,8 +1156,8 @@ a "} (24,1,1) = {" a -e -e +v +v h h h @@ -1202,8 +1202,8 @@ a (25,1,1) = {" a a -e -e +v +v h h h @@ -1247,8 +1247,8 @@ a (26,1,1) = {" o a -e -e +v +v h h h @@ -1292,8 +1292,8 @@ a (27,1,1) = {" o a -e -e +v +v h h h @@ -1337,8 +1337,8 @@ a (28,1,1) = {" o a -e -e +v +v h h h @@ -1383,8 +1383,8 @@ a o a a -e -e +v +v h h h @@ -1428,8 +1428,8 @@ a o o a -e -e +v +v h h C @@ -1457,8 +1457,8 @@ C h h h -e -e +v +v c c c @@ -1473,7 +1473,7 @@ a o o a -e +v h h C @@ -1501,9 +1501,9 @@ C h h h -e -e -e +v +v +v c c c @@ -1545,9 +1545,9 @@ h h h h -e -e -e +v +v +v h h a @@ -1590,8 +1590,8 @@ h h h h -e -e +v +v h h h @@ -1664,11 +1664,11 @@ h h h h -e -e -e -e -e +v +v +v +v +v h h h diff --git a/_maps/virtual_domains/hierophant.dmm b/_maps/virtual_domains/hierophant.dmm index 997dfa74faceb..89035dc714910 100644 --- a/_maps/virtual_domains/hierophant.dmm +++ b/_maps/virtual_domains/hierophant.dmm @@ -9,6 +9,10 @@ }, /turf/open/indestructible/hierophant/two, /area/lavaland/surface/outdoors/virtual_domain) +"g" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) "h" = ( /obj/effect/light_emitter{ set_cap = 3; @@ -33,9 +37,6 @@ "w" = ( /turf/template_noop, /area/virtual_domain/safehouse) -"y" = ( -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "E" = ( /mob/living/simple_animal/hostile/megafauna/hierophant, /turf/open/indestructible/hierophant/two, @@ -59,55 +60,54 @@ /turf/open/indestructible/hierophant, /area/lavaland/surface/outdoors/virtual_domain) "W" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "Y" = ( /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W o o -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W W "} (2,1,1) = {" -y +W r r r @@ -131,11 +131,10 @@ r r r r -y +W o o -y -Y +W Y Y Y @@ -144,10 +143,11 @@ Y Y Y Y -y +g +W "} (3,1,1) = {" -y +W r a a @@ -171,10 +171,10 @@ a a a r -y +W o o -y +W Y Y Y @@ -184,10 +184,10 @@ Y Y Y Y -y +W "} (4,1,1) = {" -y +W r a a @@ -211,10 +211,10 @@ a a a r -y -y -y -y +W +W +W +W Y Y Y @@ -224,10 +224,10 @@ Y Y Y Y -y +W "} (5,1,1) = {" -y +W r a a @@ -253,8 +253,8 @@ a a r r -y -y +W +W Y Y Y @@ -264,10 +264,10 @@ Y Y Y Y -y +W "} (6,1,1) = {" -y +W r a h @@ -294,7 +294,7 @@ a a a r -y +W Y Y Y @@ -304,10 +304,10 @@ Y Y Y Y -y +W "} (7,1,1) = {" -y +W r a h @@ -344,10 +344,10 @@ Y Y Y Y -y +W "} (8,1,1) = {" -y +W r a a @@ -384,10 +384,10 @@ Y Y Y Y -y +W "} (9,1,1) = {" -y +W r a a @@ -411,7 +411,7 @@ a a a r -y +W r S a @@ -424,10 +424,10 @@ Y Y Y Y -y +W "} (10,1,1) = {" -y +W r a a @@ -451,8 +451,8 @@ a a a r -y -y +W +W r a a @@ -464,10 +464,10 @@ w w H Y -y +W "} (11,1,1) = {" -y +W r a r @@ -491,9 +491,9 @@ a r a r -y -y -y +W +W +W r a a @@ -504,10 +504,10 @@ w w w Y -y +W "} (12,1,1) = {" -y +W r a a @@ -531,9 +531,9 @@ a a a r -y -y -y +W +W +W r a a @@ -544,10 +544,10 @@ w w w Y -y +W "} (13,1,1) = {" -y +W r h a @@ -571,9 +571,9 @@ a a h r -y -y -y +W +W +W r a a @@ -584,10 +584,10 @@ w w w Y -y +W "} (14,1,1) = {" -y +W r a a @@ -611,9 +611,9 @@ a a a r -y -y -y +W +W +W r a a @@ -624,10 +624,10 @@ w w w Y -y +W "} (15,1,1) = {" -y +W r a r @@ -651,9 +651,9 @@ a r a r -y -y -y +W +W +W r a a @@ -664,10 +664,10 @@ w w w Y -y +W "} (16,1,1) = {" -y +W r a a @@ -691,8 +691,8 @@ a a a r -y -y +W +W r a a @@ -704,10 +704,10 @@ w w u Y -y +W "} (17,1,1) = {" -y +W r a a @@ -731,7 +731,7 @@ a a a r -y +W r a a @@ -744,10 +744,10 @@ Y Y Y Y -y +W "} (18,1,1) = {" -y +W r a a @@ -784,10 +784,10 @@ Y Y Y Y -y +W "} (19,1,1) = {" -y +W r a h @@ -824,10 +824,10 @@ Y Y Y Y -y +W "} (20,1,1) = {" -y +W r a h @@ -854,7 +854,7 @@ a a a r -y +W Y Y Y @@ -864,10 +864,10 @@ Y Y Y Y -y +W "} (21,1,1) = {" -y +W r a a @@ -893,8 +893,8 @@ a a r r -y -y +W +W Y Y Y @@ -904,10 +904,10 @@ Y Y Y Y -y +W "} (22,1,1) = {" -y +W r a a @@ -931,10 +931,10 @@ a a a r -y -y -y -y +W +W +W +W Y Y Y @@ -944,10 +944,10 @@ Y Y Y Y -y +W "} (23,1,1) = {" -y +W r a a @@ -971,10 +971,10 @@ a a a r -y +W o o -y +W Y Y Y @@ -984,10 +984,10 @@ Y Y Y Y -y +W "} (24,1,1) = {" -y +W r r r @@ -1011,10 +1011,10 @@ r r r r -y +W o o -y +W Y Y Y @@ -1024,45 +1024,45 @@ Y Y Y Y -y +W "} (25,1,1) = {" -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W o o -y -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W +W "} diff --git a/_maps/virtual_domains/island_brawl.dmm b/_maps/virtual_domains/island_brawl.dmm index 2c8a12c6c5793..fa04316b9b626 100644 --- a/_maps/virtual_domains/island_brawl.dmm +++ b/_maps/virtual_domains/island_brawl.dmm @@ -442,6 +442,10 @@ /obj/machinery/food_cart, /turf/open/floor/plating, /area/virtual_domain) +"eZ" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/water/beach, +/area/virtual_domain/fullbright) "fe" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -1145,10 +1149,6 @@ }, /turf/open/floor/wood/large, /area/virtual_domain) -"oX" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/virtual_domain/fullbright) "oZ" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/siding/wood{ @@ -3466,12 +3466,7 @@ /area/virtual_domain/fullbright) "Rk" = ( /obj/structure/table/glass, -/obj/machinery/fax{ - fax_name = "Beach Hotel Fax"; - name = "Beach Hotel's Fax Machine"; - pixel_y = 8; - visible_to_network = 0 - }, +/obj/item/storage/box/donkpockets, /turf/open/floor/iron/dark/diagonal, /area/virtual_domain) "Rs" = ( @@ -5695,7 +5690,7 @@ SR SR SR SR -oX +SR "} (19,1,1) = {" SR @@ -5776,7 +5771,7 @@ cO cO cO cO -cO +eZ SR "} (20,1,1) = {" diff --git a/_maps/virtual_domains/pipedream.dmm b/_maps/virtual_domains/pipedream.dmm index af42f707252e3..dd7fdd90f8bc0 100644 --- a/_maps/virtual_domains/pipedream.dmm +++ b/_maps/virtual_domains/pipedream.dmm @@ -22,17 +22,10 @@ }, /turf/open/floor/iron, /area/virtual_domain) -"aK" = ( -/turf/open/space/basic, -/area/virtual_domain) "aL" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron, /area/virtual_domain) -"bl" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/template_noop, -/area/virtual_domain/safehouse) "bq" = ( /obj/machinery/light/small/red/dim{ dir = 1 @@ -110,6 +103,9 @@ }, /turf/open/floor/iron, /area/virtual_domain) +"dr" = ( +/turf/open/space/basic, +/area/space/virtual_domain) "dx" = ( /obj/effect/turf_decal/trimline/yellow/line, /obj/item/shard, @@ -150,6 +146,10 @@ }, /turf/open/floor/plating, /area/virtual_domain) +"ev" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) "eJ" = ( /obj/structure/disposalpipe/sorting{ dir = 2 @@ -220,7 +220,6 @@ /area/virtual_domain) "gc" = ( /obj/structure/disposalpipe/broken, -/obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/plating, /area/virtual_domain) "gj" = ( @@ -271,11 +270,6 @@ }, /turf/open/floor/iron, /area/virtual_domain) -"io" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/closet_empty/crate/with_loot, -/turf/open/floor/iron, -/area/virtual_domain) "iw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -295,9 +289,6 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/iron, /area/virtual_domain) -"iZ" = ( -/turf/template_noop, -/area/virtual_domain/safehouse) "jv" = ( /obj/effect/turf_decal/trimline/yellow/line{ dir = 8 @@ -371,6 +362,10 @@ /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/plating, /area/virtual_domain) +"lt" = ( +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/plating, +/area/virtual_domain) "lx" = ( /obj/machinery/door/poddoor/shutters/indestructible{ dir = 4; @@ -482,6 +477,12 @@ }, /turf/open/floor/carpet/orange, /area/virtual_domain) +"pb" = ( +/obj/structure/broken_flooring/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain) "pf" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/mapping_helpers/damaged_window, @@ -491,6 +492,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/virtual_domain) +"po" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/closet_empty/crate/with_loot, +/turf/open/floor/iron, +/area/virtual_domain) "pv" = ( /obj/structure/broken_flooring/side{ dir = 4 @@ -630,6 +636,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/virtual_domain) +"tE" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/plating, +/area/virtual_domain) "ud" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/carpet/royalblue{ @@ -695,6 +708,13 @@ }, /turf/open/floor/plating, /area/virtual_domain) +"vA" = ( +/obj/effect/spawner/random/structure/closet_empty/crate/with_loot, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/iron, +/area/virtual_domain) "vL" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/iron, @@ -721,10 +741,6 @@ icon_state = "carpet_royalblue-207" }, /area/virtual_domain) -"wl" = ( -/obj/item/shard, -/turf/open/space/basic, -/area/virtual_domain) "wm" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -776,6 +792,10 @@ }, /turf/open/floor/plating, /area/virtual_domain) +"xc" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "xj" = ( /obj/structure/railing/corner/end{ dir = 4 @@ -808,10 +828,6 @@ /obj/machinery/light/broken, /turf/open/floor/iron, /area/virtual_domain) -"xF" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/virtual_domain) "xM" = ( /obj/effect/turf_decal/trimline/yellow/line{ dir = 4 @@ -843,19 +859,10 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/virtual_domain) -"zd" = ( -/mob/living/basic/pet/cat/space, -/obj/structure/bed/dogbed{ - name = "cat bed" - }, -/obj/item/toy/plush/moth{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/machinery/light/small/dim/directional/south, -/obj/structure/sign/poster/official/moth_hardhat/directional/west, -/turf/open/floor/plating, -/area/virtual_domain) +"zn" = ( +/obj/item/stack/rods/two, +/turf/open/space/basic, +/area/space/virtual_domain) "zp" = ( /obj/structure/chair/sofa/corp/right{ dir = 1 @@ -887,22 +894,17 @@ /obj/machinery/light/broken, /turf/open/floor/iron, /area/virtual_domain) -"Av" = ( -/obj/item/stack/rods/two, -/turf/open/space/basic, +"Aw" = ( +/obj/structure/lattice/catwalk{ + name = "industrial lift" + }, +/turf/open/chasm, /area/virtual_domain) "AJ" = ( /obj/effect/decal/cleanable/generic, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/virtual_domain) -"AO" = ( -/obj/effect/spawner/random/structure/closet_empty/crate/with_loot, -/obj/effect/turf_decal/stripes{ - dir = 9 - }, -/turf/open/floor/iron, -/area/virtual_domain) "AP" = ( /obj/structure/railing, /turf/open/floor/plating, @@ -1039,12 +1041,6 @@ /obj/structure/flora/rock/style_random, /turf/open/misc/asteroid/airless, /area/virtual_domain) -"EE" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/closet_empty/crate/with_loot, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/virtual_domain) "EI" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -1062,9 +1058,11 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/virtual_domain) -"EK" = ( -/obj/structure/disposalpipe/broken, -/turf/open/floor/plating, +"Fa" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/closet_empty/crate/with_loot, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, /area/virtual_domain) "Ff" = ( /obj/structure/disposalpipe/trunk/multiz{ @@ -1109,6 +1107,9 @@ icon_state = "carpet_royalblue-21" }, /area/virtual_domain) +"Gf" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "Gh" = ( /obj/machinery/door/airlock/maintenance, /turf/open/floor/plating, @@ -1144,6 +1145,10 @@ /obj/effect/turf_decal/trimline/yellow/arrow_ccw, /turf/open/floor/iron, /area/virtual_domain) +"GQ" = ( +/obj/item/shard, +/turf/open/space/basic, +/area/space/virtual_domain) "GV" = ( /obj/machinery/light/small/red/dim{ dir = 8 @@ -1215,6 +1220,10 @@ /obj/structure/sign/warning/doors/directional/east, /turf/open/floor/iron, /area/virtual_domain) +"Jo" = ( +/obj/effect/smooths_with_walls, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "Jq" = ( /obj/structure/broken_flooring/pile{ dir = 1 @@ -1229,6 +1238,9 @@ /obj/structure/sign/warning/chem_diamond/directional/west, /turf/open/floor/plating, /area/virtual_domain) +"JR" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) "JT" = ( /obj/structure/lattice/catwalk{ name = "industrial lift" @@ -1252,10 +1264,9 @@ /turf/open/floor/plating, /area/virtual_domain) "KX" = ( -/obj/structure/lattice/catwalk{ - name = "industrial lift" - }, -/turf/open/chasm, +/obj/structure/disposalpipe/broken, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/plating, /area/virtual_domain) "Ln" = ( /obj/structure/disposalpipe/broken{ @@ -1376,10 +1387,6 @@ }, /turf/open/floor/plating, /area/virtual_domain) -"Ou" = ( -/obj/effect/landmark/bitrunning/mob_segment, -/turf/open/floor/plating, -/area/virtual_domain) "OJ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes{ @@ -1454,6 +1461,12 @@ }, /turf/open/floor/plating, /area/virtual_domain) +"Qo" = ( +/obj/modular_map_root/safehouse{ + key = "shuttle_space" + }, +/turf/template_noop, +/area/virtual_domain/safehouse) "Qr" = ( /turf/closed/indestructible/fakedoor/maintenance{ name = "maintenance access" @@ -1507,13 +1520,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/virtual_domain) -"Rs" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/landmark/bitrunning/mob_segment, -/turf/open/floor/plating, -/area/virtual_domain) "Ru" = ( /obj/machinery/door/airlock/external/glass/ruin, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -1529,9 +1535,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron, /area/virtual_domain) -"RJ" = ( -/turf/closed/indestructible/binary, -/area/virtual_domain) "RK" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/iron, @@ -1574,12 +1577,6 @@ }, /turf/closed/mineral, /area/virtual_domain) -"ST" = ( -/obj/modular_map_root/safehouse{ - key = "shuttle_space" - }, -/turf/template_noop, -/area/virtual_domain/safehouse) "SU" = ( /obj/effect/spawner/structure/window, /obj/item/stack/rods/two, @@ -1597,12 +1594,6 @@ /obj/effect/mob_spawn/corpse/human/factory/qm, /turf/open/floor/iron, /area/virtual_domain) -"Tn" = ( -/obj/structure/broken_flooring/corner{ - dir = 4 - }, -/turf/open/floor/plating, -/area/virtual_domain) "Tp" = ( /obj/machinery/door/poddoor/shutters/indestructible{ dir = 4; @@ -1833,6 +1824,19 @@ /obj/structure/broken_flooring/corner/directional/west, /turf/open/floor/plating, /area/virtual_domain) +"Ym" = ( +/mob/living/basic/pet/cat/space, +/obj/structure/bed/dogbed{ + name = "cat bed" + }, +/obj/item/toy/plush/moth{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/machinery/light/small/dim/directional/south, +/obj/structure/sign/poster/official/moth_hardhat/directional/west, +/turf/open/floor/plating, +/area/virtual_domain) "Yt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -1915,19 +1919,19 @@ yQ yQ yQ yQ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf +Gf +Jo +Gf +Gf +Gf +Gf +Gf +Gf yQ yQ yQ @@ -1965,7 +1969,7 @@ yQ yQ yQ yQ -RJ +Gf rO rO eg @@ -1977,7 +1981,7 @@ eg Xb rO rO -RJ +Gf yQ yQ yQ @@ -2015,7 +2019,7 @@ yQ yQ yQ yQ -RJ +Gf rO Bx SZ @@ -2027,14 +2031,14 @@ OQ bs Ib rO -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf yQ yQ "} @@ -2057,15 +2061,15 @@ yQ yQ yQ yQ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf eg ho ho @@ -2077,16 +2081,16 @@ pa bs zp eY -RJ -RJ +Gf +Gf rO -RJ -RJ +Gf +Gf rO rO -RJ -RJ -xF +Gf +Gf +xc "} (5,1,1) = {" yQ @@ -2107,7 +2111,7 @@ yQ yQ yQ yQ -RJ +Jo eg eg eg @@ -2115,7 +2119,7 @@ eg eg eg eg -RJ +Gf eg um DP @@ -2136,7 +2140,7 @@ AU rO rO rO -RJ +Gf "} (6,1,1) = {" yQ @@ -2157,15 +2161,15 @@ yQ yQ yQ yQ -RJ +Gf eg -AO +vA Dr bw Jq -EK +gc eg -RJ +Gf eg Hn fK @@ -2180,13 +2184,13 @@ eY rO Ez AU -aK -aK +dr +dr AU AU BN rO -RJ +Gf "} (7,1,1) = {" yQ @@ -2207,7 +2211,7 @@ yQ yQ yQ yQ -RJ +Gf eg jQ lW @@ -2215,7 +2219,7 @@ kU vU lN eg -RJ +Gf eg QI Fo @@ -2231,12 +2235,12 @@ rO AU AU BN -aK -aK -aK +dr +dr +dr AU rO -RJ +Gf "} (8,1,1) = {" yQ @@ -2257,15 +2261,15 @@ yQ yQ yQ yQ -RJ +Gf eg uU gj -Ou -Tn +lt +pb OR eg -RJ +Gf eg eg uk @@ -2276,17 +2280,17 @@ eg qV Vb eY -aK -aK -aK -aK -aK -aK -aK -aK -aK -aK -RJ +dr +dr +dr +dr +dr +dr +dr +dr +dr +dr +Gf "} (9,1,1) = {" yQ @@ -2307,7 +2311,7 @@ yQ yQ yQ yQ -RJ +Gf eg ki gj @@ -2315,7 +2319,7 @@ kU kU kU eg -RJ +Gf eg kU kU @@ -2326,17 +2330,17 @@ Qj FK nc eY -aK -aK -aK -aK -aK -aK +dr +dr +dr +dr +dr +dr AU -aK -aK -aK -RJ +dr +dr +dr +Gf "} (10,1,1) = {" yQ @@ -2352,12 +2356,12 @@ yQ yQ yQ yQ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Jo +Gf +Gf +Gf +Gf eg eg kJ @@ -2365,7 +2369,7 @@ lx lx lp eg -RJ +Gf eg mu AJ @@ -2376,17 +2380,17 @@ BW hi Sg eY -aK -aK -aK -aK -aK -aK -aK -aK -aK -aK -RJ +dr +dr +dr +dr +dr +dr +dr +dr +dr +dr +Gf "} (11,1,1) = {" yQ @@ -2395,14 +2399,14 @@ yQ yQ yQ yQ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf eg eg eg @@ -2426,26 +2430,26 @@ XR vQ Vg eY -aK -aK -aK -iZ -iZ -iZ -iZ -iZ -ST -aK -RJ +dr +dr +dr +JR +JR +JR +JR +JR +Qo +dr +Gf "} (12,1,1) = {" yQ yQ yQ yQ -RJ -RJ -RJ +yQ +yQ +Gf eg eg eg @@ -2477,25 +2481,25 @@ hi CX eY eY -aK -aK -iZ -iZ -iZ -iZ -iZ -iZ -aK -RJ +dr +dr +JR +JR +JR +JR +JR +JR +dr +Gf "} (13,1,1) = {" yQ yQ yQ yQ -RJ -RJ -RJ +yQ +Gf +Gf eg VA bA @@ -2508,7 +2512,7 @@ kU pv AP IZ -KX +Aw Wd uv DE @@ -2529,22 +2533,22 @@ XL eg tr eY -iZ -iZ -iZ -iZ -iZ -iZ -aK -RJ +JR +JR +JR +JR +JR +JR +dr +Gf "} (14,1,1) = {" yQ yQ yQ yQ -RJ -RJ +yQ +Gf kU kU Zy @@ -2557,14 +2561,14 @@ mu uF xl AP -KX +Aw JT bG -Rs +tE DA DA zE -gc +KX mu Yz lW @@ -2579,23 +2583,23 @@ Wp Ru hi gs -iZ -iZ -iZ -iZ -iZ -iZ -aK -RJ +JR +JR +JR +JR +JR +JR +dr +Gf "} (15,1,1) = {" yQ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf +Gf kU QP kU @@ -2607,8 +2611,8 @@ iz jS gj rJ -KX -KX +Aw +Aw Wd Ff lN @@ -2629,23 +2633,23 @@ cw eY tr eY -iZ -iZ -iZ -iZ -iZ -iZ -aK -RJ +JR +JR +JR +JR +JR +JR +dr +Gf "} (16,1,1) = {" yQ -RJ +Gf rO rO rO rO -RJ +Gf eg eg eg @@ -2677,20 +2681,20 @@ FK CX eY eY -aK -aK -iZ -iZ -iZ -iZ -iZ -iZ -aK -RJ +dr +dr +JR +JR +JR +JR +JR +JR +dr +Gf "} (17,1,1) = {" yQ -RJ +Gf rO BN AU @@ -2702,7 +2706,7 @@ QW My Qy kU -io +po eg tr Is @@ -2726,27 +2730,27 @@ kU FK rz eY -aK -aK -aK -iZ -iZ -iZ -iZ -iZ -bl -aK -RJ +dr +dr +dr +JR +JR +JR +JR +JR +ev +dr +Gf "} (18,1,1) = {" yQ -RJ -aK +Gf +dr AU AU AU -aK -aK +dr +dr eg Ct oN @@ -2758,7 +2762,7 @@ Tp Tp Tp eg -zd +Ym eg eg xa @@ -2776,27 +2780,27 @@ UO hi CX eY -aK -aK -aK -aK -aK -aK -aK -aK -aK -aK -RJ +dr +dr +dr +dr +dr +dr +dr +dr +dr +dr +Gf "} (19,1,1) = {" -RJ -RJ -aK -aK -aK -aK -wl -aK +Gf +Gf +dr +dr +dr +dr +GQ +dr yX ve Tt @@ -2826,27 +2830,27 @@ kU hi Ok eY -aK -aK -aK -aK -aK -aK -aK -aK -aK -aK -RJ +dr +dr +dr +dr +dr +dr +dr +dr +dr +dr +Gf "} (20,1,1) = {" -RJ -aK -aK -aK -aK -aK -aK -aK +Gf +dr +dr +dr +dr +dr +dr +dr tr uz Mh @@ -2859,11 +2863,11 @@ Yl pJ eg kn -Tn +pb kU -Ou +lt kU -EE +Fa kU YF eg @@ -2877,25 +2881,25 @@ Ci YP eY eY -aK -aK -aK -aK -aK -aK -aK -aK -aK -RJ +dr +dr +dr +dr +dr +dr +dr +dr +dr +Gf "} (21,1,1) = {" -RJ -aK -aK -aK -aK -aK -Av +Gf +dr +dr +dr +dr +dr +zn BN tr kU @@ -2911,7 +2915,7 @@ eg rc mu rM -EK +gc vQ vQ mu @@ -2927,25 +2931,25 @@ hi hi af eY -aK -aK -aK -aK -aK -aK -aK -aK -aK -RJ +dr +dr +dr +dr +dr +dr +dr +dr +dr +Gf "} (22,1,1) = {" -RJ -aK -aK -aK -aK -aK -aK +Gf +dr +dr +dr +dr +dr +dr AU eg eg @@ -2977,24 +2981,24 @@ hi lN QK eY -aK -aK -aK -aK +dr +dr +dr +dr BN -aK -aK -aK -aK -RJ +dr +dr +dr +dr +Gf "} (23,1,1) = {" -RJ -aK -aK -aK -aK -aK +Gf +dr +dr +dr +dr +dr AU AU rO @@ -3027,28 +3031,28 @@ hi hi Nc eY -aK +dr BN AU -aK -aK -aK -aK -aK -aK -RJ +dr +dr +dr +dr +dr +dr +Gf "} (24,1,1) = {" -RJ -RJ -aK -aK -aK +Gf +Gf +dr +dr +dr AU Ez rO rO -RJ +Gf rO rO Vy @@ -3064,8 +3068,8 @@ jv fR cB rO -RJ -RJ +Gf +Gf eg Ry hk @@ -3081,24 +3085,24 @@ rO rO AU AU -aK -aK -aK -aK +dr +dr +dr +dr rO -RJ +Gf "} (25,1,1) = {" yQ -RJ -aK +Gf +dr AU BN AU rO rO -RJ -RJ +Gf +Gf eY Xm TH @@ -3114,8 +3118,8 @@ uP Ge vb eg -RJ -RJ +Gf +Gf eg rO rO @@ -3126,29 +3130,29 @@ eg eg rO rO -RJ -RJ +Jo +Gf rO rO rO -RJ -RJ +Gf +Gf rO rO rO -RJ +Gf "} (26,1,1) = {" yQ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf rO rO -RJ -RJ -RJ +Gf +Gf +Gf eY Bd vL @@ -3164,41 +3168,41 @@ wh Zg Nu eg -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf +Gf +Jo +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf +Gf "} (27,1,1) = {" yQ yQ yQ yQ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf yQ -RJ +Gf eY Jl RK @@ -3214,8 +3218,8 @@ bx Cv Nu eg -RJ -RJ +Gf +yQ yQ yQ yQ @@ -3248,7 +3252,7 @@ yQ yQ yQ yQ -RJ +Gf eY NW UY @@ -3264,7 +3268,7 @@ wq Zg Nu eg -RJ +Gf yQ yQ yQ @@ -3298,7 +3302,7 @@ yQ yQ yQ yQ -RJ +Gf eY xk Te @@ -3314,7 +3318,7 @@ ZI Ex xE eg -RJ +Gf yQ yQ yQ @@ -3348,7 +3352,7 @@ yQ yQ yQ yQ -RJ +Gf eY eY eY @@ -3364,7 +3368,7 @@ xM Qv LU rO -RJ +Gf yQ yQ yQ @@ -3398,11 +3402,11 @@ yQ yQ yQ yQ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf eg Gs jH @@ -3414,7 +3418,7 @@ eg rO rO rO -RJ +Gf yQ yQ yQ @@ -3452,19 +3456,19 @@ yQ yQ yQ yQ -RJ +Gf eg Ok nz IK eg -RJ -RJ -RJ -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf +Gf +Gf +Gf yQ yQ yQ @@ -3502,13 +3506,13 @@ yQ yQ yQ yQ -RJ +Gf rO CX hi Nu -RJ -RJ +Gf +Gf yQ yQ yQ @@ -3552,13 +3556,13 @@ yQ yQ yQ yQ -RJ +Gf rO CX -RJ +Gf Lp eg -RJ +Gf yQ yQ yQ @@ -3602,13 +3606,13 @@ yQ yQ yQ yQ -RJ -RJ +Gf +Gf fl -RJ -RJ -RJ -RJ +Gf +Gf +Gf +Gf yQ yQ yQ @@ -3652,10 +3656,10 @@ yQ yQ yQ yQ -RJ -RJ -RJ -RJ +yQ +Gf +Gf +Gf yQ yQ yQ diff --git a/_maps/virtual_domains/pirates.dmm b/_maps/virtual_domains/pirates.dmm index 2d3cf104335b4..3f6b66d6d4480 100644 --- a/_maps/virtual_domains/pirates.dmm +++ b/_maps/virtual_domains/pirates.dmm @@ -134,6 +134,9 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/virtual_domain/protected_space/fullbright) +"ha" = ( +/turf/closed/mineral/random/jungle, +/area/virtual_domain/protected_space) "hb" = ( /turf/closed/indestructible/binary, /area/virtual_domain/fullbright) @@ -222,10 +225,6 @@ dir = 4 }, /area/virtual_domain/fullbright) -"mR" = ( -/obj/machinery/smartfridge/drying_rack, -/turf/open/misc/beach/sand, -/area/virtual_domain/fullbright) "na" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/rock/pile, @@ -266,6 +265,10 @@ }, /turf/open/water/beach, /area/virtual_domain/protected_space) +"qV" = ( +/obj/machinery/smartfridge/drying/rack, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) "ri" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -498,6 +501,10 @@ /obj/structure/bonfire/prelit, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) +"Ca" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/protected_space/fullbright) "Ci" = ( /turf/closed/wall/mineral/wood/nonmetal, /area/virtual_domain/fullbright) @@ -592,10 +599,6 @@ /obj/structure/flora/rock/style_2, /turf/open/water/beach, /area/virtual_domain/fullbright) -"GM" = ( -/obj/structure/flora/rock/pile/jungle/style_2, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/protected_space) "Hn" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/mineral/wood/nonmetal, @@ -618,6 +621,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/virtual_domain/protected_space/fullbright) +"Io" = ( +/obj/effect/light_emitter{ + set_cap = 3; + set_luminosity = 5 + }, +/turf/open/misc/beach/coast, +/area/virtual_domain/fullbright) "Jf" = ( /obj/structure/flora/bush/sparsegrass, /turf/open/misc/grass, @@ -672,6 +682,13 @@ /mob/living/basic/trooper/pirate/melee, /turf/open/misc/grass, /area/virtual_domain/fullbright) +"LO" = ( +/obj/effect/light_emitter{ + set_cap = 3; + set_luminosity = 5 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) "LP" = ( /obj/effect/turf_decal/weather/sand{ dir = 5 @@ -761,6 +778,11 @@ /obj/effect/mob_spawn/corpse/human/pirate, /turf/open/misc/dirt/jungle, /area/virtual_domain/protected_space) +"OS" = ( +/obj/structure/flora/rock/pile/jungle/style_2, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "Qc" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood{ @@ -887,6 +909,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/carpet/blue, /area/virtual_domain) +"VI" = ( +/obj/item/flashlight/flare/torch, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) "VP" = ( /turf/closed/mineral/random/jungle, /area/virtual_domain/protected_space/fullbright) @@ -911,9 +937,6 @@ }, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"WW" = ( -/turf/template_noop, -/area/virtual_domain/fullbright) "Xn" = ( /obj/modular_map_root/safehouse{ key = "wood" @@ -1244,7 +1267,7 @@ DM DM hb hb -hb +fR Mc Mc Mc @@ -1474,13 +1497,13 @@ LX wn Ka Mc -hb -hb -hb -hb -hb -hb -fR +Mc +Mc +Mc +Mc +Mc +Mc +Ca "} (12,1,1) = {" xg @@ -1524,7 +1547,7 @@ ub ub ub Xn -hb +Mc "} (13,1,1) = {" hb @@ -1568,7 +1591,7 @@ ub ub ub ub -hb +Mc "} (14,1,1) = {" hb @@ -1578,7 +1601,7 @@ Ul Ul Ul Hn -mR +qV eS eS eS @@ -1612,7 +1635,7 @@ ub ub ub ub -hb +Mc "} (15,1,1) = {" hb @@ -1656,7 +1679,7 @@ ub ub ub ub -hb +Mc "} (16,1,1) = {" hb @@ -1700,7 +1723,7 @@ ub ub ub ub -hb +Mc "} (17,1,1) = {" hb @@ -1744,7 +1767,7 @@ ub ub ub ub -hb +Mc "} (18,1,1) = {" hb @@ -1788,7 +1811,7 @@ ub ub ub zR -hb +Mc "} (19,1,1) = {" hb @@ -1826,13 +1849,13 @@ SE LX In SE -xp -xp -xp -xp -xp -hb -hb +SE +SE +SE +SE +SE +Mc +Mc "} (20,1,1) = {" hb @@ -1870,12 +1893,12 @@ SE XR vX dp -xp -xp -xp -xp -xp -hb +SE +SE +SE +SE +SE +Mc xg "} (21,1,1) = {" @@ -1914,12 +1937,12 @@ ce LX gN In -xp -xp -xp -xp -xp -hb +SE +SE +SE +SE +SE +Mc xg "} (22,1,1) = {" @@ -1958,12 +1981,12 @@ SE sH Ka QJ -xp -xp -xp -xp -xp -hb +SE +SE +SE +SE +SE +Mc xg "} (23,1,1) = {" @@ -2002,12 +2025,12 @@ SE SE SE SE -xp -xp -xp -DM -DM -hb +SE +SE +SE +VP +VP +Mc xg "} (24,1,1) = {" @@ -2046,12 +2069,12 @@ SE SE SE SE -xp -xp -xp -DM -DM -hb +SE +SE +SE +VP +VP +Mc xg "} (25,1,1) = {" @@ -2071,9 +2094,9 @@ eS eS nr eS -eS -SK -xp +VI +Io +LO xp xp xp @@ -2090,12 +2113,12 @@ SE SE SE SE -xp -xp -DM -DM -DM -hb +SE +SE +VP +VP +VP +Mc xg "} (26,1,1) = {" @@ -2114,12 +2137,12 @@ DM DM DM DM -DM -DM +ha +ha RC Nx -DM -DM +ha +ha hb hb xp @@ -2134,12 +2157,12 @@ SE SE SE SE -hb -DM -DM -DM -DM -hb +Mc +VP +VP +VP +VP +Mc xg "} (27,1,1) = {" @@ -2147,7 +2170,7 @@ xg xg xg xg -WW +xg hb DM DM @@ -2159,10 +2182,10 @@ DM DM DM DM -DM +ha br qT -DM +ha DM DM hb @@ -2178,12 +2201,12 @@ SE SE SE Mc -hb -DM -DM -DM -hb -hb +Mc +VP +VP +VP +Mc +Mc xg "} (28,1,1) = {" @@ -2203,11 +2226,11 @@ DM DM DM DM -DM +ha wf qT -DM -DM +ha +ha DM DM hb @@ -2222,11 +2245,11 @@ SE SE Mc Mc -hb -hb -hb -hb -hb +Mc +Mc +Mc +Mc +Mc xg xg "} @@ -2247,13 +2270,13 @@ DM DM DM DM -DM +ha qR Ic Nx -DM -DM -DM +ha +ha +ha DM DM DM @@ -2291,16 +2314,16 @@ DM DM DM DM -DM +ha lM qR Ic ki Nx -DM -DM -DM -DM +ha +ha +ha +ha DM hb hb @@ -2335,17 +2358,17 @@ hb DM DM DM -DM -DM +ha +ha qR qR OE qT Nx na -GM -DM -DM +OS +ha +ha DM hb hb @@ -2380,8 +2403,8 @@ hb DM DM DM -DM -DM +ha +ha qR dz Ic @@ -2389,8 +2412,8 @@ Nx MO qR MJ -DM -DM +ha +ha DM hb xg @@ -2425,7 +2448,7 @@ hb DM DM DM -DM +ha KW qR OB @@ -2434,7 +2457,7 @@ hp kl qR MJ -DM +ha DM hb xg @@ -2469,8 +2492,8 @@ hb hb DM DM -DM -DM +ha +ha qR qR kE @@ -2478,7 +2501,7 @@ hx vo cT tR -DM +ha DM hb xg @@ -2514,15 +2537,15 @@ hb hb hb DM -DM -DM -DM -DM -DM -DM -DM -DM -DM +ha +ha +ha +ha +ha +ha +ha +ha +ha DM hb xg diff --git a/_maps/virtual_domains/psyker_shuffle.dmm b/_maps/virtual_domains/psyker_shuffle.dmm index e53ec600e8a3a..c3434167bb18f 100644 --- a/_maps/virtual_domains/psyker_shuffle.dmm +++ b/_maps/virtual_domains/psyker_shuffle.dmm @@ -2,16 +2,16 @@ "a" = ( /obj/structure/closet/crate/secure, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "b" = ( /obj/item/restraints/legcuffs/beartrap/prearmed, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "e" = ( /obj/item/gun/ballistic/shotgun/lethal, /obj/structure/closet/crate/preopen, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "h" = ( /obj/structure/closet/crate/preopen, /obj/item/gun/ballistic/automatic/mini_uzi, @@ -49,61 +49,61 @@ /obj/item/gun/ballistic/revolver, /turf/template_noop, /area/virtual_domain/safehouse) -"k" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +"i" = ( +/obj/effect/landmark/bitrunning/crate_replacer, +/turf/open/indestructible/dark, +/area/virtual_domain) "m" = ( /obj/item/toy/gun{ pixel_y = 3 }, /obj/structure/closet/crate/wooden, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "o" = ( /turf/template_noop, /area/template_noop) -"q" = ( -/obj/effect/landmark/bitrunning/crate_replacer, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) "r" = ( /mob/living/simple_animal/hostile/mimic, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "s" = ( /mob/living/simple_animal/hostile/mimic/crate, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "t" = ( /turf/template_noop, /area/virtual_domain/safehouse) +"u" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/indestructible/dark, +/area/virtual_domain) "v" = ( /obj/structure/closet/crate/hydroponics, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "x" = ( /obj/item/gun/ballistic/shotgun/lethal, /obj/item/gun/ballistic/revolver/mateba, /obj/structure/closet/crate/preopen, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "B" = ( -/turf/template_noop, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/open/space, +/area/space/virtual_domain) "F" = ( /obj/structure/closet/crate/internals, /obj/item/gun/ballistic/revolver/mateba, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "K" = ( /obj/structure/closet/crate/eva, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "M" = ( /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "N" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -111,23 +111,23 @@ "O" = ( /obj/structure/closet/crate/freezer/surplus_limbs, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "P" = ( /obj/structure/closet/crate/wooden, /obj/item/gun/ballistic/revolver/mateba, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Q" = ( /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "R" = ( /obj/structure/closet/crate/secure/loot, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "S" = ( /obj/structure/closet/crate/secure/bitrunning/encrypted, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "U" = ( /obj/modular_map_root/safehouse{ key = "bathroom" @@ -141,14 +141,15 @@ /obj/projectile/bullet/shotgun_frag12, /obj/projectile/bullet/shotgun_frag12, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Y" = ( /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) (1,1,1) = {" o o +o Y Y Y @@ -162,9 +163,8 @@ Y Y Y Y -Y -Y -k +o +o o o o @@ -177,7 +177,7 @@ o (2,1,1) = {" o o -Y +o Y Q Q @@ -192,7 +192,7 @@ Q a Y Y -Y +o o o o @@ -205,7 +205,7 @@ o (3,1,1) = {" o o -Y +o Y Y K @@ -218,8 +218,7 @@ Q Q Q Q -Q -Y +u Y o o @@ -229,6 +228,7 @@ o o o o +o "} (4,1,1) = {" o @@ -246,8 +246,7 @@ Y Q Q Q -Q -Y +i Y o o @@ -257,6 +256,7 @@ o o o o +o "} (5,1,1) = {" o @@ -920,7 +920,7 @@ Y Y Y Y -q +Y o o o diff --git a/_maps/virtual_domains/psyker_zombies.dmm b/_maps/virtual_domains/psyker_zombies.dmm index 1d4307ebdcef8..4ca97f8ef6315 100644 --- a/_maps/virtual_domains/psyker_zombies.dmm +++ b/_maps/virtual_domains/psyker_zombies.dmm @@ -1,21 +1,25 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "b" = ( /obj/item/pizzabox/bomb/armed, /obj/structure/rack, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "c" = ( /obj/structure/sign/warning/directional/west, /turf/open/chasm, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "e" = ( /obj/effect/mob_spawn/corpse/human/cyber_police, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"f" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/indestructible/dark, +/area/virtual_domain/protected_space) "h" = ( /obj/structure/rack, /turf/open/indestructible/dark, @@ -23,7 +27,7 @@ "i" = ( /obj/structure/sign/warning/directional/east, /turf/open/chasm, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "o" = ( /turf/template_noop, /area/template_noop) @@ -39,7 +43,7 @@ pixel_y = 1 }, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "r" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -51,16 +55,16 @@ /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "A" = ( /obj/effect/spawner/random/trash/caution_sign, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "B" = ( /obj/machinery/door/airlock/abductor, /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "D" = ( /turf/open/indestructible/dark, /area/virtual_domain/protected_space) @@ -68,9 +72,6 @@ /obj/structure/mystery_box/guns, /turf/open/indestructible/dark, /area/virtual_domain/protected_space) -"I" = ( -/turf/closed/indestructible/binary, -/area/virtual_domain/protected_space) "J" = ( /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, @@ -78,11 +79,11 @@ "K" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "M" = ( /obj/effect/mob_spawn/corpse/human/zombie, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "O" = ( /obj/modular_map_root/safehouse{ key = "bathroom" @@ -91,34 +92,34 @@ /area/virtual_domain/safehouse) "Q" = ( /turf/open/chasm, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "R" = ( /obj/effect/mine/explosive/light, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "T" = ( /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "U" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "V" = ( /obj/structure/sign/warning/directional/east, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "W" = ( /obj/effect/mob_spawn/corpse/human/cyber_police, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "X" = ( /mob/living/simple_animal/hostile/zombie, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Y" = ( /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" o @@ -540,10 +541,10 @@ Y Y a Y -I -I -I -I +a +a +a +a a a a @@ -567,10 +568,10 @@ Y Y Y Y -I +a h D -D +f t t t @@ -594,7 +595,7 @@ X Y Y Y -I +a F D D @@ -621,7 +622,7 @@ a Y Y Y -I +a D D D @@ -675,7 +676,7 @@ Y R Y Y -I +a D D D @@ -702,7 +703,7 @@ Y Y Y Y -I +a F D D @@ -729,7 +730,7 @@ a a Y Y -I +a h D D @@ -756,10 +757,10 @@ a a a Y -I -I -I -I +a +a +a +a a a a diff --git a/_maps/virtual_domains/stairs_and_cliffs.dmm b/_maps/virtual_domains/stairs_and_cliffs.dmm index accdf93bf00be..4c1d364d7778d 100644 --- a/_maps/virtual_domains/stairs_and_cliffs.dmm +++ b/_maps/virtual_domains/stairs_and_cliffs.dmm @@ -144,6 +144,10 @@ }, /turf/template_noop, /area/virtual_domain/safehouse) +"wZ" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/rock/snow/ice, +/area/icemoon/underground/explored/virtual_domain) "xB" = ( /obj/structure/railing/corner{ dir = 4 @@ -173,9 +177,6 @@ }, /turf/open/floor/wood, /area/icemoon/underground/explored/virtual_domain) -"Am" = ( -/turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) "AI" = ( /obj/structure/flora/grass/green/style_random, /turf/open/floor/plating/snowed/smoothed, @@ -283,9 +284,8 @@ /turf/closed/indestructible/rock/snow/ice, /area/icemoon/underground/explored/virtual_domain) "RD" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) +/area/virtual_domain/fullbright) "Tz" = ( /obj/item/pickaxe/mini, /turf/open/misc/asteroid/snow, @@ -309,85 +309,84 @@ /area/virtual_domain/safehouse) (1,1,1) = {" -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD RD "} (2,1,1) = {" -Am -Qv +RD Qv Qv Qv @@ -460,10 +459,11 @@ Qv Qv Qv Qv -Am +wZ +RD "} (3,1,1) = {" -Am +RD Qv Qv Qv @@ -537,10 +537,10 @@ Qv Qv Qv Qv -Am +RD "} (4,1,1) = {" -Am +RD Qv Qv Qv @@ -614,10 +614,10 @@ Qv Qv Qv Qv -Am +RD "} (5,1,1) = {" -Am +RD Qv Qv dR @@ -691,10 +691,10 @@ Qv Qv Qv Qv -Am +RD "} (6,1,1) = {" -Am +RD Qv Qv kK @@ -768,10 +768,10 @@ Qv Qv Qv Qv -Am +RD "} (7,1,1) = {" -Am +RD Qv Qv dR @@ -845,10 +845,10 @@ Qv Qv Qv Qv -Am +RD "} (8,1,1) = {" -Am +RD Qv Qv eB @@ -922,10 +922,10 @@ Qv Qv Qv Qv -Am +RD "} (9,1,1) = {" -Am +RD Qv Qv mr @@ -999,10 +999,10 @@ Qv Qv Qv Qv -Am +RD "} (10,1,1) = {" -Am +RD Qv dR sw @@ -1076,10 +1076,10 @@ Qv Qv Qv Qv -Am +RD "} (11,1,1) = {" -Am +RD Qv dR eB @@ -1153,10 +1153,10 @@ Qv Qv Qv Qv -Am +RD "} (12,1,1) = {" -Am +RD Qv dR dR @@ -1230,10 +1230,10 @@ Qv Qv Qv Qv -Am +RD "} (13,1,1) = {" -Am +RD Qv dR sa @@ -1307,10 +1307,10 @@ Qv Qv Qv Qv -Am +RD "} (14,1,1) = {" -Am +RD Qv dR dR @@ -1384,10 +1384,10 @@ Qv Qv Qv Qv -Am +RD "} (15,1,1) = {" -Am +RD Qv sw sa @@ -1461,10 +1461,10 @@ Qv Qv Qv Qv -Am +RD "} (16,1,1) = {" -Am +RD Qv dR sa @@ -1538,10 +1538,10 @@ Qv Qv Qv Qv -Am +RD "} (17,1,1) = {" -Am +RD Qv dR sa @@ -1615,10 +1615,10 @@ Qv Qv Qv Qv -Am +RD "} (18,1,1) = {" -Am +RD Qv Qv dR @@ -1692,10 +1692,10 @@ Qv Qv Qv Qv -Am +RD "} (19,1,1) = {" -Am +RD Qv Qv kK @@ -1769,10 +1769,10 @@ Qv Qv Qv Qv -Am +RD "} (20,1,1) = {" -Am +RD Qv Qv dR @@ -1846,10 +1846,10 @@ Qv Qv Qv Qv -Am +RD "} (21,1,1) = {" -Am +RD Qv Qv dR @@ -1923,10 +1923,10 @@ Qv Qv Qv Qv -Am +RD "} (22,1,1) = {" -Am +RD Qv Qv dR @@ -2000,10 +2000,10 @@ Qv Qv Qv Qv -Am +RD "} (23,1,1) = {" -Am +RD Qv Qv Qv @@ -2077,10 +2077,10 @@ Qv Qv Qv Qv -Am +RD "} (24,1,1) = {" -Am +RD Qv Qv sw @@ -2154,10 +2154,10 @@ Qv Qv Qv Qv -Am +RD "} (25,1,1) = {" -Am +RD Qv Qv dR @@ -2231,10 +2231,10 @@ Qv Qv Qv Qv -Am +RD "} (26,1,1) = {" -Am +RD Qv Qv dR @@ -2308,10 +2308,10 @@ pL Qv Qv Qv -Am +RD "} (27,1,1) = {" -Am +RD Qv Qv dR @@ -2385,10 +2385,10 @@ pL Qv Qv Qv -Am +RD "} (28,1,1) = {" -Am +RD Qv Qv sa @@ -2462,10 +2462,10 @@ pL pL Qv Qv -Am +RD "} (29,1,1) = {" -Am +RD Qv Qv sa @@ -2539,10 +2539,10 @@ pL Qv Qv Qv -Am +RD "} (30,1,1) = {" -Am +RD Qv Qv qc @@ -2616,10 +2616,10 @@ pL Qv Qv Qv -Am +RD "} (31,1,1) = {" -Am +RD Qv pl qc @@ -2693,10 +2693,10 @@ dR dR dR Qv -Am +RD "} (32,1,1) = {" -Am +RD Qv sM sM @@ -2770,10 +2770,10 @@ dR dR Qv Qv -Am +RD "} (33,1,1) = {" -Am +RD Qv sM sM @@ -2847,10 +2847,10 @@ dR dR Qv Qv -Am +RD "} (34,1,1) = {" -Am +RD Qv sM sM @@ -2924,10 +2924,10 @@ dR dR dR Qv -Am +RD "} (35,1,1) = {" -Am +RD Qv sM sM @@ -3001,10 +3001,10 @@ YT YT vz Qv -Am +RD "} (36,1,1) = {" -Am +RD Qv dR sM @@ -3078,10 +3078,10 @@ YT YT YT Qv -Am +RD "} (37,1,1) = {" -Am +RD Qv Qv dR @@ -3155,10 +3155,10 @@ YT YT YT Qv -Am +RD "} (38,1,1) = {" -Am +RD Qv Qv dR @@ -3232,10 +3232,10 @@ YT YT YT Qv -Am +RD "} (39,1,1) = {" -Am +RD Qv Qv dR @@ -3309,10 +3309,10 @@ YT YT YT Qv -Am +RD "} (40,1,1) = {" -Am +RD Qv Qv dR @@ -3386,10 +3386,10 @@ YT YT YT Qv -Am +RD "} (41,1,1) = {" -Am +RD Qv dR sa @@ -3463,10 +3463,10 @@ YT YT uJ Qv -Am +RD "} (42,1,1) = {" -Am +RD Qv dR AI @@ -3540,10 +3540,10 @@ dR dR dR Qv -Am +RD "} (43,1,1) = {" -Am +RD Qv yo yo @@ -3617,10 +3617,10 @@ dR dR dR Qv -Am +RD "} (44,1,1) = {" -Am +RD Qv dR yo @@ -3694,10 +3694,10 @@ dR dR dR Qv -Am +RD "} (45,1,1) = {" -Am +RD Qv dR dR @@ -3771,10 +3771,10 @@ kK dR Qv Qv -Am +RD "} (46,1,1) = {" -Am +RD Qv Qv sa @@ -3848,10 +3848,10 @@ dR dR Qv Qv -Am +RD "} (47,1,1) = {" -Am +RD Qv Qv dR @@ -3925,10 +3925,10 @@ dR dR Qv Qv -Am +RD "} (48,1,1) = {" -Am +RD Qv Qv dR @@ -4002,10 +4002,10 @@ dR dR dR Qv -Am +RD "} (49,1,1) = {" -Am +RD Qv Qv dR @@ -4079,10 +4079,10 @@ sw dR dR Qv -Am +RD "} (50,1,1) = {" -Am +RD Qv Qv sa @@ -4156,10 +4156,10 @@ eB dR dR Qv -Am +RD "} (51,1,1) = {" -Am +RD Qv Qv Qv @@ -4233,10 +4233,10 @@ dR dR sa Qv -Am +RD "} (52,1,1) = {" -Am +RD Qv Qv Qv @@ -4310,10 +4310,10 @@ dR dR dR Qv -Am +RD "} (53,1,1) = {" -Am +RD Qv Qv Qv @@ -4387,10 +4387,10 @@ Qv dR dR Qv -Am +RD "} (54,1,1) = {" -Am +RD Qv Qv Qv @@ -4464,10 +4464,10 @@ Qv dR Qv Qv -Am +RD "} (55,1,1) = {" -Am +RD Qv Qv dR @@ -4541,10 +4541,10 @@ dR dR dR Qv -Am +RD "} (56,1,1) = {" -Am +RD Qv Qv dR @@ -4618,10 +4618,10 @@ dR dR dR Qv -Am +RD "} (57,1,1) = {" -Am +RD Qv Qv dR @@ -4695,10 +4695,10 @@ dR dR dR Qv -Am +RD "} (58,1,1) = {" -Am +RD Qv Qv dR @@ -4772,10 +4772,10 @@ sa dR dR Qv -Am +RD "} (59,1,1) = {" -Am +RD Qv Qv sa @@ -4849,10 +4849,10 @@ dR Qv Qv Qv -Am +RD "} (60,1,1) = {" -Am +RD Qv Qv dR @@ -4926,10 +4926,10 @@ dR Qv Qv Qv -Am +RD "} (61,1,1) = {" -Am +RD Qv dR kK @@ -5003,10 +5003,10 @@ Qv Qv Qv Qv -Am +RD "} (62,1,1) = {" -Am +RD Qv dR sa @@ -5080,10 +5080,10 @@ Qv Qv Qv Qv -Am +RD "} (63,1,1) = {" -Am +RD Qv dR Lw @@ -5157,10 +5157,10 @@ Qv Qv Qv Qv -Am +RD "} (64,1,1) = {" -Am +RD Qv dR sa @@ -5234,10 +5234,10 @@ Qv Qv Qv Qv -Am +RD "} (65,1,1) = {" -Am +RD Qv dR dR @@ -5311,10 +5311,10 @@ Qv Qv Qv Qv -Am +RD "} (66,1,1) = {" -Am +RD Qv dR kK @@ -5388,10 +5388,10 @@ Qv Qv Qv Qv -Am +RD "} (67,1,1) = {" -Am +RD Qv dR dR @@ -5465,10 +5465,10 @@ Qv Qv Qv Qv -Am +RD "} (68,1,1) = {" -Am +RD Qv dR dR @@ -5542,10 +5542,10 @@ Qv Qv Qv Qv -Am +RD "} (69,1,1) = {" -Am +RD Qv Qv dR @@ -5619,10 +5619,10 @@ Qv Qv Qv Qv -Am +RD "} (70,1,1) = {" -Am +RD Qv Qv Qv @@ -5696,10 +5696,10 @@ Qv Qv Qv Qv -Am +RD "} (71,1,1) = {" -Am +RD Qv Qv dR @@ -5773,10 +5773,10 @@ Qv Qv Qv Qv -Am +RD "} (72,1,1) = {" -Am +RD Qv Qv sa @@ -5850,10 +5850,10 @@ Qv Qv Qv Qv -Am +RD "} (73,1,1) = {" -Am +RD Qv Qv Qv @@ -5927,10 +5927,10 @@ Qv Qv Qv Qv -Am +RD "} (74,1,1) = {" -Am +RD Qv Qv Qv @@ -6004,82 +6004,82 @@ Qv Qv Qv Qv -Am +RD "} (75,1,1) = {" -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD "} diff --git a/_maps/virtual_domains/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm index eb33a1ef56449..003a4aee7fb24 100644 --- a/_maps/virtual_domains/syndicate_assault.dmm +++ b/_maps/virtual_domains/syndicate_assault.dmm @@ -1,17 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aq" = ( -/obj/item/storage/backpack/duffelbag/syndie/surgery, -/obj/structure/table/reinforced, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"aw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/landmark/bitrunning/mob_segment, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "aN" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -27,132 +14,68 @@ /obj/item/stack/rods/fifty, /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) -"aO" = ( -/obj/machinery/recharge_station, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"bh" = ( -/turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) -"bD" = ( -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 +"aV" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"bc" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain) +"bl" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plastic, +/area/virtual_domain) "bG" = ( /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) -"cc" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/effect/spawner/random/clothing/costume, +"bN" = ( /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cj" = ( /obj/structure/transit_tube/crossing, /turf/closed/wall/r_wall/syndicate, /area/virtual_domain/protected_space) -"ct" = ( -/obj/structure/closet/syndicate{ - anchored = 1; - desc = "A basic closet for all your villainous needs."; - locked = 1; - name = "Closet"; - req_access = list("syndicate"); - secure = 1 - }, -/obj/item/gun/ballistic/automatic/pistol, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"cw" = ( -/obj/structure/closet/syndicate{ - anchored = 1; - desc = "A basic closet for all your villainous needs."; - locked = 1; - name = "Closet"; - req_access = list("syndicate"); - secure = 1 - }, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/under/syndicate/skirt, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"cy" = ( -/obj/machinery/door/airlock/grunge{ - name = "Syndicate Ship Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ +"cr" = ( +/obj/machinery/power/shuttle_engine/propulsion{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, +/turf/open/space/basic, +/area/virtual_domain) +"cA" = ( +/obj/structure/table/reinforced, +/obj/item/paper/fluff/ruins/forgottenship/missionobj, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"cB" = ( -/obj/machinery/camera/xray{ - c_tag = "Medbay"; - dir = 6; - network = list("fsci"); - screen_loc = "" - }, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"cR" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cZ" = ( /obj/structure/table/reinforced, /obj/item/gun/ballistic/automatic/l6_saw/unrestricted, /obj/item/ammo_box/magazine/m7mm, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"da" = ( -/obj/machinery/stasis, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"dd" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) -"di" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable, -/obj/item/paper/fluff/ruins/forgottenship/powerissues, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) "dp" = ( /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"dw" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"dz" = ( -/obj/effect/landmark/bitrunning/cache_spawn, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"dU" = ( -/obj/structure/cable, -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external/ruin{ - name = "Syndicate Ship Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +"dq" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"dx" = ( +/obj/structure/sign/poster/contraband/syndicate_pistol, +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain) +"dD" = ( +/turf/open/floor/carpet/royalblack, +/area/virtual_domain) +"dQ" = ( +/turf/closed/mineral, +/area/ruin/space/virtual_domain) +"eu" = ( +/turf/open/space/basic, +/area/virtual_domain) "eB" = ( /obj/machinery/camera/xray{ c_tag = "Cargo pod"; @@ -169,70 +92,91 @@ /obj/item/card/id/advanced/black/syndicate_command/crew_id, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) +"eH" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet/royalblack, +/area/virtual_domain) +"eQ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) "fd" = ( /obj/structure/transit_tube/crossing, /turf/open/space/basic, /area/virtual_domain/protected_space) -"fG" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/ruin/space/has_grav/powered/virtual_domain) -"fJ" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"fV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump, +"fs" = ( +/obj/machinery/light/directional/north, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"gD" = ( -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, +/area/virtual_domain) +"fR" = ( +/obj/structure/chair/comfy/shuttle, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"hg" = ( -/obj/structure/window/reinforced/plasma/plastitanium, -/obj/machinery/door/poddoor{ - id = "fslockdown"; - name = "Ship Blast Door"; - state_open = 1 +/area/virtual_domain) +"fW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4 }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"hy" = ( -/obj/structure/table/reinforced, -/obj/item/paper/fluff/ruins/forgottenship/missionobj, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"hA" = ( -/obj/effect/baseturf_helper/virtual_domain, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"gW" = ( +/obj/structure/sign/poster/contraband/syndicate_recruitment, /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) -"hD" = ( +/area/virtual_domain) +"hb" = ( /obj/structure/table/reinforced, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"ip" = ( -/obj/effect/landmark/bitrunning/mob_segment, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"is" = ( +/area/virtual_domain) +"hi" = ( /obj/structure/table/reinforced, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/computer/security/telescreen/forgotten_ship/sci/directional/south, -/turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) -"iB" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"hm" = ( /obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"hn" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/ammo_box/c9mm, +/obj/item/gun/ballistic/automatic/pistol, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"hr" = ( +/turf/open/floor/plastic, +/area/virtual_domain) +"hw" = ( +/obj/machinery/stasis, +/turf/open/floor/plastic, +/area/virtual_domain) +"hM" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/virtual_domain) +"hY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 10 + }, +/obj/item/wrench, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "iL" = ( /obj/structure/sign/departments/cargo, /turf/closed/wall/r_wall/syndicate, /area/virtual_domain/protected_space) +"iT" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) "iU" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -241,167 +185,183 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) -"iW" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "fslockdown"; - name = "Window shutters"; - req_access = list("syndicate") - }, +"jt" = ( /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"iX" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 4 - }, +/area/virtual_domain) +"jv" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"ja" = ( -/obj/machinery/door/window/left/directional/north{ - name = "Spare Equipment"; - req_access = list("syndicate") - }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"jl" = ( -/obj/structure/bodycontainer/crematorium{ - id = "fscremate" - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"jA" = ( -/obj/structure/cable, -/mob/living/basic/trooper/syndicate/melee/space/stormtrooper, +/area/virtual_domain) +"jw" = ( +/obj/item/ai_module/core/full/cybersun, +/obj/structure/table/reinforced, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"jW" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"jJ" = ( -/obj/machinery/door/airlock/grunge{ - name = "Syndicate Ship Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"kh" = ( -/obj/machinery/door/airlock/grunge{ - name = "Syndicate Ship Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 +/area/virtual_domain) +"kx" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 }, +/obj/item/crowbar/red, +/obj/item/ammo_box/magazine/m9mm, +/obj/item/ammo_box/magazine/m9mm, +/obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"kI" = ( -/obj/machinery/computer/atmos_alert{ - dir = 8 +/area/virtual_domain) +"kA" = ( +/obj/machinery/power/port_gen/pacman/super{ + anchored = 1 }, +/obj/structure/cable, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kJ" = ( /obj/modular_map_root/safehouse{ key = "shuttle_space" }, /turf/template_noop, /area/virtual_domain/safehouse) +"kK" = ( +/obj/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor{ + id = "fslockdown"; + name = "Ship Blast Door"; + state_open = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"lh" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) "li" = ( /obj/structure/transit_tube/station/dispenser/reverse{ dir = 4 }, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"ln" = ( -/obj/machinery/turretid{ - control_area = "/area/ruin/space/has_grav/syndicate_forgotten_ship"; - enabled = 0; - icon_state = "control_kill"; - lethal = 1; - name = "Ship turret control panel"; - pixel_y = 32; - req_access = list("syndicate") +"lB" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"lo" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external/ruin{ - name = "Syndicate Ship Airlock" +/area/virtual_domain) +"lI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"lN" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"mo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"mA" = ( -/obj/machinery/light/small/directional/south, +/area/virtual_domain) +"mA" = ( +/obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"mD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 +"mG" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "fslockdown"; + name = "Window shutters"; + req_access = list("syndicate") }, -/obj/item/wrench, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mL" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"nk" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/mapping_helpers/apc/syndicate_access, -/obj/structure/cable, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +"mR" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"nd" = ( +/obj/structure/table/reinforced, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) "nn" = ( /turf/closed/mineral/random, /area/virtual_domain/protected_space) -"nB" = ( -/turf/closed/mineral/random, -/area/space) -"nG" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"nU" = ( -/obj/structure/sign/poster/contraband/syndicate_pistol, -/turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) -"og" = ( +"nz" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/virtual_domain) +"nC" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"nV" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 8 + }, +/turf/open/space/basic, +/area/virtual_domain) +"od" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/cup/glass/trophy/silver_cup, +/obj/item/paper, +/obj/item/pen, +/obj/machinery/computer/security/telescreen/forgotten_ship/sci/directional/south, +/turf/open/floor/carpet/royalblack, +/area/virtual_domain) +"oo" = ( +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"or" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"os" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/plating, +/area/virtual_domain) +"pD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ + dir = 8 + }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"oM" = ( +/area/virtual_domain) +"pI" = ( +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/plastic, +/area/virtual_domain) +"qd" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/mapping_helpers/apc/syndicate_access, /obj/structure/cable, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"pl" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 8 +/area/virtual_domain) +"qh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ + dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"pz" = ( +/area/virtual_domain) +"qr" = ( /obj/machinery/computer/security{ desc = "Used to access interrogation room camera."; dir = 8; @@ -410,63 +370,17 @@ screen_loc = "" }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"pH" = ( -/obj/structure/table/reinforced, -/obj/item/toy/plush/nukeplushie, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"pM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"pS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"pU" = ( -/obj/machinery/shower/directional/north, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/ruin/space/has_grav/powered/virtual_domain) -"qf" = ( -/obj/structure/table/optable, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"qx" = ( -/turf/open/space/basic, -/area/space) +/area/virtual_domain) +"qR" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) "qU" = ( /obj/structure/sign/poster/contraband/c20r, /turf/closed/wall/r_wall/syndicate, /area/virtual_domain/protected_space) -"qY" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/landmark/bitrunning/cache_spawn, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"rm" = ( -/obj/machinery/button/crematorium{ - id = "fscremate"; - pixel_x = -32 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"ru" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) -"rH" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/syndicate_access, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"rM" = ( +"rh" = ( /obj/structure/closet/syndicate{ anchored = 1; desc = "A basic closet for all your villainous needs."; @@ -475,44 +389,59 @@ req_access = list("syndicate"); secure = 1 }, -/obj/effect/spawner/random/contraband/armory, +/obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"rP" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"rq" = ( +/obj/structure/sink/directional/south, +/obj/structure/mirror/directional/west, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"rG" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 4; + name = "Syndicate Ship Turret"; + on = 0; + shot_delay = 10 + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/virtual_domain) +"rI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 9 + }, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) "sg" = ( /obj/machinery/ore_silo, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"sq" = ( -/obj/machinery/door/window/left/directional/south{ - name = "Control Room"; - req_access = list("syndicate") +"sk" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"sz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"sm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"sH" = ( -/obj/structure/closet/syndicate{ - anchored = 1; - desc = "A basic closet for all your villainous needs."; - locked = 1; - name = "Closet"; - req_access = list("syndicate"); - secure = 1 +/area/virtual_domain) +"ss" = ( +/obj/machinery/power/terminal{ + dir = 1 }, -/obj/item/ammo_box/c9mm, -/obj/item/gun/ballistic/automatic/pistol, +/obj/structure/cable, +/obj/item/paper/fluff/ruins/forgottenship/powerissues, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sK" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -525,79 +454,117 @@ }, /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) -"sL" = ( -/obj/structure/chair/comfy, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "sM" = ( /turf/template_noop, /area/virtual_domain/safehouse) -"tv" = ( +"sS" = ( +/obj/structure/table/optable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plastic, +/area/virtual_domain) +"tE" = ( +/turf/open/space/basic, +/area/space/virtual_domain) +"vY" = ( +/turf/closed/mineral/random/high_chance, +/area/ruin/space/virtual_domain) +"wl" = ( +/obj/item/storage/backpack/duffelbag/syndie/surgery, /obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "fscaproom"; - name = "Room shutters control"; - req_access = list("syndicate") +/turf/open/floor/plastic, +/area/virtual_domain) +"wn" = ( +/obj/machinery/button/crematorium{ + id = "fscremate"; + pixel_x = -32 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"tI" = ( +/area/virtual_domain) +"wL" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/regular, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) +"wR" = ( +/obj/machinery/turretid{ + control_area = "/area/ruin/space/has_grav/syndicate_forgotten_ship"; + enabled = 0; + icon_state = "control_kill"; + lethal = 1; + name = "Ship turret control panel"; + pixel_y = 32; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"wU" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"uP" = ( /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"vp" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"vD" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, +/area/virtual_domain) +"wX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, +/obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"vK" = ( -/obj/machinery/door/airlock/grunge{ - name = "Syndicate Ship Airlock" +/area/virtual_domain) +"wY" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/structure/cable, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"vU" = ( -/obj/structure/chair/comfy/shuttle{ +/area/virtual_domain) +"xd" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_box/c9mm, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"xg" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"xm" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet/royalblack, +/area/virtual_domain) +"yA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"wb" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, -/obj/machinery/portable_atmospherics/scrubber{ - anchored = 1 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"we" = ( -/turf/closed/mineral/random/high_chance, -/area/space) -"wK" = ( -/obj/machinery/door/airlock/grunge{ - name = "Syndicate Ship Airlock" +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"yG" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"wL" = ( -/obj/structure/table/reinforced, -/obj/item/storage/medkit/regular, -/obj/machinery/light/small/directional/north, +/obj/effect/spawner/random/food_or_drink/donkpockets, /turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"zN" = ( +/turf/closed/wall/r_wall/syndicate, /area/virtual_domain/protected_space) -"xJ" = ( +"zT" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Ab" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"An" = ( /obj/structure/closet/syndicate{ anchored = 1; desc = "A basic closet for all your villainous needs."; @@ -606,140 +573,92 @@ req_access = list("syndicate"); secure = 1 }, -/obj/item/ammo_box/c9mm, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"xS" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/space/has_grav/powered/virtual_domain) -"yl" = ( -/obj/machinery/door/airlock/grunge{ - name = "Captain's Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/obj/machinery/door/poddoor{ - id = "fscaproom"; - name = "Captain's Blast Door"; - state_open = 1 - }, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/under/syndicate/skirt, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"yJ" = ( +/area/virtual_domain) +"AD" = ( /obj/structure/table/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"yR" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 4 +/obj/item/reagent_containers/cup/glass/trophy/silver_cup, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"AM" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 +/obj/item/stack/ore/diamond{ + amount = 3 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"yT" = ( -/obj/item/ai_module/core/full/cybersun, -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"yV" = ( -/obj/structure/table/reinforced, -/obj/item/assembly/prox_sensor, -/obj/item/assembly/prox_sensor, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"yZ" = ( -/turf/closed/mineral, -/area/space) -"zi" = ( -/obj/machinery/vending/cigarette/syndicate, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"zt" = ( +/area/virtual_domain) +"AU" = ( +/obj/machinery/camera/xray{ + c_tag = "Medbay"; + dir = 6; + network = list("fsci"); + screen_loc = "" + }, +/turf/open/floor/plastic, +/area/virtual_domain) +"Bh" = ( /obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ - dir = 4 +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"zN" = ( -/turf/closed/wall/r_wall/syndicate, -/area/virtual_domain/protected_space) -"Aa" = ( -/obj/structure/chair/comfy/shuttle, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bm" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/syndicate, /area/virtual_domain/protected_space) -"BK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space/basic, -/area/space) "BN" = ( /obj/structure/transit_tube/crossing, /turf/template_noop, /area/virtual_domain/safehouse) -"Cf" = ( +"BQ" = ( +/obj/machinery/shower/directional/north, /obj/machinery/light/directional/south, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Ci" = ( -/obj/structure/closet/syndicate{ - anchored = 1; - desc = "A basic closet for all your villainous needs."; - locked = 1; - name = "Closet"; - req_access = list("syndicate"); - secure = 1 +/turf/open/floor/iron, +/area/virtual_domain) +"CS" = ( +/obj/structure/filingcabinet, +/obj/machinery/door/window/left/directional/west{ + name = "Syndicate Interior Door"; + req_access = list("syndicate") }, -/obj/item/crowbar/red, -/obj/item/ammo_box/magazine/m9mm_aps, -/obj/item/ammo_box/magazine/m9mm_aps, -/obj/item/gun/ballistic/automatic/pistol, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"CW" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) -"Cn" = ( -/obj/machinery/camera/xray/directional/east{ - c_tag = "Conference room"; - network = list("fsc"); - screen_loc = "" +/area/virtual_domain) +"CY" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") }, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"CK" = ( -/obj/structure/chair/comfy/shuttle{ +/area/virtual_domain) +"Dc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 }, -/mob/living/basic/trooper/syndicate/ranged/smg/pilot, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"CR" = ( -/obj/structure/closet/syndicate{ - anchored = 1; - desc = "A basic closet for all your villainous needs."; - locked = 1; - name = "Closet"; - req_access = list("syndicate"); - secure = 1 - }, -/obj/item/coin/antagtoken, -/obj/item/dnainjector/thermal, -/obj/item/storage/box/firingpins/syndicate, -/obj/item/storage/box/firingpins/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"De" = ( -/obj/machinery/door/airlock/grunge{ - name = "Syndicate Ship Airlock" +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Dd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, +/obj/machinery/portable_atmospherics/scrubber{ + anchored = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Dj" = ( /obj/structure/table/reinforced, /obj/item/ammo_box/magazine/smgm45, @@ -748,115 +667,103 @@ /obj/item/gun/ballistic/automatic/c20r/unrestricted, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"DA" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"EB" = ( +"Dn" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 + dir = 6 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"Fp" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"FN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Gn" = ( +/area/virtual_domain) +"DQ" = ( /obj/structure/chair/comfy{ dir = 1 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Gs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"GB" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/external/ruin{ - name = "Syndicate Ship Airlock" +/area/virtual_domain) +"DU" = ( +/obj/machinery/door/airlock/grunge{ + name = "Captain's Room" }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"GZ" = ( -/obj/machinery/door/airlock/external/ruin{ - name = "Syndicate Ship Airlock" +/obj/machinery/door/poddoor{ + id = "fscaproom"; + name = "Captain's Blast Door"; + state_open = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Hq" = ( -/turf/closed/indestructible/binary, -/area/space) -"HU" = ( +/turf/open/floor/carpet/royalblack, +/area/virtual_domain) +"Eb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"EJ" = ( /obj/machinery/door/airlock/grunge{ - name = "Bridge" + name = "Syndicate Ship Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"Ia" = ( -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, -/turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) -"Id" = ( -/obj/machinery/power/shuttle_engine/huge{ - dir = 8 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 }, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"EP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, /turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) -"If" = ( +/area/space/virtual_domain) +"Fj" = ( +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Fn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"FE" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain) +"Gh" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 + dir = 5 }, -/obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"Ig" = ( +/area/virtual_domain) +"Gv" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/closed/mineral/random, +/area/ruin/space/virtual_domain) +"GE" = ( +/obj/structure/chair/comfy, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Is" = ( /obj/machinery/porta_turret/syndicate/energy{ dir = 4; name = "Syndicate Ship Turret"; on = 0; shot_delay = 10 }, -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/space/has_grav/powered/virtual_domain) -"Im" = ( -/obj/structure/table/reinforced, -/obj/item/ammo_box/c9mm, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Io" = ( -/obj/effect/landmark/bitrunning/cache_spawn, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain) +"IA" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) "IH" = ( /obj/machinery/door/airlock/external/ruin{ name = "Syndicate Ship Airlock" @@ -866,63 +773,101 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/virtual_domain/protected_space) -"IV" = ( -/obj/machinery/door/airlock/grunge{ - name = "Syndicate Ship Airlock" +"Ji" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/turf/open/floor/plating, -/area/ruin/space/has_grav/powered/virtual_domain) -"Jg" = ( -/obj/machinery/light/small/directional/south, +/obj/item/clothing/head/hats/hos/beret/syndicate, +/obj/item/clothing/suit/armor/vest/capcarapace/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/under/syndicate, +/obj/item/clothing/under/syndicate/skirt, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"Jz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 +/area/virtual_domain) +"JJ" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 }, +/obj/effect/spawner/random/contraband/armory, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"JA" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"JN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ - dir = 4 +/area/virtual_domain) +"Kb" = ( +/obj/machinery/door/airlock/grunge{ + name = "Captain's Room" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/door/poddoor{ + id = "fscaproom"; + name = "Captain's Blast Door"; + state_open = 1 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"JP" = ( -/obj/structure/sink/directional/south, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"Kz" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Lk" = ( /obj/structure/transit_tube/crossing, /turf/closed/mineral/random, /area/virtual_domain/protected_space) -"Lo" = ( -/obj/structure/filingcabinet, -/obj/machinery/door/window/left/directional/west{ - name = "Syndicate Interior Door"; +"Lv" = ( +/turf/closed/mineral/random, +/area/ruin/space/virtual_domain) +"LB" = ( +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) +"Mf" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Mp" = ( +/obj/item/stack/sheet/mineral/uranium{ + amount = 15 + }, +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"Mr" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Mv" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"MB" = ( +/obj/machinery/suit_storage_unit/syndicate{ + helmet_type = /obj/item/clothing/head/helmet/space/syndicate/black; + suit_type = /obj/item/clothing/suit/space/syndicate/black + }, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"MK" = ( +/obj/machinery/door/window/left/directional/south{ + name = "Control Room"; req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"LB" = ( -/obj/structure/cable, +/area/virtual_domain) +"MM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump, /turf/open/floor/mineral/plastitanium, -/area/virtual_domain/protected_space) -"Mc" = ( +/area/virtual_domain) +"MV" = ( /obj/structure/closet/syndicate{ anchored = 1; desc = "A basic closet for all your villainous needs."; @@ -934,10 +879,11 @@ /obj/item/crowbar/red, /obj/item/ammo_box/magazine/m9mm, /obj/item/ammo_box/magazine/m9mm, +/obj/machinery/light/small/directional/north, /obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Mm" = ( +/area/virtual_domain) +"MY" = ( /obj/structure/closet/syndicate{ anchored = 1; desc = "A basic closet for all your villainous needs."; @@ -946,22 +892,16 @@ req_access = list("syndicate"); secure = 1 }, -/obj/item/clothing/head/hats/hos/beret/syndicate, -/obj/item/clothing/suit/armor/vest/capcarapace/syndicate, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/under/syndicate, -/obj/item/clothing/under/syndicate/skirt, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/shoes/combat, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"MR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/obj/item/crowbar/red, +/obj/item/ammo_box/magazine/m9mm_aps, +/obj/item/ammo_box/magazine/m9mm_aps, +/obj/item/gun/ballistic/automatic/pistol, +/turf/open/floor/carpet/royalblack, +/area/virtual_domain) +"MZ" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/plastic, +/area/virtual_domain) "Nm" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -981,6 +921,20 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) +"Ns" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Nx" = ( +/obj/machinery/atmospherics/components/tank/air{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"NT" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) "Of" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -988,10 +942,6 @@ /obj/item/disk/surgery/forgottenship, /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) -"Ox" = ( -/obj/machinery/atmospherics/components/unary/vent_pump, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "OH" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -999,13 +949,24 @@ /obj/item/storage/toolbox/syndicate, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"OI" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 +"Pe" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/ore/plasma{ + amount = 19 }, -/obj/structure/cable, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"PA" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/virtual_domain) "PR" = ( /obj/machinery/door/password/voice/sfc{ password = null @@ -1018,60 +979,95 @@ /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) -"Qg" = ( -/obj/machinery/suit_storage_unit/syndicate{ - helmet_type = /obj/item/clothing/head/helmet/space/syndicate/black; - suit_type = /obj/item/clothing/suit/space/syndicate/black +"PW" = ( +/obj/machinery/door/airlock/grunge{ + name = "Bridge" }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Qi" = ( -/obj/item/stack/sheet/mineral/uranium{ - amount = 15 +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 }, -/obj/structure/cable, -/obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"PX" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"QA" = ( +/obj/machinery/vending/medical/syndicate_access/cybersun, +/turf/open/floor/plastic, +/area/virtual_domain) "QF" = ( /obj/structure/table/reinforced, /obj/item/dualsaber/green, /obj/machinery/light/small/directional/east, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"QG" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/closed/mineral/random, -/area/space) -"QX" = ( -/obj/effect/landmark/bitrunning/mob_segment, +"QY" = ( +/obj/machinery/door/window/left/directional/north{ + name = "Spare Equipment"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"Rq" = ( +/obj/structure/cable, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Ra" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, -/obj/machinery/light/small/directional/north, +/area/virtual_domain) +"Ru" = ( +/obj/machinery/camera/xray/directional/east{ + c_tag = "Conference room"; + network = list("fsc"); + screen_loc = "" + }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"RQ" = ( +/area/virtual_domain) +"RG" = ( +/obj/structure/sink/directional/south, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"RI" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) "RU" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) -"Sc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 +"RY" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/coin/antagtoken, +/obj/item/dnainjector/thermal, +/obj/item/storage/box/firingpins/syndicate, +/obj/item/storage/box/firingpins/syndicate, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"Sh" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "fscaproom"; + name = "Room shutters control"; + req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Sd" = ( +/area/virtual_domain) +"SW" = ( /obj/structure/closet/syndicate{ anchored = 1; desc = "A basic closet for all your villainous needs."; @@ -1080,84 +1076,110 @@ req_access = list("syndicate"); secure = 1 }, -/obj/item/crowbar/red, -/obj/item/ammo_box/magazine/m9mm, -/obj/item/ammo_box/magazine/m9mm, -/obj/machinery/light/small/directional/north, -/obj/item/gun/ballistic/automatic/pistol, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Sq" = ( -/obj/machinery/power/smes, -/obj/structure/cable, +/obj/item/ammo_box/c9mm, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"Sv" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") +/area/virtual_domain) +"Tm" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/obj/effect/spawner/random/food_or_drink/donkpockets, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Sz" = ( -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"SX" = ( -/obj/machinery/vending/medical/syndicate_access/cybersun, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"To" = ( +/obj/structure/cable, +/mob/living/basic/trooper/syndicate/melee/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Tr" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/mob/living/basic/trooper/syndicate/ranged/smg/pilot, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"Ts" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) "TB" = ( /turf/closed/indestructible/syndicate, /area/virtual_domain/protected_space) -"UQ" = ( -/obj/structure/sign/poster/contraband/syndicate_recruitment, -/turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +"TU" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"UE" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"Va" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) +"Vd" = ( +/obj/structure/bodycontainer/crematorium{ + id = "fscremate" + }, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) "Vg" = ( /turf/open/space/basic, /area/virtual_domain/protected_space) -"Vk" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 4; - name = "Syndicate Ship Turret"; - on = 0; - shot_delay = 10 - }, -/turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) "Vq" = ( /obj/structure/transit_tube/station/dispenser/reverse{ dir = 8 }, /turf/template_noop, /area/virtual_domain/safehouse) -"Wd" = ( -/obj/structure/sign/poster/contraband/tools, +"Vs" = ( +/obj/machinery/vending/cigarette/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Vz" = ( /turf/closed/wall/r_wall/syndicate, -/area/virtual_domain/protected_space) -"Wy" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") +/area/virtual_domain) +"VR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 }, -/obj/item/stack/ore/plasma{ - amount = 19 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"WR" = ( -/obj/machinery/power/port_gen/pacman/super{ - anchored = 1 +/area/virtual_domain) +"Wd" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain/protected_space) +"We" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" }, -/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"Xp" = ( -/turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) -"XS" = ( -/obj/machinery/light/directional/north, +/area/virtual_domain) +"WB" = ( +/obj/structure/tank_dispenser/oxygen, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"XB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump, +/turf/open/floor/mineral/plastitanium/red, +/area/virtual_domain) "Yb" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -1166,1484 +1188,1462 @@ /obj/item/clothing/suit/space/syndicate/black/engie, /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) -"Yi" = ( -/obj/effect/landmark/bitrunning/cache_spawn, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"Yj" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/item/stack/ore/diamond{ - amount = 3 +"Yr" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"YA" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"Yk" = ( +/area/virtual_domain) +"YC" = ( /obj/machinery/door/airlock/grunge{ - name = "Captain's Room" + name = "Syndicate Ship Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/obj/machinery/door/poddoor{ - id = "fscaproom"; - name = "Captain's Blast Door"; - state_open = 1 - }, -/turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) -"Yr" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/template_noop, -/area/virtual_domain/safehouse) -"Yu" = ( -/obj/structure/chair/comfy/black, -/turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) -"YV" = ( -/obj/structure/sink/directional/south, -/obj/structure/mirror/directional/west, /turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"Za" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"Zb" = ( -/turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) -"ZA" = ( -/obj/machinery/power/shuttle_engine/propulsion{ - dir = 8 +/area/virtual_domain) +"YY" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) +"Zz" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") }, -/turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) +/obj/effect/spawner/random/clothing/costume, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain) (1,1,1) = {" -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR "} (2,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (3,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (4,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (5,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (6,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (7,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (8,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (9,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (10,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Xp -Xp -Id -qx -qx -Xp -Xp -Id -qx -qx -Xp -Xp -Id -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +eu +eu +nV +tE +tE +eu +eu +nV +tE +tE +eu +eu +nV +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (11,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Xp -Xp -Xp -qx -qx -Xp -Xp -Xp -qx -qx -Xp -Xp -Xp -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +eu +eu +eu +tE +tE +eu +eu +eu +tE +tE +eu +eu +eu +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (12,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ZA -Xp -Xp -Xp -ZA -ZA -Xp -Xp -Xp -ZA -ZA -Xp -Xp -Xp -ZA -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +cr +eu +eu +eu +cr +cr +eu +eu +eu +cr +cr +eu +eu +eu +cr +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (13,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -ru -ru -ru -ru -ru -ru -ru -ru -ru -ru -ru -ru -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -we -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (14,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -Vk -ru -Sv -vD -uP -Io -Yj -vD -uP -Wy -DA -Io -uP -vD -cc -ru -Vk -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Is +Vz +yG +eQ +bN +NT +AM +eQ +bN +Pe +CY +NT +bN +eQ +Zz +Vz +Is +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (15,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -Io -uP -uP -QX -lN -uP -uP -uP -uP -uP -lN -uP -QX -uP -Io -hA -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +NT +bN +bN +oo +xg +bN +bN +bN +bN +bN +xg +bN +oo +bN +NT +bc +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (16,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -ru -ru -ru -ru -ru -ru -IV -ru -ru -ru -IV -ru -ru -ru -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +os +Vz +Vz +Vz +os +Vz +Vz +Vz +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (17,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -vp -ru -Ia -Ci -ru -Sq -di -WR -ru -yV -Gn -uP -Mc -uP -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -nB -we -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +hi +Vz +CW +MY +Vz +or +ss +kA +Vz +Mf +DQ +bN +kx +bN +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +Lv +vY +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (18,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -og -Jg -ru -bh -cR -ru -Qi -sz -Kz -ru -Mc -uP -uP -uP -rP -ru -qx -qx -qx -qx -qx -qx -qx -nB -nB -nB -nB -nB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +AD +IA +Vz +dD +eH +Vz +Mp +fW +jt +Vz +kx +bN +bN +bN +qR +Vz +tE +tE +tE +tE +tE +tE +tE +Lv +Lv +Lv +Lv +Lv +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (19,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -Kz -Kz -yl -bh -bh -Yk -pS -RQ -Jz -vK -uP -uP -Io -sL -hy -ru -qx -qx -qx -qx -qx -qx -nB -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +jt +jt +Kb +dD +dD +DU +Dn +jv +Va +aV +bN +bN +NT +GE +cA +Vz +tE +tE +tE +tE +tE +tE +Lv +Lv TB TB TB TB -nB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (20,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -CR -Kz -ru -bh -bh -Yk -pM -zt -pM -vK -uP -uP -QX -sL -Im -ru -qx -qx -qx -qx -qx -nB -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +RY +jt +Vz +dD +dD +DU +sm +qh +sm +aV +bN +bN +oo +GE +xd +Vz +tE +tE +tE +tE +tE +Lv +Lv TB TB Yb Yb TB Bm -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (21,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -yT -Kz -ru -Yu -is -ru -mD -JN -MR -ru -Sd -uP -uP -uP -gD -ru -qx -qx -qx -qx -nB -QG -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +jw +jt +Vz +xm +od +Vz +hY +Gh +Fn +Vz +MV +bN +bN +bN +dq +Vz +tE +tE +tE +tE +Lv +Gv +Lv TB aN bG bG sK TB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (22,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -Ig -ru -Lo -ru -tv -hD -nU -wb -EB -pl -ru -hD -Gn -uP -Mc -ru -Ig -qx -qx -qx -qx -nB -we -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +rG +Vz +CS +Vz +Sh +hb +dx +Dd +Eb +Nx +Vz +hb +DQ +bN +kx +Vz +rG +tE +tE +tE +tE +Lv +vY +Lv TB iU bG bG Nr TB -nB -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (23,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -ru -ru -ru -ru -ru -cy -ru -ru -ru -ru -ru -ru -ru -qx -qx -qx -qx -qx -qx -nB -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +Vz +Vz +Vz +Vz +Vz +TU +Vz +Vz +Vz +Vz +Vz +Vz +Vz +tE +tE +tE +tE +tE +tE +Lv +Lv TB Nm bG bG Of TB -nB -nB -qx -qx -qx -qx -qx -qx -qx +Lv +Lv +tE +tE +tE +tE +tE +tE +tE sM sM sM sM sM kJ -qx -Hq +tE +mR "} (24,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -Za -Yi -Zb -SX -ru -uP -yR -uP -ru -YV -Sz -jJ -fG -ru -qx -qx -qx -qx -qx -nB -nB -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +bl +MZ +hr +QA +Vz +bN +wU +bN +Vz +rq +Fj +PA +hM +Vz +tE +tE +tE +tE +tE +Lv +Lv +Lv TB TB PR TB TB TB -nB -nB -nB -qx -qx -qx -qx -qx -qx +Lv +Lv +Lv +tE +tE +tE +tE +tE +tE sM sM sM sM sM sM -qx -Hq +tE +mR "} (25,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -qf -Zb -ip -da -ru -Ra -Sc -uP -ru -JP -qY -ru -ru -ru -qx -qx -qx -qx -qx -nB -nB -we +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +sS +hr +pI +hw +Vz +wX +lI +bN +Vz +RG +Mr +Vz +Vz +Vz +tE +tE +tE +tE +tE +Lv +Lv +vY zN zN dp @@ -2665,43 +2665,43 @@ sM sM sM sM -qx -Hq +tE +mR "} (26,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -aq -cB -Zb -Zb -De -Ox -Gs -uP -wK -Sz -Sz -jJ -pU -ru -qx -qx -qx -qx -qx -qx -nB -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +wl +AU +hr +hr +We +MM +Dc +bN +YC +Fj +Fj +PA +BQ +Vz +tE +tE +tE +tE +tE +tE +Lv +Lv qU mL dp @@ -2723,43 +2723,43 @@ sM sM sM sM -qx -Hq +tE +mR "} (27,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -Vk -ru -ru -ru -ru -ru -ru -ru -kh -ru -ru -ru -ru -ru -ru -ru -ru -qx -qx -qx -qx -qx -nB -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +Is +Vz +Vz +Vz +Vz +Vz +Vz +Vz +EJ +Vz +Vz +Vz +Vz +Vz +Vz +Vz +Vz +tE +tE +tE +tE +tE +Lv +Lv zN eB dp @@ -2781,1456 +2781,1456 @@ sM sM sM sM -qx -Hq +tE +mR "} (28,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -jl -rm -ru -nk -oM -oM -oM -yR -oM -oM -oM -uP -ru -uP -Qg -ru -qx -qx -qx -qx -qx -qx -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vd +wn +Vz +qd +RI +RI +RI +wU +RI +RI +RI +bN +Vz +bN +MB +Vz +tE +tE +tE +tE +tE +tE +Lv zN wL LB dp mA zN -yZ -nB -nB -nB -qx -qx -qx -qx -qx +dQ +Lv +Lv +Lv +tE +tE +tE +tE +tE sM sM sM sM sM sM -qx -Hq +tE +mR "} (29,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -uP -dw -ru -rH -uP -JA -JA -iX -JA -JA -oM -uP -ru -fJ -Qg -ru -qx -qx -qx -qx -qx -qx -qx +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +bN +Ns +Vz +iT +bN +Tm +Tm +nC +Tm +Tm +RI +bN +Vz +lh +MB +Vz +tE +tE +tE +tE +tE +tE +tE Wd OH LB dp RU zN -we -nB -nB -qx -qx -qx -qx -qx -qx +vY +Lv +Lv +tE +tE +tE +tE +tE +tE sM sM sM sM sM Yr -qx -Hq +tE +mR "} (30,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -lo -uP -uP -GZ -uP -Aa -hD -yJ -bD -hD -hD -OI -oM -GB -jA -oM -dU -BK -BK -BK -BK -BK -BK -BK +mR +tE +tE +tE +tE +tE +tE +tE +tE +PX +bN +bN +YA +bN +fR +hb +jW +sk +hb +hb +wY +RI +Bh +To +RI +Rq +EP +EP +EP +EP +EP +EP +EP IH LB LB dp RU zN -nB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (31,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -uP -uP -dd -uP -uP -uP -Ox -aw -uP -uP -uP -uP -dd -uP -Qg -ru -qx -qx -qx -qx -qx -qx -qx +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +bN +bN +FE +bN +bN +bN +MM +yA +bN +bN +bN +bN +FE +bN +MB +Vz +tE +tE +tE +tE +tE +tE +tE iL cZ dp dp RU zN -nB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (32,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -aO -uP -ru -XS -uP -uP -uP -FN -uP -uP -uP -Cf -ru -uP -Fp -ru -qx -qx -qx -qx -qx -qx -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +YY +bN +Vz +hm +bN +bN +bN +VR +bN +bN +bN +zT +Vz +bN +WB +Vz +tE +tE +tE +tE +tE +tE +Lv zN zN Dj QF zN zN -nB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (33,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -Ig -ru -hD -ru -zi -uP -uP -uP -FN -Cn -uP -uP -uP -ru -hD -ru -xS -qx -qx -qx -qx -qx -nB -nB -nB +mR +tE +tE +tE +tE +tE +tE +tE +tE +rG +Vz +hb +Vz +Vs +bN +bN +bN +VR +Ru +bN +bN +bN +Vz +hb +Vz +nz +tE +tE +tE +tE +tE +Lv +Lv +Lv zN zN zN zN -nB -nB -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +Lv +Lv +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (34,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -ru -ru -ru -ru -ru -HU -ru -ru -ru -ru -ru -ru -ru -qx -qx -qx -qx -qx -qx -qx -nB -nB -nB -nB -we -nB -nB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +Vz +Vz +Vz +Vz +Vz +PW +Vz +Vz +Vz +Vz +Vz +Vz +Vz +tE +tE +tE +tE +tE +tE +tE +Lv +Lv +Lv +Lv +vY +Lv +Lv +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (35,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -UQ -rM -xJ -Kz -Kz -tI -Kz -Kz -ct -sH -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -nB -nB -nB -nB -nB -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +gW +JJ +SW +jt +jt +Ab +jt +jt +rh +hn +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +Lv +Lv +Lv +Lv +Lv +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (36,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -ru -ru -Kz -Kz -Kz -Kz -tI -Kz -Kz -Kz -Kz -ru -ru -ru -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +Vz +Vz +jt +jt +jt +jt +Ab +jt +jt +jt +jt +Vz +Vz +Vz +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (37,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -ln -Kz -ru -iB -Kz -Kz -fV -If -Kz -Kz -Kz -nG -ru -cw -cw -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +wR +jt +Vz +fs +jt +jt +XB +rI +jt +jt +jt +Mv +Vz +An +An +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (38,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -ru -Kz -dz -sq -Kz -CK -Kz -vU -mo -vU -Kz -CK -Kz -ja -Kz -Jg -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +Vz +jt +Ts +MK +jt +Tr +jt +lB +pD +lB +jt +Tr +jt +QY +jt +IA +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (39,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -Ig -ru -Kz -ru -Kz -Kz -Kz -pz -Kz -kI -Kz -Kz -Kz -ru -Mm -ru -Ig -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +rG +Vz +jt +Vz +jt +jt +jt +qr +jt +UE +jt +jt +jt +Vz +Ji +Vz +rG +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (40,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -ru -Kz -Kz -Kz -Kz -Kz -Kz -Kz -Kz -dz -ru -ru -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +Vz +jt +jt +jt +jt +jt +jt +jt +jt +Ts +Vz +Vz +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (41,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -ru -ru -vp -vp -pH -vp -iW -vp -vp -vp -vp -ru -ru -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +Vz +Vz +hi +hi +nd +hi +mG +hi +hi +hi +hi +Vz +Vz +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (42,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Ig -hg -hg -hg -hg -hg -hg -hg -hg -hg -Ig -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +rG +kK +kK +kK +kK +kK +kK +kK +kK +kK +rG +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (43,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (44,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (45,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (46,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -we -we -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +vY +vY +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (47,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -we -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +vY +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (48,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (49,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (50,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (51,1,1) = {" -Hq -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -qx -Hq +mR +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +tE +mR "} (52,1,1) = {" -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq -Hq +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR +mR "} diff --git a/_maps/virtual_domains/vaporwave.dmm b/_maps/virtual_domains/vaporwave.dmm index 4d5b3ab57ada0..569a65a812baa 100644 --- a/_maps/virtual_domains/vaporwave.dmm +++ b/_maps/virtual_domains/vaporwave.dmm @@ -5,20 +5,24 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bs" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "bF" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) +"bJ" = ( +/turf/closed/wall/rust, +/area/virtual_domain) "cz" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "cL" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/cup/glass/drinkingglass{ @@ -31,39 +35,39 @@ pixel_y = 8 }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "df" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless{ icon_state = "stairs-l" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "eF" = ( /turf/closed/indestructible/binary, /area/space) "fx" = ( /obj/item/statuebust, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fQ" = ( /obj/structure/flora/tree/palm, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gM" = ( /obj/structure/table/reinforced, /obj/item/clothing/glasses/sunglasses/big{ name = "aesthetic sunglasses" }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hN" = ( /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "il" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "iP" = ( /obj/machinery/suit_storage_unit/standard_unit, /turf/template_noop, @@ -72,7 +76,7 @@ /obj/structure/window/spawner/directional/east, /obj/structure/closet/crate/secure/bitrunning/encrypted, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ku" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -81,14 +85,15 @@ /turf/open/floor/iron/airless{ icon_state = "stairs-r" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "ll" = ( /obj/structure/sign/poster/contraband/clown/directional/north, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lu" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/rust, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lB" = ( /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/emergency_oxygen, @@ -99,15 +104,15 @@ /obj/structure/table/reinforced, /obj/machinery/chem_dispenser/drinks/beer/fullupgrade, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "qm" = ( /obj/structure/flora/tree/palm, /obj/machinery/light/directional/west, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "qu" = ( /turf/open/floor/holofloor/beach/water, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rn" = ( /obj/structure/statue/sandstone/venus{ anchored = 1; @@ -117,82 +122,74 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "xb" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xp" = ( /obj/structure/table/reinforced, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xK" = ( /turf/closed/wall, -/area/ruin/space/has_grav/powered/virtual_domain) -"ym" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) +/area/virtual_domain) "AX" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "Cq" = ( /obj/item/instrument/eguitar, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "CR" = ( /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Dk" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Es" = ( /obj/structure/chair/comfy/black{ dir = 4 }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"Fd" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/wall/rust, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Hf" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless{ icon_state = "recharge_floor_asteroid" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "HA" = ( /turf/open/floor/holofloor/beach/coast, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "HV" = ( /obj/structure/chair/comfy/black{ dir = 4 }, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Jr" = ( /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KO" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KY" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless{ icon_state = "stairs-m" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "LG" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -200,26 +197,30 @@ "LJ" = ( /obj/structure/lattice, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "LP" = ( /obj/structure/flora/tree/palm, /obj/machinery/light/directional/east, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Nz" = ( /obj/structure/window/spawner/directional/east, /obj/structure/table/reinforced, /obj/item/storage/fancy/cigarettes/cigars/havana, /obj/effect/spawner/random/entertainment/lighter, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NT" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/open/space/basic, -/area/space) +/area/space/virtual_domain) +"Pv" = ( +/turf/open/space/basic, +/area/space/virtual_domain) "Qh" = ( /obj/structure/closet/crate/bin, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "Uy" = ( /obj/modular_map_root/safehouse{ key = "shuttle_space" @@ -232,20 +233,23 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "UV" = ( /obj/structure/lattice, /turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "Vc" = ( /obj/structure/flora/tree/palm, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) +"Vp" = ( +/turf/open/misc/asteroid/airless, +/area/ruin/space/virtual_domain) "XJ" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/hatch, /turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yo" = ( /obj/structure/statue/sandstone/venus{ anchored = 1; @@ -256,16 +260,16 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "YE" = ( /mob/living/basic/butterfly, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZI" = ( /obj/effect/spawner/random/structure/musician/piano/random_piano, /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" eF @@ -299,219 +303,219 @@ eF "} (2,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv NT eF "} (3,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (4,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (5,1,1) = {" eF -NT -NT -NT -NT -NT -NT -cz +Pv +Pv +Pv +Pv +Pv +Pv +Vp LJ -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (6,1,1) = {" eF -NT -NT -NT -NT -NT -cz -cz +Pv +Pv +Pv +Pv +Pv +Vp +Vp LJ -cz -cz +Vp +Vp LJ -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (7,1,1) = {" eF -NT -NT -NT -NT -cz -cz -cz +Pv +Pv +Pv +Pv +Vp +Vp +Vp UV LJ -cz +Vp UV -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (8,1,1) = {" eF -NT -NT -NT -NT -cz +Pv +Pv +Pv +Pv +Vp xK xK -lu -lu -lu +bJ +bJ +bJ xK lu UE -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (9,1,1) = {" eF -NT -NT -NT +Pv +Pv +Pv LJ Qh xK @@ -522,29 +526,29 @@ HA qu xK aA -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (10,1,1) = {" eF -NT -NT -NT +Pv +Pv +Pv LJ UV -lu +bJ ZI Jr Jr @@ -553,27 +557,27 @@ Jr xK bF Vc +Vp cz -cz -NT -NT -NT +Pv +Pv +Pv ku ku ku ku ku Uy -NT +Pv eF "} (11,1,1) = {" eF -NT -NT -NT -cz -cz +Pv +Pv +Pv +Vp +Vp xK xb CR @@ -584,26 +588,26 @@ xK Yo il UE -cz -NT -NT -NT +Vp +Pv +Pv +Pv ku iP iP iP ku ku -NT +Pv eF "} (12,1,1) = {" eF -NT -NT -NT -cz -cz +Pv +Pv +Pv +Vp +Vp xK ll CR @@ -614,25 +618,25 @@ xK Hf df il -cz -NT -NT -NT +Vp +Pv +Pv +Pv ku ku ku ku ku ku -NT +Pv eF "} (13,1,1) = {" eF -NT -NT -NT -cz +Pv +Pv +Pv +Vp LJ xK HV @@ -645,26 +649,26 @@ bs KY bs il -NT -NT -NT +Pv +Pv +Pv ku ku ku ku ku ku -NT +Pv eF "} (14,1,1) = {" eF -NT -NT -NT -cz +Pv +Pv +Pv +Vp LJ -lu +bJ xp gM CR @@ -675,53 +679,53 @@ Hf kF bs il -NT -NT -NT +Pv +Pv +Pv ku ku ku ku ku ku -NT +Pv eF "} (15,1,1) = {" eF -NT -NT -NT -cz +Pv +Pv +Pv +Vp LJ -lu +bJ KO KO CR YE lI -lu +bJ rn il UE UE -NT -NT -NT +Pv +Pv +Pv ku ku ku ku lB ku -NT +Pv eF "} (16,1,1) = {" eF -NT -NT -NT +Pv +Pv +Pv LJ UV xK @@ -733,258 +737,258 @@ Nz xK AX Vc -cz -cz -NT -NT -NT +Vp +Vp +Pv +Pv +Pv ku ku ku ku ku LG -NT +Pv eF "} (17,1,1) = {" eF -NT -NT -NT -cz -cz -lu +Pv +Pv +Pv +Vp +Vp +bJ fQ Cq LP HA qu -lu +bJ aA -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (18,1,1) = {" eF -NT -NT -NT -cz -cz +Pv +Pv +Pv +Vp +Vp xK xK -lu +bJ xK -lu -lu -Fd +bJ +bJ +bJ UE -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (19,1,1) = {" eF -NT -NT -NT -NT -cz -cz -cz +Pv +Pv +Pv +Pv +Vp +Vp +Vp UV LJ Qh UV -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (20,1,1) = {" eF -NT -NT -NT -NT -NT -NT -cz +Pv +Pv +Pv +Pv +Pv +Pv +Vp LJ -cz -cz +Vp +Vp LJ -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (21,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -ym -cz -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +LJ +Vp +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (22,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (23,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (24,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (25,1,1) = {" diff --git a/_maps/virtual_domains/wendigo.dmm b/_maps/virtual_domains/wendigo.dmm index 57c002c148c6f..34dc74685bd17 100644 --- a/_maps/virtual_domains/wendigo.dmm +++ b/_maps/virtual_domains/wendigo.dmm @@ -40,9 +40,6 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored/virtual_domain) -"ai" = ( -/turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) "aj" = ( /obj/effect/mob_spawn/corpse/human/cargo_tech, /turf/open/misc/asteroid/snow/icemoon, @@ -197,9 +194,8 @@ }, /area/icemoon/underground/explored/virtual_domain) "aL" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) +/area/virtual_domain/fullbright) "aM" = ( /obj/effect/decal/cleanable/blood/gibs/core, /turf/open/indestructible/necropolis{ @@ -346,6 +342,10 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored/virtual_domain) +"yf" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored/virtual_domain) "KV" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 9 @@ -369,23 +369,23 @@ aS aS aS aS -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL aS aS aS @@ -407,8 +407,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -424,8 +424,8 @@ ae ae ar ae -ai -ai +aL +aL aS aS aS @@ -445,8 +445,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -464,8 +464,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -483,8 +483,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae av @@ -504,8 +504,8 @@ av ae ae ae -ai -ai +aL +aL aS aS aS @@ -521,8 +521,8 @@ aS (5,1,1) = {" aS aS -ai -ai +aL +aL ae ae av @@ -544,23 +544,23 @@ ab ae au ae -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL aL "} (6,1,1) = {" aS -ai -ai +aL +aL ae ae ae @@ -584,9 +584,8 @@ au ae ae ae -ai -ai -ae +aL +aL ae ae ae @@ -594,11 +593,12 @@ ae ae ae ae -ai +yf +aL "} (7,1,1) = {" -ai -ai +aL +aL ae ae ae @@ -624,7 +624,7 @@ av ae ae ae -ai +aL ae ae ae @@ -633,10 +633,10 @@ ad ag ae ae -ai +aL "} (8,1,1) = {" -ai +aL ae ae ae @@ -672,10 +672,10 @@ aa aa ag ae -ai +aL "} (9,1,1) = {" -ai +aL ae ae ae @@ -711,10 +711,10 @@ am aa aD ae -ai +aL "} (10,1,1) = {" -ai +aL ae ae ar @@ -750,10 +750,10 @@ ae aT ae ae -ai +aL "} (11,1,1) = {" -ai +aL ae ae ae @@ -789,10 +789,10 @@ ae aK ae ae -ai +aL "} (12,1,1) = {" -ai +aL ae ae ab @@ -828,10 +828,10 @@ ae ae ae ae -ai +aL "} (13,1,1) = {" -ai +aL ae ae ab @@ -867,10 +867,10 @@ ae ae ae ae -ai +aL "} (14,1,1) = {" -ai +aL ae ae ar @@ -906,10 +906,10 @@ aV aV aZ ae -ai +aL "} (15,1,1) = {" -ai +aL ae ae au @@ -945,10 +945,10 @@ aV aV aV ae -ai +aL "} (16,1,1) = {" -ai +aL ae ad ac @@ -984,10 +984,10 @@ aV aV aV ae -ai +aL "} (17,1,1) = {" -ai +aL KV aI aa @@ -1023,10 +1023,10 @@ aV aV aV ae -ai +aL "} (18,1,1) = {" -ai +aL ae ae am @@ -1062,10 +1062,10 @@ aV aV aV ae -ai +aL "} (19,1,1) = {" -ai +aL ae ae av @@ -1101,10 +1101,10 @@ aV aV aV ae -ai +aL "} (20,1,1) = {" -ai +aL ae ae ae @@ -1140,10 +1140,10 @@ aV aV aA ae -ai +aL "} (21,1,1) = {" -ai +aL ar ae au @@ -1179,10 +1179,10 @@ ae ae ae ae -ai +aL "} (22,1,1) = {" -ai +aL ae ae ab @@ -1218,10 +1218,10 @@ ae ae ae ae -ai +aL "} (23,1,1) = {" -ai +aL ae ae ab @@ -1257,10 +1257,10 @@ ae ae ae ae -ai +aL "} (24,1,1) = {" -ai +aL ae ae ae @@ -1296,10 +1296,10 @@ ae aU ae ae -ai +aL "} (25,1,1) = {" -ai +aL ae ae ae @@ -1335,10 +1335,10 @@ ad aI aW ae -ai +aL "} (26,1,1) = {" -ai +aL ae ae ae @@ -1374,11 +1374,11 @@ aK ae ae ae -ai +aL "} (27,1,1) = {" -ai -ai +aL +aL ae au ae @@ -1404,7 +1404,7 @@ ae ae ar ae -ai +aL ae ae ae @@ -1413,12 +1413,12 @@ ae ae ae ae -ai +aL "} (28,1,1) = {" aS -ai -ai +aL +aL ae au ae @@ -1442,8 +1442,8 @@ ae ae ae ae -ai -ai +aL +aL ae ae ae @@ -1452,13 +1452,13 @@ ae ae ae ae -ai +aL "} (29,1,1) = {" aS aS -ai -ai +aL +aL ae ae ae @@ -1480,25 +1480,25 @@ ae ae ar ae -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL "} (30,1,1) = {" aS aS aS -ai -ai +aL +aL ae ae ae @@ -1518,8 +1518,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -1537,8 +1537,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -1556,8 +1556,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -1577,8 +1577,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -1594,8 +1594,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -1617,23 +1617,23 @@ aS aS aS aS -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL aS aS aS diff --git a/_maps/virtual_domains/xeno_nest.dmm b/_maps/virtual_domains/xeno_nest.dmm index 71c5f0031e05c..96c98d6e903e1 100644 --- a/_maps/virtual_domains/xeno_nest.dmm +++ b/_maps/virtual_domains/xeno_nest.dmm @@ -1,33 +1,41 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( +"aa" = ( /turf/template_noop, /area/template_noop) -"c" = ( +"ab" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) +"ac" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"d" = ( +"ad" = ( /obj/structure/alien/resin/wall, /turf/closed/indestructible/binary, /area/ruin/space/has_grav/powered/virtual_domain) -"e" = ( +"ae" = ( /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"f" = ( +"af" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /obj/effect/decal/cleanable/blood, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"h" = ( +"ag" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) +"ah" = ( /obj/structure/alien/weeds, /obj/effect/landmark/bitrunning/mob_segment, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"i" = ( +"ai" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, @@ -36,114 +44,130 @@ /obj/item/clothing/glasses/night, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"j" = ( +"aj" = ( /obj/machinery/suit_storage_unit/spaceruin, /turf/template_noop, /area/virtual_domain/safehouse) -"k" = ( +"ak" = ( /obj/structure/alien/weeds/node, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"l" = ( +"al" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/closed/indestructible/binary, /area/ruin/space/has_grav/powered/virtual_domain) -"m" = ( +"am" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"n" = ( +"an" = ( /turf/template_noop, /area/virtual_domain/safehouse) -"o" = ( +"ao" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"p" = ( +"ap" = ( /obj/structure/alien/weeds, /mob/living/basic/alien/drone{ can_plant_weeds = 0 }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"q" = ( +"aq" = ( /obj/structure/alien/resin/wall, /turf/open/space/basic, /area/ruin/space/has_grav/powered/virtual_domain) -"r" = ( +"ar" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, /area/virtual_domain/safehouse) -"s" = ( +"as" = ( /obj/structure/alien/weeds/node, /mob/living/basic/alien/drone{ can_plant_weeds = 0 }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"t" = ( +"at" = ( /obj/structure/alien/weeds, /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"u" = ( +"au" = ( /obj/structure/alien/weeds/node, /obj/effect/decal/cleanable/blood, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"v" = ( +"av" = ( /obj/modular_map_root/safehouse{ key = "shuttle" }, /turf/template_noop, /area/virtual_domain/safehouse) -"x" = ( +"aw" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"ax" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"y" = ( +"ay" = ( /obj/structure/alien/weeds/node, /obj/effect/landmark/bitrunning/mob_segment, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"z" = ( +"az" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"A" = ( +"aA" = ( /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/ruin/space/has_grav/powered/virtual_domain) -"B" = ( +"aB" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"C" = ( +"aC" = ( /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/ruin/space/has_grav/powered/virtual_domain) -"D" = ( +"aD" = ( /obj/structure/alien/weeds, /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/ruin/space/has_grav/powered/virtual_domain) -"E" = ( +"aE" = ( /turf/closed/indestructible/binary, /area/ruin/space/has_grav/powered/virtual_domain) -"G" = ( +"aF" = ( +/obj/structure/table/greyscale, +/obj/item/gun/energy/xray, +/obj/item/gun/energy/laser{ + pixel_x = 4; + pixel_y = -6 + }, +/obj/item/gun/energy/laser{ + pixel_x = -8; + pixel_y = 6 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"aG" = ( /obj/structure/alien/resin/wall, /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"H" = ( +"aH" = ( /obj/structure/table/greyscale, /obj/machinery/recharger{ pixel_x = 8; @@ -155,12 +179,12 @@ }, /turf/template_noop, /area/virtual_domain/safehouse) -"I" = ( +"aI" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"J" = ( +"aJ" = ( /obj/structure/alien/weeds, /mob/living/basic/alien/queen/large{ desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; @@ -170,17 +194,17 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"K" = ( +"aK" = ( /obj/structure/alien/weeds, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"L" = ( +"aL" = ( /obj/item/storage/medkit/regular, /obj/item/storage/medkit/regular, /turf/template_noop, /area/virtual_domain/safehouse) -"M" = ( +"aM" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall{ move_force = 1000; @@ -189,7 +213,7 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"N" = ( +"aN" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, @@ -199,61 +223,60 @@ /obj/item/clothing/head/helmet, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"O" = ( +"aO" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, /area/ruin/space/has_grav/powered/virtual_domain) -"P" = ( +"aP" = ( /obj/structure/alien/weeds/node, /mob/living/basic/alien, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"Q" = ( +"aQ" = ( /obj/structure/alien/resin/wall, /obj/structure/alien/resin/wall, /turf/closed/indestructible/binary, /area/ruin/space/has_grav/powered/virtual_domain) -"S" = ( +"aR" = ( +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) +"aS" = ( /obj/structure/alien/weeds, /mob/living/basic/alien, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"T" = ( +"aT" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /obj/effect/decal/cleanable/blood/gibs, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"U" = ( +"aU" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /obj/item/gun/ballistic/automatic/pistol, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"V" = ( +"aV" = ( /obj/structure/alien/weeds/node, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"W" = ( +"aW" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) -"Y" = ( -/obj/structure/table/greyscale, -/obj/item/gun/energy/xray, -/obj/item/gun/energy/laser{ - pixel_x = 4; - pixel_y = -6 - }, -/obj/item/gun/energy/laser{ - pixel_x = -8; - pixel_y = 6 - }, -/turf/template_noop, -/area/virtual_domain/safehouse) -"Z" = ( +"aX" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"aY" = ( +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) +"aZ" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, @@ -263,1808 +286,1998 @@ /obj/item/clothing/head/helmet/space/syndicate/orange, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/space/has_grav/powered/virtual_domain) +"bt" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"bR" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"bU" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) +"bV" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"cw" = ( +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"dl" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"ds" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg/burst, +/obj/effect/decal/cleanable/blood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"eD" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/under/syndicate, +/obj/item/clothing/glasses/night, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"go" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/gun/ballistic/automatic/pistol, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"ie" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"jG" = ( +/obj/structure/alien/weeds/node, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"my" = ( +/obj/structure/alien/weeds/node, +/obj/effect/decal/cleanable/blood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"mT" = ( +/obj/structure/alien/weeds/node, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"nq" = ( +/obj/structure/alien/weeds/node, +/mob/living/basic/alien/drone{ + can_plant_weeds = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"oD" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/helmet/space/syndicate/orange, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"rY" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"sO" = ( +/obj/structure/alien/weeds/node, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"tG" = ( +/obj/structure/alien/weeds, +/mob/living/basic/alien/drone{ + can_plant_weeds = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"vP" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"BB" = ( +/obj/structure/alien/weeds, +/mob/living/basic/alien/queen/large{ + desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; + name = "alien queen"; + pixel_x = -16; + can_plant_weeds = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"FI" = ( +/obj/structure/alien/weeds, +/mob/living/basic/alien, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"Hu" = ( +/obj/structure/alien/weeds, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"JT" = ( +/obj/structure/alien/weeds, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"JZ" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg/burst, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"Lb" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"RZ" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg/burst, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"SC" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall{ + move_resist = 3000 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"SD" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"TA" = ( +/obj/structure/alien/resin/wall, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) +"Wp" = ( +/obj/structure/alien/weeds/node, +/mob/living/basic/alien, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"WD" = ( +/obj/structure/alien/resin/wall, +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) +"XX" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/clothing/under/rank/security/officer, +/obj/item/clothing/suit/armor/vest, +/obj/item/melee/baton/security/loaded, +/obj/item/clothing/head/helmet, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain) (1,1,1) = {" -a -a -a -E -E -E -E -E -E -E -E -E -E -E -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (2,1,1) = {" -a -a -a -E -E -z -z -z -z -z -z -z -z -E -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +vP +vP +vP +vP +vP +vP +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (3,1,1) = {" -a -a -a -E -E -z -e -W -W -z -e -e -z -M -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aw +aw +vP +cw +JZ +JZ +vP +cw +cw +vP +SC +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (4,1,1) = {" -a -a -a -E -z -z -e -e -e -e -p -e -W -z -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +vP +cw +cw +cw +cw +tG +cw +JZ +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (5,1,1) = {" -a -a -a -E -z -e -e -k -z -z -z -k -z -z -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +cw +cw +jG +vP +vP +vP +jG +vP +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (6,1,1) = {" -a -a -a -E -z -e -h -m -K -J -o -i -z -z -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +cw +Hu +bt +JT +BB +Lb +eD +vP +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (7,1,1) = {" -a -a -a -E -z -W -e -e -e -e -B -o -K -z -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +JZ +cw +cw +cw +cw +SD +Lb +JT +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (8,1,1) = {" -a -a -a -E -z -I -o -z -e -V -e -e -W -z -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +rY +Lb +vP +cw +sO +cw +cw +JZ +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (9,1,1) = {" -a -a -a -E -z -U -u -e -z -e -e -W -z -z -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +go +my +cw +vP +cw +cw +JZ +vP +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (10,1,1) = {" -a -a -a -E -z -e -o -z -e -e -e -k -W -z -E -a -a -a -a -a -a -a -E -E -E -E -E -E -E -E -E -E -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +cw +Lb +vP +cw +cw +cw +jG +JZ +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aw +aw +aw +aw +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa "} (11,1,1) = {" -a -a -a -E -z -z -e -e -e -e -e -h -e -z -E -a -a -a -a -a -a -a -E -E -E -E -z -z -z -z -E -E -a -a -a -a -a -a -a +aa +aa +aa +aw +vP +vP +cw +cw +cw +cw +cw +Hu +cw +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aw +aw +vP +vP +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aa "} (12,1,1) = {" -a -a -a -E -E -z -W -e -e -e -e -e -e -z -E -a -a -a -a -a -a -a -E -E -E -z -z -Z -I -z -z -E -a -a -a -a -a -a -a +aa +aa +aa +aw +aw +vP +JZ +cw +cw +cw +cw +cw +cw +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aw +aw +vP +vP +oD +rY +vP +vP +aw +aa +aa +aa +aa +aa +aa +aa "} (13,1,1) = {" -a -a -a -E -E -z -z -e -e -V -e -e -z -z -E -a -a -a -a -a -a -a -E -E -z -z -W -o -B -K -z -E -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +vP +vP +cw +cw +sO +cw +cw +vP +vP +aw +aa +aa +aa +aa +aa +aa +aa +aa +aw +vP +vP +JZ +Lb +SD +JT +vP +aw +aa +aa +aa +aa +aa +aa +aa "} (14,1,1) = {" -a -a -a -E -E -E -z -z -e -e -e -z -z -E -E -a -a -a -a -E -E -E -E -E -z -I -e -y -e -W -z -E -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +aw +vP +vP +cw +cw +cw +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aw +aw +aw +vP +rY +cw +mT +cw +JZ +vP +aw +aa +aa +aa +aa +aa +aa +aa "} (15,1,1) = {" -a -a -a -a -a -E -E -z -z -z -z -z -E -E -E -E -E -E -E -E -E -E -z -z -z -e -e -e -I -z -z -E -a -a -a -a -a -a -a +aa +aa +aa +aa +aa +aw +aw +vP +vP +vP +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aw +aw +vP +vP +vP +cw +cw +cw +rY +vP +vP +aw +aa +aa +aa +aa +aa +aa +aa "} (16,1,1) = {" -a -a -a -a -a -a -E -z -V -V -z -E -E -E -E -E -E -E -E -E -E -z -z -e -S -e -W -z -z -z -E -E -a -a -a -a -a -a -a +aa +aa +aa +aa +aa +aa +aw +vP +sO +sO +vP +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +vP +vP +cw +FI +cw +JZ +vP +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aa "} (17,1,1) = {" -a -a -a -a -a -a -E -z -p -e -z -z -E -z -z -z -z -z -z -z -z -z -e -e -z -z -z -z -E -E -E -E -a -a -a -a -a -a -a +aa +aa +aa +aa +aa +aa +aw +vP +tG +cw +vP +vP +aw +vP +vP +vP +vP +vP +vP +vP +vP +vP +cw +cw +vP +vP +vP +vP +aw +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa "} (18,1,1) = {" -a -a -a -a -a -a -E -z -e -e -e -z -z -z -e -e -e -e -e -e -z -z -e -z -z -E -E -E -E -E -E -E -E -E -E -E -E -E -O +aa +aa +aa +aa +aa +aa +aw +vP +cw +cw +cw +vP +vP +vP +cw +cw +cw +cw +cw +cw +vP +vP +cw +vP +vP +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aX "} (19,1,1) = {" -E -E -E -E -E -E -E -z -z -e -e -e -z -e -e -e -e -e -e -V -e -e -e -z -E -E -E -E -E -E -Q -d -q -q -q -q -q -q -E +aw +aw +aw +aw +aw +aw +aw +vP +vP +cw +cw +cw +vP +cw +cw +cw +cw +cw +cw +sO +cw +cw +cw +vP +aw +aw +aa +aa +aa +aw +TA +aR +aR +aR +aR +aR +aR +aR +aw "} (20,1,1) = {" -E -z -z -z -z -E -E -E -z -z -e -V -e -e -e -z -z -z -z -e -e -t -z -z -E -E -a -a -a -E -q -A -A -A -A -A -A -A -E +aw +vP +vP +vP +vP +aw +aw +aw +vP +vP +cw +sO +cw +cw +cw +vP +vP +vP +vP +cw +cw +bV +vP +vP +aw +aa +aa +aa +aa +aw +aR +ag +ag +ag +ag +ag +ag +ag +aw "} (21,1,1) = {" -E -z -W -I -z -z -z -z -z -z -e -e -e -e -z -z -E -E -z -z -e -e -z -E -E -E -a -a -a -E -q -A -A -A -A -A -A -A -E +aw +vP +JZ +rY +vP +vP +vP +vP +vP +vP +cw +cw +cw +cw +vP +vP +aw +aw +vP +vP +cw +cw +vP +aw +aw +aa +aa +aa +aa +aw +aR +ag +ag +ag +ag +ag +ag +ag +aw "} (22,1,1) = {" -E -G -t -h -e -z -z -e -e -e -e -e -e -z -z -E -E -E -z -e -e -e -z -E -E -E -a -a -a -E -q -A -C -A -A -A -A -A -E +aw +WD +bV +Hu +cw +vP +vP +cw +cw +cw +cw +cw +cw +vP +vP +aw +aw +aw +vP +cw +cw +cw +vP +aw +aa +aa +aa +aa +aa +aw +aR +ag +aY +ag +ag +ag +ag +ag +aw "} (23,1,1) = {" -E -G -K -W -V -e -e -e -z -z -e -z -z -z -E -E -E -E -z -e -e -z -z -E -E -a -a -a -a -E -q -C -C -C -A -A -A -A -E +aw +WD +JT +JZ +sO +cw +cw +cw +vP +vP +cw +vP +vP +vP +aw +aw +aw +aw +vP +cw +cw +vP +vP +aw +aa +aa +aa +aa +aa +aw +aR +aY +aY +aY +ag +ag +ag +ag +aw "} (24,1,1) = {" -E -z -z -I -I -z -z -z -z -z -e -z -E -E -E -E -E -E -z -e -e -z -E -E -E -E -E -E -E -E -d -C -C -A -A -C -A -A -E +aw +vP +vP +rY +rY +vP +vP +vP +vP +vP +cw +vP +aw +aw +aw +aw +aw +aw +vP +cw +cw +vP +aw +aw +aw +aa +aa +aa +aa +aw +aR +aY +aY +ag +ag +aY +ag +ag +aw "} (25,1,1) = {" -E -E -z -z -z -z -E -E -E -z -e -z -z -E -E -E -E -E -z -e -s -z -z -z -E -E -E -E -E -E -z -C -C -C -A -C -C -A -E +aw +aw +vP +vP +vP +vP +aw +aw +aw +vP +cw +vP +vP +aw +aw +aw +aw +aw +vP +cw +nq +vP +vP +vP +aw +aw +aw +aw +aw +aw +bU +aY +aY +aY +ag +aY +aY +ag +aw "} (26,1,1) = {" -a -E -E -E -E -E -E -E -E -z -e -e -z -E -E -E -E -E -z -e -e -e -e -z -z -z -E -E -E -z -z -n -n -n -n -n -v -A -E +aa +aw +aw +aw +aw +aw +aw +aw +aw +vP +cw +cw +vP +aw +aw +aw +aw +aw +vP +cw +cw +cw +cw +vP +vP +vP +aw +aw +aw +vP +vP +an +an +an +an +an +av +ag +aw "} (27,1,1) = {" -a -a -a -a -a -E -E -z -z -z -e -e -z -z -E -E -E -E -z -z -e -e -e -e -e -z -z -z -z -k -e -n -j -j -j -n -n -A -E +aa +aa +aa +aa +aa +aw +aw +vP +vP +vP +cw +cw +vP +vP +aw +aw +aw +aw +vP +vP +cw +cw +cw +cw +cw +vP +vP +vP +vP +jG +cw +an +aj +aj +aj +an +an +ag +aw "} (28,1,1) = {" -a -a -a -a -a -E -z -z -T -e -h -V -W -z -E -E -E -z -z -e -e -z -z -e -e -e -z -V -e -e -e -n -n -n -n -n -n -A -E +aa +aa +aa +aa +aa +aw +vP +vP +RZ +cw +Hu +sO +JZ +vP +aw +aw +aw +vP +vP +cw +cw +vP +vP +cw +cw +cw +vP +sO +cw +cw +cw +an +an +an +an +an +an +ag +aw "} (29,1,1) = {" -a -a -a -a -a -E -z -N -f -e -e -W -I -z -E -E -E -z -e -e -z -z -z -z -e -V -z -V -t -e -e -n -n -Y -H -n -n -A -E +aa +aa +aa +aa +aa +aw +vP +XX +ds +cw +cw +JZ +rY +vP +aw +aw +aw +vP +cw +cw +vP +vP +vP +vP +cw +sO +vP +sO +bV +cw +cw +an +an +aF +aH +an +an +ag +aw "} (30,1,1) = {" -a -a -a -a -a -E -z -x -o -e -I -I -z -z -E -E -E -z -e -z -z -E -E -z -z -z -z -z -k -e -e -n -n -n -n -n -n -A -E +aa +aa +aa +aa +aa +aw +vP +bR +Lb +cw +rY +rY +vP +vP +aw +aw +aw +vP +cw +vP +vP +aw +aw +vP +vP +vP +vP +vP +jG +cw +cw +an +an +an +an +an +an +ag +aw "} (31,1,1) = {" -a -a -a -a -a -E -z -z -z -e -z -z -z -E -E -E -E -z -e -z -z -E -E -E -E -E -E -E -z -e -e -n -L -n -n -n -n -A -E +aa +aa +aa +aa +aa +aw +vP +vP +vP +cw +vP +vP +vP +aw +aw +aw +aw +vP +cw +vP +vP +aw +aw +aw +aw +aw +aw +aw +vP +cw +cw +an +aL +an +an +an +an +ag +aw "} (32,1,1) = {" -a -a -a -a -a -E -E -E -z -e -z -E -E -E -E -E -E -z -e -e -z -E -a -a -a -a -E -E -z -e -e -n -n -n -n -n -r -A -E +aa +aa +aa +aa +aa +aw +aw +aw +vP +cw +vP +aw +aw +aw +aw +aw +aw +vP +cw +cw +vP +aw +aa +aa +aa +aa +aw +aw +vP +cw +cw +an +an +an +an +an +ar +ag +aw "} (33,1,1) = {" -a -a -a -a -a -a -a -E -z -e -z -E -E -a -a -a -E -l -z -V -z -E -a -a -a -a -E -z -z -z -q -C -A -A -C -A -A -A -E +aa +aa +aa +aa +aa +aa +aa +aw +vP +cw +vP +aw +aw +aa +aa +aa +aw +dl +vP +sO +vP +aw +aa +aa +aa +aa +aw +vP +vP +vP +aR +aY +ag +ag +aY +ag +ag +ag +aw "} (34,1,1) = {" -a -a -a -a -a -a -a -E -z -V -z -E -E -a -a -a -E -E -z -e -z -E -a -a -a -a -E -z -E -d -q -C -C -C -A -A -A -A -E +aa +aa +aa +aa +aa +aa +aa +aw +vP +sO +vP +aw +aw +aa +aa +aa +aw +aw +vP +cw +vP +aw +aa +aa +aa +aa +aw +vP +aw +aR +aR +aY +aY +aY +ag +ag +ag +ag +aw "} (35,1,1) = {" -a -a -a -a -a -a -a -E -z -e -z -E -E -a -a -a -E -E -z -e -z -E -a -a -a -a -E -E -E -d -q -A -A -A -A -A -A -A -E +aa +aa +aa +aa +aa +aa +aa +aw +vP +cw +vP +aw +aw +aa +aa +aa +aw +aw +vP +cw +vP +aw +aa +aa +aa +aa +aw +aw +aw +aR +aR +ag +ag +ag +ag +ag +ag +ag +aw "} (36,1,1) = {" -a -a -a -a -a -a -a -E -z -e -z -E -E -E -E -E -E -z -z -e -z -E -a -a -a -a -a -a -E -d -q -A -C -D -A -A -A -A -E +aa +aa +aa +aa +aa +aa +aa +aw +vP +cw +vP +aw +aw +aw +aw +aw +aw +vP +vP +cw +vP +aw +aa +aa +aa +aa +aa +aa +aw +aR +aR +ag +aY +ab +ag +ag +ag +ag +aw "} (37,1,1) = {" -a -a -a -a -E -E -E -E -z -e -z -E -E -E -E -E -z -z -e -e -z -E -a -a -a -a -a -a -E -d -q -A -A -A -A -A -A -A -E +aa +aa +aa +aa +aa +aa +aw +aw +vP +cw +vP +aw +aw +aw +aw +aw +vP +vP +cw +cw +vP +aw +aa +aa +aa +aa +aa +aa +aw +aR +aR +ag +ag +ag +ag +ag +ag +ag +aw "} (38,1,1) = {" -a -a -a -a -E -E -E -z -z -e -z -z -z -z -z -z -z -e -e -z -z -E -a -a -a -a -a -a -E -d -q -A -A -A -A -A -A -A -E +aa +aa +aa +aa +aa +aw +aw +vP +vP +cw +vP +vP +vP +vP +vP +vP +vP +cw +cw +vP +vP +aw +aa +aa +aa +aa +aa +aa +aw +aR +aR +ag +ag +ag +ag +ag +ag +ag +aw "} (39,1,1) = {" -a -a -a -a -E -E -z -z -e -e -W -z -z -e -e -P -e -e -z -z -E -E -a -a -a -a -a -a -E -Q -q -q -q -q -q -q -q -q -E +aa +aa +aa +aa +aa +aw +vP +vP +cw +cw +JZ +vP +vP +cw +cw +Wp +cw +cw +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aw +TA +aR +aR +aR +aR +aR +aR +aR +aR +aw "} (40,1,1) = {" -a -a -a -a -E -E -z -I -e -h -e -e -e -e -z -z -z -z -z -E -E -a -a -a -a -a -a -a -E -E -E -E -E -E -E -E -E -E -E +aa +aa +aa +aa +aw +aw +vP +rY +cw +Hu +cw +cw +cw +cw +vP +vP +vP +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aa +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw "} (41,1,1) = {" -a -a -a -a -E -z -z -W -e -V -e -W -z -z -z -E -E -E -E -E -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +vP +vP +JZ +cw +sO +cw +JZ +vP +vP +vP +aw +aw +aw +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (42,1,1) = {" -a -a -a -a -E -z -W -K -e -I -I -z -z -E -E -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +vP +JZ +JT +cw +rY +rY +vP +vP +aw +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (43,1,1) = {" -a -a -a -a -E -c -z -z -z -z -z -z -E -E -E -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +ie +vP +vP +vP +vP +vP +vP +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} (44,1,1) = {" -a -a -a -a -E -E -E -E -E -E -E -E -E -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +aa +aa +aa +aa +aw +aw +aw +aw +aw +aw +aw +aw +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index ebd1617aabd34..4bb9d09b65789 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -19,7 +19,7 @@ //Mutation classes. Normal being on them, extra being additional mutations with instability and other being stuff you dont want people to fuck with like wizard mutate /// A mutation that can be activated and deactived by completing a sequence #define MUT_NORMAL 1 -/// A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before it's name in the mutation section of the dna console +/// A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before its name in the mutation section of the dna console #define MUT_EXTRA 2 /// Cannot be interacted with by players through normal means. I.E. wizards mutate #define MUT_OTHER 3 diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index a0ab44002a0fb..e566f62dc53dd 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -76,6 +76,8 @@ #define ADMIN_LUAVIEW_CHUNK(state, log_index) "(VIEW CODE)" /// Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper. #define ADMIN_SHOW_PAPER(atom) "(SHOW)" +/// Displays "(PRINT)" in the chat, when clicked it will try to print the atom(paper) on the CentCom fax machine. +#define ADMIN_PRINT_FAX(atom, fax_name) "(PRINT)" /// Displays "(PLAY)" in the chat, when clicked it tries to play internet sounds from the request. #define ADMIN_PLAY_INTERNET(text, credit) "(PLAY)" /// Displays "(SEE Z-LEVEL LAYOUT)" in the chat, when clicked it shows the z-level layouts for the current world state. @@ -90,7 +92,7 @@ if(!drop_atom) return //not a valid atom. var/turf/drop_turf = get_step(drop_atom, 0) //resolve where the thing is. - if(!drop_turf) //incase it's inside a valid drop container, inside another container. ie if a mech picked up a closet and has it inside it's internal storage. + if(!drop_turf) //incase it's inside a valid drop container, inside another container. ie if a mech picked up a closet and has it inside its internal storage. var/atom/last_try = drop_atom.loc?.drop_location() //one last try, otherwise fuck it. if(last_try) drop_turf = get_step(last_try, 0) diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm index 90a9b55ba1749..97ec38c1c3c05 100644 --- a/code/__DEFINES/ai/ai_blackboard.dm +++ b/code/__DEFINES/ai/ai_blackboard.dm @@ -91,7 +91,7 @@ #define BB_TARGETLESS_TIME "BB_targetless_time" ///Tipped blackboards -///Bool that means a basic mob will start reacting to being tipped in it's planning +///Bool that means a basic mob will start reacting to being tipped in its planning #define BB_BASIC_MOB_TIP_REACTING "BB_basic_tip_reacting" ///the motherfucker who tipped us #define BB_BASIC_MOB_TIPPER "BB_basic_tip_tipper" diff --git a/code/__DEFINES/ai/monsters.dm b/code/__DEFINES/ai/monsters.dm index f80eb85735da6..31b613c1fa454 100644 --- a/code/__DEFINES/ai/monsters.dm +++ b/code/__DEFINES/ai/monsters.dm @@ -60,6 +60,7 @@ #define BB_LOBSTROSITY_TARGET_LIMB "BB_lobstrosity_target_limb" /// We increment this counter every time we try to move while dragging an arm and if we go too long we'll give up trying to get out of line of sight and just eat the fingers #define BB_LOBSTROSITY_FINGER_LUST "BB_lobstrosity_finger_lust" +#define BB_LOBSTROSITY_NAIVE_HUNTER "BB_lobstrosity_naive_hunter" // eyeball keys ///the death glare ability diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 3b512f71d9c9b..eb1196e6f2aeb 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -314,6 +314,11 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list( #define UPLINK_SHARED_STOCK_KITS "uplink_shared_stock_kits" #define UPLINK_SHARED_STOCK_SURPLUS "uplink_shared_stock_surplus" +/// Does this item provide illegal tech? +#define SYNDIE_ILLEGAL_TECH (1 << 0) +/// Does this item go off when scanned by a contraband scanner? +#define SYNDIE_TRIPS_CONTRABAND (1 << 1) + // Used for traitor objectives /// If the objective hasn't been taken yet #define OBJECTIVE_STATE_INACTIVE 1 diff --git a/code/__DEFINES/art.dm b/code/__DEFINES/art.dm index b6e9b885d9132..2f6fd95523148 100644 --- a/code/__DEFINES/art.dm +++ b/code/__DEFINES/art.dm @@ -14,3 +14,16 @@ #define CRAYON_COST_SMALL 0.5 #define CRAYON_COST_DEFAULT 1 #define CRAYON_COST_LARGE 5 + +/** + * Patronage thresholds for paintings. + * Different cosmetic frames become available as more credits are spent on the patronage. + * These also influence the artistic value (read: positive moodlets) of a painting. + */ +#define PATRONAGE_OK_FRAME (PAYCHECK_CREW * 3) // 150 credits, as of march 2022 +#define PATRONAGE_NICE_FRAME (PATRONAGE_OK_FRAME * 2.5) +#define PATRONAGE_GREAT_FRAME (PATRONAGE_NICE_FRAME * 2) +#define PATRONAGE_EXCELLENT_FRAME (PATRONAGE_GREAT_FRAME * 2) +#define PATRONAGE_AMAZING_FRAME (PATRONAGE_EXCELLENT_FRAME * 2) +#define PATRONAGE_SUPERB_FRAME (PATRONAGE_AMAZING_FRAME * 2) +#define PATRONAGE_LEGENDARY_FRAME (PATRONAGE_SUPERB_FRAME * 2) diff --git a/code/__DEFINES/atmospherics/atmos_mob_interaction.dm b/code/__DEFINES/atmospherics/atmos_mob_interaction.dm index dbd8bbc5610b0..75dcebc72d963 100644 --- a/code/__DEFINES/atmospherics/atmos_mob_interaction.dm +++ b/code/__DEFINES/atmospherics/atmos_mob_interaction.dm @@ -64,13 +64,13 @@ /// The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area. #define BODYTEMP_HEATING_MAX 30 /// The body temperature limit the human body can take before it starts taking damage from heat. -/// This also affects how fast the body normalises it's temperature when hot. +/// This also affects how fast the body normalises its temperature when hot. /// 340k is about 66c, and rather high for a human. #define BODYTEMP_HEAT_DAMAGE_LIMIT (BODYTEMP_NORMAL + 30) /// A temperature limit which is above the maximum lavaland temperature #define BODYTEMP_HEAT_LAVALAND_SAFE (LAVALAND_MAX_TEMPERATURE + 5) /// The body temperature limit the human body can take before it starts taking damage from cold. -/// This also affects how fast the body normalises it's temperature when cold. +/// This also affects how fast the body normalises its temperature when cold. /// 270k is about -3c, that is below freezing and would hurt over time. #define BODYTEMP_COLD_DAMAGE_LIMIT (BODYTEMP_NORMAL - 40) /// A temperature limit which is above the minimum icebox temperature diff --git a/code/__DEFINES/blackmarket.dm b/code/__DEFINES/blackmarket.dm index c3b8ad0bf4622..f0a19ad056d9a 100644 --- a/code/__DEFINES/blackmarket.dm +++ b/code/__DEFINES/blackmarket.dm @@ -9,3 +9,4 @@ #define SHIPPING_METHOD_LAUNCH "Launch" // Sends a supply pod to the buyer's location, showy. #define SHIPPING_METHOD_SUPPLYPOD "Supply Pod" + diff --git a/code/__DEFINES/cult.dm b/code/__DEFINES/cult.dm index 005b0ca27eef8..4f77e2966ca39 100644 --- a/code/__DEFINES/cult.dm +++ b/code/__DEFINES/cult.dm @@ -58,5 +58,5 @@ GLOBAL_LIST(sacrificed) // Used to keep track of items rewarded after a heretic is sacked. #define CURSED_BLADE_UNLOCKED "Cursed Blade" -#define CRIMSON_FOCUS_UNLOCKED "Crimson Focus" +#define CRIMSON_MEDALLION_UNLOCKED "Crimson Medallion" #define PROTEON_ORB_UNLOCKED "Proteon Orb" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm index c612d174ac354..3282c9387a1e5 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -68,7 +68,7 @@ #define COMSIG_ATOM_EXITED "atom_exited" ///from base of atom/movable/Moved(): (atom/movable/gone, direction) #define COMSIG_ATOM_ABSTRACT_EXITED "atom_abstract_exited" -///from base of atom/Bumped(): (/atom/movable) +///from base of atom/Bumped(): (/atom/movable) (the one that gets bumped) #define COMSIG_ATOM_BUMPED "atom_bumped" ///from base of atom/has_gravity(): (turf/location, list/forced_gravities) #define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" @@ -140,3 +140,6 @@ /// From /obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed) #define COMSIG_ATOM_TOUCHED_SPARKS "atom_touched_sparks" #define COMSIG_ATOM_TOUCHED_HAZARDOUS_SPARKS "atom_touched_hazardous_sparks" + +/// From whoever has been revealed (atom/revealed) +#define COMSIG_ATOM_REVEAL "atom_reveal" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm index bc73dbf32914a..d75d8bacec73a 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -9,10 +9,12 @@ #define COMSIG_MOVABLE_MOVED "movable_moved" ///from base of atom/movable/Cross(): (/atom/movable) #define COMSIG_MOVABLE_CROSS "movable_cross" + #define COMPONENT_BLOCK_CROSS (1<<0) ///from base of atom/movable/Move(): (/atom/movable) #define COMSIG_MOVABLE_CROSS_OVER "movable_cross_am" ///from base of atom/movable/Bump(): (/atom) #define COMSIG_MOVABLE_BUMP "movable_bump" + #define COMPONENT_INTERCEPT_BUMPED (1<<0) ///from base of atom/movable/newtonian_move(): (inertia_direction, start_delay) #define COMSIG_MOVABLE_NEWTONIAN_MOVE "movable_newtonian_move" #define COMPONENT_MOVABLE_NEWTONIAN_BLOCK (1<<0) @@ -72,7 +74,7 @@ #define COMSIG_MOVABLE_DISPOSING "movable_disposing" // called when movable is expelled from a disposal pipe, bin or outlet on obj/pipe_eject: (direction) #define COMSIG_MOVABLE_PIPE_EJECTING "movable_pipe_ejecting" -///called when the movable sucessfully has it's anchored var changed, from base atom/movable/set_anchored(): (value) +///called when the movable sucessfully has its anchored var changed, from base atom/movable/set_anchored(): (value) #define COMSIG_MOVABLE_SET_ANCHORED "movable_set_anchored" ///from base of atom/movable/setGrabState(): (newstate) #define COMSIG_MOVABLE_SET_GRAB_STATE "living_set_grab_state" @@ -123,3 +125,4 @@ #define COMSIG_MOVABLE_BUMP_PUSHED "movable_bump_pushed" /// Stop it from moving #define COMPONENT_NO_PUSH (1<<0) + diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm index 5836a0be65a39..63ad7655be7ee 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm @@ -19,7 +19,12 @@ #define COMSIG_ATOM_START_PULL "movable_start_pull" /// called on /atom when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) #define COMSIG_ATOM_TRIED_PASS "atom_tried_pass" - #define COMSIG_COMPONENT_PERMIT_PASSAGE (1 << 0) +/// called on /movable when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) AND WHEN general_movement = FALSE for some fucking reason +#define COMSIG_MOVABLE_CAN_PASS_THROUGH "movable_can_pass_through" +/// If given, we permit passage through +#define COMSIG_COMPONENT_PERMIT_PASSAGE (1 << 0) +/// If given, we DONT permit passage through +#define COMSIG_COMPONENT_REFUSE_PASSAGE (1 << 1) ///called on /living when someone starts pulling (atom/movable/pulled, state, force) #define COMSIG_LIVING_START_PULL "living_start_pull" ///called on /living when someone is pulled (mob/living/puller) diff --git a/code/__DEFINES/dcs/signals/signals_clothing.dm b/code/__DEFINES/dcs/signals/signals_clothing.dm index 03b695aca4c3e..eeb40ade8aae5 100644 --- a/code/__DEFINES/dcs/signals/signals_clothing.dm +++ b/code/__DEFINES/dcs/signals/signals_clothing.dm @@ -1,5 +1,5 @@ // /obj/item/clothing -/// (/obj/item/clothing, visor_state) - When a clothing gets it's visor toggled. +/// (/obj/item/clothing, visor_state) - When a clothing gets its visor toggled. #define COMSIG_CLOTHING_VISOR_TOGGLE "clothing_visor_toggle" /// From an undersuit being adjusted: () #define COMSIG_CLOTHING_UNDER_ADJUSTED "clothing_under_adjusted" diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm index 0c998be19219f..81224e7a58d81 100644 --- a/code/__DEFINES/dcs/signals/signals_datum.dm +++ b/code/__DEFINES/dcs/signals/signals_datum.dm @@ -45,3 +45,6 @@ ///from /datum/bank_account/pay_debt(), after a portion or all the debt has been paid. #define COMSIG_BANK_ACCOUNT_DEBT_PAID "bank_account_debt_paid" + +///from /datum/component/on_hit_effect/send_signal(): (user, target, hit_zone) +#define COMSIG_ON_HIT_EFFECT "comsig_on_hit_effect" diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm index 5b01bd7d61299..8f7483d94164a 100644 --- a/code/__DEFINES/dcs/signals/signals_fish.dm +++ b/code/__DEFINES/dcs/signals/signals_fish.dm @@ -21,11 +21,15 @@ /// Fishing challenge completed #define COMSIG_FISHING_CHALLENGE_COMPLETED "fishing_completed" /// Sent to the fisherman when the reward is dispensed: (reward) -#define COMSIG_MOB_FISHING_REWARD_DISPENSED "mob_fishing_reward_dispensed" +#define COMSIG_FISH_SOURCE_REWARD_DISPENSED "mob_fish_source_reward_dispensed" /// Called when you try to use fishing rod on anything #define COMSIG_PRE_FISHING "pre_fishing" +/// Called when an ai-controlled mob interacts with the fishing spot +#define COMSIG_NPC_FISHING "npc_fishing" + #define NPC_FISHING_SPOT 1 + /// Sent by the target of the fishing rod cast #define COMSIG_FISHING_ROD_CAST "fishing_rod_cast" #define FISHING_ROD_CAST_HANDLED (1 << 0) diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 4c79c9ad8147d..bb66e31b6ef06 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -277,6 +277,9 @@ #define COMSIG_LIVING_GRAB "living_grab" // Return COMPONENT_CANCEL_ATTACK_CHAIN / COMPONENT_SKIP_ATTACK_CHAIN to stop the grab +///Called when living finish eat (/datum/component/edible/proc/On_Consume) +#define COMSIG_LIVING_FINISH_EAT "living_finish_eat" + /// From /datum/element/basic_eating/try_eating() #define COMSIG_MOB_PRE_EAT "mob_pre_eat" ///cancel eating attempt @@ -291,3 +294,8 @@ #define COMSIG_MOB_HAPPINESS_CHANGE "happiness_change" /// From /obj/item/melee/baton/baton_effect(): (datum/source, mob/living/user, /obj/item/melee/baton) #define COMSIG_MOB_BATONED "mob_batoned" + +/// Sent to the mob when their mind is slaved +#define COMSIG_MOB_ENSLAVED_TO "mob_enslaved_to" +/// From /obj/item/proc/attack_atom: (mob/living/attacker, atom/attacked) +#define COMSIG_LIVING_ATTACK_ATOM "living_attack_atom" diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index c652a8ad202f1..9a057e038cc64 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -527,5 +527,5 @@ /// Sent from /obj/item/update_weight_class(). (old_w_class, new_w_class) #define COMSIG_ITEM_WEIGHT_CLASS_CHANGED "item_weight_class_changed" -/// Sent from /obj/item/update_weight_class(), to it's loc. (obj/item/changed_item, old_w_class, new_w_class) +/// Sent from /obj/item/update_weight_class(), to its loc. (obj/item/changed_item, old_w_class, new_w_class) #define COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED "atom_contents_weight_class_changed" diff --git a/code/__DEFINES/dcs/signals/signals_spell.dm b/code/__DEFINES/dcs/signals/signals_spell.dm index 4502997438589..d9ef98527e25c 100644 --- a/code/__DEFINES/dcs/signals/signals_spell.dm +++ b/code/__DEFINES/dcs/signals/signals_spell.dm @@ -74,6 +74,10 @@ #define COMSIG_MOB_EJECTED_FROM_JAUNT "spell_mob_eject_jaunt" /// Sent from datum/action/cooldown/spell/jaunt/exit_jaunt, after the mob exited jaunt: (datum/action/cooldown/spell/spell) #define COMSIG_MOB_AFTER_EXIT_JAUNT "spell_mob_after_exit_jaunt" +/// Sent from /obj/effect/dummy/phased_mob/proc/phased_check when moving to the holder object: (/obj/effect/dummy/phased_mob, mob/living/phaser, turf/newloc) +#define COMSIG_MOB_PHASED_CHECK "mob_phased_check" + /// Return this to cancel the phased move + #define COMPONENT_BLOCK_PHASED_MOVE (1 << 0) /// Sent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/try_enter_jaunt, /// to any unconscious / critical mobs being dragged when the jaunter enters blood: diff --git a/code/__DEFINES/dcs/signals/signals_voidwalker.dm b/code/__DEFINES/dcs/signals/signals_voidwalker.dm new file mode 100644 index 0000000000000..013e6173d867c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_voidwalker.dm @@ -0,0 +1,2 @@ +/// Called from /datum/component/space_kidnap/succesful_kidnap() : (mob/living/carbon/human/voidwalker, mob/living/carbon/human/victim) +#define COMSIG_VOIDWALKER_SUCCESFUL_KIDNAP "voidwalker_succesful_kidnap" diff --git a/code/__DEFINES/devices.dm b/code/__DEFINES/devices.dm index afd41570b5b27..7368d8d045719 100644 --- a/code/__DEFINES/devices.dm +++ b/code/__DEFINES/devices.dm @@ -10,6 +10,7 @@ #define CLOWN_INSPECTOR_PRINT_SOUND_MODE_LAST 4 #define INSPECTOR_ENERGY_USAGE_HONK (0.015 * STANDARD_CELL_CHARGE) #define INSPECTOR_ENERGY_USAGE_NORMAL (0.005 * STANDARD_CELL_CHARGE) +#define INSPECTOR_ENERGY_USAGE_LOW (0.001 * STANDARD_CELL_CHARGE) #define INSPECTOR_TIME_MODE_SLOW 1 #define INSPECTOR_TIME_MODE_FAST 2 #define INSPECTOR_TIME_MODE_HONK 3 diff --git a/code/__DEFINES/fish.dm b/code/__DEFINES/fish.dm index 059fbb72a2ed4..2ee8f55e55794 100644 --- a/code/__DEFINES/fish.dm +++ b/code/__DEFINES/fish.dm @@ -161,3 +161,6 @@ #define FISH_BEAUTY_GOOD 450 #define FISH_BEAUTY_GREAT 600 #define FISH_BEAUTY_EXCELLENT 700 + +//Fish breeding stops if fish count exceeds this. +#define AQUARIUM_MAX_BREEDING_POPULATION 20 diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 0b3321ea450e4..03c8022208e9e 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -321,6 +321,15 @@ #define PLANE_CRITICAL_FUCKO_PARALLAX (PLANE_CRITICAL_DISPLAY|PLANE_CRITICAL_NO_RELAY|PLANE_CRITICAL_CUT_RENDER) +//---------- Plane Master offsetting_flags ------------- +// Describes how different plane masters behave regarding being offset +/// This plane master will not be offset itself, existing only once with an offset of 0 +/// Mostly used for planes that really don't need to be duplicated, like the hud planes +#define BLOCKS_PLANE_OFFSETTING (1<<0) +/// This plane master will have its relays offset to match the highest rendering plane that matches the target +/// Required for making things like the blind fullscreen not render over runechat +#define OFFSET_RELAYS_MATCH_HIGHEST (1<<1) + /// A value of /datum/preference/numeric/multiz_performance that disables the option #define MULTIZ_PERFORMANCE_DISABLE -1 /// We expect at most 3 layers of multiz diff --git a/code/__DEFINES/lazy_templates.dm b/code/__DEFINES/lazy_templates.dm index 1e8fab8d92cd0..bc1e99e594ca1 100644 --- a/code/__DEFINES/lazy_templates.dm +++ b/code/__DEFINES/lazy_templates.dm @@ -3,6 +3,7 @@ #define LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY "LT_NINJAHOLDING" #define LAZY_TEMPLATE_KEY_ABDUCTOR_SHIPS "LT_ABDUCTORSHIPS" #define LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE "LT_HERETICSACRIFICE" +#define LAZY_TEMPLATE_KEY_VOIDWALKER_VOID "LT_VOIDWALKERVOID" #define LAZY_TEMPLATE_KEY_LIST_ALL(...) list( \ "Nukie Base" = LAZY_TEMPLATE_KEY_NUKIEBASE, \ @@ -10,5 +11,6 @@ "Ninja Holding" = LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY, \ "Abductor Ships" = LAZY_TEMPLATE_KEY_ABDUCTOR_SHIPS, \ "Heretic Sacrifice Level" = LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE, \ - "Outpost of Cogs" = LAZY_TEMPLATE_KEY_OUTPOST_OF_COGS, \ -) // SKYRAT EDIT ABOVE - OUTPOST OF COGS + "Voidwalker Void" = LAZY_TEMPLATE_KEY_VOIDWALKER_VOID, \ + "Outpost of Cogs" = LAZY_TEMPLATE_KEY_OUTPOST_OF_COGS, \ +) // SKYRAT EDIT ABOVE - OUTPOST OF COGS diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 4c44ce03ed35b..1a2c7b250cd84 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -33,7 +33,7 @@ #define BASE_MACHINE_ACTIVE_CONSUMPTION (BASE_MACHINE_IDLE_CONSUMPTION * 10) /// Bitflags for a machine's preferences on when it should start processing. For use with machinery's `processing_flags` var. -#define START_PROCESSING_ON_INIT (1<<0) /// Indicates the machine will automatically start processing right after it's `Initialize()` is ran. +#define START_PROCESSING_ON_INIT (1<<0) /// Indicates the machine will automatically start processing right after its `Initialize()` is ran. #define START_PROCESSING_MANUALLY (1<<1) /// Machines with this flag will not start processing when it's spawned. Use this if you want to manually control when a machine starts processing. //bitflags for door switches. diff --git a/code/__DEFINES/mining.dm b/code/__DEFINES/mining.dm index 4b233a5d4f171..5b612b4b7bcac 100644 --- a/code/__DEFINES/mining.dm +++ b/code/__DEFINES/mining.dm @@ -5,7 +5,7 @@ #define BOULDER_SIZE_MEDIUM 10 /// Durability of a small size boulder from a small size vent. #define BOULDER_SIZE_SMALL 5 -/// How many boulders can a single ore vent have on it's tile before it stops producing more? +/// How many boulders can a single ore vent have on its tile before it stops producing more? #define MAX_BOULDERS_PER_VENT 10 /// Time multiplier #define INATE_BOULDER_SPEED_MULTIPLIER 3 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index a33b7f1ca32a2..55798fc6bef4a 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -145,6 +145,7 @@ #define SPECIES_ZOMBIE "zombie" #define SPECIES_ZOMBIE_INFECTIOUS "memezombie" #define SPECIES_ZOMBIE_KROKODIL "krokodil_zombie" +#define SPECIES_VOIDWALKER "voidwalker" // Like species IDs, but not specifically attached a species. #define BODYPART_ID_ALIEN "alien" @@ -486,6 +487,9 @@ #define ROBOTIC_BRUTE_EXAMINE_TEXT "denting" #define ROBOTIC_BURN_EXAMINE_TEXT "charring" +#define GLASSY_BRUTE_EXAMINE_TEXT "cracking" +#define GLASSY_BURN_EXAMINE_TEXT "deformation" + #define GRAB_PIXEL_SHIFT_PASSIVE 6 #define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 #define GRAB_PIXEL_SHIFT_NECK 16 diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 6fc12601d7f7a..c85b2519869be 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -75,7 +75,7 @@ #define EXP_TYPE_ADMIN "Admin" //Flags in the players table in the db -#define DB_FLAG_EXEMPT 1 +#define DB_FLAG_EXEMPT (1<<0) #define DEFAULT_CYBORG_NAME "Default Cyborg Name" diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 17fd97d05752e..2414ff046b2fd 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -127,7 +127,7 @@ #define REACTION_COMPETITIVE (1<<5) ///Used to force pH changes to be constant regardless of volume #define REACTION_PH_VOL_CONSTANT (1<<6) -///If a reaction will generate it's impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion +///If a reaction will generate its impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion #define REACTION_REAL_TIME_SPLIT (1<<7) ///Used for overheat_temp - This sets the overheat so high it effectively has no overheat temperature. @@ -161,7 +161,7 @@ #define REACTION_TAG_HEALING (1<<4) /// This reagent primarily damages #define REACTION_TAG_DAMAGING (1<<5) -/// This reagent explodes as a part of it's intended effect (i.e. not overheated/impure) +/// This reagent explodes as a part of its intended effect (i.e. not overheated/impure) #define REACTION_TAG_EXPLOSIVE (1<<6) /// This reagent does things that are unique and special #define REACTION_TAG_OTHER (1<<7) diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 5361161301dcd..f135635b185a1 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -185,17 +185,17 @@ DEFINE_BITFIELD(bot_cover_flags, list( /// Medibots - Healing people #define BOT_HEALING "Healing" /// MULEbot - Moving to deliver -#define BOT_DELIVER "Navigating to Delivery Location" +#define BOT_DELIVER "Delivering" /// MULEbot - Returning to home -#define BOT_GO_HOME "Proceeding to work site" +#define BOT_GO_HOME "Returning" /// MULEbot - Blocked -#define BOT_BLOCKED "No Route" +#define BOT_BLOCKED "Blocked" /// MULEbot - Computing navigation -#define BOT_NAV "Unable to reach destination" +#define BOT_NAV "Unreachable" /// MULEbot - Waiting for nav computation -#define BOT_WAIT_FOR_NAV "Calculating navigation path" +#define BOT_WAIT_FOR_NAV "Calculating" /// MULEbot - No destination beacon found (or no route) -#define BOT_NO_ROUTE "Navigating to Home" +#define BOT_NO_ROUTE "Returning Home" //Secbot and ED209 judgement criteria bitflag values #define JUDGE_EMAGGED (1<<0) @@ -266,7 +266,18 @@ DEFINE_BITFIELD(firebot_mode_flags, list( "FIREBOT_EXTINGUISH_FLAMES" = FIREBOT_EXTINGUISH_FLAMES, )) - +///auto return to home after delivery +#define MULEBOT_RETURN_MODE (1<<0) +///autopickups at beacons +#define MULEBOT_AUTO_PICKUP_MODE (1<<1) +///announce every delivery we make +#define MULEBOT_REPORT_DELIVERY_MODE (1<<2) + +DEFINE_BITFIELD(mulebot_delivery_flags, list( + "MULEBOT_RETURN_MODE" = MULEBOT_RETURN_MODE, + "MULEBOT_AUTO_PICKUP_MODE" = MULEBOT_AUTO_PICKUP_MODE, + "MULEBOT_REPORT_DELIVERY_MODE" = MULEBOT_REPORT_DELIVERY_MODE, +)) //cleanBOT defines on what to clean #define CLEANBOT_CLEAN_BLOOD (1<<0) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index bc28a01c22d6e..1e26f2b778dd0 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -47,6 +47,7 @@ #define ROLE_MUTANT "Mutated Abomination" #define ROLE_CLOCK_CULTIST "Clock Cultist" // SKYRAT EDIT END +#define ROLE_VOIDWALKER "Voidwalker" // Latejoin roles #define ROLE_HERETIC_SMUGGLER "Heretic Smuggler" @@ -190,6 +191,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_BORER = 0, ROLE_MUTANT = 0, //SKYRAT EDIT END + ROLE_VOIDWALKER = 0, // Latejoin ROLE_HERETIC_SMUGGLER = 0, diff --git a/code/__DEFINES/roundend.dm b/code/__DEFINES/roundend.dm index a210d034015dc..d25204336444f 100644 --- a/code/__DEFINES/roundend.dm +++ b/code/__DEFINES/roundend.dm @@ -31,7 +31,7 @@ #define REVS_LOSE 18 /// The wizard was killed by the crew #define WIZARD_KILLED 19 -/// The station was destroyed by it's own self-destruct nuclear device +/// The station was destroyed by its own self-destruct nuclear device #define STATION_NUKED 20 /// The station was destroyed by the supermatter cascade #define SUPERMATTER_CASCADE 21 diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 75366f07d4833..86432d25ecb0f 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -80,7 +80,7 @@ #define SPAN_SINGING "singing" #define SPAN_TAPE_RECORDER "tape_recorder" #define SPAN_SMALL_VOICE "small" - +#define SPAN_SOAPBOX "soapbox" //bitflag #defines for return value of the radio() proc. /// Makes the message use italics #define ITALICS (1<<0) diff --git a/code/__DEFINES/span.dm b/code/__DEFINES/span.dm index 0447e87f532fe..fadd00053156d 100644 --- a/code/__DEFINES/span.dm +++ b/code/__DEFINES/span.dm @@ -120,6 +120,7 @@ #define span_small(str) ("" + str + "") #define span_smallnotice(str) ("" + str + "") #define span_smallnoticeital(str) ("" + str + "") +#define span_soapbox(str) ("" + str + "") #define span_spiderbroodmother(str) ("" + str + "") #define span_spiderscout(str) ("" + str + "") #define span_spiderbreacher(str) ("" + str + "") diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 78bc696014f64..dad177b7c5a5a 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -305,9 +305,14 @@ #define SSEXPLOSIONS_THROWS 3 // Machines subsystem subtasks. -#define SSMACHINES_APCS_EARLY 1 -#define SSMACHINES_MACHINES 2 -#define SSMACHINES_APCS_LATE 3 +#define SSMACHINES_MACHINES_EARLY 1 +#define SSMACHINES_APCS_EARLY 2 +#define SSMACHINES_APCS_ENVIRONMENT 3 +#define SSMACHINES_APCS_LIGHTS 4 +#define SSMACHINES_APCS_EQUIPMENT 5 +#define SSMACHINES_APCS_LATE 6 +#define SSMACHINES_MACHINES 7 +#define SSMACHINES_MACHINES_LATE 8 // Wardrobe subsystem tasks #define SSWARDROBE_STOCK 1 diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index cc2a206f4a598..ea32593ff7094 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -72,7 +72,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai // Trait added to the user of a hippocratic oath status effect #define TRAIT_HIPPOCRATIC_OATH "hippocratic_oath" #define TRAIT_IGNORESLOWDOWN "ignoreslow" -#define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown" /// Makes it so the mob can use guns regardless of tool user status #define TRAIT_GUN_NATURAL "gunnatural" /// Causes death-like unconsciousness @@ -138,6 +137,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Prevents plasmamen from self-igniting if only their helmet is missing #define TRAIT_NOSELFIGNITION_HEAD_ONLY "no_selfignition_head_only" #define TRAIT_NOGUNS "no_guns" +///Can toss a guns like a badass, causing additional damage/effect to their enemies +#define TRAIT_TOSS_GUN_HARD "toss_gun_hard" /// Species with this trait are genderless #define TRAIT_AGENDER "agender" /// Species with this trait have a blood clan mechanic @@ -232,6 +233,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_EXAMINE_FITNESS "reveal_power_level" /// These mobs have particularly hygienic tongues #define TRAIT_WOUND_LICKER "wound_licker" +/// Mobs with this trait are allowed to use silicon emotes +#define TRAIT_SILICON_EMOTES_ALLOWED "silicon_emotes_allowed" /// This trait designate that the mob was originally a monkey #define TRAIT_BORN_MONKEY "born_as_a_monkey" @@ -700,6 +703,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_HONKSPAMMING "trait_honkspamming" /// Required by the waddling element since there are multiple sources of it. #define TRAIT_WADDLING "trait_waddling" +/// Required by the on_hit_effect element, which is in turn added by other elements. +#define TRAIT_ON_HIT_EFFECT "trait_on_hit_effect" ///Used for managing KEEP_TOGETHER in [/atom/var/appearance_flags] #define TRAIT_KEEP_TOGETHER "keep-together" @@ -769,6 +774,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DANGEROUS_OBJECT "dangerous_object" /// determines whether or not objects are haunted and teleport/attack randomly #define TRAIT_HAUNTED "haunted" +/// An item that, if it has contents, will ignore its contents when scanning for contraband. +#define TRAIT_CONTRABAND_BLOCKER "contraband_blocker" //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" @@ -970,9 +977,14 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// changelings with this trait can no longer talk over the hivemind #define TRAIT_CHANGELING_HIVEMIND_MUTE "ling_mute" +/// This guy is a hulk! (Bulky and green, lacks tact) #define TRAIT_HULK "hulk" /// Isn't attacked harmfully by blob structures #define TRAIT_BLOB_ALLY "blob_ally" +/// Has the chuuni component +#define TRAIT_CHUUNIBYOU "chuunibyou" +/// Has splattercasting +#define TRAIT_SPLATTERCASTER "splattercaster" ///Traits given by station traits #define STATION_TRAIT_ASSISTANT_GIMMICKS "station_trait_assistant_gimmicks" @@ -1119,8 +1131,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait given to a dragon who fails to defend their rifts #define TRAIT_RIFT_FAILURE "fail_dragon_loser" -///this mob is able to relay happiness, given by /datum/component/happiness -#define TRAIT_MOB_RELAY_HAPPINESS "mob_relay_happiness" +///this trait hides most visible fluff and interactions of happiness, likely temporarily. +#define TRAIT_MOB_HIDE_HAPPINESS "mob_hide_happiness" ///trait determines if this mob can breed given by /datum/component/breeding #define TRAIT_MOB_BREEDER "mob_breeder" ///trait given to mobs that are hatched @@ -1162,7 +1174,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait which means whatever has this is dancing by a dance machine #define TRAIT_DISCO_DANCER "disco_dancer" -/// That which allows mobs to instantly break down boulders. +/// Trait which allows mobs to instantly break down boulders. #define TRAIT_INSTANTLY_PROCESSES_BOULDERS "instantly_processes_boulders" /// Trait applied to objects and mobs that can attack a boulder and break it down. (See /obj/item/boulder/manual_process()) @@ -1171,11 +1183,19 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait given to anything linked to, not necessarily allied to, the mansus #define TRAIT_MANSUS_TOUCHED "mansus_touched" +/// Appiled when wizard buy (/datum/spellbook_entry/perks/spalls_lottery) perk. +/// Give 50/25% chance not spend a spellbook charge on 1/2 cost spell. +/// Appiled it wizard can't refund any spells. +#define TRAIT_SPELLS_LOTTERY "spell_for_sale" + /// Trait given to mobs wearing the clown mask #define TRAIT_PERCEIVED_AS_CLOWN "perceived_as_clown" /// Does this item bypass ranged armor checks? #define TRAIT_BYPASS_RANGED_ARMOR "bypass_ranged_armor" +/// Trait which means that this item is considered illegal contraband, and valid for the contraband bounty or when scanned by an nspect scanner. +#define TRAIT_CONTRABAND "illegal_contraband" + /// Traits given by settler, each with their own specific effects for cases where someone would have that trait, but not the other settler effects #define TRAIT_EXPERT_FISHER "expert_fisher" // fishing is easier @@ -1195,5 +1215,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given to a turf that should not be allowed to be terraformed, such as turfs holding ore vents. #define TRAIT_NO_TERRAFORM "no_terraform" +/// Given to a mob that can throw to make them not able to throw +#define TRAIT_NO_THROWING "no_throwing" + +///Trait which allows mobs to parry mining mob projectiles // END TRAIT DEFINES diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index 759101dc2abd5..47887ede45ebf 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -225,8 +225,6 @@ #define SPEED_TRAIT "speed_trait" /// Trait given to mobs that have been autopsied #define AUTOPSY_TRAIT "autopsy_trait" -/// Trait given by [/datum/status_effect/blessing_of_insanity] -#define MAD_WIZARD_TRAIT "mad_wizard_trait" ///From the market_crash event #define MARKET_CRASH_EVENT_TRAIT "crashed_market_event" diff --git a/code/__DEFINES/turfs.dm b/code/__DEFINES/turfs.dm index 545767289e0b5..47a1a5a9a5924 100644 --- a/code/__DEFINES/turfs.dm +++ b/code/__DEFINES/turfs.dm @@ -116,3 +116,10 @@ #define LARGE_TURF_SMOOTHING_X_OFFSET -9 /// Defines the y offset to apply to larger smoothing turfs (such as grass). #define LARGE_TURF_SMOOTHING_Y_OFFSET -9 + +/// Defines a consistent light power for our various basalt turfs +#define BASALT_LIGHT_POWER 0.6 +/// Defines a consistent light range for basalt turfs that have a bigger area of lava +#define BASALT_LIGHT_RANGE_BRIGHT 2 +/// Defines a consistent light range for basalt turfs that have a smaller area of lava +#define BASALT_LIGHT_RANGE_DIM 1.4 diff --git a/code/__DEFINES/~skyrat_defines/apc_defines.dm b/code/__DEFINES/~skyrat_defines/apc_defines.dm index d969b94a14909..a79fa4ee28698 100644 --- a/code/__DEFINES/~skyrat_defines/apc_defines.dm +++ b/code/__DEFINES/~skyrat_defines/apc_defines.dm @@ -1,6 +1,6 @@ /// Lower excess value for APC arcing, 5% chance to arc #define APC_ARC_LOWERLIMIT 4 MEGA WATTS /// Moderate excess value for APC arcing, 10% chance to arc -#define APC_ARC_MEDIUMLIMIT 7 MEGA WATTS +#define APC_ARC_MEDIUMLIMIT 5.5 MEGA WATTS /// Upper excess value for for APC arcing, 15% chance to arc -#define APC_ARC_UPPERLIMIT 9 MEGA WATTS +#define APC_ARC_UPPERLIMIT 7 MEGA WATTS diff --git a/code/__DEFINES/~skyrat_defines/robot_defines.dm b/code/__DEFINES/~skyrat_defines/robot_defines.dm index 935fe1db1c82a..65f4832212441 100644 --- a/code/__DEFINES/~skyrat_defines/robot_defines.dm +++ b/code/__DEFINES/~skyrat_defines/robot_defines.dm @@ -5,6 +5,7 @@ #define ROBOT_REST_BELLY_UP 3 #define SKIN_FEATURES "skin_features" //for the new system of borg making +#define SKIN_HAT_REST_OFFSET "skin_hat_rest_offset" //for how much to shift the hat y when resting // Icon file locations for modular borg icons #define CYBORG_ICON_STANDARD 'modular_skyrat/modules/borgs/icons/robots.dmi' diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 6811a31284aa4..157a17012a883 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -850,7 +850,7 @@ used_key_list[input_key] = 1 return input_key -///Flattens a keyed list into a list of it's contents +///Flattens a keyed list into a list of its contents /proc/flatten_list(list/key_list) if(!islist(key_list)) return null diff --git a/code/__HELPERS/atoms.dm b/code/__HELPERS/atoms.dm index 406ea75143c66..7106ec81be1ba 100644 --- a/code/__HELPERS/atoms.dm +++ b/code/__HELPERS/atoms.dm @@ -33,6 +33,18 @@ processing += checked_atom.contents . += checked_atom +///Returns the src and all recursive contents, but skipping going any deeper if an atom has a specific trait. +/atom/proc/get_all_contents_skipping_traits(skipped_trait) + . = list(src) + if(!skipped_trait) + CRASH("get_all_contents_skipping_traits called without a skipped_trait") + var/i = 0 + while(i < length(.)) + var/atom/checked_atom = .[++i] + if(HAS_TRAIT(checked_atom, skipped_trait)) + continue + . += checked_atom.contents + ///Returns a list of all locations (except the area) the movable is within. /proc/get_nested_locs(atom/movable/atom_on_location, include_turf = FALSE) . = list() diff --git a/code/__HELPERS/generators.dm b/code/__HELPERS/generators.dm index d50df7deba198..85f6de3a090d4 100644 --- a/code/__HELPERS/generators.dm +++ b/code/__HELPERS/generators.dm @@ -5,7 +5,7 @@ * * Note: this means things like "list(1,2,3)" will need to be processed */ /proc/return_generator_args(generator/target) - var/string_repr = "[target]" //the name of the generator is the string representation of it's _binobj, which also contains it's args + var/string_repr = "[target]" //the name of the generator is the string representation of its _binobj, which also contains its args string_repr = copytext(string_repr, 11, length(string_repr)) // strips extraneous data string_repr = replacetext(string_repr, "\"", "") // removes the " around the type return splittext(string_repr, ", ") diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 4a4cf2011d081..06fe0eff3043e 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1135,7 +1135,7 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) if((x_dimension == world.icon_size) && (y_dimension == world.icon_size)) return image_to_center - //Offset the image so that it's bottom left corner is shifted this many pixels + //Offset the image so that its bottom left corner is shifted this many pixels //This makes it infinitely easier to draw larger inhands/images larger than world.iconsize //but still use them in game var/x_offset = -((x_dimension / world.icon_size) - 1) * (world.icon_size * 0.5) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 519c74c9250df..95af398d4162d 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -28,6 +28,20 @@ else return COLOR_BLACK +/proc/random_hair_color() + var/static/list/natural_hair_colors = list( + "#111111", "#362925", "#3B3831", "#41250C", "#412922", + "#544C49", "#583322", "#593029", "#703b30", "#714721", + "#744729", "#74482a", "#7b746e", "#855832", "#863019", + "#8c4734", "#9F550E", "#A29A96", "#A4381C", "#B17B41", + "#C0BAB7", "#EFE5E4", "#F7F3F1", "#FFF2D6", "#a15537", + "#a17e61", "#b38b67", "#ba673c", "#c89f73", "#d9b380", + "#dbc9b8", "#e1621d", "#e17d17", "#e1af93", "#f1cc8f", + "#fbe7a1", + ) + + return pick(natural_hair_colors) + /proc/random_underwear(gender) if(length(SSaccessories.underwear_list) == 0) CRASH("No underwear to choose from!") @@ -671,7 +685,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( else return zone -///Takes a zone and returns it's "parent" zone, if it has one. +///Takes a zone and returns its "parent" zone, if it has one. /proc/deprecise_zone(precise_zone) switch(precise_zone) if(BODY_ZONE_PRECISE_GROIN) diff --git a/code/__HELPERS/piping_colors_lists.dm b/code/__HELPERS/piping_colors_lists.dm index c198e569635e7..8b92e2d530a3d 100644 --- a/code/__HELPERS/piping_colors_lists.dm +++ b/code/__HELPERS/piping_colors_lists.dm @@ -4,7 +4,7 @@ GLOBAL_LIST_INIT(pipe_paint_colors, list( "green" = COLOR_VIBRANT_LIME, "blue" = COLOR_BLUE, "red" = COLOR_RED, - "orange" = COLOR_TAN_ORANGE, + "orange" = COLOR_ENGINEERING_ORANGE, "cyan" = COLOR_CYAN, "dark" = COLOR_DARK, "yellow" = COLOR_YELLOW, @@ -23,7 +23,7 @@ GLOBAL_LIST_INIT(pipe_colors_ordered, sort_list(list( COLOR_DARK = -2, COLOR_VIBRANT_LIME = -1, COLOR_VERY_LIGHT_GRAY = 0, - COLOR_TAN_ORANGE = 1, + COLOR_ENGINEERING_ORANGE = 1, COLOR_PURPLE = 2, COLOR_RED = 3, COLOR_STRONG_VIOLET = 4, @@ -36,7 +36,7 @@ GLOBAL_LIST_INIT(pipe_color_name, sort_list(list( COLOR_BLUE = "blue", COLOR_RED = "red", COLOR_VIBRANT_LIME = "green", - COLOR_TAN_ORANGE = "orange", + COLOR_ENGINEERING_ORANGE = "orange", COLOR_CYAN = "cyan", COLOR_DARK = "dark", COLOR_YELLOW = "yellow", diff --git a/code/__HELPERS/reagents.dm b/code/__HELPERS/reagents.dm index 012a1fd5cc09d..cb87e21cefa54 100644 --- a/code/__HELPERS/reagents.dm +++ b/code/__HELPERS/reagents.dm @@ -190,6 +190,16 @@ var/picked_reagent = pick(random_reagents) return picked_reagent +///Returns a random reagent consumable ethanol object minus blacklisted reagents +/proc/get_random_drink_id() + var/static/list/random_drinks = list() + if(!random_drinks.len) + for(var/datum/reagent/drink_path as anything in subtypesof(/datum/reagent/consumable/ethanol)) + if(initial(drink_path.chemical_flags) & REAGENT_CAN_BE_SYNTHESIZED) + random_drinks += drink_path + var/picked_drink = pick(random_drinks) + return picked_drink + ///Returns reagent datum from reagent name string /proc/get_chem_id(chem_name) for(var/X in GLOB.chemical_reagents_list) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index c1c9187f0a919..596e688a25689 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -463,6 +463,9 @@ GLOBAL_LIST_INIT(binary, list("0","1")) /proc/random_color() return random_string(6, GLOB.hex_characters) +/proc/ready_random_color() + return "#" + random_string(6, GLOB.hex_characters) + //merges non-null characters (3rd argument) from "from" into "into". Returns result //e.g. into = "Hello World" // from = "Seeya______" diff --git a/code/__HELPERS/turfs.dm b/code/__HELPERS/turfs.dm index 01ad88e68f4c3..93da26ef292f8 100644 --- a/code/__HELPERS/turfs.dm +++ b/code/__HELPERS/turfs.dm @@ -210,7 +210,7 @@ Turf and target are separate in case you want to teleport some distance from a t * if the bounds are odd, the true middle turf of the atom is returned **/ /proc/get_turf_pixel(atom/checked_atom) - var/turf/atom_turf = get_turf(checked_atom) //use checked_atom's turfs, as it's coords are the same as checked_atom's AND checked_atom's coords are lost if it is inside another atom + var/turf/atom_turf = get_turf(checked_atom) //use checked_atom's turfs, as its coords are the same as checked_atom's AND checked_atom's coords are lost if it is inside another atom if(!atom_turf) return null if(checked_atom.flags_1 & IGNORE_TURF_PIXEL_OFFSET_1) @@ -227,7 +227,7 @@ Turf and target are separate in case you want to teleport some distance from a t * Icon width/height **/ /proc/get_visual_offset(atom/checked_atom) - //Find checked_atom's matrix so we can use it's X/Y pixel shifts + //Find checked_atom's matrix so we can use its X/Y pixel shifts var/matrix/atom_matrix = matrix(checked_atom.transform) var/pixel_x_offset = checked_atom.pixel_x + checked_atom.pixel_w + atom_matrix.get_x_shift() diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index 87d4348580e29..0f19332934d09 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -16,7 +16,7 @@ // We use wrappers for this in case some part of the api ever changes, and to make their function more clear // For the record: GLOBAL_VERB_REF would be useless as verbs can't be global. -/// Call by name proc references, checks if the proc exists on either this type or as a global proc. +/// Call by name proc references, checks if the proc exists on either this type () (AND ONLY THIS TYPE) or as a global proc. #define PROC_REF(X) (nameof(.proc/##X)) /// Call by name verb references, checks if the verb exists on either this type or as a global verb. #define VERB_REF(X) (nameof(.verb/##X)) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index fea24e64ba4cf..54db2f8aa9698 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -313,7 +313,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items list(//equipment /obj/item/clothing/glasses/hud/security = 1, /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/clothing/gloves/color/black = 1, + /obj/item/clothing/gloves/color/black/security = 1, /obj/item/clothing/gloves/color/yellow = 1, /obj/item/clothing/gloves/tackler/combat = 1, /obj/item/clothing/head/helmet/toggleable/justice = 1, diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index dce2dc69a50ae..f9f70a2c7069f 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -31,6 +31,7 @@ GLOBAL_LIST_INIT(guardian_first_names, world.file2list("strings/names/guardian_d GLOBAL_LIST_INIT(guardian_tech_surnames, world.file2list("strings/names/guardian_gamepieces.txt")) GLOBAL_LIST_INIT(guardian_fantasy_surnames, world.file2list("strings/names/guardian_tarot.txt")) GLOBAL_LIST_INIT(operative_aliases, world.file2list("strings/names/operative_alias.txt")) +GLOBAL_LIST_INIT(voidwalker_names, world.file2list("strings/names/voidwalker.txt")) GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm index 07e0eabf01f62..805cea677a092 100644 --- a/code/_globalvars/lists/typecache.dm +++ b/code/_globalvars/lists/typecache.dm @@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(typecache_elevated_structures, typecacheof(list( /obj/structure/table, //Kitchen /obj/machinery/smartfridge, - /obj/machinery/smartfridge/drying_rack, // Redundant, given above, but this is for the sake of explicitness. + /obj/machinery/smartfridge/drying, // Redundant, given above, but this is for the sake of explicitness. /obj/structure/bonfire, /obj/machinery/grill, /obj/machinery/griddle, diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 51cea02bc3adf..66c2a140eaf20 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -59,6 +59,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NOT_ENGRAVABLE" = TRAIT_NOT_ENGRAVABLE, "TRAIT_SPELLS_TRANSFER_TO_LOC" = TRAIT_SPELLS_TRANSFER_TO_LOC, "TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENT" = TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENT, + "TRAIT_ON_HIT_EFFECT" = TRAIT_ON_HIT_EFFECT, "TRAIT_RUNECHAT_HIDDEN" = TRAIT_RUNECHAT_HIDDEN, "TRAIT_SECLUDED_LOCATION" = TRAIT_SECLUDED_LOCATION, "TRAIT_SNOWSTORM_IMMUNE" = TRAIT_SNOWSTORM_IMMUNE, @@ -118,6 +119,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( // SKYRAT EDIT ADDITON END - Synthetic wounds /obj = list( "TRAIT_WALLMOUNTED" = TRAIT_WALLMOUNTED, + "TRAIT_CONTRABAND" = TRAIT_CONTRABAND, ), /mob = list( "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, @@ -177,6 +179,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CHEF_KISS" = TRAIT_CHEF_KISS, "TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS, "TRAIT_CHUNKYFINGERS_IGNORE_BATON" = TRAIT_CHUNKYFINGERS_IGNORE_BATON, + "TRAIT_CHUUNIBYOU" = TRAIT_CHUUNIBYOU, "TRAIT_CLEANBOT_WHISPERER" = TRAIT_CLEANBOT_WHISPERER, "TRAIT_CLIFF_WALKER" = TRAIT_CLIFF_WALKER, "TRAIT_CLOWN_ENJOYER" = TRAIT_CLOWN_ENJOYER, @@ -279,7 +282,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_HUSK" = TRAIT_HUSK, "TRAIT_ID_APPRAISER" = TRAIT_ID_APPRAISER, "TRAIT_IGNORE_ELEVATION" = TRAIT_IGNORE_ELEVATION, - "TRAIT_IGNOREDAMAGESLOWDOWN" = TRAIT_IGNOREDAMAGESLOWDOWN, "TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN, "TRAIT_IGNORING_GRAVITY" = TRAIT_IGNORING_GRAVITY, "TRAIT_ILLITERATE" = TRAIT_ILLITERATE, @@ -319,7 +321,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_MOB_BREEDER" = TRAIT_MOB_BREEDER, "TRAIT_MOB_EATER" = TRAIT_MOB_EATER, "TRAIT_MOB_HATCHED" = TRAIT_MOB_HATCHED, - "TRAIT_MOB_RELAY_HAPPINESS" = TRAIT_MOB_RELAY_HAPPINESS, + "TRAIT_MOB_HIDE_HAPPINESS" = TRAIT_MOB_HIDE_HAPPINESS, "TRAIT_MOB_TIPPED" = TRAIT_MOB_TIPPED, "TRAIT_MORBID" = TRAIT_MORBID, "TRAIT_MULTIZ_SUIT_SENSORS" = TRAIT_MULTIZ_SUIT_SENSORS, @@ -344,6 +346,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NOFIRE_SPREAD" = TRAIT_NOFIRE_SPREAD, "TRAIT_NOFLASH" = TRAIT_NOFLASH, "TRAIT_NOGUNS" = TRAIT_NOGUNS, + "TRAIT_TOSS_GUN_HARD" = TRAIT_TOSS_GUN_HARD, "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT, "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, @@ -358,7 +361,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_EXTINGUISH" = TRAIT_NO_EXTINGUISH, "TRAIT_NO_FLOATING_ANIM" = TRAIT_NO_FLOATING_ANIM, "TRAIT_NO_GLIDE" = TRAIT_NO_GLIDE, - "TRAIT_NO_PLASMA_TRANSFORM" = TRAIT_NO_PLASMA_TRANSFORM, "TRAIT_NO_GUN_AKIMBO" = TRAIT_NO_GUN_AKIMBO, "TRAIT_NO_IMMOBILIZE" = TRAIT_NO_IMMOBILIZE, "TRAIT_NO_JUMPSUIT" = TRAIT_NO_JUMPSUIT, @@ -372,6 +374,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_SOUL" = TRAIT_NO_SOUL, "TRAIT_NO_STAGGER" = TRAIT_NO_STAGGER, "TRAIT_NO_STRIP" = TRAIT_NO_STRIP, + "TRAIT_NO_THROWING" = TRAIT_NO_THROWING, "TRAIT_NO_TRANSFORM" = TRAIT_NO_TRANSFORM, "TRAIT_NO_TWOHANDING" = TRAIT_NO_TWOHANDING, "TRAIT_NO_UNDERWEAR" = TRAIT_NO_UNDERWEAR, @@ -437,7 +440,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_ROD_SUPLEX" = TRAIT_ROD_SUPLEX, "TRAIT_ROUGHRIDER" = TRAIT_ROUGHRIDER, "TRAIT_SABRAGE_PRO" = TRAIT_SABRAGE_PRO, - "TRAIT_SACRIFICED" = TRAIT_SACRIFICED, "TRAIT_SECURITY_HUD" = TRAIT_SECURITY_HUD, "TRAIT_SEE_WORN_COLOURS" = TRAIT_SEE_WORN_COLOURS, "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE, @@ -447,6 +449,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, "TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG, "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, + "TRAIT_SILICON_EMOTES_ALLOWED" = TRAIT_SILICON_EMOTES_ALLOWED, "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE, "TRAIT_SKITTISH" = TRAIT_SKITTISH, "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, @@ -460,8 +463,10 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SPARRING" = TRAIT_SPARRING, "TRAIT_SPEAKS_CLEARLY" = TRAIT_SPEAKS_CLEARLY, "TRAIT_SPECIAL_TRAUMA_BOOST" = TRAIT_SPECIAL_TRAUMA_BOOST, + "TRAIT_SPELLS_LOTTERY" = TRAIT_SPELLS_LOTTERY, "TRAIT_SPIDER_CONSUMED" = TRAIT_SPIDER_CONSUMED, "TRAIT_SPIRITUAL" = TRAIT_SPIRITUAL, + "TRAIT_SPLATTERCASTER" = TRAIT_SPLATTERCASTER, "TRAIT_SPRAY_PAINTABLE" = TRAIT_SPRAY_PAINTABLE, "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, @@ -534,9 +539,11 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj/item = list( "TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING, + "TRAIT_BAKEABLE" = TRAIT_BAKEABLE, "TRAIT_BASIC_QUALITY_BAIT" = TRAIT_BASIC_QUALITY_BAIT, "TRAIT_BLIND_TOOL" = TRAIT_BLIND_TOOL, "TRAIT_BYPASS_RANGED_ARMOR" = TRAIT_BYPASS_RANGED_ARMOR, + "TRAIT_CONTRABAND_BLOCKER" = TRAIT_CONTRABAND_BLOCKER, "TRAIT_CUSTOM_TAP_SOUND" = TRAIT_CUSTOM_TAP_SOUND, "TRAIT_DANGEROUS_OBJECT" = TRAIT_DANGEROUS_OBJECT, "TRAIT_FISHING_BAIT" = TRAIT_FISHING_BAIT, @@ -546,6 +553,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_HAUNTED" = TRAIT_HAUNTED, "TRAIT_HONKSPAMMING" = TRAIT_HONKSPAMMING, "TRAIT_INNATELY_FANTASTICAL_ITEM" = TRAIT_INNATELY_FANTASTICAL_ITEM, + "TRAIT_INSTANTLY_PROCESSES_BOULDERS" = TRAIT_INSTANTLY_PROCESSES_BOULDERS, "TRAIT_ITEM_OBJECTIVE_BLOCKED" = TRAIT_ITEM_OBJECTIVE_BLOCKED, "TRAIT_NEEDS_TWO_HANDS" = TRAIT_NEEDS_TWO_HANDS, "TRAIT_NO_BARCODES" = TRAIT_NO_BARCODES, @@ -559,8 +567,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_TRANSFORM_ACTIVE" = TRAIT_TRANSFORM_ACTIVE, "TRAIT_UNCATCHABLE" = TRAIT_UNCATCHABLE, "TRAIT_WIELDED" = TRAIT_WIELDED, - "TRAIT_BAKEABLE" = TRAIT_BAKEABLE, - "TRAIT_INSTANTLY_PROCESSES_BOULDERS" = TRAIT_INSTANTLY_PROCESSES_BOULDERS, ), /obj/item/ammo_casing = list( "TRAIT_DART_HAS_INSERT" = TRAIT_DART_HAS_INSERT, diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index 3526a2b223193..e1cef47233368 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -1,6 +1,6 @@ // This file contains any stuff related to admin-visible traits. // There's likely more than a few traits missing from this file, do consult the `_traits.dm` file in this folder to see every global trait that exists. -// quirks have it's own panel so we don't need them here. +// quirks have their own panel so we don't need them here. GLOBAL_LIST_INIT(admin_visible_traits, list( /atom = list( @@ -101,7 +101,6 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_HOLY" = TRAIT_HOLY, "TRAIT_HUSK" = TRAIT_HUSK, "TRAIT_IGNORE_ELEVATION" = TRAIT_IGNORE_ELEVATION, - "TRAIT_IGNOREDAMAGESLOWDOWN" = TRAIT_IGNOREDAMAGESLOWDOWN, "TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN, "TRAIT_ILLITERATE" = TRAIT_ILLITERATE, "TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED, @@ -125,6 +124,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_MIME_FAN" = TRAIT_MIME_FAN, "TRAIT_MIMING" = TRAIT_MIMING, "TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD, + "TRAIT_MOB_HIDE_HAPPINESS" = TRAIT_MOB_HIDE_HAPPINESS, "TRAIT_MORBID" = TRAIT_MORBID, "TRAIT_MUSICIAN" = TRAIT_MUSICIAN, "TRAIT_MUTANT_COLORS" = TRAIT_MUTANT_COLORS, @@ -156,6 +156,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_NOFIRE" = TRAIT_NOFIRE, "TRAIT_NOFLASH" = TRAIT_NOFLASH, "TRAIT_NOGUNS" = TRAIT_NOGUNS, + "TRAIT_TOSS_GUN_HARD" = TRAIT_TOSS_GUN_HARD, "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT, "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, @@ -200,6 +201,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, "TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG, "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, + "TRAIT_SILICON_EMOTES_ALLOWED" = TRAIT_SILICON_EMOTES_ALLOWED, "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE, "TRAIT_SKITTISH" = TRAIT_SKITTISH, "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index f8f79f442940b..d477195a603ab 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -549,9 +549,9 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." construct_owner = null // construct track - if(construct_owner?.seeking && construct_owner.master) - blood_target = construct_owner.master - desc = "Your blood sense is leading you to [construct_owner.master]" + if(construct_owner?.seeking && construct_owner.construct_master) + blood_target = construct_owner.construct_master + desc = "Your blood sense is leading you to [construct_owner.construct_master]" // cult track var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index c3b91173a45f5..476140acb1edd 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -79,6 +79,7 @@ using = new /atom/movable/screen/resist(null, src) using.icon = ui_style using.screen_loc = ui_above_movement + using.update_appearance() hotkeybuttons += using throw_icon = new /atom/movable/screen/throw_catch(null, src) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 710c8103d9b69..4617bc77b5aa4 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -211,7 +211,7 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list( for(var/group_key as anything in master_groups) var/datum/plane_master_group/group = master_groups[group_key] - group.transform_lower_turfs(src, current_plane_offset) + group.build_planes_offset(src, current_plane_offset) /datum/hud/proc/should_use_scale() return should_sight_scale(mymob.sight) @@ -230,10 +230,9 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list( current_plane_offset = new_offset SEND_SIGNAL(src, COMSIG_HUD_OFFSET_CHANGED, old_offset, new_offset) - if(should_use_scale()) - for(var/group_key as anything in master_groups) - var/datum/plane_master_group/group = master_groups[group_key] - group.transform_lower_turfs(src, new_offset) + for(var/group_key as anything in master_groups) + var/datum/plane_master_group/group = master_groups[group_key] + group.build_planes_offset(src, new_offset) /datum/hud/Destroy() if(mymob.hud_used == src) diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index 7a0937974bd36..2910a9f0cc829 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -6,7 +6,7 @@ //Movable Screen Object -//Not tied to the grid, places it's center where the cursor is +//Not tied to the grid, places its center where the cursor is /atom/movable/screen/movable mouse_drag_pointer = 'icons/effects/mouse_pointers/screen_drag.dmi' diff --git a/code/_onclick/hud/new_player.dm b/code/_onclick/hud/new_player.dm index a51b61cd3962c..3f6a94bb40a8d 100644 --- a/code/_onclick/hud/new_player.dm +++ b/code/_onclick/hud/new_player.dm @@ -64,8 +64,7 @@ ///Set the HUD in New, as lobby screens are made before Atoms are Initialized. /atom/movable/screen/lobby/New(loc, datum/hud/our_hud, ...) - if(our_hud) - hud = our_hud + set_new_hud(our_hud) return ..() ///Run sleeping actions after initialize diff --git a/code/_onclick/hud/parallax/parallax.dm b/code/_onclick/hud/parallax/parallax.dm index bcdcd0e74fed1..0a3732e134fc4 100755 --- a/code/_onclick/hud/parallax/parallax.dm +++ b/code/_onclick/hud/parallax/parallax.dm @@ -275,7 +275,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) . = ..() // Parallax layers are independant of hud, they care about client // Not doing this will just create a bunch of hard deletes - hud = null + set_new_hud(hud_owner = null) if(template) return diff --git a/code/_onclick/hud/rendering/_render_readme.md b/code/_onclick/hud/rendering/_render_readme.md index 2c1cd559a58db..2c5e9875801b6 100644 --- a/code/_onclick/hud/rendering/_render_readme.md +++ b/code/_onclick/hud/rendering/_render_readme.md @@ -8,7 +8,7 @@ ## Byond internal functionality This part of the guide will assume that you have read the byond reference entry for rendering at www.byond.com/docs/ref//#/{notes}/renderer -When you create an atom, this will always create an internal byond structure called an "appearance". This appearance you will likely be familiar with, as it is exposed through the /atom/var/appearance var. This appearance var holds data on how to render the object, ie what icon/icon_state/color etc it is using. Note that appearance vars will always copy, and do not hold a reference. When you update a var, for example lets pretend we add a filter, the appearance will be updated to include the filter. Note that, however, vis_contents objets are uniquely excluded from appearances. Then, when the filter is updated, the appearance will be recreated, and the atom marked as "dirty". After it has been updated, the SendMaps() function (sometimes also called maptick), which is a internal byond function that iterates over all objects in a clients view and in the clients.mob.contents, checks for "dirty" atoms, then resends any "dirty" appearances to clients as needed and unmarks them as dirty. This function is notoriosly slow, but we can see it's tick usage through the world.map_cpu var. We can also avoid more complex checks checking whether an object is visible on a clients screen by using the TILE_BOUND appearance flag. +When you create an atom, this will always create an internal byond structure called an "appearance". This appearance you will likely be familiar with, as it is exposed through the /atom/var/appearance var. This appearance var holds data on how to render the object, ie what icon/icon_state/color etc it is using. Note that appearance vars will always copy, and do not hold a reference. When you update a var, for example lets pretend we add a filter, the appearance will be updated to include the filter. Note that, however, vis_contents objets are uniquely excluded from appearances. Then, when the filter is updated, the appearance will be recreated, and the atom marked as "dirty". After it has been updated, the SendMaps() function (sometimes also called maptick), which is a internal byond function that iterates over all objects in a clients view and in the clients.mob.contents, checks for "dirty" atoms, then resends any "dirty" appearances to clients as needed and unmarks them as dirty. This function is notoriosly slow, but we can see its tick usage through the world.map_cpu var. We can also avoid more complex checks checking whether an object is visible on a clients screen by using the TILE_BOUND appearance flag. Finally, we arrive at clientside behavior, where we have two main clientside functions: GetMapIcons, and Render. GetMapIcons is repsonsible for actual rendering calculations on the clientside, such as "Group Icons and Set bounds", which performs clientside calculations for transform matrixes. Note that particles here are handled in a separate thread and are not diplayed in the clientside profiler. Render handles the actual drawing of the screen. diff --git a/code/_onclick/hud/rendering/plane_master_group.dm b/code/_onclick/hud/rendering/plane_master_group.dm index 894190984e652..23096cc0e9ccd 100644 --- a/code/_onclick/hud/rendering/plane_master_group.dm +++ b/code/_onclick/hud/rendering/plane_master_group.dm @@ -45,7 +45,7 @@ our_hud = viewing_hud our_hud.master_groups[key] = src show_hud() - transform_lower_turfs(our_hud, active_offset) + build_planes_offset(our_hud, active_offset) /// Hide the plane master from its current hud, fully clear it out /datum/plane_master_group/proc/orphan_hud() @@ -64,7 +64,7 @@ hide_hud() rebuild_plane_masters() show_hud() - transform_lower_turfs(our_hud, active_offset) + build_planes_offset(our_hud, active_offset) /// Regenerate our plane masters, this is useful if we don't have a mob but still want to rebuild. Such in the case of changing the screen_loc of relays /datum/plane_master_group/proc/rebuild_plane_masters() @@ -97,7 +97,7 @@ /datum/plane_master_group/proc/build_plane_masters(starting_offset, ending_offset) for(var/atom/movable/screen/plane_master/mytype as anything in get_plane_types()) for(var/plane_offset in starting_offset to ending_offset) - if(plane_offset != 0 && !initial(mytype.allows_offsetting)) + if(plane_offset != 0 && (initial(mytype.offsetting_flags) & BLOCKS_PLANE_OFFSETTING)) continue var/atom/movable/screen/plane_master/instance = new mytype(null, null, src, plane_offset) plane_masters["[instance.plane]"] = instance @@ -110,7 +110,7 @@ // It would be nice to setup parallaxing for stairs and things when doing this // So they look nicer. if you can't it's all good, if you think you can sanely look at monster's work // It's hard, and potentially expensive. be careful -/datum/plane_master_group/proc/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/proc/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) // Check if this feature is disabled for the client, in which case don't use scale. var/mob/our_mob = our_hud?.mymob if(!our_mob?.client?.prefs?.read_preference(/datum/preference/toggle/multiz_parallax)) @@ -158,7 +158,11 @@ for(var/plane_key in plane_masters) var/atom/movable/screen/plane_master/plane = plane_masters[plane_key] - if(!plane.allows_offsetting) + if(plane.offsetting_flags & BLOCKS_PLANE_OFFSETTING) + if(plane.offsetting_flags & OFFSET_RELAYS_MATCH_HIGHEST) + // Don't offset the plane, do offset where the relays point + // Required for making things like the blind fullscreen not render over runechat + plane.offset_relays_in_place(new_offset) continue var/visual_offset = plane.offset - new_offset @@ -199,13 +203,13 @@ #undef MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS -/datum/plane_master_group/popup/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/popup/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) return ..(source, new_offset, FALSE) /// Holds the main plane master /datum/plane_master_group/main -/datum/plane_master_group/main/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/main/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) if(use_scale) return ..(source, new_offset, source.should_use_scale()) return ..() diff --git a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm index 13f94fa9f5aa0..bebf872f8ebe6 100644 --- a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm +++ b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm @@ -20,9 +20,9 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master) /// The plane master group we're a member of, our "home" var/datum/plane_master_group/home - /// If our plane master allows for offsetting - /// Mostly used for planes that really don't need to be duplicated, like the hud planes - var/allows_offsetting = TRUE + /// If our plane master has different offsetting logic + /// Possible flags are defined in [_DEFINES/layers.dm] + var/offsetting_flags = NONE /// Our offset from our "true" plane, see below var/offset /// When rendering multiz, lower levels get their own set of plane masters diff --git a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm index fa438af4b7016..c96361348f0de 100644 --- a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm +++ b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm @@ -7,7 +7,7 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT render_relay_planes = list() // We do NOT allow offsetting, because there's no case where you would want to block only one layer, at least currently - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING // We mark as multiz_scaled FALSE so transforms don't effect us, and we draw to the planes below us as if they were us. // This is safe because we will ALWAYS be on the top z layer, so it DON'T MATTER multiz_scaled = FALSE @@ -368,7 +368,7 @@ appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) mouse_opacity = MOUSE_OPACITY_TRANSPARENT - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/runechat name = "Runechat" @@ -397,7 +397,7 @@ plane = HUD_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/above_hud name = "Above HUD" @@ -405,7 +405,7 @@ plane = ABOVE_HUD_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/splashscreen name = "Splashscreen" @@ -413,7 +413,7 @@ plane = SPLASHSCREEN_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/escape_menu name = "Escape Menu" @@ -421,4 +421,4 @@ plane = ESCAPE_MENU_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_MASTER) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm index aa7f9fe30c516..e4cdc41ca1cfb 100644 --- a/code/_onclick/hud/rendering/render_plate.dm +++ b/code/_onclick/hud/rendering/render_plate.dm @@ -6,7 +6,7 @@ /** - * Render relay object assigned to a plane master to be able to relay it's render onto other planes that are not it's own + * Render relay object assigned to a plane master to be able to relay its render onto other planes that are not its own */ /atom/movable/render_plane_relay screen_loc = "CENTER" @@ -457,6 +457,8 @@ // That's what this is for if(show_to) show_to.screen += relay + if(offsetting_flags & OFFSET_RELAYS_MATCH_HIGHEST && home.our_hud) + offset_relay(relay, home.our_hud.current_plane_offset) return relay /// Breaks a connection between this plane master, and the passed in place @@ -479,3 +481,40 @@ return relay return null + +/** + * Offsets our relays in place using the given parameter by adjusting their plane and + * layer values, avoiding changing the layer for relays with custom-set layers. + * + * Used in [proc/build_planes_offset] to make the relays for non-offsetting planes + * match the highest rendering plane that matches the target, to avoid them rendering + * on the highest level above things that should be visible. + * + * Parameters: + * - new_offset: the offset we will adjust our relays to + */ +/atom/movable/screen/plane_master/proc/offset_relays_in_place(new_offset) + for(var/atom/movable/render_plane_relay/rpr in relays) + offset_relay(rpr, new_offset) + +/** + * Offsets a given render relay using the given parameter by adjusting its plane and + * layer values, avoiding changing the layer if it has a custom-set layer. + * + * Parameters: + * - rpr: the render plane relay we will offset + * - new_offset: the offset we will adjust it by + */ +/atom/movable/screen/plane_master/proc/offset_relay(atom/movable/render_plane_relay/rpr, new_offset) + var/base_relay_plane = PLANE_TO_TRUE(rpr.plane) + var/old_offset = PLANE_TO_OFFSET(rpr.plane) + rpr.plane = GET_NEW_PLANE(base_relay_plane, new_offset) + + var/old_offset_plane = real_plane - (PLANE_RANGE * old_offset) + var/old_layer = (old_offset_plane + abs(LOWEST_EVER_PLANE * 30)) + if(rpr.layer != old_layer) // Avoid overriding custom-set layers + return + + var/offset_plane = real_plane - (PLANE_RANGE * new_offset) + var/new_layer = (offset_plane + abs(LOWEST_EVER_PLANE * 30)) + rpr.layer = new_layer diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 75970cecd835c..fafe1d2825163 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -45,8 +45,9 @@ /atom/movable/screen/Initialize(mapload, datum/hud/hud_owner) . = ..() - if(hud_owner && istype(hud_owner)) - hud = hud_owner + if(isnull(hud_owner)) //some screens set their hud owners on /new, this prevents overriding them with null post atoms init + return + set_new_hud(hud_owner) /atom/movable/screen/Destroy() master_ref = null @@ -72,10 +73,25 @@ /atom/movable/screen/proc/component_click(atom/movable/screen/component_button/component, params) return +///setter used to set our new hud +/atom/movable/screen/proc/set_new_hud(datum/hud/hud_owner) + if(hud) + UnregisterSignal(hud, COMSIG_QDELETING) + if(isnull(hud_owner)) + hud = null + return + hud = hud_owner + RegisterSignal(hud, COMSIG_QDELETING, PROC_REF(on_hud_delete)) + /// Returns the mob this is being displayed to, if any /atom/movable/screen/proc/get_mob() return hud?.mymob +/atom/movable/screen/proc/on_hud_delete(datum/source) + SIGNAL_HANDLER + + set_new_hud(hud_owner = null) + /atom/movable/screen/text icon = null icon_state = null diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index dd0a45e7aef60..a3575bb0ec2ed 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -200,14 +200,12 @@ * * params - Click params of this attack */ /obj/item/proc/attack(mob/living/target_mob, mob/living/user, params) - var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, target_mob, user, params) + var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, target_mob, user, params) || SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, target_mob, user, params) if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE if(signal_return & COMPONENT_SKIP_ATTACK) return FALSE - SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, target_mob, user, params) - if(item_flags & NOBLUDGEON) return FALSE @@ -253,7 +251,7 @@ /// The equivalent of the standard version of [/obj/item/proc/attack] but for non mob targets. /obj/item/proc/attack_atom(atom/attacked_atom, mob/living/user, params) - var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_ATOM, attacked_atom, user) + var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_ATOM, attacked_atom, user) | SEND_SIGNAL(user, COMSIG_LIVING_ATTACK_ATOM, attacked_atom) if(signal_return & COMPONENT_SKIP_ATTACK) return TRUE if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 8297085dbcf01..05489241c6a0b 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -70,6 +70,7 @@ /// Determines how fast traitors scale in general. /datum/config_entry/number/traitor_scaling_multiplier default = 1 + integer = FALSE min_val = 0.01 /// Determines how many potential objectives a traitor can have. @@ -471,5 +472,6 @@ * If higher than 1, it'll lean toward common spawns even more. */ /datum/config_entry/number/random_loot_weight_modifier + integer = FALSE default = 1 min_val = 0.05 diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 5686de234bf6a..80673f0cb75c5 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -278,7 +278,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie Initialize(20, TRUE, FALSE) // Please don't stuff random bullshit here, -// Make a subsystem, give it the SS_NO_FIRE flag, and do your work in it's Initialize() +// Make a subsystem, give it the SS_NO_FIRE flag, and do your work in its Initialize() /datum/controller/master/Initialize(delay, init_sss, tgs_prime) set waitfor = 0 diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 4f08502119d0e..afc9bff6aef1b 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -196,7 +196,7 @@ feedback data can be recorded in 5 formats: used to track the number of occurances of multiple related values i.e. how many times each type of gun is fired further calls to the same key will: add or subtract from the saved value of the data key if it already exists - append the key and it's value if it doesn't exist + append the key and its value if it doesn't exist calls: SSblackbox.record_feedback("tally", "example", 1, "sample data") SSblackbox.record_feedback("tally", "example", 4, "sample data") SSblackbox.record_feedback("tally", "example", 2, "other data") @@ -208,7 +208,7 @@ feedback data can be recorded in 5 formats: all data list elements must be strings further calls to the same key will: add or subtract from the saved value of the data key if it already exists in the same multi-dimensional position - append the key and it's value if it doesn't exist + append the key and its value if it doesn't exist calls: SSblackbox.record_feedback("nested tally", "example", 1, list("fruit", "orange", "apricot")) SSblackbox.record_feedback("nested tally", "example", 2, list("fruit", "orange", "orange")) SSblackbox.record_feedback("nested tally", "example", 3, list("fruit", "orange", "apricot")) diff --git a/code/controllers/subsystem/blackmarket.dm b/code/controllers/subsystem/blackmarket.dm index f6a4aa25566ff..5c88177583b2f 100644 --- a/code/controllers/subsystem/blackmarket.dm +++ b/code/controllers/subsystem/blackmarket.dm @@ -79,7 +79,7 @@ SUBSYSTEM_DEF(blackmarket) to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting that the order is being teleported to [get_area(targetturf)] in 60 seconds.")) // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks. - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/blackmarket,fake_teleport), purchase, targetturf), 60 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/blackmarket, fake_teleport), purchase, targetturf), 60 SECONDS) // Get the current location of the uplink if it exists, then throws the item from space at the station from a random direction. if(SHIPPING_METHOD_LAUNCH) @@ -88,6 +88,7 @@ SUBSYSTEM_DEF(blackmarket) var/pickedloc = spaceDebrisStartLoc(startSide, T.z) var/atom/movable/item = purchase.entry.spawn_item(pickedloc, purchase) + purchase.post_purchase_effects(item) item.throw_at(purchase.uplink, 3, 3, spin = FALSE) to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting the order is being launched at the station from [dir2text(startSide)].")) @@ -110,6 +111,7 @@ SUBSYSTEM_DEF(blackmarket) if(QDELETED(purchase)) return var/atom/movable/thing = purchase.entry.spawn_item(target, purchase) + purchase.post_purchase_effects(thing) var/datum/effect_system/spark_spread/sparks = new sparks.set_up(5, 1, target) sparks.attach(thing) diff --git a/code/controllers/subsystem/discord.dm b/code/controllers/subsystem/discord.dm index 822b7857301eb..c13a99998fe1a 100644 --- a/code/controllers/subsystem/discord.dm +++ b/code/controllers/subsystem/discord.dm @@ -140,9 +140,9 @@ SUBSYSTEM_DEF(discord) * ``` * * Notes: - * * The token is guaranteed to unique during it's validity period + * * The token is guaranteed to unique during its validity period * * The validity period is currently set at 4 hours - * * a token may not be unique outside it's validity window (to reduce conflicts) + * * a token may not be unique outside its validity window (to reduce conflicts) * * Arguments: * * ckey_for a string representing the ckey this token is for diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm index c8cdddf0fe792..01eec4e179914 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm @@ -957,3 +957,42 @@ #undef MALF_ION_PROB #undef REPLACE_LAW_WITH_ION_PROB + +/// Midround Voidwalker Ruleset (From Ghosts) +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker + name = "Voidwalker" + midround_ruleset_style = MIDROUND_RULESET_STYLE_LIGHT + antag_datum = /datum/antagonist/voidwalker + antag_flag = ROLE_VOIDWALKER + antag_flag_override = ROLE_VOIDWALKER + ruleset_category = parent_type::ruleset_category | RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTS + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 1 + weight = 2 + cost = 5 + minimum_players = 40 + repeatable = TRUE + ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_VOIDWALKER_VOID) + /// The space turf we find in acceptable(), cached for ease + var/space_turf + +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker/acceptable(population = 0, threat_level = 0) + space_turf = find_space_spawn() + if(!space_turf) + return FALSE + return ..() + +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker/generate_ruleset_body(mob/applicant) + var/datum/mind/player_mind = new /datum/mind(applicant.key) + player_mind.active = TRUE + + var/mob/living/carbon/human/voidwalker = new (space_turf) + player_mind.transfer_to(voidwalker) + player_mind.set_assigned_role(SSjob.GetJobType(/datum/job/voidwalker)) + player_mind.special_role = antag_flag + player_mind.add_antag_datum(antag_datum) + + playsound(voidwalker, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + message_admins("[ADMIN_LOOKUPFLW(voidwalker)] has been made into a Voidwalker by the midround ruleset.") + log_dynamic("[key_name(voidwalker)] was spawned as a Voidwalker by the midround ruleset.") + return voidwalker diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index e030ccff6235c..93a8fafab1650 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -68,7 +68,7 @@ SUBSYSTEM_DEF(events) scheduled = world.time + rand(frequency_lower, max(frequency_lower,frequency_upper)) /** - * Selects a random event based on whether it can occur and it's 'weight'(probability) + * Selects a random event based on whether it can occur and its 'weight'(probability) * * Arguments: * * excluded_event - The event path we will be foregoing, if present. diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 3e07eca8a2e87..a9950f1f4d865 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -11,10 +11,19 @@ SUBSYSTEM_DEF(machines) VAR_PRIVATE/list/all_machines = list() var/list/processing = list() + var/list/processing_early = list() + var/list/processing_late = list() + var/list/processing_apcs = list() + var/list/currentrun = list() - var/list/apc_early_processing = list() - var/list/apc_late_processing = list() - var/current_part = SSMACHINES_APCS_EARLY + var/current_part = SSMACHINES_MACHINES_EARLY + var/list/apc_steps = list( + SSMACHINES_APCS_EARLY, + SSMACHINES_APCS_ENVIRONMENT, + SSMACHINES_APCS_LIGHTS, + SSMACHINES_APCS_EQUIPMENT, + SSMACHINES_APCS_LATE + ) ///List of all powernets on the server. var/list/datum/powernet/powernets = list() @@ -82,25 +91,53 @@ SUBSYSTEM_DEF(machines) if (!resumed) for(var/datum/powernet/powernet as anything in powernets) powernet.reset() //reset the power state. - current_part = SSMACHINES_APCS_EARLY - src.currentrun = apc_early_processing.Copy() + current_part = SSMACHINES_MACHINES_EARLY + src.currentrun = processing_early.Copy() - //APC early processing. Draws static power usages from their grids. - if(current_part == SSMACHINES_APCS_EARLY) + //Processing machines that get the priority power draw + if(current_part == SSMACHINES_MACHINES_EARLY) + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/obj/machinery/thing = currentrun[currentrun.len] + currentrun.len-- + if(QDELETED(thing) || thing.process_early(wait * 0.1) == PROCESS_KILL) + processing_early -= thing + thing.datum_flags &= ~DF_ISPROCESSING + if (MC_TICK_CHECK) + return + current_part = apc_steps[1] + src.currentrun = processing_apcs.Copy() + + //Processing APCs + while(current_part in apc_steps) //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun while(currentrun.len) var/obj/machinery/power/apc/apc = currentrun[currentrun.len] currentrun.len-- - if(QDELETED(apc) || apc.early_process(wait * 0.1) == PROCESS_KILL) - apc_early_processing -= apc + if(QDELETED(apc)) + processing_apcs -= apc apc.datum_flags &= ~DF_ISPROCESSING + switch(current_part) + if(SSMACHINES_APCS_EARLY) + apc.early_process(wait * 0.1) + if(SSMACHINES_APCS_LATE) + apc.charge_channel(null, wait * 0.1) + apc.late_process(wait * 0.1) + else + apc.charge_channel(current_part, wait * 0.1) if(MC_TICK_CHECK) return - current_part = SSMACHINES_MACHINES - src.currentrun = processing.Copy() - - //General machine processing. Their power usage can be dynamic and based on surplus power, so they come after static power usage have been applied. + var/next_index = apc_steps.Find(current_part) + 1 + if (next_index > apc_steps.len) + current_part = SSMACHINES_MACHINES + src.currentrun = processing.Copy() + break + current_part = apc_steps[next_index] + src.currentrun = processing_apcs.Copy() + + //Processing all machines if(current_part == SSMACHINES_MACHINES) //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun @@ -112,21 +149,20 @@ SUBSYSTEM_DEF(machines) thing.datum_flags &= ~DF_ISPROCESSING if (MC_TICK_CHECK) return - current_part = SSMACHINES_APCS_LATE - src.currentrun = apc_late_processing.Copy() + current_part = SSMACHINES_MACHINES_LATE + src.currentrun = processing_late.Copy() - //APC late processing. APCs will use the remaining power on the grid to charge their cells if needed. - //This is applied at the end so charging APCs don't cause others to discharge by taking all the power from the grid before machines use power. - if(current_part == SSMACHINES_APCS_LATE) + //Processing machines that record the power usage statistics + if(current_part == SSMACHINES_MACHINES_LATE) //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun while(currentrun.len) - var/obj/machinery/power/apc/apc = currentrun[currentrun.len] + var/obj/machinery/thing = currentrun[currentrun.len] currentrun.len-- - if(QDELETED(apc) || apc.late_process(wait * 0.1) == PROCESS_KILL) - apc_late_processing -= apc - apc.datum_flags &= ~DF_ISPROCESSING - if(MC_TICK_CHECK) + if(QDELETED(thing) || thing.process_late(wait * 0.1) == PROCESS_KILL) + processing_late -= thing + thing.datum_flags &= ~DF_ISPROCESSING + if (MC_TICK_CHECK) return /datum/controller/subsystem/machines/proc/setup_template_powernets(list/cables) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 3aa9fba84e6a7..eac5ba56e099a 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -898,7 +898,7 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away var/offset_plane = GET_NEW_PLANE(plane_to_use, plane_offset) var/string_plane = "[offset_plane]" - if(!initial(master_type.allows_offsetting)) + if(initial(master_type.offsetting_flags) & BLOCKS_PLANE_OFFSETTING) plane_offset_blacklist[string_plane] = TRUE var/render_target = initial(master_type.render_target) if(!render_target) diff --git a/code/controllers/subsystem/movement/movement_types.dm b/code/controllers/subsystem/movement/movement_types.dm index 50864f731e21a..ec0136bc8c178 100644 --- a/code/controllers/subsystem/movement/movement_types.dm +++ b/code/controllers/subsystem/movement/movement_types.dm @@ -703,7 +703,7 @@ y_rate = 1 /** - * Wrapper for walk_towards, not reccomended, as it's movement ends up being a bit stilted + * Wrapper for walk_towards, not reccomended, as its movement ends up being a bit stilted * * Returns TRUE if the loop sucessfully started, or FALSE if it failed * diff --git a/code/controllers/subsystem/parallax.dm b/code/controllers/subsystem/parallax.dm index 212af9076bda6..28ebd80560f82 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -97,4 +97,12 @@ SUBSYSTEM_DEF(parallax) /datum/controller/subsystem/parallax/proc/post_station_setup() random_layer?.apply_global_effects() +/// Return the most dominant color, if we have a colored background (mostly nebula gas) +/datum/controller/subsystem/parallax/proc/get_parallax_color() + var/atom/movable/screen/parallax_layer/random/space_gas/gas = random_layer + if(!istype(gas)) + return + + return gas.parallax_color + #undef PARALLAX_NONE diff --git a/code/controllers/subsystem/persistence/counter_tram_hits.dm b/code/controllers/subsystem/persistence/counter_tram_hits.dm index 806d5d5b5c2cc..8f1db7dd1524f 100644 --- a/code/controllers/subsystem/persistence/counter_tram_hits.dm +++ b/code/controllers/subsystem/persistence/counter_tram_hits.dm @@ -58,7 +58,7 @@ tram_hits_last_round = text2num(file2text(TRAM_COUNT_FILEPATH)) /datum/controller/subsystem/persistence/proc/save_tram_counter() - rustg_file_write("[tram_hits_this_round]", TRAM_COUNT_FILEPATH) + rustg_file_write("[tram_hits_this_round]", TRAM_COUNT_FILEPATH) #undef TRAM_COUNT_FILEPATH #undef MAX_TRAM_SAVES diff --git a/code/controllers/subsystem/persistent_paintings.dm b/code/controllers/subsystem/persistent_paintings.dm index af0644a9a0d52..7da30fd477239 100644 --- a/code/controllers/subsystem/persistent_paintings.dm +++ b/code/controllers/subsystem/persistent_paintings.dm @@ -1,14 +1,5 @@ #define PAINTINGS_DATA_FORMAT_VERSION 3 -// Patronage thresholds for paintings. Different cosmetic frames become available as more credits are spent on the patronage. -#define PATRONAGE_OK_FRAME (PAYCHECK_CREW * 3) // 150 credits, as of march 2022 -#define PATRONAGE_NICE_FRAME (PATRONAGE_OK_FRAME * 2.5) -#define PATRONAGE_GREAT_FRAME (PATRONAGE_NICE_FRAME * 2) -#define PATRONAGE_EXCELLENT_FRAME (PATRONAGE_GREAT_FRAME * 2) -#define PATRONAGE_AMAZING_FRAME (PATRONAGE_EXCELLENT_FRAME * 2) -#define PATRONAGE_SUPERB_FRAME (PATRONAGE_AMAZING_FRAME * 2) -#define PATRONAGE_LEGENDARY_FRAME (PATRONAGE_SUPERB_FRAME * 2) - /* { "version":2 @@ -334,11 +325,3 @@ SUBSYSTEM_DEF(persistent_paintings) cache_paintings() #undef PAINTINGS_DATA_FORMAT_VERSION -#undef PATRONAGE_OK_FRAME -#undef PATRONAGE_NICE_FRAME -#undef PATRONAGE_GREAT_FRAME -#undef PATRONAGE_EXCELLENT_FRAME -#undef PATRONAGE_AMAZING_FRAME -#undef PATRONAGE_SUPERB_FRAME -#undef PATRONAGE_LEGENDARY_FRAME - diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index ce4082d2d442a..fe8a002d9c4ab 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -104,10 +104,11 @@ SUBSYSTEM_DEF(research) techweb_list.last_income = world.time - if(techweb_list.research_queue_nodes.len) + if(length(techweb_list.research_queue_nodes)) techweb_list.research_node_id(techweb_list.research_queue_nodes[1]) // Attempt to research the first node in queue if possible - for(var/datum/techweb_node/node as anything in techweb_list.research_queue_nodes) + for(var/node_id in techweb_list.research_queue_nodes) + var/datum/techweb_node/node = SSresearch.techweb_node_by_id(node_id) if(node.is_free(techweb_list)) // Automatically research all free nodes in queue if any techweb_list.research_node(node) diff --git a/code/controllers/subsystem/spatial_gridmap.dm b/code/controllers/subsystem/spatial_gridmap.dm index 76aa484bf92ce..65bcb0ec365b0 100644 --- a/code/controllers/subsystem/spatial_gridmap.dm +++ b/code/controllers/subsystem/spatial_gridmap.dm @@ -412,7 +412,7 @@ SUBSYSTEM_DEF(spatial_grid) return intersecting_cell /** - * find the spatial map cell that target used to belong to, then remove the target (and sometimes it's important_recusive_contents) from it. + * find the spatial map cell that target used to belong to, then remove the target (and sometimes its important_recusive_contents) from it. * make sure to provide the turf old_target used to be "in" * * * old_target - the thing we want to remove from the spatial grid cell diff --git a/code/controllers/subsystem/stock_market.dm b/code/controllers/subsystem/stock_market.dm index e486776a082c9..7d0e0ea9262ee 100644 --- a/code/controllers/subsystem/stock_market.dm +++ b/code/controllers/subsystem/stock_market.dm @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(stock_market) var/list/materials_prices = list() /// Associated list of materials alongside their market trends. 1 is up, 0 is stable, -1 is down. var/list/materials_trends = list() - /// Associated list of materials alongside the life of it's current trend. After it's life is up, it will change to a new trend. + /// Associated list of materials alongside the life of its current trend. After its life is up, it will change to a new trend. var/list/materials_trend_life = list() /// Associated list of materials alongside their available quantity. This is used to determine how much of a material is available to buy, and how much buying and selling affects the price. var/list/materials_quantity = list() diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 6990a142e4e2d..fc0375f4f0b6a 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -53,7 +53,7 @@ SUBSYSTEM_DEF(throwing) var/target_zone ///The initial direction of the thrower of the thrownthing for building the trajectory of the throw. var/init_dir - ///The maximum number of turfs that the thrownthing will travel to reach it's target. + ///The maximum number of turfs that the thrownthing will travel to reach its target. var/maxrange ///Turfs to travel per tick var/speed diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 0842e786883ec..3b6db8fc83bd2 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(ticker) var/list/datum/mind/minds = list() //The characters in the game. Used for objective tracking. - var/delay_end = FALSE //if set true, the round will not restart on it's own + var/delay_end = FALSE //if set true, the round will not restart on its own var/admin_delay_notice = "" //a message to display to anyone who tries to restart the world after a delay var/ready_for_reboot = FALSE //all roundend preparation done with, all that's left is reboot diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index bc894de9beee8..8ecb0c9dc6a56 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -645,7 +645,7 @@ SUBSYSTEM_DEF(timer) hash_timer.hash = null // but keep it from accidentally deleting us else if (flags & TIMER_OVERRIDE) - hash_timer.hash = null // no need having it delete it's hash if we are going to replace it + hash_timer.hash = null // no need having it delete its hash if we are going to replace it qdel(hash_timer) else if (hash_timer.flags & TIMER_STOPPABLE) diff --git a/code/controllers/subsystem/transport.dm b/code/controllers/subsystem/transport.dm index 2f870eb674035..928b6a03d58f2 100644 --- a/code/controllers/subsystem/transport.dm +++ b/code/controllers/subsystem/transport.dm @@ -98,7 +98,7 @@ PROCESSING_SUBSYSTEM_DEF(transport) // We've made it this far, tram is physically fine so let's trip plan // This is based on the destination nav beacon, the logical location // If Something Happens and the location the controller thinks it's at - // gets out of sync with it's actual physical location, it can be reset + // gets out of sync with its actual physical location, it can be reset // Since players can set the platform ID themselves, make sure it's a valid platform we're aware of var/network = LAZYACCESS(nav_beacons, transport_id) diff --git a/code/datums/actions/mobs/charge.dm b/code/datums/actions/mobs/charge.dm index 43fcbd57f69ba..43cbb05c939ff 100644 --- a/code/datums/actions/mobs/charge.dm +++ b/code/datums/actions/mobs/charge.dm @@ -227,14 +227,19 @@ id = "tired_post_charge" duration = 1 SECONDS alert_type = null + var/tired_movespeed = /datum/movespeed_modifier/status_effect/tired_post_charge /datum/status_effect/tired_post_charge/on_apply() . = ..() - owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/tired_post_charge) + owner.add_movespeed_modifier(tired_movespeed) /datum/status_effect/tired_post_charge/on_remove() . = ..() - owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/tired_post_charge) + owner.remove_movespeed_modifier(tired_movespeed) + +/datum/status_effect/tired_post_charge/lesser + id = "tired_post_charge_easy" + tired_movespeed = /datum/movespeed_modifier/status_effect/tired_post_charge/lesser /datum/action/cooldown/mob_cooldown/charge/triple_charge name = "Triple Charge" diff --git a/code/datums/actions/mobs/ground_slam.dm b/code/datums/actions/mobs/ground_slam.dm index e00799196b589..4adadef04e7c7 100644 --- a/code/datums/actions/mobs/ground_slam.dm +++ b/code/datums/actions/mobs/ground_slam.dm @@ -6,7 +6,7 @@ cooldown_time = 10 SECONDS /// The range of the slam var/range = 5 - /// The delay before the shockwave expands it's range + /// The delay before the shockwave expands its range var/delay = 3 /// How far hit targets are thrown var/throw_range = 8 diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm index 2d2ad013aa2c6..c2e9fe515c40f 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm @@ -50,8 +50,8 @@ * Attempts to move into the provided range and then use a mob's cooldown ability on a target */ /datum/ai_behavior/targeted_mob_ability/min_range - required_distance = 6 behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT + required_distance = 6 /datum/ai_behavior/targeted_mob_ability/min_range/setup(datum/ai_controller/controller, ability_key, target_key) . = ..() @@ -59,3 +59,6 @@ if(QDELETED(target)) return FALSE set_movement_target(controller, target) + +/datum/ai_behavior/targeted_mob_ability/min_range/short + required_distance = 3 diff --git a/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm b/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm index 3c8c06b009962..c90ffa785900f 100644 --- a/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm +++ b/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm @@ -22,3 +22,18 @@ /datum/ai_behavior/pet_use_ability/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) . = ..() controller.clear_blackboard_key(target_key) + +/datum/ai_behavior/pet_use_ability/then_attack + +/datum/ai_behavior/pet_use_ability/then_attack/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) + . = ..() + if(succeeded) + controller.queue_behavior(/datum/ai_behavior/basic_melee_attack, target_key, BB_PET_TARGETING_STRATEGY) + +/datum/ai_behavior/pet_use_ability/then_attack/short_ranged + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT + required_distance = 4 + +/datum/ai_behavior/pet_use_ability/then_attack/long_ranged + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT + required_distance = 8 diff --git a/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm b/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm new file mode 100644 index 0000000000000..dbd2028081b7e --- /dev/null +++ b/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm @@ -0,0 +1,20 @@ +///Datum for basic mobs to define what they can attack, +///Global, just like ai_behaviors +/datum/targeting_strategy + +///Returns true or false depending on if the target can be attacked by the mob +/datum/targeting_strategy/proc/can_attack(mob/living/living_mob, atom/target, vision_range) + return + +///Returns something the target might be hiding inside of +/datum/targeting_strategy/proc/find_hidden_mobs(mob/living/living_mob, atom/target) + var/atom/target_hiding_location + if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper)) + target_hiding_location = target.loc + return target_hiding_location + +///A very simple targeting strategy that checks that the target is a valid fishing spot. +/datum/targeting_strategy/fishing + +/datum/targeting_strategy/fishing/can_attack(mob/living/living_mob, atom/target, vision_range) + return HAS_TRAIT(target, TRAIT_FISHING_SPOT) diff --git a/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm index 07b544bc0a296..2394f2a38623b 100644 --- a/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm +++ b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm @@ -1,18 +1,3 @@ -///Datum for basic mobs to define what they can attack.GET_TARGETING_STRATEGY\((/[^,]*)\), -///Global, just like ai_behaviors -/datum/targeting_strategy - -///Returns true or false depending on if the target can be attacked by the mob -/datum/targeting_strategy/proc/can_attack(mob/living/living_mob, atom/target, vision_range) - return - -///Returns something the target might be hiding inside of -/datum/targeting_strategy/proc/find_hidden_mobs(mob/living/living_mob, atom/target) - var/atom/target_hiding_location - if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper)) - target_hiding_location = target.loc - return target_hiding_location - /datum/targeting_strategy/basic /// When we do our basic faction check, do we look for exact faction matches? var/check_factions_exactly = FALSE diff --git a/code/datums/ai/hunting_behavior/hunting_behaviors.dm b/code/datums/ai/hunting_behavior/hunting_behaviors.dm index 609138c113270..ba2da1c2d04e8 100644 --- a/code/datums/ai/hunting_behavior/hunting_behaviors.dm +++ b/code/datums/ai/hunting_behavior/hunting_behaviors.dm @@ -139,6 +139,10 @@ /datum/ai_behavior/hunt_target/unarmed_attack_target/reset_target always_reset_target = TRUE +/datum/ai_behavior/hunt_target/unarmed_attack_target/reset_target_combat_mode + always_reset_target = TRUE + switch_combat_mode = TRUE + /datum/ai_behavior/hunt_target/use_ability_on_target always_reset_target = TRUE ///the ability we will use diff --git a/code/datums/bodypart_overlays/bodypart_overlay.dm b/code/datums/bodypart_overlays/bodypart_overlay.dm index 5b6232fd30337..77e3c885b5308 100644 --- a/code/datums/bodypart_overlays/bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/bodypart_overlay.dm @@ -9,11 +9,22 @@ ///Key of the icon states of all the sprite_datums for easy caching var/cache_key = "" + /// Whether the overlay blocks emissive light + var/blocks_emissive = EMISSIVE_BLOCK_UNIQUE + ///Wrapper for getting the proper image, colored and everything /datum/bodypart_overlay/proc/get_overlay(layer, obj/item/bodypart/limb) layer = bitflag_to_layer(layer) - . = get_image(layer, limb) - color_image(., layer, limb) + var/image/main_image = get_image(layer, limb) + color_image(main_image, layer, limb) + if(blocks_emissive == EMISSIVE_BLOCK_NONE || !limb) + return main_image + + var/list/all_images = list( + main_image, + emissive_blocker(main_image.icon, main_image.icon_state, limb, layer = main_image.layer, alpha = main_image.alpha) + ) + return all_images ///Generate the image. Needs to be overriden /datum/bodypart_overlay/proc/get_image(layer, obj/item/bodypart/limb) @@ -84,3 +95,7 @@ ///Generate a unique identifier to cache with. If you change something about the image, but the icon cache stays the same, it'll simply pull the unchanged image out of the cache /datum/bodypart_overlay/proc/generate_icon_cache() return list() + +/// Additionally color or texture the limb +/datum/bodypart_overlay/proc/modify_bodypart_appearance(datum/appearance) + return diff --git a/code/datums/bodypart_overlays/markings_bodypart_overlay.dm b/code/datums/bodypart_overlays/markings_bodypart_overlay.dm index c2c6f54d861d3..5c11fe9f70334 100644 --- a/code/datums/bodypart_overlays/markings_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/markings_bodypart_overlay.dm @@ -15,7 +15,7 @@ /datum/bodypart_overlay/simple/body_marking/get_image(layer, obj/item/bodypart/limb) var/gender_string = (use_gender && limb.is_dimorphic) ? (limb.gender == MALE ? MALE : FEMALE + "_") : "" //we only got male and female sprites - return image(icon, gender_string + icon_state + "_" + limb.body_zone, layer = layer) + return mutable_appearance(icon, gender_string + icon_state + "_" + limb.body_zone, layer = layer) /datum/bodypart_overlay/simple/body_marking/moth dna_feature_key = "moth_markings" diff --git a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm index 15fd6dc56a46a..f421122b4331f 100644 --- a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm @@ -8,7 +8,7 @@ ///The color this organ draws with. Updated by bodypart/inherit_color() var/draw_color - ///Where does this organ inherit it's color from? + ///Where does this organ inherit its color from? var/color_source = ORGAN_COLOR_INHERIT ///Take on the dna/preference from whoever we're gonna be inserted in var/imprint_on_next_insertion = TRUE diff --git a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm index 7f52d21de5398..6c9eb4240ecd0 100644 --- a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm @@ -9,7 +9,7 @@ var/draw_color /datum/bodypart_overlay/simple/get_image(layer, obj/item/bodypart/limb) - return image(icon, icon_state, layer = layer) + return mutable_appearance(icon, icon_state, layer = layer) /datum/bodypart_overlay/simple/color_image(image/overlay, layer, obj/item/bodypart/limb) diff --git a/code/datums/bodypart_overlays/texture_bodypart_overlay.dm b/code/datums/bodypart_overlays/texture_bodypart_overlay.dm new file mode 100644 index 0000000000000..83c8ce5f12121 --- /dev/null +++ b/code/datums/bodypart_overlays/texture_bodypart_overlay.dm @@ -0,0 +1,24 @@ +/// Bodypart overlays focused on texturing limbs +/datum/bodypart_overlay/texture + /// icon file for the texture + var/texture_icon + /// icon state for the texture + var/texture_icon_state + /// Cache the icon so we dont have to make a new one each time + var/cached_texture_icon + +/datum/bodypart_overlay/texture/New() + . = ..() + + cached_texture_icon = icon(texture_icon, texture_icon_state) + +/datum/bodypart_overlay/texture/modify_bodypart_appearance(datum/appearance) + appearance.add_filter("bodypart_texture_[texture_icon_state]", 1, layering_filter(icon = cached_texture_icon,blend_mode = BLEND_INSET_OVERLAY)) + +/datum/bodypart_overlay/texture/generate_icon_cache() + return "[type]" + +/datum/bodypart_overlay/texture/spacey + blocks_emissive = EMISSIVE_BLOCK_NONE + texture_icon_state = "spacey" + texture_icon = 'icons/mob/human/textures.dmi' diff --git a/code/datums/callback.dm b/code/datums/callback.dm index cf90582115dd6..35103fbc901f3 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -26,7 +26,7 @@ * ## PROC TYPEPATH SHORTCUTS * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) * - * ### proc defined on current(src) object OR overridden at src or any of it's parents: + * ### proc defined on current(src) object OR overridden at src or any of its parents: * PROC_REF(procname) * * `CALLBACK(src, PROC_REF(some_proc_here))` diff --git a/code/datums/components/README.md b/code/datums/components/README.md index db8bf10a327f6..34aea1176e430 100644 --- a/code/datums/components/README.md +++ b/code/datums/components/README.md @@ -2,8 +2,8 @@ ## Concept -Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a `SendSignal()` call. Now every component that want's to can also know about this happening. +Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward its arguments with a `SendSignal()` call. Now every component that want's to can also know about this happening. -### [HackMD page for an introduction to the system as a whole.](https://hackmd.io/@tgstation/SignalsComponentsElements) +### [HackMD page for an introduction to the system as a whole.](https://hackmd.io/@tgstation/SignalsComponentsElements) ### See/Define signals and their arguments in [__DEFINES\components.dm](../../__DEFINES/components.dm) diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index b258abed65dda..f78e2af6be17d 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -4,7 +4,7 @@ * The component datum * * A component should be a single standalone unit - * of functionality, that works by receiving signals from it's parent + * of functionality, that works by receiving signals from its parent * object to provide some single functionality (i.e a slippery component) * that makes the object it's attached to cause people to slip over. * Useful when you want shared behaviour independent of type inheritance diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index 48e5b10b25f19..e7d18f8208173 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -41,13 +41,27 @@ datum/callback/expiration, ) - if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) - RegisterSignals(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_ATOM), PROC_REF(on_attack)) - else if(ismob(parent)) - register_antimagic_signals(parent) - else + + var/atom/movable/movable = parent + if(!istype(movable)) + return COMPONENT_INCOMPATIBLE + + var/compatible = FALSE + if(isitem(movable)) + RegisterSignal(movable, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(movable, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignals(movable, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_ATOM), PROC_REF(on_attack)) + compatible = TRUE + else if(ismob(movable)) + register_antimagic_signals(movable) + compatible = TRUE + + if(movable.can_buckle) + RegisterSignal(movable, COMSIG_MOVABLE_BUCKLE, PROC_REF(on_buckle)) + RegisterSignal(movable, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(on_unbuckle)) + compatible = TRUE + + if(!compatible) return COMPONENT_INCOMPATIBLE src.antimagic_flags = antimagic_flags @@ -68,6 +82,14 @@ /datum/component/anti_magic/proc/unregister_antimagic_signals(datum/on_what) UnregisterSignal(on_what, list(COMSIG_MOB_RECEIVE_MAGIC, COMSIG_MOB_RESTRICT_MAGIC)) +/datum/component/anti_magic/proc/on_buckle(atom/movable/source, mob/living/bucklee) + SIGNAL_HANDLER + register_antimagic_signals(bucklee) + +/datum/component/anti_magic/proc/on_unbuckle(atom/movable/source, mob/living/bucklee) + SIGNAL_HANDLER + unregister_antimagic_signals(bucklee) + /datum/component/anti_magic/proc/on_equip(atom/movable/source, mob/equipper, slot) SIGNAL_HANDLER diff --git a/code/datums/components/banned_from_space.dm b/code/datums/components/banned_from_space.dm new file mode 100644 index 0000000000000..ae1d6701dd701 --- /dev/null +++ b/code/datums/components/banned_from_space.dm @@ -0,0 +1,37 @@ +/// Following recent tomfoolery, we've decided to ban you from space. +/datum/component/banned_from_space + /// List of recent tiles we walked on that aren't space + var/list/tiles = list() + /// The max amount of tiles we store + var/max_tile_list_size = 4 + +/datum/component/banned_from_space/Initialize(...) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(check_if_space)) + +/datum/component/banned_from_space/proc/check_if_space(atom/source, atom/new_location) + SIGNAL_HANDLER + + if(!isturf(new_location)) + return + + if(isspaceturf(new_location)) + send_back(parent) + + else + tiles.Add(new_location) + if(tiles.len > max_tile_list_size) + tiles.Cut(1, 2) + +/datum/component/banned_from_space/proc/send_back(atom/movable/parent) + var/new_turf + + if(tiles.len) + new_turf = tiles[1] + new /obj/effect/temp_visual/portal_animation(parent.loc, new_turf, parent) + else + new_turf = get_random_station_turf() + + parent.forceMove(new_turf) diff --git a/code/datums/components/boomerang.dm b/code/datums/components/boomerang.dm index eec7b4112aa69..23dd63d146712 100644 --- a/code/datums/components/boomerang.dm +++ b/code/datums/components/boomerang.dm @@ -1,7 +1,7 @@ -///The cooldown period between last_boomerang_throw and it's methods of implementing a rebound proc. +///The cooldown period between last_boomerang_throw and its methods of implementing a rebound proc. #define BOOMERANG_REBOUND_INTERVAL (1 SECONDS) /** - * If an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting it's target, or landing on the thrown tile. + * If an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting its target, or landing on the thrown tile. * Thrown objects should be thrown back to the original thrower with this component, a number of tiles defined by boomerang_throw_range. */ /datum/component/boomerang diff --git a/code/datums/components/chuunibyou.dm b/code/datums/components/chuunibyou.dm index 57428bc422358..4e06f0fd47486 100644 --- a/code/datums/components/chuunibyou.dm +++ b/code/datums/components/chuunibyou.dm @@ -47,6 +47,7 @@ RegisterSignal(parent, COMSIG_MOB_PRE_INVOCATION, PROC_REF(on_pre_invocation)) RegisterSignal(parent, COMSIG_MOB_TRY_SPEECH, PROC_REF(on_try_speech)) RegisterSignal(parent, COMSIG_MOB_AFTER_SPELL_CAST, PROC_REF(on_after_spell_cast)) + ADD_TRAIT(parent, TRAIT_CHUUNIBYOU, REF(src)) /datum/component/chuunibyou/UnregisterFromParent() . = ..() @@ -56,6 +57,7 @@ COMSIG_MOB_TRY_SPEECH, COMSIG_MOB_AFTER_SPELL_CAST, )) + REMOVE_TRAIT(parent, TRAIT_CHUUNIBYOU, REF(src)) /// signal sent when the parent tries to speak. we let speech pass if we are casting a spell so mimes still chuuni their spellcasts /// (this may end in the mime dying) diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm index c7b3e3f2ff55b..8a1902526c42a 100644 --- a/code/datums/components/dejavu.dm +++ b/code/datums/components/dejavu.dm @@ -85,7 +85,7 @@ master.forceMove(starting_turf) rewinds_remaining -- - if(rewinds_remaining) + if(rewinds_remaining || rewinds_remaining < 0) addtimer(CALLBACK(src, rewind_type), rewind_interval) else to_chat(parent, span_notice(no_rewinds_message)) diff --git a/code/datums/components/fishing_spot.dm b/code/datums/components/fishing_spot.dm index 481f965059f52..6638c822ff6a5 100644 --- a/code/datums/components/fishing_spot.dm +++ b/code/datums/components/fishing_spot.dm @@ -17,6 +17,8 @@ RegisterSignal(parent, COMSIG_FISHING_ROD_CAST, PROC_REF(handle_cast)) RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examined)) RegisterSignal(parent, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(on_examined_more)) + RegisterSignal(parent, COMSIG_NPC_FISHING, PROC_REF(return_fishing_spot)) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(explosive_fishing)) ADD_TRAIT(parent, TRAIT_FISHING_SPOT, REF(src)) /datum/component/fishing_spot/Destroy() @@ -95,3 +97,10 @@ var/datum/fishing_challenge/challenge = new(src, result, rod, user) fish_source.pre_challenge_started(rod, user, challenge) challenge.start(user) + +/datum/component/fishing_spot/proc/return_fishing_spot(datum/source, list/fish_spot_container) + fish_spot_container[NPC_FISHING_SPOT] = fish_source + +/datum/component/fishing_spot/proc/explosive_fishing(atom/location, severity) + SIGNAL_HANDLER + fish_source.spawn_reward_from_explosion(location, severity) diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index a0b2085892708..e6df7c4f02308 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -641,6 +641,7 @@ Behavior that's still missing from this component that original food items had t ///Delete the item when it is fully eaten /datum/component/edible/proc/On_Consume(mob/living/eater, mob/living/feeder) SEND_SIGNAL(parent, COMSIG_FOOD_CONSUMED, eater, feeder) + SEND_SIGNAL(eater, COMSIG_LIVING_FINISH_EAT, parent, feeder) on_consume?.Invoke(eater, feeder) if (QDELETED(parent)) // might be destroyed by the callback diff --git a/code/datums/components/glass_passer.dm b/code/datums/components/glass_passer.dm new file mode 100644 index 0000000000000..f96300341b0c4 --- /dev/null +++ b/code/datums/components/glass_passer.dm @@ -0,0 +1,50 @@ +/// Allows us to move through glass but not electrified glass. Can also do a little slowdown before passing through +/datum/component/glass_passer + /// How long does it take us to move into glass? + var/pass_time = 0 SECONDS + +/datum/component/glass_passer/Initialize(pass_time) + if(!ismob(parent)) //if its not a mob then just directly use passwindow + return COMPONENT_INCOMPATIBLE + + src.pass_time = pass_time + + if(!pass_time) + passwindow_on(parent, type) + else + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(bumped)) + + var/mob/mobbers = parent + mobbers.generic_canpass = FALSE + RegisterSignal(parent, COMSIG_MOVABLE_CROSS_OVER, PROC_REF(cross_over)) + +/datum/component/glass_passer/Destroy() + . = ..() + if(parent) + passwindow_off(parent, type) + +/datum/component/glass_passer/proc/cross_over(mob/passer, atom/crosser) + SIGNAL_HANDLER + + if(istype(crosser, /obj/structure/grille)) + var/obj/structure/grille/grillefriend = crosser + if(grillefriend.is_shocked()) //prevent passage of shocked + crosser.balloon_alert(passer, "is shocked!") + return COMPONENT_BLOCK_CROSS + + return null + +/datum/component/glass_passer/proc/bumped(mob/living/owner, atom/bumpee) + SIGNAL_HANDLER + + if(!istype(bumpee, /obj/structure/window)) + return + + INVOKE_ASYNC(src, PROC_REF(phase_through_glass), owner, bumpee) + +/datum/component/glass_passer/proc/phase_through_glass(mob/living/owner, atom/bumpee) + if(!do_after(owner, pass_time, bumpee)) + return + passwindow_on(owner, type) + try_move_adjacent(owner, get_dir(owner, bumpee)) + passwindow_off(owner, type) diff --git a/code/datums/components/growth_and_differentiation.dm b/code/datums/components/growth_and_differentiation.dm index bcf6722492251..182fd9b28ef48 100644 --- a/code/datums/components/growth_and_differentiation.dm +++ b/code/datums/components/growth_and_differentiation.dm @@ -11,6 +11,8 @@ var/growth_time /// Integer - Probability we grow per SPT_PROB var/growth_probability + /// Stores the growth_probability the component had when it was Initialized + var/initial_growth_probability /// Integer - The lower bound for the percentage we have to grow before we can differentiate. var/lower_growth_value /// Integer - The upper bound for the percentage we have to grow before we can differentiate. @@ -47,7 +49,7 @@ src.growth_path = growth_path src.growth_time = growth_time - src.growth_probability = growth_probability + initial_growth_probability = src.growth_probability = growth_probability src.lower_growth_value = lower_growth_value src.upper_growth_value = upper_growth_value src.optional_checks = optional_checks @@ -56,10 +58,9 @@ if(islist(signals_to_kill_on)) src.signals_to_kill_on = signals_to_kill_on RegisterSignals(parent, src.signals_to_kill_on, PROC_REF(stop_component_processing_entirely)) - + if(scale_with_happiness) - if(!HAS_TRAIT(parent, TRAIT_MOB_RELAY_HAPPINESS)) - AddComponent(/datum/component/happiness) + parent.AddComponent(/datum/component/happiness) RegisterSignal(parent, COMSIG_MOB_HAPPINESS_CHANGE, PROC_REF(on_happiness_change)) // If we haven't started the round, we can't do timer stuff. Let's wait in case we're mapped in or something. @@ -117,13 +118,16 @@ return if(SPT_PROB(growth_probability, seconds_per_tick)) - percent_grown += rand(lower_growth_value, upper_growth_value) + if(lower_growth_value == upper_growth_value) + percent_grown += upper_growth_value + else + percent_grown += rand(lower_growth_value, upper_growth_value) /datum/component/growth_and_differentiation/proc/on_happiness_change(datum/source, happiness_percentage) SIGNAL_HANDLER - var/probability_to_add = initial(growth_probability) * happiness_percentage - growth_probability = min(initial(growth_probability) + probability_to_add, 100) + var/probability_to_add = initial_growth_probability * happiness_percentage + growth_probability = min(initial_growth_probability + probability_to_add, 100) /// Grows the mob into its new form. /datum/component/growth_and_differentiation/proc/grow(silent) diff --git a/code/datums/components/happiness.dm b/code/datums/components/happiness.dm index 0a6274611923b..a131e86960eb3 100644 --- a/code/datums/components/happiness.dm +++ b/code/datums/components/happiness.dm @@ -6,6 +6,7 @@ * A component that allows mobs to have happiness levels */ /datum/component/happiness + dupe_mode = COMPONENT_DUPE_UNIQUE //Prioritize the old comp over, which may have callbacks and stuff specific to the mob. ///our current happiness level var/happiness_level ///our maximum happiness level @@ -53,11 +54,9 @@ if(on_eat_change) RegisterSignal(parent, COMSIG_MOB_ATE, PROC_REF(on_eat)) RegisterSignal(parent, COMSIG_SHIFT_CLICKED_ON, PROC_REF(view_happiness)) - ADD_TRAIT(parent, TRAIT_MOB_RELAY_HAPPINESS, REF(src)) /datum/component/happiness/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_HOSTILE_PRE_ATTACKINGTARGET, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_MOB_ATE)) - REMOVE_TRAIT(parent, TRAIT_MOB_RELAY_HAPPINESS, REF(src)) happiness_callback = null /datum/component/happiness/proc/on_eat(datum/source) @@ -69,6 +68,11 @@ SIGNAL_HANDLER if(!COOLDOWN_FINISHED(src, groom_cooldown)) return + + var/mob/living/living_parent = parent + if (living_parent.stat != CONSCIOUS) + return + COOLDOWN_START(src, groom_cooldown, GROOM_COOLDOWN) increase_happiness_level(on_groom_change) @@ -76,15 +80,12 @@ SIGNAL_HANDLER if(!LAZYACCESS(modifiers, LEFT_CLICK) || petter.combat_mode) return - pet_animal() -/datum/component/happiness/proc/on_animal_petted(datum/source, mob/living/petter) - SIGNAL_HANDLER - - if(petter.combat_mode) + var/mob/living/living_parent = parent + if (living_parent.stat != CONSCIOUS) return + pet_animal() - return COMSIG_BASIC_ATTACK_CANCEL_CHAIN /datum/component/happiness/proc/pet_animal() if(!COOLDOWN_FINISHED(src, pet_cooldown)) @@ -95,13 +96,14 @@ /datum/component/happiness/proc/increase_happiness_level(amount) happiness_level = min(happiness_level + amount, maximum_happiness) - var/mob/living/living_parent = parent - new /obj/effect/temp_visual/heart(living_parent.loc) - living_parent.spin(spintime = 2 SECONDS, speed = 1) + if(!HAS_TRAIT(parent, TRAIT_MOB_HIDE_HAPPINESS)) + var/mob/living/living_parent = parent + new /obj/effect/temp_visual/heart(living_parent.loc) + living_parent.spin(spintime = 2 SECONDS, speed = 1) START_PROCESSING(SSprocessing, src) /datum/component/happiness/proc/view_happiness(mob/living/source, mob/living/clicker) - if(!istype(clicker) || !COOLDOWN_FINISHED(src, happiness_inspect) || !clicker.CanReach(source)) + if(HAS_TRAIT(source, TRAIT_MOB_HIDE_HAPPINESS) || !istype(clicker) || !COOLDOWN_FINISHED(src, happiness_inspect) || !clicker.CanReach(source)) return var/list/offset_to_add = get_icon_dimensions(source.icon) var/y_position = offset_to_add["height"] + 1 diff --git a/code/datums/components/heart_eater.dm b/code/datums/components/heart_eater.dm new file mode 100644 index 0000000000000..5b73c40c9549e --- /dev/null +++ b/code/datums/components/heart_eater.dm @@ -0,0 +1,118 @@ +/datum/component/heart_eater + /// Check if we fully ate whole heart and reset when we start eat new one. + var/bites_taken = 0 + /// Remember the number of species damage_modifier. + var/remember_modifier = 0 + /// Remember last heart we ate and reset bites_taken counter if we start eat new one + var/datum/weakref/last_heart_we_ate + /// List of all mutations allowed to get. + var/static/list/datum/mutation/human/mutations_list = list( + /datum/mutation/human/adaptation/cold, + /datum/mutation/human/adaptation/heat, + /datum/mutation/human/adaptation/pressure, + /datum/mutation/human/adaptation/thermal, + /datum/mutation/human/chameleon, + /datum/mutation/human/cryokinesis, + /datum/mutation/human/cryokinesis/pyrokinesis, + /datum/mutation/human/dwarfism, + /datum/mutation/human/geladikinesis/ash, + /datum/mutation/human/insulated, + /datum/mutation/human/telekinesis, + /datum/mutation/human/telepathy, + /datum/mutation/human/thermal, + /datum/mutation/human/tongue_spike, + /datum/mutation/human/webbing, + /datum/mutation/human/xray, + ) + +/datum/component/heart_eater/Initialize(...) + . = ..() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + prepare_species(parent) + +/datum/component/heart_eater/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_SPECIES_GAIN, PROC_REF(on_species_change)) + RegisterSignal(parent, COMSIG_LIVING_FINISH_EAT, PROC_REF(eat_eat_eat)) + +/datum/component/heart_eater/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, COMSIG_LIVING_FINISH_EAT) + UnregisterSignal(parent, COMSIG_SPECIES_GAIN) + +/datum/component/heart_eater/proc/prepare_species(mob/living/carbon/human/eater) + if(eater.get_liked_foodtypes() & GORE) + return + var/obj/item/organ/internal/tongue/eater_tongue = eater.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!eater_tongue) + return + eater_tongue.disliked_foodtypes &= ~GORE + eater_tongue.liked_foodtypes |= GORE + +/datum/component/heart_eater/proc/on_species_change(mob/living/carbon/human/eater, datum/species/new_species, datum/species/old_species) + SIGNAL_HANDLER + + eater.dna?.species?.damage_modifier += remember_modifier + prepare_species(eater) + +/// Proc called when we finish eat somthing. +/datum/component/heart_eater/proc/eat_eat_eat(mob/living/carbon/human/eater, datum/what_we_ate) + SIGNAL_HANDLER + + if(get_area(eater) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + if(!istype(what_we_ate, /obj/item/organ/internal/heart)) + return + var/obj/item/organ/internal/heart/we_ate_heart = what_we_ate + var/obj/item/organ/internal/heart/previous_heart = last_heart_we_ate?.resolve() + if(we_ate_heart == previous_heart) + return + bites_taken = 0 + + last_heart_we_ate = WEAKREF(we_ate_heart) + bites_taken++ + if(bites_taken < (we_ate_heart.reagents.total_volume/2)) + return + if(prob(50)) + perfect_heart(eater) + return + not_perfect_heart(eater) + +///Perfect heart give our +10 damage modifier(Max. 80). +/datum/component/heart_eater/proc/perfect_heart(mob/living/carbon/human/eater) + if(eater.dna?.species?.damage_modifier >= 80) + healing_heart(eater) + return + eater.dna?.species?.damage_modifier += 10 + remember_modifier += 10 + healing_heart(eater) + to_chat(eater, span_warning("This heart is perfect. You feel a surge of vital energy.")) + +///Not Perfect heart give random mutation. +/datum/component/heart_eater/proc/not_perfect_heart(mob/living/carbon/human/eater) + var/datum/mutation/human/new_mutation + var/list/datum/mutation/human/shuffle_mutation_list = shuffle(mutations_list) + for(var/mutation_in_list in shuffle_mutation_list) + if(is_type_in_list(mutation_in_list, eater.dna.mutations)) + continue + new_mutation = mutation_in_list + break + if(isnull(new_mutation)) + healing_heart(eater) + return + eater.dna.add_mutation(new_mutation) + healing_heart(eater) + to_chat(eater, span_warning("This heart is not right for you. You now have [new_mutation.name] mutation.")) + +///Heart eater give also strong healing from hearts. +/datum/component/heart_eater/proc/healing_heart(mob/living/carbon/human/eater) + for(var/heal_organ in eater.organs) + eater.adjustOrganLoss(heal_organ, -50) + for(var/datum/wound/heal_wound in eater.all_wounds) + heal_wound.remove_wound() + eater.adjustBruteLoss(-50) + eater.adjustFireLoss(-50) + eater.adjustToxLoss(-50) + eater.adjustOxyLoss(-50) + eater.adjustStaminaLoss(-50) diff --git a/code/datums/components/mob_chain.dm b/code/datums/components/mob_chain.dm index a258fe3f5be60..e2f90eed16ee8 100644 --- a/code/datums/components/mob_chain.dm +++ b/code/datums/components/mob_chain.dm @@ -88,7 +88,7 @@ var/mob/living/body = parent body.update_appearance(UPDATE_ICON_STATE) -/// Called when something sets us as IT'S front +/// Called when something sets us as ITS front /datum/component/mob_chain/proc/on_gained_tail(mob/living/body, mob/living/tail) SIGNAL_HANDLER back = tail diff --git a/code/datums/components/object_possession.dm b/code/datums/components/object_possession.dm index c62f0905068b1..2a423e0016c79 100644 --- a/code/datums/components/object_possession.dm +++ b/code/datums/components/object_possession.dm @@ -8,7 +8,7 @@ /** * back up of the real name during user possession * - * When a user possesses an object it's real name is set to the user name and this + * When a user possesses an object its real name is set to the user name and this * stores whatever the real name was previously. When possession ends, the real name * is reset to this value */ diff --git a/code/datums/components/on_hit_effect.dm b/code/datums/components/on_hit_effect.dm deleted file mode 100644 index 9d1d047429069..0000000000000 --- a/code/datums/components/on_hit_effect.dm +++ /dev/null @@ -1,93 +0,0 @@ -/** - * ## On Hit Effect Component! - * - * Component for other elements/components to rely on for on-hit effects without duplicating the on-hit code. - * See Lifesteal, or bane for examples. - * - * THIS COULD EASILY SUPPORT COMPONENT_DUPE_ALLOWED but the getcomponent makes it throw errors. if you can figure that out feel free to readd the dupe types - */ -/datum/component/on_hit_effect - ///callback used by other components to apply effects - var/datum/callback/on_hit_callback - ///callback optionally used for more checks - var/datum/callback/extra_check_callback - ///optionally should we also apply the effect if thrown at something? - var/thrown_effect - -/datum/component/on_hit_effect/Initialize(on_hit_callback, extra_check_callback, thrown_effect = FALSE) - src.on_hit_callback = on_hit_callback - src.extra_check_callback = extra_check_callback - if(!(ismachinery(parent) || isstructure(parent) || isgun(parent) || isprojectilespell(parent) || isitem(parent) || isanimal_or_basicmob(parent) || isprojectile(parent))) - return ELEMENT_INCOMPATIBLE - src.thrown_effect = thrown_effect - -/datum/component/on_hit_effect/Destroy(force) - on_hit_callback = null - extra_check_callback = null - return ..() - -/datum/component/on_hit_effect/RegisterWithParent() - if(ismachinery(parent) || isstructure(parent) || isgun(parent) || isprojectilespell(parent)) - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(on_projectile_hit)) - else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) - else if(isanimal_or_basicmob(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) - else if(isprojectile(parent)) - RegisterSignal(parent, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(on_projectile_self_hit)) - - if(thrown_effect) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(on_thrown_hit)) - -/datum/component/on_hit_effect/UnregisterFromParent() - UnregisterSignal(parent, list( - COMSIG_PROJECTILE_ON_HIT, - COMSIG_ITEM_AFTERATTACK, - COMSIG_HOSTILE_POST_ATTACKINGTARGET, - COMSIG_PROJECTILE_SELF_ON_HIT, - COMSIG_MOVABLE_IMPACT, - )) - -/datum/component/on_hit_effect/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters) - SIGNAL_HANDLER - - if(!proximity_flag) - return - - if(extra_check_callback) - if(!extra_check_callback.Invoke(user, target, source)) - return - on_hit_callback.Invoke(source, user, target, user.zone_selected) - -/datum/component/on_hit_effect/proc/hostile_attackingtarget(mob/living/attacker, atom/target, success) - SIGNAL_HANDLER - - if(!success) - return - - if(extra_check_callback) - if(!extra_check_callback.Invoke(attacker, target)) - return - on_hit_callback.Invoke(attacker, attacker, target, attacker.zone_selected) - -/datum/component/on_hit_effect/proc/on_projectile_hit(datum/fired_from, atom/movable/firer, atom/target, angle, body_zone) - SIGNAL_HANDLER - - if(extra_check_callback) - if(!extra_check_callback.Invoke(firer, target)) - return - on_hit_callback.Invoke(fired_from, firer, target, body_zone) - -/datum/component/on_hit_effect/proc/on_projectile_self_hit(datum/source, mob/firer, atom/target, angle, body_zone) - SIGNAL_HANDLER - - if(extra_check_callback) - if(!extra_check_callback.Invoke(firer, target)) - return - on_hit_callback.Invoke(source, firer, target, body_zone) - -/datum/component/on_hit_effect/proc/on_thrown_hit(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) - SIGNAL_HANDLER - if(extra_check_callback && !extra_check_callback.Invoke(source, hit_atom)) - return - on_hit_callback.Invoke(source, source, hit_atom, null) diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index 19c7528db8bf3..258b8f87972e0 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -62,7 +62,7 @@ var/directional = FALSE ///Whether we're a beam light var/beam = FALSE - ///A cone overlay for directional light, it's alpha and color are dependant on the light + ///A cone overlay for directional light, its alpha and color are dependant on the light var/image/cone ///Current tracked direction for the directional cast behaviour var/current_direction diff --git a/code/datums/components/pet_commands/pet_command.dm b/code/datums/components/pet_commands/pet_command.dm index cf376b21001e8..6ae249d2340aa 100644 --- a/code/datums/components/pet_commands/pet_command.dm +++ b/code/datums/components/pet_commands/pet_command.dm @@ -97,6 +97,7 @@ /// Store the target for the AI blackboard /datum/pet_command/proc/set_command_target(mob/living/parent, atom/target) parent.ai_controller.set_blackboard_key(BB_CURRENT_PET_TARGET, target) + return TRUE /// Provide information about how to display this command in a radial menu /datum/pet_command/proc/provide_radial_data() @@ -159,7 +160,7 @@ parent.ai_controller.CancelActions() // Deciding if they can actually do anything with this target is the behaviour's job - set_command_target(parent, pointed_atom) - // These are usually hostile actions so should have a record in chat - parent.visible_message(span_warning("[parent] follows [friend]'s gesture towards [pointed_atom] [pointed_reaction]!")) + if(set_command_target(parent, pointed_atom)) + // These are usually hostile actions so should have a record in chat + parent.visible_message(span_warning("[parent] follows [friend]'s gesture towards [pointed_atom][pointed_reaction ? " [pointed_reaction]" : ""]!")) return TRUE diff --git a/code/datums/components/pet_commands/pet_commands_basic.dm b/code/datums/components/pet_commands/pet_commands_basic.dm index d9ce0ccb56a46..ad48bba0ffd07 100644 --- a/code/datums/components/pet_commands/pet_commands_basic.dm +++ b/code/datums/components/pet_commands/pet_commands_basic.dm @@ -202,6 +202,8 @@ pointed_reaction = "and growls" /// Blackboard key where a reference to some kind of mob ability is stored var/pet_ability_key + /// The AI behavior to use for the ability + var/ability_behavior = /datum/ai_behavior/pet_use_ability /datum/pet_command/point_targeting/use_ability/execute_action(datum/ai_controller/controller) if (!pet_ability_key) @@ -211,7 +213,7 @@ return // We don't check if the target exists because we want to 'sit attentively' if we've been instructed to attack but not given one yet // We also don't check if the cooldown is over because there's no way a pet owner can know that, the behaviour will handle it - controller.queue_behavior(/datum/ai_behavior/pet_use_ability, pet_ability_key, BB_CURRENT_PET_TARGET) + controller.queue_behavior(ability_behavior, pet_ability_key, BB_CURRENT_PET_TARGET) return SUBTREE_RETURN_FINISH_PLANNING /datum/pet_command/protect_owner @@ -266,3 +268,29 @@ return if(isliving(attacker) && can_see(owner, attacker, protect_range)) set_command_active(owner, attacker) + +/** + * # Fish command: command the mob to fish at the next fishing spot you point at. Requires the profound fisher component + */ +/datum/pet_command/point_targeting/fish + command_name = "Fish" + command_desc = "Command your pet to try fishing at a nearby fishing spot." + radial_icon = 'icons/obj/aquarium/fish.dmi' + radial_icon_state = "goldfish" + speech_commands = list("fish") + +// Refuse to target things we can't target, chiefly other friends +/datum/pet_command/point_targeting/fish/set_command_target(mob/living/parent, atom/target) + if (!target) + return + if(!parent.ai_controller || !HAS_TRAIT(parent, TRAIT_PROFOUND_FISHER)) + return + var/datum/targeting_strategy/targeter = GET_TARGETING_STRATEGY(/datum/targeting_strategy/fishing) + if (!targeter?.can_attack(parent, target)) + parent.balloon_alert_to_viewers("shakes head!") + return + return ..() + +/datum/pet_command/point_targeting/fish/execute_action(datum/ai_controller/controller) + controller.queue_behavior(/datum/ai_behavior/hunt_target/unarmed_attack_target/reset_target_combat_mode, BB_CURRENT_PET_TARGET) + return SUBTREE_RETURN_FINISH_PLANNING diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index 490f88d39b25e..c59be2ed27651 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -302,7 +302,7 @@ demand_connects = new_demand_connects supply_connects = new_supply_connects -///Give the direction of a pipe, and it'll return wich direction it originally was when it's object pointed SOUTH +///Give the direction of a pipe, and it'll return wich direction it originally was when its object pointed SOUTH /datum/component/plumbing/proc/get_original_direction(dir) var/atom/movable/parent_movable = parent return turn(dir, dir2angle(parent_movable.dir) - 180) diff --git a/code/datums/components/profound_fisher.dm b/code/datums/components/profound_fisher.dm index ec839e265f2f0..1bc10b8ac303b 100644 --- a/code/datums/components/profound_fisher.dm +++ b/code/datums/components/profound_fisher.dm @@ -2,14 +2,11 @@ /datum/component/profound_fisher ///the fishing rod this mob will use var/obj/item/fishing_rod/mob_fisher/our_rod - ///if controlled by an AI, the things this mob can "pretend" fish - var/list/npc_fishing_preset /datum/component/profound_fisher/Initialize(list/npc_fishing_preset = list()) if(!isliving(parent)) return our_rod = new(parent) - src.npc_fishing_preset = npc_fishing_preset ADD_TRAIT(parent, TRAIT_PROFOUND_FISHER, REF(src)) /datum/component/profound_fisher/RegisterWithParent() @@ -29,7 +26,7 @@ if(!HAS_TRAIT(target, TRAIT_FISHING_SPOT)) return NONE var/mob/living/living_parent = parent - if(!living_parent.CanReach(target)) + if(living_parent.combat_mode || !living_parent.CanReach(target)) return NONE if(living_parent.client) INVOKE_ASYNC(our_rod, TYPE_PROC_REF(/obj/item, melee_attack_chain), parent, target) @@ -38,23 +35,24 @@ return COMPONENT_HOSTILE_NO_ATTACK /datum/component/profound_fisher/proc/pretend_fish(atom/target) - var/fishing_type - for(var/type in npc_fishing_preset) - if(!istype(target, type)) - continue - fishing_type = npc_fishing_preset[type] - break - var/datum/fish_source/fish_spot = GLOB.preset_fish_sources[fishing_type] + var/mob/living/living_parent = parent + if(DOING_INTERACTION_WITH_TARGET(living_parent, target)) + return + var/list/fish_spot_container[NPC_FISHING_SPOT] + SEND_SIGNAL(target, COMSIG_NPC_FISHING, fish_spot_container) + var/datum/fish_source/fish_spot = fish_spot_container[NPC_FISHING_SPOT] if(isnull(fish_spot)) return null var/obj/effect/fishing_lure/lure = new(get_turf(target), target) - var/mob/living/living_parent = parent - if(!do_after(living_parent, 10 SECONDS, target = target)) + playsound(lure, 'sound/effects/splash.ogg', 100) + var/happiness_percentage = living_parent.ai_controller?.blackboard[BB_BASIC_HAPPINESS] / 100 + var/fishing_speed = 10 SECONDS - round(4 SECONDS * happiness_percentage) + if(!do_after(living_parent, fishing_speed, target = target) && !QDELETED(fish_spot)) qdel(lure) return var/reward_loot = fish_spot.roll_reward(our_rod, parent) - if(ispath(reward_loot)) - fish_spot.dispense_reward(reward_loot, parent, target) + fish_spot.dispense_reward(reward_loot, parent, target) + playsound(lure, 'sound/effects/bigsplash.ogg', 100) qdel(lure) /obj/item/fishing_rod/mob_fisher diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm index f60ca65fcdb5c..c249bafdf70f0 100644 --- a/code/datums/components/riding/riding_vehicle.dm +++ b/code/datums/components/riding/riding_vehicle.dm @@ -243,14 +243,53 @@ /datum/component/riding/vehicle/scooter/skateboard/hover/proc/hover_check(is_moving = FALSE) var/atom/movable/movable = parent if(!is_space_or_openspace(movable.loc)) - override_allow_spacemove = TRUE + on_hover_enabled() return var/turf/open/our_turf = movable.loc - var/turf/turf_below = GET_TURF_BELOW(our_turf) - if(our_turf.zPassOut(DOWN) && (isnull(turf_below) || (is_space_or_openspace(turf_below) && turf_below.zPassIn(DOWN) && turf_below.zPassOut(DOWN)))) - override_allow_spacemove = FALSE - if(turf_below) - our_turf.zFall(movable, falling_from_move = is_moving) + var/turf/below = GET_TURF_BELOW(our_turf) + + if(!check_space_turf(our_turf)) + on_hover_fail() + return + //it's open space without support and the turf below is null or space without lattice, or if it'd fall several z-levels. + if(isopenspaceturf(our_turf) && our_turf.zPassOut(DOWN) && (isnull(below) || !check_space_turf(below) || (below.zPassOut(DOWN) && below.zPassIn(DOWN)))) + on_hover_fail(our_turf, below, is_moving) + return + on_hover_enabled() + +///Part of the hover_check proc that returns false if it's a space turf without lattice or such. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/check_space_turf(turf/turf) + if(!isspaceturf(turf)) + return TRUE + for(var/obj/object in turf.contents) + if(object.obj_flags & BLOCK_Z_OUT_DOWN) + return TRUE + return FALSE + +///Called by hover_check() when the hoverboard is on a valid turf. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/on_hover_enabled() + override_allow_spacemove = TRUE + +///Called by hover_check() when the hoverboard is on space or open space turf without a support underneath it. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/on_hover_fail(turf/open/our_turf, turf/turf_below, is_moving) + override_allow_spacemove = FALSE + if(turf_below) + our_turf.zFall(parent, falling_from_move = is_moving) + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy + var/is_slown_down = FALSE + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy/on_hover_enabled() + if(!is_slown_down) + return + is_slown_down = FALSE + vehicle_move_delay -= 1 + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy/on_hover_fail(turf/open/our_turf, turf/turf_below, is_moving) + if(is_slown_down) + return + is_slown_down = TRUE + vehicle_move_delay += 1 /datum/component/riding/vehicle/scooter/skateboard/wheelys vehicle_move_delay = 1.75 // SKYRAT EDIT - ORIGINAL: 0 diff --git a/code/datums/components/slime_friends.dm b/code/datums/components/slime_friends.dm new file mode 100644 index 0000000000000..d2b751d092ea9 --- /dev/null +++ b/code/datums/components/slime_friends.dm @@ -0,0 +1,61 @@ +/datum/component/slime_friends + /// Slime maker timer. + var/timer + /// List to pick from when we need slime colour. + var/static/colours = list( + /datum/slime_type/adamantine, + /datum/slime_type/black, + /datum/slime_type/blue, + /datum/slime_type/bluespace, + /datum/slime_type/cerulean, + /datum/slime_type/darkblue, + /datum/slime_type/darkpurple, + /datum/slime_type/gold, + /datum/slime_type/green, + /datum/slime_type/grey, + /datum/slime_type/lightpink, + /datum/slime_type/metal, + /datum/slime_type/oil, + /datum/slime_type/orange, + /datum/slime_type/pink, + /datum/slime_type/purple, + /datum/slime_type/pyrite, + /datum/slime_type/rainbow, + /datum/slime_type/red, + /datum/slime_type/sepia, + /datum/slime_type/silver, + /datum/slime_type/yellow, + ) + +/datum/component/slime_friends/Initialize(...) + . = ..() + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + var/mob/living/living_parent = parent + living_parent.faction |= FACTION_SLIME + RegisterSignal(living_parent, COMSIG_ENTER_AREA, PROC_REF(start_slime_prodaction)) + +/datum/component/slime_friends/Destroy(force) + . = ..() + var/mob/living/living_parent = parent + living_parent.faction -= FACTION_SLIME + timer = null + +/// Start slime prodaction when we leave wizden. +/datum/component/slime_friends/proc/start_slime_prodaction(mob/living/friend, area/new_area) + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS) + UnregisterSignal(friend, COMSIG_ENTER_AREA) + +/// Slime prodactor proc. +/datum/component/slime_friends/proc/make_slime_friend(mob/living/friend) + timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS) + if(get_area(friend) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + var/turf/where = get_turf(friend) + var/new_colour = pick(colours) + var/mob/living/basic/slime/new_friend = new(where, new_colour, SLIME_LIFE_STAGE_ADULT) + new_friend.faction = friend.faction.Copy() + new_friend.set_enraged_behaviour() + friend.nutrition -= 50 diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 74dbdd5642fe2..8a934cdd4c1d5 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -56,7 +56,7 @@ * * lube_flags - Controls the slip behaviour, they are listed starting [here][SLIDE] * * datum/callback/on_slip_callback - Callback to define further custom controls on when slipping is applied * * paralyze - length of time to paralyze the crossing mob for (Deciseconds) - * * force_drop - should the crossing mob drop items in it's hands or not + * * force_drop - should the crossing mob drop items in its hands or not * * slot_whitelist - flags controlling where on a mob this item can be equipped to make the parent mob slippery full list [here][ITEM_SLOT_OCLOTHING] * * datum/callback/on_slip_callback - Callback to add custom behaviours as the crossing mob is slipped */ diff --git a/code/datums/components/soapbox.dm b/code/datums/components/soapbox.dm new file mode 100644 index 0000000000000..4622cc089288c --- /dev/null +++ b/code/datums/components/soapbox.dm @@ -0,0 +1,44 @@ +/datum/component/soapbox + /// List of our current soapboxxer(s) who are gaining loud speech + var/list/soapboxers = list() + /// Gives atoms moving over us the soapbox speech and takes it away when they leave + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(on_loc_entered), + COMSIG_ATOM_EXITED = PROC_REF(on_loc_exited), + ) + +/datum/component/soapbox/Initialize(...) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + add_connect_loc_behalf_to_parent() + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(parent_moved)) + +///Applies loud speech to our movable when entering the turf our parent is on +/datum/component/soapbox/proc/on_loc_entered(datum/source, atom/movable/soapbox_arrive) + SIGNAL_HANDLER + if(QDELETED(soapbox_arrive)) + return + RegisterSignal(soapbox_arrive, COMSIG_MOB_SAY, PROC_REF(soapbox_speech)) + soapboxers += soapbox_arrive + +///Takes away loud speech from our movable when it leaves the turf our parent is on +/datum/component/soapbox/proc/on_loc_exited(datum/source, atom/movable/soapbox_leave) + SIGNAL_HANDLER + if(soapbox_leave in soapboxers) + UnregisterSignal(soapbox_leave, COMSIG_MOB_SAY) + soapboxers -= soapbox_leave + +///We don't want our soapboxxer to keep their loud say if the parent is moved out from under them +/datum/component/soapbox/proc/parent_moved(datum/source) + SIGNAL_HANDLER + for(var/atom/movable/loud as anything in soapboxers) + UnregisterSignal(loud, COMSIG_MOB_SAY) + soapboxers = list() + +///Gives a mob a unique say span +/datum/component/soapbox/proc/soapbox_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + speech_args[SPEECH_SPANS] |= SPAN_SOAPBOX + +/datum/component/soapbox/proc/add_connect_loc_behalf_to_parent() + AddComponent(/datum/component/connect_loc_behalf, parent, loc_connections) diff --git a/code/datums/components/space_allaergy.dm b/code/datums/components/space_allaergy.dm new file mode 100644 index 0000000000000..d1bc334ce1f5f --- /dev/null +++ b/code/datums/components/space_allaergy.dm @@ -0,0 +1,14 @@ +/// Slowly kill the thing when iuts on a planet +/datum/component/planet_allergy/Initialize(...) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ENTER_AREA, PROC_REF(entered_area)) + +/datum/component/planet_allergy/proc/entered_area(mob/living/parent, area/new_area) + SIGNAL_HANDLER + + if(is_on_a_planet(parent) && parent.has_gravity()) + parent.apply_status_effect(/datum/status_effect/planet_allergy) //your gamer body cant stand real gravity + else + parent.remove_status_effect(/datum/status_effect/planet_allergy) diff --git a/code/datums/components/space_camo.dm b/code/datums/components/space_camo.dm new file mode 100644 index 0000000000000..08b6c10649443 --- /dev/null +++ b/code/datums/components/space_camo.dm @@ -0,0 +1,54 @@ +/// Camouflage us when we enter space by increasing alpha and or changing color +/datum/component/space_camo + /// Alpha we have in space + var/space_alpha + /// Alpha we have elsewhere + var/non_space_alpha + /// How long we can't enter camo after hitting or being hit + var/reveal_after_combat + /// The world time after we can camo again + VAR_PRIVATE/next_camo + +/datum/component/space_camo/Initialize(space_alpha, non_space_alpha, reveal_after_combat) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + src.space_alpha = space_alpha + src.non_space_alpha = non_space_alpha + src.reveal_after_combat = reveal_after_combat + + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(on_atom_entering)) + + if(isliving(parent)) + RegisterSignals(parent, list(COMSIG_ATOM_WAS_ATTACKED, COMSIG_MOB_ITEM_ATTACK, COMSIG_LIVING_UNARMED_ATTACK, COMSIG_ATOM_BULLET_ACT, COMSIG_ATOM_REVEAL), PROC_REF(force_exit_camo)) + +/datum/component/space_camo/proc/on_atom_entering(atom/movable/entering, atom/entered) + SIGNAL_HANDLER + + if(!attempt_enter_camo()) + exit_camo(parent) + +/datum/component/space_camo/proc/attempt_enter_camo() + if(!isspaceturf(get_turf(parent)) || next_camo > world.time) + return FALSE + + enter_camo(parent) + return TRUE + +/datum/component/space_camo/proc/force_exit_camo() + SIGNAL_HANDLER + + exit_camo(parent) + next_camo = world.time + reveal_after_combat + addtimer(CALLBACK(src, PROC_REF(attempt_enter_camo)), reveal_after_combat, TIMER_OVERRIDE | TIMER_UNIQUE) + +/datum/component/space_camo/proc/enter_camo(atom/movable/parent) + if(parent.alpha != space_alpha) + animate(parent, alpha = space_alpha, time = 0.5 SECONDS) + parent.remove_from_all_data_huds() + parent.add_atom_colour(SSparallax.get_parallax_color(), TEMPORARY_COLOUR_PRIORITY) + +/datum/component/space_camo/proc/exit_camo(atom/movable/parent) + animate(parent, alpha = non_space_alpha, time = 0.5 SECONDS) + parent.add_to_all_human_data_huds() + parent.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) diff --git a/code/datums/components/space_dive.dm b/code/datums/components/space_dive.dm new file mode 100644 index 0000000000000..bbbeb0bb16832 --- /dev/null +++ b/code/datums/components/space_dive.dm @@ -0,0 +1,84 @@ +/// Lets us dive under the station from space +/datum/component/space_dive + /// holder we use when we're in dive + var/jaunt_type = /obj/effect/dummy/phased_mob/space_dive + /// time it takes to enter the dive + var/dive_time = 3 SECONDS + /// the time it takes to exit our space dive + var/surface_time = 1 SECONDS + /// Traits added during phasing (and removed after) + var/static/phase_traits = list(TRAIT_MAGICALLY_PHASED, TRAIT_RUNECHAT_HIDDEN, TRAIT_WEATHER_IMMUNE) + +/datum/component/space_dive/Initialize(...) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(bump)) + +/datum/component/space_dive/proc/bump(mob/living/parent, atom/bumped) + SIGNAL_HANDLER + + if(!isspaceturf(get_turf(parent))) + return + + if(ismovable(bumped)) + if(istype(bumped, /obj/machinery/door))//door check is kinda lame but it just plays better + return + + var/atom/movable/mover = bumped + if(!mover.anchored) + return + + INVOKE_ASYNC(src, PROC_REF(attempt_dive), parent, bumped) + +/datum/component/space_dive/proc/attempt_dive(mob/living/parent, atom/bumped) + if(!do_after(parent, dive_time, bumped)) + return + + dive(bumped) + +/datum/component/space_dive/proc/dive(atom/bumped) + var/obj/effect/dummy/phased_mob/jaunt = new jaunt_type(get_turf(bumped), parent) + + RegisterSignal(jaunt, COMSIG_MOB_EJECTED_FROM_JAUNT, PROC_REF(surface)) + RegisterSignal(jaunt, COMSIG_MOB_PHASED_CHECK, PROC_REF(move_check)) + parent.add_traits(phase_traits, REF(src)) + + // This needs to happen at the end, after all the traits and stuff is handled + SEND_SIGNAL(parent, COMSIG_MOB_ENTER_JAUNT, src, jaunt) + +/datum/component/space_dive/proc/move_check(obj/effect/dummy/phased_mob/jaunt, mob/living/parent, turf/new_turf) + SIGNAL_HANDLER + + if(!isspaceturf(new_turf)) + return + + INVOKE_ASYNC(src, PROC_REF(attempt_surface), parent, new_turf) + return COMPONENT_BLOCK_PHASED_MOVE + +/// try and surface by doing a do_after +/datum/component/space_dive/proc/attempt_surface(mob/living/parent, turf/new_turf) + if(do_after(parent, surface_time, new_turf, extra_checks = CALLBACK(src, PROC_REF(check_if_moved), parent, get_turf(parent)))) + surface(null, parent, new_turf) + +// we check if we moved for the do_after, since relayed movements arent caught that well by the do_after +/datum/component/space_dive/proc/check_if_moved(mob/living/parent, turf/do_after_turf) + return get_turf(parent) == do_after_turf + +/datum/component/space_dive/proc/surface(atom/holder, mob/living/parent, turf/target) + SIGNAL_HANDLER + + var/obj/effect/dummy/phased_mob/jaunt = parent.loc + if(!istype(jaunt)) + return FALSE + + parent.remove_traits(phase_traits, REF(src)) + + parent.forceMove(target || get_turf(parent)) + qdel(jaunt) + + // This needs to happen at the end, after all the traits and stuff is handled + SEND_SIGNAL(parent, COMSIG_MOB_AFTER_EXIT_JAUNT, src) + +/obj/effect/dummy/phased_mob/space_dive + movespeed = 1 diff --git a/code/datums/components/space_kidnap.dm b/code/datums/components/space_kidnap.dm new file mode 100644 index 0000000000000..8a1de2123d9d3 --- /dev/null +++ b/code/datums/components/space_kidnap.dm @@ -0,0 +1,69 @@ +/// Component that lets us space kidnap people as the voidwalker with our HAAAADS +/datum/component/space_kidnap + /// How long does it take to kidnap them? + var/kidnap_time = 6 SECONDS + /// Are we kidnapping right now? + var/kidnapping = FALSE + +/datum/component/space_kidnap/Initialize(...) + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(try_kidnap)) + +/datum/component/space_kidnap/proc/try_kidnap(mob/living/parent, atom/target) + SIGNAL_HANDLER + + if(!isliving(target)) + return + + var/mob/living/victim = target + + if(victim.stat == DEAD) + target.balloon_alert(parent, "is dead!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(!victim.incapacitated()) + return + + if(!isspaceturf(get_turf(target))) + target.balloon_alert(parent, "not in space!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(!kidnapping) + INVOKE_ASYNC(src, PROC_REF(kidnap), parent, target) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/component/space_kidnap/proc/kidnap(mob/living/parent, mob/living/victim) + victim.Paralyze(kidnap_time) //so they don't get up if we already got em + var/obj/particles = new /obj/effect/abstract/particle_holder (victim, /particles/void_kidnap) + kidnapping = TRUE + + if(do_after(parent, kidnap_time, victim, extra_checks = CALLBACK(victim, TYPE_PROC_REF(/mob, incapacitated)))) + take_them(victim) + + qdel(particles) + kidnapping = FALSE + +/datum/component/space_kidnap/proc/take_them(mob/living/victim) + if(ishuman(victim)) + var/mob/living/carbon/human/hewmon = victim + hewmon.gain_trauma(/datum/brain_trauma/voided) + + victim.flash_act(INFINITY, override_blindness_check = TRUE, visual = TRUE, type = /atom/movable/screen/fullscreen/flash/black) + new /obj/effect/temp_visual/circle_wave/unsettle(get_turf(victim)) + + if(!SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_VOIDWALKER_VOID) || !GLOB.voidwalker_void.len) + victim.forceMove(get_random_station_turf()) + victim.heal_overall_damage(brute = 80, burn = 20) + CRASH("[victim] was instantly dumped after being voidwalker kidnapped due to a missing landmark!") + else + victim.heal_and_revive(90) + victim.adjustOxyLoss(-100, FALSE) + + var/obj/wisp = new /obj/effect/wisp_mobile (get_turf(pick(GLOB.voidwalker_void))) + victim.forceMove(wisp) + succesfully_kidnapped() + +/datum/component/space_kidnap/proc/succesfully_kidnapped(mob/living/carbon/human/kidnappee) + SEND_SIGNAL(parent, COMSIG_VOIDWALKER_SUCCESFUL_KIDNAP, kidnappee) diff --git a/code/datums/components/speechmod.dm b/code/datums/components/speechmod.dm index 71991c80d837c..2506a0b914077 100644 --- a/code/datums/components/speechmod.dm +++ b/code/datums/components/speechmod.dm @@ -13,8 +13,10 @@ var/slots /// If set to true, turns all text to uppercase var/uppercase = FALSE + /// Any additional checks that we should do before applying the speech modification + var/datum/callback/should_modify_speech = null -/datum/component/speechmod/Initialize(replacements = list(), end_string = "", end_string_chance = 100, slots, uppercase = FALSE) +/datum/component/speechmod/Initialize(replacements = list(), end_string = "", end_string_chance = 100, slots, uppercase = FALSE, should_modify_speech) if (!ismob(parent) && !isitem(parent) && !istype(parent, /datum/mutation/human)) return COMPONENT_INCOMPATIBLE @@ -23,6 +25,7 @@ src.end_string_chance = end_string_chance src.slots = slots src.uppercase = uppercase + src.should_modify_speech = should_modify_speech if (istype(parent, /datum/mutation/human)) RegisterSignal(parent, COMSIG_MUTATION_GAINED, PROC_REF(on_mutation_gained)) @@ -51,6 +54,8 @@ var/message = speech_args[SPEECH_MESSAGE] if(message[1] == "*") return + if(!isnull(should_modify_speech) && !should_modify_speech.Invoke(source, speech_args)) + return for (var/to_replace in replacements) var/replacement = replacements[to_replace] @@ -123,3 +128,7 @@ return UnregisterSignal(targeted, COMSIG_MOB_SAY) targeted = null + +/datum/component/speechmod/Destroy() + should_modify_speech = null + return ..() diff --git a/code/datums/components/spirit_holding.dm b/code/datums/components/spirit_holding.dm index a7accc38352ee..2f0588c6c22a2 100644 --- a/code/datums/components/spirit_holding.dm +++ b/code/datums/components/spirit_holding.dm @@ -10,14 +10,17 @@ var/allow_renaming /// Allows channeling var/allow_channeling + /// Allows exorcism + var/allow_exorcism ///mob contained in the item. var/mob/living/basic/shade/bound_spirit -/datum/component/spirit_holding/Initialize(datum/mind/soul_to_bind, mob/awakener, allow_renaming = TRUE, allow_channeling = TRUE) +/datum/component/spirit_holding/Initialize(datum/mind/soul_to_bind, mob/awakener, allow_renaming = TRUE, allow_channeling = TRUE, allow_exorcism = TRUE) if(!ismovable(parent)) //you may apply this to mobs, i take no responsibility for how that works out return COMPONENT_INCOMPATIBLE src.allow_renaming = allow_renaming src.allow_channeling = allow_channeling + src.allow_exorcism = allow_exorcism if(soul_to_bind) bind_the_soule(soul_to_bind, awakener, soul_to_bind.name) @@ -107,7 +110,8 @@ bound_spirit.get_language_holder().omnitongue = TRUE //Grants omnitongue RegisterSignal(parent, COMSIG_ATOM_RELAYMOVE, PROC_REF(block_buckle_message)) - RegisterSignal(parent, COMSIG_BIBLE_SMACKED, PROC_REF(on_bible_smacked)) + if(allow_exorcism) + RegisterSignal(parent, COMSIG_BIBLE_SMACKED, PROC_REF(on_bible_smacked)) /** * custom_name : Simply sends a tgui input text box to the blade asking what name they want to be called, and retries it if the input is invalid. @@ -118,7 +122,7 @@ /datum/component/spirit_holding/proc/custom_name(mob/awakener) var/chosen_name = sanitize_name(tgui_input_text(bound_spirit, "What are you named?", "Spectral Nomenclature", max_length = MAX_NAME_LEN)) if(!chosen_name) // with the way that sanitize_name works, it'll actually send the error message to the awakener as well. - to_chat(awakener, span_warning("Your blade did not select a valid name! Please wait as they try again.")) // more verbose than what sanitize_name might pass in it's error message + to_chat(awakener, span_warning("Your blade did not select a valid name! Please wait as they try again.")) // more verbose than what sanitize_name might pass in its error message return custom_name(awakener) return chosen_name @@ -139,6 +143,8 @@ * * exorcist: user who is attempting to remove the spirit */ /datum/component/spirit_holding/proc/attempt_exorcism(mob/exorcist) + if(!allow_exorcism) + return // just in case var/atom/movable/exorcised_movable = parent to_chat(exorcist, span_notice("You begin to exorcise [parent]...")) playsound(parent, 'sound/hallucinations/veryfar_noise.ogg',40,TRUE) diff --git a/code/datums/components/splattercasting.dm b/code/datums/components/splattercasting.dm index b550f2b1221f4..eafc9629a8386 100644 --- a/code/datums/components/splattercasting.dm +++ b/code/datums/components/splattercasting.dm @@ -21,10 +21,12 @@ RegisterSignal(parent, COMSIG_MOB_SPELL_PROJECTILE, PROC_REF(on_spell_projectile)) RegisterSignal(parent, COMSIG_MOB_BEFORE_SPELL_CAST, PROC_REF(on_before_spell_cast)) RegisterSignal(parent, COMSIG_MOB_AFTER_SPELL_CAST, PROC_REF(on_after_spell_cast)) + ADD_TRAIT(parent, TRAIT_SPLATTERCASTER, REF(src)) /datum/component/splattercasting/UnregisterFromParent() . = ..() UnregisterSignal(parent, list(COMSIG_SPECIES_LOSS, COMSIG_MOB_SPELL_PROJECTILE, COMSIG_MOB_BEFORE_SPELL_CAST, COMSIG_MOB_AFTER_SPELL_CAST)) + REMOVE_TRAIT(parent, TRAIT_SPLATTERCASTER, REF(src)) ///signal sent when a spell casts a projectile /datum/component/splattercasting/proc/on_species_change(mob/living/carbon/source, datum/species/lost_species) diff --git a/code/datums/components/style/style.dm b/code/datums/components/style/style.dm index 748c8bd2e1beb..1003df648f0d0 100644 --- a/code/datums/components/style/style.dm +++ b/code/datums/components/style/style.dm @@ -222,7 +222,7 @@ rank = rank_changed meter.maptext = "[format_rank_string(rank)][generate_multiplier()][generate_actions()]" - meter.maptext_y = 100 - 9 * length(actions) + meter.maptext_y = 94 - 12 * length(actions) update_meter(point_to_rank(), go_back) /datum/component/style/proc/update_meter(new_rank, go_back) @@ -273,19 +273,15 @@ return "SPACED!" /datum/component/style/proc/format_rank_string(new_rank) - var/rank_string = rank_to_string(new_rank) - var/final_string = "" - final_string += "[rank_string[1]]" - final_string += "[copytext(rank_string, 2)]" - return final_string + return MAPTEXT_PIXELLARI("[rank_to_string(new_rank)]") /datum/component/style/proc/generate_multiplier() - return "
MULTIPLIER: [point_multiplier]X" + return "
" + MAPTEXT_GRAND9K("MULTIPLIER: [point_multiplier]X") /datum/component/style/proc/generate_actions() var/action_string = "" for(var/action in actions) - action_string += "
+ [actions[action]]" + action_string += "
" + MAPTEXT_GRAND9K("+ [actions[action]]") return action_string /datum/component/style/proc/action_to_color(action) diff --git a/code/datums/components/style/style_meter.dm b/code/datums/components/style/style_meter.dm index 94263700dda21..cc02baec1d5e0 100644 --- a/code/datums/components/style/style_meter.dm +++ b/code/datums/components/style/style_meter.dm @@ -132,7 +132,7 @@ maptext_height = 120 maptext_width = 105 maptext_x = 5 - maptext_y = 100 + maptext_y = 94 maptext = "" layer = SCREENTIP_LAYER diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 58da15b03e9cd..b681abd8a50e4 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -43,7 +43,7 @@ src.min_distance = min_distance var/mob/P = parent - to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and clicking on your target with an empty hand.")) + to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and ") + span_boldnotice("RIGHT-CLICKING on your target with an empty hand.")) addtimer(CALLBACK(src, PROC_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE) @@ -74,6 +74,9 @@ if(modifiers[ALT_CLICK] || modifiers[SHIFT_CLICK] || modifiers[CTRL_CLICK] || modifiers[MIDDLE_CLICK]) return + if(!modifiers[RIGHT_CLICK]) + return + if(!user.throw_mode || user.get_active_held_item() || user.pulling || user.buckled || user.incapacitated()) return diff --git a/code/datums/components/temporary_glass_shatter.dm b/code/datums/components/temporary_glass_shatter.dm new file mode 100644 index 0000000000000..c2db33190e601 --- /dev/null +++ b/code/datums/components/temporary_glass_shatter.dm @@ -0,0 +1,30 @@ +/// Component to make an item temporarily break glass +/datum/component/temporary_glass_shatterer/Initialize(...) + . = ..() + + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(on_tap)) + +/datum/component/temporary_glass_shatterer/proc/on_tap(obj/item/parent, mob/tapper, atom/target) + SIGNAL_HANDLER + + if(istype(target, /obj/structure/window)) + var/obj/structure/grille/grille = locate(/obj/structure/grille) in get_turf(target) + if(grille?.is_shocked()) + target.balloon_alert(tapper, "is shocked!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + var/obj/structure/window/window = target + window.temporary_shatter() + else if(istype(target, /obj/structure/grille)) + var/obj/structure/grille/grille = target + if(grille.is_shocked()) + target.balloon_alert(tapper, "is shocked!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + grille.temporary_shatter() + else + return + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/components/trader/trader.dm b/code/datums/components/trader/trader.dm index b10041385277d..d623a9943b893 100644 --- a/code/datums/components/trader/trader.dm +++ b/code/datums/components/trader/trader.dm @@ -52,7 +52,7 @@ * Format; list(TYPEPATH = list(PRICE, QUANTITY, ADDITIONAL_DESCRIPTION)) * Associated list of items able to be sold to the NPC with the money given for them. * The price given should be the "base" price; any price manipulation based on variables should be done with apply_sell_price_mods() - * ADDITIONAL_DESCRIPTION is any additional text added to explain how the variables of the item effect the price; if it's stack based, it's final price depends how much is in the stack + * ADDITIONAL_DESCRIPTION is any additional text added to explain how the variables of the item effect the price; if it's stack based, its final price depends how much is in the stack * EX; /obj/item/stack/sheet/mineral/diamond = list(500, INFINITY, ", per 100 cm3 sheet of diamond") * This list is filled by Initialize(), if you want to change the starting wanted items, modify initial_wanteds() */ @@ -327,7 +327,7 @@ Can accept both a type path, and an instance of a datum. Type path has priority. return original_cost /** - * Handles modifying/deleting the items to ensure that a proper amount is converted into cash; put into it's own proc to make the children of this not override a 30+ line sell_item() + * Handles modifying/deleting the items to ensure that a proper amount is converted into cash; put into its own proc to make the children of this not override a 30+ line sell_item() * * Arguments: * * selling - (Item REF) this is the item being sold diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index 5a3ff4b4cb070..dcb8d63a3c43e 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -217,10 +217,11 @@ if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) user.dropItemToGround(parent, force = TRUE) return COMPONENT_EQUIPPED_FAILED // blocked wield from item + if (wield_callback?.Invoke(parent, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) + return wielded = TRUE ADD_TRAIT(parent, TRAIT_WIELDED, REF(src)) RegisterSignal(user, COMSIG_MOB_SWAPPING_HANDS, PROC_REF(on_swapping_hands)) - wield_callback?.Invoke(parent, user) // update item stats and name var/obj/item/parent_item = parent diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index d62414a862b24..a5ff46964bf6f 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -3,7 +3,7 @@ /** * Uplinks * - * All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in it's contents). Then add 'uses.' + * All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in its contents). Then add 'uses.' * Use whatever conditionals you want to check that the user has an uplink, and then call interact() on their uplink. * You might also want the uplink menu to open if active. Check if the uplink is 'active' and then interact() with it. **/ diff --git a/code/datums/components/wormborn.dm b/code/datums/components/wormborn.dm new file mode 100644 index 0000000000000..1841dbf38cc3e --- /dev/null +++ b/code/datums/components/wormborn.dm @@ -0,0 +1,74 @@ +/datum/component/wormborn + +/datum/component/wormborn/Initialize(...) + . = ..() + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/wormborn/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(second_breath)) + +/datum/component/wormborn/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, COMSIG_LIVING_DEATH) + +/datum/component/wormborn/proc/second_breath(mob/living/source) + SIGNAL_HANDLER + + if(get_area(source) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + source.buckled?.unbuckle_mob(source, force = TRUE) + + if(source.movement_type & VENTCRAWLING) + source.forceMove(get_turf(source)) + + var/mob/living/worm = new /mob/living/basic/wizard_worm(get_turf(source)) + source.mind?.transfer_to(worm) + source.forceMove(worm) + +/mob/living/basic/wizard_worm + name = "Magic Worm" + desc = "Large blue worm. What happens if you put your hand in his mouth?." + icon = 'icons/mob/simple/mob.dmi' + icon_state = "wizard_start" + icon_living = "wizard_start" + base_icon_state = "wizard" + maxHealth = 800 + health = 800 + melee_damage_lower = 20 + melee_damage_upper = 30 + obj_damage = 200 + speed = 0 + move_force = MOVE_FORCE_OVERPOWERING + move_resist = MOVE_FORCE_OVERPOWERING + pull_force = MOVE_FORCE_OVERPOWERING + mob_size = MOB_SIZE_HUGE + sentience_type = SENTIENCE_BOSS + mob_biotypes = MOB_ORGANIC|MOB_SPECIAL + +/mob/living/basic/wizard_worm/has_gravity(turf/gravity_turf) + return TRUE + +/mob/living/basic/wizard_worm/can_be_pulled() + return FALSE + +/mob/living/basic/wizard_worm/Initialize(mapload, spawn_bodyparts = TRUE) + . = ..() + AddElement(/datum/element/wall_tearer) + + if(spawn_bodyparts) + build_tail() + +/mob/living/basic/wizard_worm/proc/build_tail(mob/living/tail) + AddComponent(/datum/component/mob_chain, vary_icon_state = TRUE) + var/mob/living/basic/wizard_worm/prev = src + for(var/i in 1 to 5) + prev = new_segment(behind = prev) + update_appearance(UPDATE_ICON_STATE) + +/mob/living/basic/wizard_worm/proc/new_segment(mob/living/basic/wizard_worm/behind) + var/mob/living/segment = new type(drop_location(), FALSE) + ADD_TRAIT(segment, TRAIT_PERMANENTLY_MORTAL, INNATE_TRAIT) + segment.AddComponent(/datum/component/mob_chain, front = behind, vary_icon_state = TRUE) + return segment diff --git a/code/datums/datum.dm b/code/datums/datum.dm index b7e11010e8fe5..f4fd0190b2ab9 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -93,7 +93,7 @@ * Default implementation of clean-up code. * * This should be overridden to remove all references pointing to the object being destroyed, if - * you do override it, make sure to call the parent and return it's return value by default + * you do override it, make sure to call the parent and return its return value by default * * Return an appropriate [QDEL_HINT][QDEL_HINT_QUEUE] to modify handling of your deletion; * in most cases this is [QDEL_HINT_QUEUE]. diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm index fad70aff23f72..a7ea3bd181a79 100644 --- a/code/datums/diseases/advance/symptoms/oxygen.dm +++ b/code/datums/diseases/advance/symptoms/oxygen.dm @@ -44,22 +44,23 @@ infected_mob.blood_volume += 1 else if(prob(base_message_chance)) - to_chat(infected_mob, span_notice("[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]")) + to_chat(infected_mob, span_notice("Your lungs feel great.")) return -/datum/symptom/oxygen/on_stage_change(datum/disease/advance/A) +/datum/symptom/oxygen/on_stage_change(datum/disease/advance/advanced_disease) . = ..() if(!.) return FALSE - var/mob/living/carbon/M = A.affected_mob - if(A.stage >= 4) - ADD_TRAIT(M, TRAIT_NOBREATH, DISEASE_TRAIT) + var/mob/living/carbon/infected_mob = advanced_disease.affected_mob + if(advanced_disease.stage >= 4) + ADD_TRAIT(infected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) + to_chat(infected_mob, span_notice(pick("You realize you haven't been breathing.", "You don't feel the need to breathe."))) else - REMOVE_TRAIT(M, TRAIT_NOBREATH, DISEASE_TRAIT) + REMOVE_TRAIT(infected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) return TRUE -/datum/symptom/oxygen/End(datum/disease/advance/A) +/datum/symptom/oxygen/End(datum/disease/advance/advanced_disease) . = ..() if(!.) return - REMOVE_TRAIT(A.affected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) + REMOVE_TRAIT(advanced_disease.affected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) diff --git a/code/datums/diseases/chronic_illness.dm b/code/datums/diseases/chronic_illness.dm index 93c53a4025cf8..789d38eb82f11 100644 --- a/code/datums/diseases/chronic_illness.dm +++ b/code/datums/diseases/chronic_illness.dm @@ -66,8 +66,8 @@ to_chat(affected_mob, span_danger("[pick("You feel as though your atoms are accelerating in place.", "You feel like you're being torn apart!")]")) affected_mob.emote("scream") need_mob_update += affected_mob.adjustBruteLoss(10, updating_health = FALSE) - if(need_mob_update) - affected_mob.updatehealth() + if(need_mob_update) + affected_mob.updatehealth() if(5) switch(rand(1,2)) if(1) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 39720ea9443ed..9d1960a57c92e 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -449,8 +449,9 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) if(holder && (human_mutation in mutations)) set_se(0, human_mutation) . = human_mutation.on_losing(holder) - qdel(human_mutation) // qdel mutations on removal - update_instability(FALSE) + if(!(human_mutation in mutations)) + qdel(human_mutation) // qdel mutations on removal + update_instability(FALSE) return /** diff --git a/code/datums/eigenstate.dm b/code/datums/eigenstate.dm index b25fa657eb6e4..8b113285b4b1a 100644 --- a/code/datums/eigenstate.dm +++ b/code/datums/eigenstate.dm @@ -25,7 +25,7 @@ GLOBAL_DATUM_INIT(eigenstate_manager, /datum/eigenstate_manager, new) targets -= target continue if(!subtle) - target.visible_message("[target] fizzes, collapsing it's unique wavefunction into the others!") //If we're in a eigenlink all on our own and are open to new friends + target.visible_message("[target] fizzes, collapsing its unique wavefunction into the others!") //If we're in a eigenlink all on our own and are open to new friends remove_eigen_entry(target) //clearup for new stuff //Do we still have targets? if(!length(targets)) diff --git a/code/datums/elements/bane.dm b/code/datums/elements/bane.dm index 6e62d15fc1648..95e21251657d7 100644 --- a/code/datums/elements/bane.dm +++ b/code/datums/elements/bane.dm @@ -1,5 +1,5 @@ /// Deals extra damage to mobs of a certain type, species, or biotype. -/// This doesn't directly modify the normal damage of the weapon, instead it applies it's own damage seperatedly ON TOP of normal damage +/// This doesn't directly modify the normal damage of the weapon, instead it applies its own damage seperatedly ON TOP of normal damage /// ie. a sword that does 10 damage with a bane elment attacthed that has a 0.5 damage_multiplier will do: /// 10 damage from the swords normal attack + 5 damage (50%) from the bane element /datum/element/bane @@ -27,40 +27,20 @@ src.added_damage = added_damage src.requires_combat_mode = requires_combat_mode src.mob_biotypes = mob_biotypes - target.AddComponent(/datum/component/on_hit_effect, CALLBACK(src, PROC_REF(do_bane)), CALLBACK(src, PROC_REF(check_bane))) + target.AddElementTrait(TRAIT_ON_HIT_EFFECT, REF(src), /datum/element/on_hit_effect) + RegisterSignal(target, COMSIG_ON_HIT_EFFECT, PROC_REF(do_bane)) -/datum/element/bane/Detach(datum/target) - qdel(target.GetComponent(/datum/component/on_hit_effect)) +/datum/element/bane/Detach(datum/source) + UnregisterSignal(source, COMSIG_ON_HIT_EFFECT) + REMOVE_TRAIT(source, TRAIT_ON_HIT_EFFECT, REF(src)) return ..() -/datum/element/bane/proc/check_bane(bane_applier, target, bane_weapon) - if(!check_biotype_path(bane_applier, target)) +/datum/element/bane/proc/do_bane(datum/element_owner, mob/living/bane_applier, mob/living/baned_target, hit_zone, throw_hit) + if(!check_biotype_path(bane_applier, baned_target)) return - var/atom/movable/atom_owner = bane_weapon - if(SEND_SIGNAL(atom_owner, COMSIG_OBJECT_PRE_BANING, target) & COMPONENT_CANCEL_BANING) + if(SEND_SIGNAL(element_owner, COMSIG_OBJECT_PRE_BANING, baned_target) & COMPONENT_CANCEL_BANING) return - return TRUE -/** - * Checks typepaths and the mob's biotype, returning TRUE if correct and FALSE if wrong. - * Additionally checks if combat mode is required, and if so whether it's enabled or not. - */ -/datum/element/bane/proc/check_biotype_path(mob/living/bane_applier, atom/target) - if(!isliving(target)) - return FALSE - var/mob/living/living_target = target - if(bane_applier) - if(requires_combat_mode && !bane_applier.combat_mode) - return FALSE - var/is_correct_biotype = living_target.mob_biotypes & mob_biotypes - if(mob_biotypes && !(is_correct_biotype)) - return FALSE - if(ispath(target_type, /mob/living)) - return istype(living_target, target_type) - else //species type - return is_species(living_target, target_type) - -/datum/element/bane/proc/do_bane(datum/element_owner, mob/living/bane_applier, mob/living/baned_target, hit_zone) var/force_boosted var/applied_dam_type @@ -91,3 +71,22 @@ baned_target.apply_damage(extra_damage, applied_dam_type, hit_zone) SEND_SIGNAL(baned_target, COMSIG_LIVING_BANED, bane_applier, baned_target) // for extra effects when baned. SEND_SIGNAL(element_owner, COMSIG_OBJECT_ON_BANING, baned_target) + +/** + * Checks typepaths and the mob's biotype, returning TRUE if correct and FALSE if wrong. + * Additionally checks if combat mode is required, and if so whether it's enabled or not. + */ +/datum/element/bane/proc/check_biotype_path(mob/living/bane_applier, atom/target) + if(!isliving(target)) + return FALSE + var/mob/living/living_target = target + if(bane_applier) + if(requires_combat_mode && !bane_applier.combat_mode) + return FALSE + var/is_correct_biotype = living_target.mob_biotypes & mob_biotypes + if(mob_biotypes && !(is_correct_biotype)) + return FALSE + if(ispath(target_type, /mob/living)) + return istype(living_target, target_type) + else //species type + return is_species(living_target, target_type) diff --git a/code/datums/elements/dryable.dm b/code/datums/elements/dryable.dm index d0cdf2355231a..d66ea96d8c1f1 100644 --- a/code/datums/elements/dryable.dm +++ b/code/datums/elements/dryable.dm @@ -27,25 +27,24 @@ var/atom/movable/resulting_atom = dried_atom resulting_atom.add_atom_colour(COLOR_DRIED_TAN, FIXED_COLOUR_PRIORITY) apply_dried_status(resulting_atom, drying_user) - resulting_atom.forceMove(source.drop_location()) return else if(isstack(source)) //Check if its a sheet var/obj/item/stack/itemstack = dried_atom for(var/i in 1 to itemstack.amount) - var/atom/movable/resulting_atom = new dry_result(source.drop_location()) + var/atom/movable/resulting_atom = new dry_result(source.loc) apply_dried_status(resulting_atom, drying_user) qdel(source) return else if(istype(source, /obj/item/food) && ispath(dry_result, /obj/item/food)) var/obj/item/food/source_food = source - var/obj/item/food/resulting_food = new dry_result(source.drop_location()) + var/obj/item/food/resulting_food = new dry_result(source.loc) resulting_food.reagents.clear_reagents() source_food.reagents.trans_to(resulting_food, source_food.reagents.total_volume) apply_dried_status(resulting_food, drying_user) qdel(source) return else - var/atom/movable/resulting_atom = new dry_result(source.drop_location()) + var/atom/movable/resulting_atom = new dry_result(source.loc) apply_dried_status(resulting_atom, drying_user) qdel(source) diff --git a/code/datums/elements/gags_recolorable.dm b/code/datums/elements/gags_recolorable.dm index 93b21c5d31d4e..c59b314ee96c1 100644 --- a/code/datums/elements/gags_recolorable.dm +++ b/code/datums/elements/gags_recolorable.dm @@ -10,7 +10,7 @@ /datum/element/gags_recolorable/proc/on_examine(atom/source, mob/user, list/examine_text) SIGNAL_HANDLER - examine_text += span_notice("Now utilising PPP recolouring technology, capable of absorbing paint and pigments for changing it's colours!") + examine_text += span_notice("Now utilising PPP recolouring technology, capable of absorbing paint and pigments for changing its colours!") /datum/element/gags_recolorable/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) SIGNAL_HANDLER diff --git a/code/datums/elements/glass_pacifist.dm b/code/datums/elements/glass_pacifist.dm new file mode 100644 index 0000000000000..76204201c601e --- /dev/null +++ b/code/datums/elements/glass_pacifist.dm @@ -0,0 +1,18 @@ +/// Prevents the living from attacking windows +/datum/element/glass_pacifist + +/datum/element/glass_pacifist/Attach(datum/target) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_LIVING_ATTACK_ATOM, PROC_REF(check_if_glass)) + +/datum/element/glass_pacifist/proc/check_if_glass(mob/living/owner, atom/hit) + SIGNAL_HANDLER + + if(istype(hit, /obj/structure/window)) + owner.visible_message(span_notice("[owner.name] nuzzles the [hit.name]!")) + new /obj/effect/temp_visual/heart(hit.loc) + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/elements/immerse.dm b/code/datums/elements/immerse.dm index 89148fad7e2a3..65f7d45b9ab77 100644 --- a/code/datums/elements/immerse.dm +++ b/code/datums/elements/immerse.dm @@ -107,6 +107,8 @@ */ /datum/element/immerse/proc/on_init_or_entered(turf/source, atom/movable/movable) SIGNAL_HANDLER + if(QDELETED(movable)) + return if(HAS_TRAIT(movable, TRAIT_IMMERSED)) return if(movable.layer >= ABOVE_ALL_MOB_LAYER || !ISINRANGE(movable.plane, MUTATE_PLANE(FLOOR_PLANE, source), MUTATE_PLANE(GAME_PLANE, source))) diff --git a/code/datums/elements/lazy_fishing_spot.dm b/code/datums/elements/lazy_fishing_spot.dm index 901b163af1538..1ba296bfe730d 100644 --- a/code/datums/elements/lazy_fishing_spot.dm +++ b/code/datums/elements/lazy_fishing_spot.dm @@ -16,9 +16,14 @@ src.configuration = configuration ADD_TRAIT(target, TRAIT_FISHING_SPOT, REF(src)) RegisterSignal(target, COMSIG_PRE_FISHING, PROC_REF(create_fishing_spot)) + RegisterSignal(target, COMSIG_NPC_FISHING, PROC_REF(return_glob_fishing_spot)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examined)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(on_examined_more)) + RegisterSignal(target, COMSIG_ATOM_EX_ACT, PROC_REF(explosive_fishing)) /datum/element/lazy_fishing_spot/Detach(datum/target) - UnregisterSignal(target, COMSIG_PRE_FISHING) + UnregisterSignal(target, list(COMSIG_PRE_FISHING, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_EXAMINE_MORE, COMSIG_ATOM_EX_ACT)) + UnregisterSignal(target, list(COMSIG_PRE_FISHING, COMSIG_NPC_FISHING)) REMOVE_TRAIT(target, TRAIT_FISHING_SPOT, REF(src)) return ..() @@ -27,3 +32,52 @@ source.AddComponent(/datum/component/fishing_spot, GLOB.preset_fish_sources[configuration]) Detach(source) + +///If the fish source has fishes that are shown in the +/datum/element/lazy_fishing_spot/proc/on_examined(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT)) + return + + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + + var/has_known_fishes = FALSE + for(var/reward in fish_source.fish_table) + if(!ispath(reward, /obj/item/fish)) + continue + var/obj/item/fish/prototype = reward + if(initial(prototype.show_in_catalog)) + has_known_fishes = TRUE + break + if(!has_known_fishes) + return + + examine_text += span_tinynoticeital("This is a fishing spot. You can look again to list its fishes...") + +/datum/element/lazy_fishing_spot/proc/on_examined_more(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT)) + return + + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + + var/list/known_fishes = list() + for(var/reward in fish_source.fish_table) + if(!ispath(reward, /obj/item/fish)) + continue + var/obj/item/fish/prototype = reward + if(initial(prototype.show_in_catalog)) + known_fishes += initial(prototype.name) + + if(!length(known_fishes)) + return + + examine_text += span_info("You can catch the following fish here: [english_list(known_fishes)].") + +/datum/element/lazy_fishing_spot/proc/explosive_fishing(atom/location, severity) + SIGNAL_HANDLER + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + fish_source.spawn_reward_from_explosion(location, severity) + +/datum/element/lazy_fishing_spot/proc/return_glob_fishing_spot(datum/source, list/fish_spot_container) + fish_spot_container[NPC_FISHING_SPOT] = GLOB.preset_fish_sources[configuration] diff --git a/code/datums/elements/lifesteal.dm b/code/datums/elements/lifesteal.dm index 48f812fc1f1fa..ed607c34976b3 100644 --- a/code/datums/elements/lifesteal.dm +++ b/code/datums/elements/lifesteal.dm @@ -13,13 +13,16 @@ /datum/element/lifesteal/Attach(datum/target, flat_heal = 10) . = ..() src.flat_heal = flat_heal - target.AddComponent(/datum/component/on_hit_effect, CALLBACK(src, PROC_REF(do_lifesteal))) + target.AddElementTrait(TRAIT_ON_HIT_EFFECT, REF(src), /datum/element/on_hit_effect) + RegisterSignal(target, COMSIG_ON_HIT_EFFECT, PROC_REF(do_lifesteal)) -/datum/element/lifesteal/Detach(datum/target) - qdel(target.GetComponent(/datum/component/on_hit_effect)) +/datum/element/lifesteal/Detach(datum/source) + UnregisterSignal(source, COMSIG_ON_HIT_EFFECT) + REMOVE_TRAIT(source, TRAIT_ON_HIT_EFFECT, REF(src)) return ..() -/datum/element/lifesteal/proc/do_lifesteal(datum/element_owner, atom/heal_target, atom/damage_target, hit_zone) +/datum/element/lifesteal/proc/do_lifesteal(datum/source, atom/heal_target, atom/damage_target, hit_zone, throw_hit) + SIGNAL_HANDLER if(isliving(heal_target) && isliving(damage_target)) var/mob/living/healing = heal_target var/mob/living/damaging = damage_target diff --git a/code/datums/elements/no_crit_hitting.dm b/code/datums/elements/no_crit_hitting.dm new file mode 100644 index 0000000000000..416a6e70b87a2 --- /dev/null +++ b/code/datums/elements/no_crit_hitting.dm @@ -0,0 +1,21 @@ +/// Stops a mob from hitting someone in crit. doesn't account for projectiles or spells +/datum/element/no_crit_hitting + +/datum/element/no_crit_hitting/Attach(datum/target) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignals(target, list(COMSIG_MOB_ITEM_ATTACK), PROC_REF(check_attack)) + +/datum/element/no_crit_hitting/proc/check_attack(mob/living/attacker, atom/attacked) + SIGNAL_HANDLER + + if(!isliving(attacked)) + return + + var/mob/living/liver = attacked + if(liver.stat == HARD_CRIT) + liver.balloon_alert(attacker, "they're in crit!") + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/elements/on_hit_effect.dm b/code/datums/elements/on_hit_effect.dm new file mode 100644 index 0000000000000..f84a6cafa6f44 --- /dev/null +++ b/code/datums/elements/on_hit_effect.dm @@ -0,0 +1,65 @@ +/** + * ## On Hit Effect Component! + * + * Component for other elements/components to rely on for on-hit effects without duplicating the on-hit code. + * See Lifesteal, or bane for examples. + */ +/datum/element/on_hit_effect + +/datum/element/on_hit_effect/Attach(datum/target) + . = ..() + if(!HAS_TRAIT(target, TRAIT_ON_HIT_EFFECT)) + stack_trace("[type] added to [target] without adding TRAIT_ON_HIT_EFFECT first. Please use AddElementTrait instead.") + if(ismachinery(target) || isstructure(target) || isgun(target) || isprojectilespell(target)) + RegisterSignal(target, COMSIG_PROJECTILE_ON_HIT, PROC_REF(on_projectile_hit)) + else if(isitem(target)) + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) + else if(isanimal_or_basicmob(target)) + RegisterSignal(target, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) + else if(isprojectile(target)) + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(on_projectile_self_hit)) + else + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(on_thrown_hit)) + +/datum/element/on_hit_effect/Detach(datum/source) + UnregisterSignal(source, list( + COMSIG_PROJECTILE_ON_HIT, + COMSIG_ITEM_AFTERATTACK, + COMSIG_HOSTILE_POST_ATTACKINGTARGET, + COMSIG_PROJECTILE_SELF_ON_HIT, + COMSIG_MOVABLE_IMPACT, + )) + return ..() + +/datum/element/on_hit_effect/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters) + SIGNAL_HANDLER + + if(!proximity_flag) + return + + on_hit(source, user, target, user.zone_selected) + +/datum/element/on_hit_effect/proc/hostile_attackingtarget(mob/living/attacker, atom/target, success) + SIGNAL_HANDLER + + if(!success) + return + + on_hit(attacker, attacker, target, attacker.zone_selected) + +/datum/element/on_hit_effect/proc/on_projectile_hit(datum/fired_from, atom/movable/firer, atom/target, angle, body_zone) + SIGNAL_HANDLER + on_hit(fired_from, firer, target, body_zone) + +/datum/element/on_hit_effect/proc/on_projectile_self_hit(datum/source, mob/firer, atom/target, angle, body_zone) + SIGNAL_HANDLER + on_hit(source, firer, target, body_zone) + +/datum/element/on_hit_effect/proc/on_thrown_hit(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) + SIGNAL_HANDLER + on_hit(source, source, hit_atom, null, TRUE) + +/datum/element/on_hit_effect/proc/on_hit(atom/source, atom/movable/attacker, atom/target, body_zone, throw_hit = FALSE) + SEND_SIGNAL(source, COMSIG_ON_HIT_EFFECT, attacker, target, body_zone, throw_hit) diff --git a/code/datums/elements/only_pull_living.dm b/code/datums/elements/only_pull_living.dm new file mode 100644 index 0000000000000..8113a66a73021 --- /dev/null +++ b/code/datums/elements/only_pull_living.dm @@ -0,0 +1,16 @@ +/// Element for only letting a living pull other livings +/datum/element/only_pull_living + +/datum/element/only_pull_living/Attach(datum/target) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_LIVING_TRY_PULL, PROC_REF(try_pull)) + +/datum/element/only_pull_living/proc/try_pull(mob/living/owner, atom/movable/pulled) + SIGNAL_HANDLER + + if(!isliving(pulled)) + return COMSIG_LIVING_CANCEL_PULL diff --git a/code/datums/elements/simple_flying.dm b/code/datums/elements/simple_flying.dm index 49b8771687bd9..e6d8f42db838b 100644 --- a/code/datums/elements/simple_flying.dm +++ b/code/datums/elements/simple_flying.dm @@ -17,6 +17,7 @@ /datum/element/simple_flying/Detach(datum/target) . = ..() UnregisterSignal(target, COMSIG_MOB_STATCHANGE) + REMOVE_TRAIT(target, TRAIT_MOVE_FLYING, ELEMENT_TRAIT(type)) ///signal called by the stat of the target changing /datum/element/simple_flying/proc/on_stat_change(mob/living/target, new_stat) diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index b0434c39c642e..5a88d94d0575d 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -43,15 +43,21 @@ if(!user.can_perform_action(source, FORBID_TELEKINESIS_REACH | ALLOW_RESTING)) return - // Cyborgs buckle people by dragging them onto them, unless in combat mode. + // Snowflake for cyborgs buckling people by dragging them onto them, unless in combat mode. if (iscyborg(user)) var/mob/living/silicon/robot/cyborg_user = user if (!cyborg_user.combat_mode) return + // Snowflake for xeno consumption code + if (isalienadult(user)) + var/mob/living/carbon/alien/adult/alien = user + if (alien.grab_state == GRAB_AGGRESSIVE && alien.pulling == source) + return if (!isnull(should_strip_proc_path) && !call(source, should_strip_proc_path)(user)) return + // Snowflake for mob scooping if (isliving(source)) var/mob/living/mob = source if (mob.can_be_held && (user.grab_state == GRAB_AGGRESSIVE) && (user.pulling == source)) diff --git a/code/datums/elements/venomous.dm b/code/datums/elements/venomous.dm index ba4e088750cd1..9f9e4940df13e 100644 --- a/code/datums/elements/venomous.dm +++ b/code/datums/elements/venomous.dm @@ -12,24 +12,25 @@ 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) var/list/amount_added + ///Does this trigger when thrown? + var/thrown_effect = FALSE /datum/element/venomous/Attach(datum/target, poison_type, amount_added, injection_flags = NONE, thrown_effect = FALSE) . = ..() src.poison_type = poison_type src.amount_added = amount_added src.injection_flags = injection_flags - target.AddComponent(\ - /datum/component/on_hit_effect,\ - on_hit_callback = CALLBACK(src, PROC_REF(do_venom)),\ - thrown_effect = thrown_effect,\ - ) + src.thrown_effect = thrown_effect + target.AddElementTrait(TRAIT_ON_HIT_EFFECT, REF(src), /datum/element/on_hit_effect) + RegisterSignal(target, COMSIG_ON_HIT_EFFECT, PROC_REF(do_venom)) -/datum/element/venomous/Detach(datum/target) - qdel(target.GetComponent(/datum/component/on_hit_effect)) +/datum/element/venomous/Detach(datum/source) + UnregisterSignal(source, COMSIG_ON_HIT_EFFECT) + REMOVE_TRAIT(source, TRAIT_ON_HIT_EFFECT, REF(src)) return ..() -/datum/element/venomous/proc/do_venom(datum/element_owner, atom/venom_source, mob/living/target, hit_zone) - if(!istype(target)) +/datum/element/venomous/proc/do_venom(datum/element_owner, atom/venom_source, mob/living/target, hit_zone, throw_hit) + if((throw_hit && !thrown_effect) || !istype(target)) return if(target.stat == DEAD) return diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 8365ddb7a1930..fa072ec699804 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -44,6 +44,8 @@ var/list/mob_type_blacklist_typecache /// Types that can use this emote regardless of their state. var/list/mob_type_ignore_stat_typecache + /// Trait that is required to use this emote. + var/trait_required /// In which state can you use this emote? (Check stat.dm for a full list of them) var/stat_allowed = CONSCIOUS /// Sound to play when emote is called. @@ -83,20 +85,15 @@ * * type_override - Override to the current emote_type. * * intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE). * - * Returns TRUE if it was able to run the emote, FALSE otherwise. */ /datum/emote/proc/run_emote(mob/user, params, type_override, intentional = FALSE) - if(!can_run_emote(user, TRUE, intentional)) - return FALSE - if(SEND_SIGNAL(user, COMSIG_MOB_PRE_EMOTED, key, params, type_override, intentional, src) & COMPONENT_CANT_EMOTE) - return TRUE // We don't return FALSE because the error output would be incorrect, provide your own if necessary. var/msg = select_message_type(user, message, intentional) if(params && message_param) msg = select_param(user, params) msg = replace_pronoun(user, msg) if(!msg) - return TRUE + return user.log_message(msg, LOG_EMOTE) @@ -147,7 +144,7 @@ viewer.show_message("[user] [msg]", MSG_AUDIBLE) else if(is_visual) viewer.show_message("[user] [msg]", MSG_VISUAL) - return TRUE // Early exit so no dchat message + return // Early exit so no dchat message // The emote has some important information, and should always be shown to the user else if(is_important) @@ -244,7 +241,7 @@ ghost.show_message("[FOLLOW_LINK(ghost, user)] [dchatmsg]") // SKYRAT EDIT CHANGE - Indented - return TRUE + return @@ -357,10 +354,13 @@ * * user - Person that is trying to send the emote. * * status_check - Bool that says whether we should check their stat or not. * * intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE). + * * params - Parameters added after the emote. * * Returns a bool about whether or not the user can run the emote. */ -/datum/emote/proc/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE) +/datum/emote/proc/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE, params) + if(trait_required && !HAS_TRAIT(user, trait_required)) + return FALSE if(!is_type_in_typecache(user, mob_type_allowed_typecache)) return FALSE if(is_type_in_typecache(user, mob_type_blacklist_typecache)) diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 78ec5f133066c..c69a279938dd1 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -11,7 +11,7 @@ user.reset_perspective(null) user.remote_control = null -//this datum manages it's own references +//this datum manages its own references /datum/holocall ///the one that called diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm index 7b18ff7225f03..3faefc0cc78b4 100644 --- a/code/datums/lazy_template.dm +++ b/code/datums/lazy_template.dm @@ -130,3 +130,7 @@ /datum/lazy_template/heretic_sacrifice_room key = LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE map_name = "heretic_sacrifice" + +/datum/lazy_template/voidwalker_void + key = LAZY_TEMPLATE_KEY_VOIDWALKER_VOID + map_name = "voidwalker_void" diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 8116084127ecf..330c224070c3e 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -9,7 +9,7 @@ help_verb = /mob/living/proc/sleeping_carp_help display_combos = TRUE /// List of traits applied to users of this martial art. - var/list/scarp_traits = list(TRAIT_NOGUNS, TRAIT_HARDLY_WOUNDED, TRAIT_NODISMEMBER, TRAIT_HEAVY_SLEEPER) + var/list/scarp_traits = list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD, TRAIT_HARDLY_WOUNDED, TRAIT_NODISMEMBER, TRAIT_HEAVY_SLEEPER) /datum/martial_art/the_sleeping_carp/on_teach(mob/living/new_holder) . = ..() @@ -188,8 +188,7 @@ return FALSE if(!(carp_user.mobility_flags & MOBILITY_USE)) //NO UNABLE TO USE return FALSE - var/datum/dna/dna = carp_user.has_dna() - if(dna?.check_mutation(/datum/mutation/human/hulk)) //NO HULK + if(HAS_TRAIT(carp_user, TRAIT_HULK)) //NO HULK return FALSE if(!isturf(carp_user.loc)) //NO MOTHERFLIPPIN MECHS! return FALSE diff --git a/code/datums/materials/meat.dm b/code/datums/materials/meat.dm index a742a9c71296e..552fa7a84cdf2 100644 --- a/code/datums/materials/meat.dm +++ b/code/datums/materials/meat.dm @@ -1,4 +1,4 @@ -///It's gross, gets the name of it's owner, and is all kinds of fucked up +///It's gross, gets the name of its owner, and is all kinds of fucked up /datum/material/meat name = "meat" desc = "Meat" diff --git a/code/datums/mind/antag.dm b/code/datums/mind/antag.dm index 7267470545716..b71a532539229 100644 --- a/code/datums/mind/antag.dm +++ b/code/datums/mind/antag.dm @@ -215,9 +215,10 @@ N.nukeop_outfit = null add_antag_datum(N,converter.nuke_team) - enslaved_to = WEAKREF(creator) + SEND_SIGNAL(current, COMSIG_MOB_ENSLAVED_TO, creator) + current.faction |= creator.faction creator.faction |= "[REF(current)]" diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 1812d83a6b0e8..d9cb4aabd2580 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -279,8 +279,8 @@ /datum/mutation/human/race name = "Monkified" desc = "A strange genome, believing to be what differentiates monkeys from humans." - text_gain_indication = "You feel unusually monkey-like." - text_lose_indication = "You feel like your old self." + text_gain_indication = span_green("You feel unusually monkey-like.") + text_lose_indication = span_notice("You feel like your old self.") quality = NEGATIVE instability = NEGATIVE_STABILITY_MAJOR // mmmonky remove_on_aheal = FALSE @@ -290,18 +290,26 @@ var/original_name /datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner) - if(..()) + . = ..() + if(.) return - if(!ismonkey(owner)) - original_species = owner.dna.species.type - original_name = owner.real_name - owner.fully_replace_character_name(null, "monkey ([rand(1,999)])") - . = owner.monkeyize() + if(ismonkey(owner)) + return + original_species = owner.dna.species.type + original_name = owner.real_name + owner.monkeyize() /datum/mutation/human/race/on_losing(mob/living/carbon/human/owner) - if(!QDELETED(owner) && owner.stat != DEAD && (owner.dna.mutations.Remove(src)) && ismonkey(owner)) - owner.fully_replace_character_name(null, original_name) - . = owner.humanize(original_species) + if(owner.stat == DEAD) + return + . = ..() + if(.) + return + if(QDELETED(owner)) + return + + owner.fully_replace_character_name(null, original_name) + owner.humanize(original_species) /datum/mutation/human/glow name = "Glowy" diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 5b68826634bd0..1a44c62ad8c79 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -17,7 +17,6 @@ mutation_traits = list( TRAIT_CHUNKYFINGERS, TRAIT_HULK, - TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PUSHIMMUNE, TRAIT_STUNIMMUNE, ) @@ -38,6 +37,7 @@ owner.add_mood_event("hulk", /datum/mood_event/hulk) RegisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) RegisterSignal(owner, COMSIG_MOB_CLICKON, PROC_REF(check_swing)) + owner.add_movespeed_mod_immunities("hulk", /datum/movespeed_modifier/damage_slowdown) /datum/mutation/human/hulk/proc/on_attack_hand(mob/living/carbon/human/source, atom/target, proximity, modifiers) SIGNAL_HANDLER @@ -99,6 +99,7 @@ owner.clear_mood_event("hulk") UnregisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK) UnregisterSignal(owner, COMSIG_MOB_CLICKON) + owner.remove_movespeed_mod_immunities("hulk", /datum/movespeed_modifier/damage_slowdown) /// How many steps it takes to throw the mob #define HULK_TAILTHROW_STEPS 28 @@ -258,6 +259,7 @@ log_combat(the_hulk, yeeted_person, "has thrown by tail") /datum/mutation/human/hulk/wizardly + name = "Hulk (Magical)" species_allowed = null //yes skeleton/lizard hulk - note that species that dont have skintone changing (like skellies) get custom handling health_req = 0 instability = 0 @@ -265,19 +267,18 @@ /// List of traits to add/remove when someone gets this mutation. mutation_traits = list( TRAIT_HULK, - TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PUSHIMMUNE, TRAIT_STUNIMMUNE, ) // no chunk /datum/mutation/human/hulk/superhuman + name = "Hulk (Super)" health_req = 0 instability = 0 /// List of traits to add/remove when someone gets this mutation. mutation_traits = list( TRAIT_CHUNKYFINGERS, TRAIT_HULK, - TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_PUSHIMMUNE, diff --git a/code/datums/quirks/_quirk.dm b/code/datums/quirks/_quirk.dm index 05e62ab272687..4e11099989ce8 100644 --- a/code/datums/quirks/_quirk.dm +++ b/code/datums/quirks/_quirk.dm @@ -124,10 +124,10 @@ * Used when the quirk has been gained and no client is attached to the mob. */ /datum/quirk/proc/on_quirk_holder_first_login(mob/living/source) - SIGNAL_HANDLER + SIGNAL_HANDLER - UnregisterSignal(source, COMSIG_MOB_LOGIN) - post_add() + UnregisterSignal(source, COMSIG_MOB_LOGIN) + post_add() /// Any effect that should be applied every single time the quirk is added to any mob, even when transferred. /datum/quirk/proc/add(client/client_source) diff --git a/code/datums/quirks/positive_quirks/friendly.dm b/code/datums/quirks/positive_quirks/friendly.dm index 8ab0003639bc3..943bc2c4b8457 100644 --- a/code/datums/quirks/positive_quirks/friendly.dm +++ b/code/datums/quirks/positive_quirks/friendly.dm @@ -9,3 +9,15 @@ quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED medical_record_text = "Patient demonstrates low-inhibitions for physical contact and well-developed arms. Requesting another doctor take over this case." mail_goodies = list(/obj/item/storage/box/hug) + +/datum/quirk/friendly/add_unique(client/client_source) + var/mob/living/carbon/human/human_quirkholder = quirk_holder + var/obj/item/organ/internal/heart/holder_heart = human_quirkholder.get_organ_slot(ORGAN_SLOT_HEART) + if(isnull(holder_heart) || isnull(holder_heart.reagents)) + return + holder_heart.reagents.maximum_volume = 20 + // We have a bigger heart full of love! + holder_heart.reagents.add_reagent(/datum/reagent/love, 2.5) + // Like, physically bigger. + holder_heart.reagents.add_reagent(/datum/reagent/consumable/nutriment, 5) + holder_heart.transform = holder_heart.transform.Scale(1.5) diff --git a/code/datums/shuttles/emergency.dm b/code/datums/shuttles/emergency.dm index 26b50695818a0..4c1dd01668032 100644 --- a/code/datums/shuttles/emergency.dm +++ b/code/datums/shuttles/emergency.dm @@ -434,7 +434,7 @@ /datum/map_template/shuttle/emergency/lance suffix = "lance" name = "The Lance Crew Evacuation System" - description = "A brand new shuttle by Nanotrasen's finest in shuttle-engineering, it's designed to tactically slam into a destroyed station, dispatching threats and saving crew at the same time! Be careful to stay out of it's path." + description = "A brand new shuttle by Nanotrasen's finest in shuttle-engineering, it's designed to tactically slam into a destroyed station, dispatching threats and saving crew at the same time! Be careful to stay out of its path." admin_notes = "WARNING: This shuttle is designed to crash into the station. It has turrets, similar to the raven." credit_cost = CARGO_CRATE_VALUE * 70 occupancy_limit = "50" diff --git a/code/datums/signals.dm b/code/datums/signals.dm index 01ca02e41c264..4a3b9448e22f4 100644 --- a/code/datums/signals.dm +++ b/code/datums/signals.dm @@ -4,7 +4,7 @@ * This sets up a listening relationship such that when the target object emits a signal * the source datum this proc is called upon, will receive a callback to the given proctype * Use PROC_REF(procname), TYPE_PROC_REF(type,procname) or GLOBAL_PROC_REF(procname) macros to validate the passed in proc at compile time. - * PROC_REF for procs defined on current type or it's ancestors, TYPE_PROC_REF for procs defined on unrelated type and GLOBAL_PROC_REF for global procs. + * PROC_REF for procs defined on current type or its ancestors, TYPE_PROC_REF for procs defined on unrelated type and GLOBAL_PROC_REF for global procs. * Return values from procs registered must be a bitfield * * Arguments: diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm index e85c42e5226c0..dedb624078a93 100644 --- a/code/datums/sprite_accessories.dm +++ b/code/datums/sprite_accessories.dm @@ -661,6 +661,10 @@ name = "Short Bangs" icon_state = "hair_shortbangs" +/datum/sprite_accessory/hair/shortbangs2 + name = "Short Bangs 2" + icon_state = "hair_shortbangs2" + /datum/sprite_accessory/hair/short name = "Short Hair" icon_state = "hair_a" diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm index f5105bd890db0..45f1504821c58 100644 --- a/code/datums/station_traits/negative_traits.dm +++ b/code/datums/station_traits/negative_traits.dm @@ -246,6 +246,9 @@ weapon?.add_mob_blood(punpun) punpun.add_mob_blood(punpun) + if(!isnull(punpun.ai_controller)) // In case punpun somehow lacks AI + QDEL_NULL(punpun.ai_controller) + new /datum/ai_controller/monkey/angry(punpun) var/area/place = get_area(punpun) diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm index d068cdb68601b..4e00158df7d31 100644 --- a/code/datums/station_traits/neutral_traits.dm +++ b/code/datums/station_traits/neutral_traits.dm @@ -383,30 +383,17 @@ /datum/station_trait/linked_closets/on_round_start() . = ..() - var/list/roundstart_non_secure_closets = GLOB.roundstart_station_closets.Copy() - for(var/obj/structure/closet/closet in roundstart_non_secure_closets) - if(closet.secure) - roundstart_non_secure_closets -= closet + var/list/roundstart_closets = GLOB.roundstart_station_closets.Copy() /** - * The number of links to perform. - * Combined with 50/50 the probability of the link being triangular, the boundaries of any given - * on-station, non-secure closet being linked are as high as 1 in 7/8 and as low as 1 in 16-17, - * nearing an a mean of 1 in 9 to 11/12 the more repetitions are done. - * - * There are more than 220 roundstart closets on meta, around 150 of which aren't secure, - * so, about 13 to 17 closets will be affected by this most of the times. + * The number of links to perform. the chance of a closet being linked are about 1 in 10 + * There are more than 220 roundstart closets on meta, so, about 22 closets will be affected on average. */ - var/number_of_links = round(length(roundstart_non_secure_closets) * (rand(350, 450)*0.0001), 1) + var/number_of_links = round(length(roundstart_closets) * (rand(400, 430)*0.0001), 1) for(var/repetition in 1 to number_of_links) - var/closets_left = length(roundstart_non_secure_closets) - if(closets_left < 2) - return var/list/targets = list() - for(var/how_many in 1 to min(closets_left, rand(2,3))) - targets += pick_n_take(roundstart_non_secure_closets) - if(closets_left == 1) //there's only one closet left. Let's not leave it alone. - targets += roundstart_non_secure_closets[1] + for(var/how_many in 1 to rand(2,3)) + targets += pick_n_take(roundstart_closets) GLOB.eigenstate_manager.create_new_link(targets) #define PRO_SKUB "pro-skub" diff --git a/code/datums/status_effects/_status_effect_helpers.dm b/code/datums/status_effects/_status_effect_helpers.dm index f887afd91428e..a5743d2e93ad7 100644 --- a/code/datums/status_effects/_status_effect_helpers.dm +++ b/code/datums/status_effects/_status_effect_helpers.dm @@ -65,7 +65,7 @@ /** * Checks if this mob has a status effect that shares the passed effect's ID * - * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath * * Returns an instance of a status effect, or NULL if none were found. */ @@ -99,7 +99,7 @@ * Checks if this mob has a status effect that shares the passed effect's ID * and has the passed sources are in its list of sources (ONLY works for grouped efects!) * - * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath * * Returns an instance of a status effect, or NULL if none were found. */ @@ -128,7 +128,7 @@ /** * Returns a list of all status effects that share the passed effect type's ID * - * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath * * Returns a list */ diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 38bb39663e0d2..522bae96ebc87 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -84,7 +84,7 @@ icon_state = "blooddrunk" /datum/status_effect/blooddrunk/on_apply() - ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, BLOODDRUNK_TRAIT) + owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) if(ishuman(owner)) var/mob/living/carbon/human/human_owner = owner human_owner.physiology.brute_mod *= 0.1 @@ -104,7 +104,7 @@ human_owner.physiology.tox_mod *= 10 human_owner.physiology.oxy_mod *= 10 human_owner.physiology.stamina_mod *= 10 - REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, BLOODDRUNK_TRAIT) + owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) owner.remove_stun_absorption(id) //Used by changelings to rapidly heal @@ -383,7 +383,7 @@ show_duration = TRUE /datum/status_effect/regenerative_core/on_apply() - ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, STATUS_EFFECT_TRAIT) + owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) owner.adjustBruteLoss(-25) owner.adjustStaminaLoss(-40) //Skyrat edit. Removes stamina on usage of regen core. owner.adjustFireLoss(-25) @@ -395,7 +395,7 @@ return TRUE /datum/status_effect/regenerative_core/on_remove() - REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, STATUS_EFFECT_TRAIT) + owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) /datum/status_effect/lightningorb id = "Lightning Orb" @@ -571,7 +571,8 @@ owner.AddElement(/datum/element/forced_gravity, 0) owner.AddElement(/datum/element/simple_flying) owner.add_stun_absorption(source = id, priority = 4) - owner.add_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_FREE_HYPERSPACE_MOVEMENT), MAD_WIZARD_TRAIT) + owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) + ADD_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, id) owner.playsound_local(get_turf(owner), 'sound/chemistry/ahaha.ogg', vol = 100, vary = TRUE, use_reverb = TRUE) return TRUE @@ -588,7 +589,8 @@ owner.RemoveElement(/datum/element/forced_gravity, 0) owner.RemoveElement(/datum/element/simple_flying) owner.remove_stun_absorption(id) - owner.remove_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_FREE_HYPERSPACE_MOVEMENT), MAD_WIZARD_TRAIT) + owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) + REMOVE_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, id) /// Gives you a brief period of anti-gravity /datum/status_effect/jump_jet @@ -623,3 +625,30 @@ name = "Radiation shielding" desc = "You're immune to radiation, get settled quick!" icon_state = "radiation_shield" + +/// Heal in darkness and potentially trigger other effects, persists for a short duration after leaving +/datum/status_effect/shadow_regeneration + id = "shadow_regeneration" + duration = 2 SECONDS + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/shadow_regeneration + +/datum/status_effect/shadow_regeneration/on_apply() + . = ..() + if (!.) + return FALSE + heal_owner() + return TRUE + +/datum/status_effect/shadow_regeneration/refresh(effect) + . = ..() + heal_owner() + +/// Regenerate health whenever this status effect is applied or reapplied +/datum/status_effect/shadow_regeneration/proc/heal_owner() + owner.heal_overall_damage(brute = 1, burn = 1, required_bodytype = BODYTYPE_ORGANIC) + +/atom/movable/screen/alert/status_effect/shadow_regeneration + name = "Shadow Regeneration" + desc = "Bathed in soothing darkness, you will slowly heal yourself." + icon_state = "lightless" diff --git a/code/datums/stock_market_events.dm b/code/datums/stock_market_events.dm index 4907bf784f63a..b29e52ab0ee11 100644 --- a/code/datums/stock_market_events.dm +++ b/code/datums/stock_market_events.dm @@ -23,7 +23,7 @@ /// When this event is ongoing, what direction will the price trend in? var/trend_value - /// When this event is triggered, for how long will it's effects last? + /// When this event is triggered, for how long will its effects last? var/trend_duration /** diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index 94b7f48f08a8e..a01bb21a451e4 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -447,7 +447,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(!can_insert(to_insert, user, messages = messages, force = force)) return FALSE - SEND_SIGNAL(parent, COMSIG_STORAGE_STORED_ITEM, to_insert, user, force) + SEND_SIGNAL(parent, COMSIG_ATOM_STORED_ITEM, to_insert, user, force) SEND_SIGNAL(src, COMSIG_STORAGE_STORED_ITEM, to_insert, user, force) to_insert.forceMove(real_location) item_insertion_feedback(user, to_insert, override) @@ -1027,7 +1027,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) var/atom/movable/movable_loc = real_location movable_loc.lose_active_storage(src) - if (isnull(storage_interfaces[to_hide])) + if (!length(storage_interfaces) || isnull(storage_interfaces[to_hide])) return TRUE is_using -= to_hide diff --git a/code/datums/storage/subtypes/portable_chem_mixer.dm b/code/datums/storage/subtypes/portable_chem_mixer.dm new file mode 100644 index 0000000000000..fcf5c6ec412bc --- /dev/null +++ b/code/datums/storage/subtypes/portable_chem_mixer.dm @@ -0,0 +1,16 @@ +/datum/storage/portable_chem_mixer + max_total_storage = 200 + max_slots = 50 + +/datum/storage/portable_chem_mixer/New(atom/parent, max_slots, max_specific_storage, max_total_storage) + . = ..() + + var/static/list/obj/item/reagent_containers/containers = list( + /obj/item/reagent_containers/cup/beaker, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, + /obj/item/reagent_containers/cup/glass/waterbottle, + /obj/item/reagent_containers/condiment, + ) + + set_holdable(containers) diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 873d092e4f622..37ed5ab5caef7 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -15,7 +15,7 @@ var/datum/language_holder/vending_languages = vending_machine.get_language_holder() if(!length(vending_languages.spoken_languages)) - CRASH("Vending machine [vending_machine] does not have any spoken languages in it's language holder.") + CRASH("Vending machine [vending_machine] does not have any spoken languages in its language holder.") // synch the current language to the language_iterator for(var/i in vending_languages.spoken_languages) diff --git a/code/datums/wounds/pierce.dm b/code/datums/wounds/pierce.dm index ecefc56817cc9..c0be047b9381b 100644 --- a/code/datums/wounds/pierce.dm +++ b/code/datums/wounds/pierce.dm @@ -54,7 +54,7 @@ victim.add_splatter_floor(get_step(victim.loc, victim.dir)) /datum/wound/pierce/bleed/get_bleed_rate_of_change() - //basically if a species doesn't bleed, the wound is stagnant and will not heal on it's own (nor get worse) + //basically if a species doesn't bleed, the wound is stagnant and will not heal on its own (nor get worse) if(!limb.can_bleed()) return BLOOD_FLOW_STEADY if(HAS_TRAIT(victim, TRAIT_BLOODY_MESS)) diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm index e8f77e603be99..dd41d48620e99 100644 --- a/code/datums/wounds/slash.dm +++ b/code/datums/wounds/slash.dm @@ -122,7 +122,7 @@ return bleed_amt /datum/wound/slash/flesh/get_bleed_rate_of_change() - //basically if a species doesn't bleed, the wound is stagnant and will not heal on it's own (nor get worse) + //basically if a species doesn't bleed, the wound is stagnant and will not heal on its own (nor get worse) if(!limb.can_bleed()) return BLOOD_FLOW_STEADY if(HAS_TRAIT(victim, TRAIT_BLOODY_MESS)) @@ -137,7 +137,7 @@ if (!victim || HAS_TRAIT(victim, TRAIT_STASIS)) return - // in case the victim has the NOBLOOD trait, the wound will simply not clot on it's own + // in case the victim has the NOBLOOD trait, the wound will simply not clot on its own if(limb.can_bleed()) set_blood_flow(min(blood_flow, WOUND_SLASH_MAX_BLOODFLOW)) diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index ff8e22b17b8fa..031a6dd5039d7 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -18,6 +18,10 @@ name = "Mining Station Public Storage" icon_state = "mining_storage" +/area/mine/lobby/raptor + name = "Nanotrasen Raptor Farm" + icon_state = "mining_storage" + /area/mine/production name = "Mining Station Production Wing" icon_state = "mining_production" diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index 3ea06ed4e00cb..94446094d03b1 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -166,6 +166,9 @@ if(atom_storage) QDEL_NULL(atom_storage) + if(wires) + QDEL_NULL(wires) + orbiters = null // The component is attached to us normaly and will be deleted elsewhere // Checking length(overlays) before cutting has significant speed benefits @@ -865,7 +868,6 @@ active_hud.screentip_text.maptext = "" return - active_hud.screentip_text.maptext_y = 10 // 10px lines us up with the action buttons top left corner var/lmb_rmb_line = "" var/ctrl_lmb_ctrl_rmb_line = "" var/alt_lmb_alt_rmb_line = "" @@ -935,14 +937,21 @@ if(extra_lines) extra_context = "
[lmb_rmb_line][ctrl_lmb_ctrl_rmb_line][alt_lmb_alt_rmb_line][shift_lmb_ctrl_shift_lmb_line]" - //first extra line pushes atom name line up 11px, subsequent lines push it up 9px, this offsets that and keeps the first line in the same place - active_hud.screentip_text.maptext_y = -1 + (extra_lines - 1) * -9 + var/new_maptext if (screentips_enabled == SCREENTIP_PREFERENCE_CONTEXT_ONLY && extra_context == "") - active_hud.screentip_text.maptext = "" + new_maptext = "" else //We inline a MAPTEXT() here, because there's no good way to statically add to a string like this - active_hud.screentip_text.maptext = "[name][extra_context]" + new_maptext = "[name][extra_context]" + + INVOKE_ASYNC(src, PROC_REF(set_hover_maptext), client, active_hud, new_maptext) + +/atom/proc/set_hover_maptext(client/client, datum/hud/active_hud, new_maptext) + var/map_height + WXH_TO_HEIGHT(client.MeasureText(new_maptext, null, active_hud.screentip_text.maptext_width), map_height) + active_hud.screentip_text.maptext = new_maptext + active_hud.screentip_text.maptext_y = 22 - map_height /** * This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system. diff --git a/code/game/atom/atom_examine.dm b/code/game/atom/atom_examine.dm index 8df52eb9cb08d..e728781ee01ba 100644 --- a/code/game/atom/atom_examine.dm +++ b/code/game/atom/atom_examine.dm @@ -5,7 +5,7 @@ /** * Called when a mob examines (shift click or verb) this atom * - * Default behaviour is to get the name and icon of the object and it's reagents where + * Default behaviour is to get the name and icon of the object and its reagents where * the [TRANSPARENT] flag is set on the reagents holder * * Produces a signal [COMSIG_ATOM_EXAMINE] @@ -113,5 +113,6 @@ return name_chaser /// Used by mobs to determine the name for someone wearing a mask, or with a disfigured or missing face. By default just returns the atom's name. add_id_name will control whether or not we append "(as [id_name])". -/atom/proc/get_visible_name(add_id_name) +/// force_real_name will always return real_name and add (as face_name/id_name) if it doesn't match their appearance +/atom/proc/get_visible_name(add_id_name, force_real_name) return name diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index d8c524d7486b9..3fcf8ecdee07c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -887,9 +887,10 @@ // Make sure you know what you're doing if you call this // You probably want CanPass() /atom/movable/Cross(atom/movable/crossed_atom) - . = TRUE - SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, crossed_atom) - SEND_SIGNAL(crossed_atom, COMSIG_MOVABLE_CROSS_OVER, src) + if(SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, crossed_atom) & COMPONENT_BLOCK_CROSS) + return FALSE + if(SEND_SIGNAL(crossed_atom, COMSIG_MOVABLE_CROSS_OVER, src) & COMPONENT_BLOCK_CROSS) + return FALSE return CanPass(crossed_atom, get_dir(src, crossed_atom)) ///default byond proc that is deprecated for us in lieu of signals. do not call @@ -934,7 +935,8 @@ /atom/movable/Bump(atom/bumped_atom) if(!bumped_atom) CRASH("Bump was called with no argument.") - SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, bumped_atom) + if(SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, bumped_atom) & COMPONENT_INTERCEPT_BUMPED) + return . = ..() if(!QDELETED(throwing)) throwing.finalize(hit = TRUE, target = bumped_atom) @@ -1431,7 +1433,15 @@ /atom/movable/proc/CanPassThrough(atom/blocker, movement_dir, blocker_opinion) SHOULD_CALL_PARENT(TRUE) SHOULD_BE_PURE(TRUE) - return blocker_opinion + + var/blocking_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_CAN_PASS_THROUGH, blocker, movement_dir) + if(!blocking_signal) + return blocker_opinion + + if(blocking_signal & COMSIG_COMPONENT_PERMIT_PASSAGE) + return TRUE + else //we have a COMSIG_COMPONENT_REFUSE_PASSAGE but like its either this or that, unlike someone wanna adds half-passing through but fuck you + return FALSE /// called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /atom/movable/proc/on_exit_storage(datum/storage/master_storage) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index c3c277e73c673..4a36b89d384db 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -290,7 +290,7 @@ Security HUDs! Basic mode shows only the job. /mob/living/proc/sec_hud_set_implants() var/image/holder - for(var/i in list(IMPSEC_FIRST_HUD, IMPLOYAL_HUD, IMPSEC_SECOND_HUD)) + for(var/i in (list(IMPSEC_FIRST_HUD, IMPLOYAL_HUD, IMPSEC_SECOND_HUD) & hud_list)) holder = hud_list[i] holder.icon_state = null set_hud_image_inactive(i) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 66384921496c7..863101fc46c32 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -284,9 +284,17 @@ /obj/machinery/proc/locate_machinery() return +///Early process for machines added to SSmachines.processing_early to prioritize power draw +/obj/machinery/proc/process_early() + return PROCESS_KILL + /obj/machinery/process()//If you dont use process or power why are you here return PROCESS_KILL +///Late process for machines added to SSmachines.processing_late to gather accurate recordings +/obj/machinery/proc/process_late() + return PROCESS_KILL + /obj/machinery/proc/process_atmos()//If you dont use process why are you here return PROCESS_KILL @@ -405,6 +413,10 @@ /obj/machinery/proc/close_machine(atom/movable/target, density_to_set = TRUE) state_open = FALSE set_density(density_to_set) + if (!density) + update_appearance() + return + if(!target) for(var/atom in loc) if (!(can_be_occupant(atom))) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index d1025b52b321f..07c3b0c057584 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -53,7 +53,6 @@ /obj/machinery/autolathe/Destroy() QDEL_NULL(print_sound) materials = null - QDEL_NULL(wires) return ..() /obj/machinery/autolathe/examine(mob/user) diff --git a/code/game/machinery/computer/atmos_computers/_air_sensor.dm b/code/game/machinery/computer/atmos_computers/_air_sensor.dm index 1c365dd087649..91a616cc5f678 100644 --- a/code/game/machinery/computer/atmos_computers/_air_sensor.dm +++ b/code/game/machinery/computer/atmos_computers/_air_sensor.dm @@ -57,7 +57,7 @@ /obj/machinery/air_sensor/examine(mob/user) . = ..() - . += span_notice("Use multitool to link it to an injector/vent or reset it's ports") + . += span_notice("Use multitool to link it to an injector/vent or reset its ports") . += span_notice("Click with hand to turn it off.") /obj/machinery/air_sensor/attack_hand(mob/living/user, list/modifiers) @@ -196,7 +196,7 @@ if(initial(sensor.chamber_id) != target_chamber) continue - //make real air sensor in it's place + //make real air sensor in its place var/obj/machinery/air_sensor/new_sensor = new sensor(get_turf(src)) new_sensor.inlet_id = input_id new_sensor.outlet_id = output_id diff --git a/code/game/machinery/computer/atmos_computers/_atmos_control.dm b/code/game/machinery/computer/atmos_computers/_atmos_control.dm index 094f12e36e36a..cdd0349ac85b9 100644 --- a/code/game/machinery/computer/atmos_computers/_atmos_control.dm +++ b/code/game/machinery/computer/atmos_computers/_atmos_control.dm @@ -19,7 +19,7 @@ /// Whether we are allowed to reconnect. var/reconnecting = TRUE - /// Was this computer multitooled before. If so copy the list connected_sensors as it now mantain's it's own sensors independent of the map loaded one's + /// Was this computer multitooled before. If so copy the list connected_sensors as it now maintain's its own sensors independent of the map loaded one's var/was_multi_tooled = FALSE /// list of all sensors[key is chamber id, value is id of air sensor linked to this chamber] monitered by this computer @@ -96,7 +96,7 @@ if(!was_multi_tooled) connected_sensors = connected_sensors.Copy() was_multi_tooled = TRUE - //register the sensor's unique ID with it's assositated chamber + //register the sensor's unique ID with its assositated chamber connected_sensors[sensor.chamber_id] = sensor.id_tag user.balloon_alert(user, "sensor connected to [src]") return ITEM_INTERACT_SUCCESS diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 9fb0293fc54d5..c2c87c732b0cb 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -133,7 +133,7 @@ var/list/visible_turfs = list() - // Get the camera's turf to correctly gather what's visible from it's turf, in case it's located in a moving object (borgs / mechs) + // Get the camera's turf to correctly gather what's visible from its turf, in case it's located in a moving object (borgs / mechs) var/new_cam_turf = get_turf(active_camera) // If we're not forcing an update for some reason and the cameras are in the same location, diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 8e00e591fa2a5..80f59501f0272 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -35,7 +35,7 @@ #define GENETIC_DAMAGE_ACCURACY_MULTIPLIER 3 /// Special status indicating a scanner occupant is transforming eg. from monkey to human -#define STATUS_TRANSFORMING 4 +#define STATUS_TRANSFORMING 5 /// Multiplier for how much genetic damage received from DNA Console functionality #define GENETIC_DAMAGE_IRGENETIC_DAMAGE_MULTIPLIER 1 diff --git a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm index 0c181ad043e77..aa3e9441d84a0 100644 --- a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm @@ -104,6 +104,7 @@ icon_state = "brain" greyscale_config = /datum/greyscale_config/mutant_organ greyscale_colors = CARP_COLORS + can_smoothen_out = FALSE ///Timer counting down. When finished, the owner gets a bad moodlet. var/cooldown_timer diff --git a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm index 60d1b10e23186..f86a161b1ceb4 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm @@ -63,7 +63,7 @@ /obj/item/organ/internal/tongue/fly/New(class, timer, datum/mutation/human/copymut) . = ..() - AddComponent(/datum/component/speechmod, replacements = CONFIG_GET(flag/russian_text_formation) ? russian_speech_replacements : speech_replacements) // SKYRAT EDIT CHANGE - ORIGINAL: AddComponent(/datum/component/speechmod, replacements = speech_replacements) + AddComponent(/datum/component/speechmod, replacements = CONFIG_GET(flag/russian_text_formation) ? russian_speech_replacements : speech_replacements, should_modify_speech = CALLBACK(src, PROC_REF(should_modify_speech))) // SKYRAT EDIT CHANGE - ORIGINAL:AddComponent(/datum/component/speechmod, replacements = speech_replacements, should_modify_speech = CALLBACK(src, PROC_REF(should_modify_speech))) /obj/item/organ/internal/tongue/fly/Initialize(mapload) . = ..() diff --git a/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm b/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm index ac3dae39b7019..385878cb255a4 100644 --- a/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm @@ -58,6 +58,7 @@ icon_state = "brain" greyscale_config = /datum/greyscale_config/mutant_organ greyscale_colors = GOLIATH_COLORS + can_smoothen_out = FALSE var/obj/item/goliath_infuser_hammer/hammer diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 268a0d1c27dd5..a27256e34f4d0 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -301,7 +301,6 @@ qdel(src) /obj/machinery/door/airlock/Destroy() - QDEL_NULL(wires) QDEL_NULL(electronics) if (cyclelinkedairlock) if (cyclelinkedairlock.cyclelinkedairlock == src) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 4a4a397c08fc6..bc330824f2e43 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -102,6 +102,8 @@ else flags_1 &= ~PREVENT_CLICK_UNDER_1 + if(glass) + passwindow_on(src, INNATE_TRAIT) //doors only block while dense though so we have to use the proc real_explosion_block = explosion_block update_explosive_block() diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 5f534ec95b4ed..401245613e1b0 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -31,7 +31,6 @@ for(var/obj/machinery/computer/pod/control as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/computer/pod)) if(control.id == id) control.connected = null - QDEL_NULL(wires) return ..() /obj/machinery/mass_driver/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index 3041423ea53a9..608e5480fe4a3 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -322,7 +322,7 @@ patient_status = pick( "The only kiosk is kiosk, but is the only patient, patient?", "Breathing manually.", - "Constact NTOS site admin.", + "Contact NTOS site admin.", "97% carbon, 3% natural flavoring", "The ebb and flow wears us all in time.", "It's Lupus. You have Lupus.", diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 28aae48886621..ce1b82a83b408 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -174,7 +174,7 @@ /** * we process the list in reverse so that atoms without parents/contents are deleted first & their parents are deleted next & so on. - * this is the reverse order in which get_all_contents() returns it's list + * this is the reverse order in which get_all_contents() returns its list * if we delete an atom containing stuff then all its stuff are deleted with it as well so we will end recycling deleted items down the list and gain nothing from them */ for(var/i = length(nom); i >= 1; i--) diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index ba4a5136a8978..fc443c247f1d8 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -277,7 +277,7 @@ var/value = coin_values[coin_type] //Change this to use initial value once we change to mat datum coins. var/coin_count = round(remaining_payout / value) - if(!coin_count) //Cant make coins of this type, as we can't reach it's value. + if(!coin_count) //Cant make coins of this type, as we can't reach its value. continue remaining_payout -= value * coin_count diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scanner_gate.dm similarity index 74% rename from code/game/machinery/scan_gate.dm rename to code/game/machinery/scanner_gate.dm index 4ff8161de1b57..34f3ceb2ad2ab 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scanner_gate.dm @@ -5,6 +5,7 @@ #define SCANGATE_WANTED "Wanted" #define SCANGATE_SPECIES "Species" #define SCANGATE_NUTRITION "Nutrition" +#define SCANGATE_CONTRABAND "Contraband" #define SCANGATE_HUMAN "human" #define SCANGATE_LIZARD "lizard" @@ -38,14 +39,14 @@ desc = "A gate able to perform mid-depth scans on any organisms who pass under it." icon = 'icons/obj/machines/scangate.dmi' icon_state = "scangate" + layer = ABOVE_MOB_LAYER circuit = /obj/item/circuitboard/machine/scanner_gate + COOLDOWN_DECLARE(next_beep) var/scanline_timer - ///Internal timer to prevent audio spam. - var/next_beep = 0 ///Bool to check if the scanner's controls are locked by an ID. var/locked = FALSE - ///Which setting is the scanner checking for? See defines in scan_gate.dm for the list. + ///Which setting is the scanner checking for? See defines in scanner_gate.dm for the list. var/scangate_mode = SCANGATE_NONE ///Is searching for a disease, what severity is enough to trigger the gate? var/disease_threshold = DISEASE_SEVERITY_MINOR @@ -62,6 +63,12 @@ ///Does the scanner ignore light_pass and light_fail for sending signals? var/ignore_signals = FALSE var/detect_gender = "male" //SKYRAT EDIT - MORE SCANNER GATE OPTIONS + ///Modifier to the chance of scanner being false positive/negative + var/minus_false_beep = 0 + ///Base false positive/negative chance + var/base_false_beep = 5 + ///Is an n-spect scanner attached to the gate? Enables contraband scanning. + var/obj/item/inspector/n_spect = null /obj/machinery/scanner_gate/Initialize(mapload) @@ -72,18 +79,39 @@ COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) + register_context() -/obj/machinery/scanner_gate/Destroy() - qdel(wires) - set_wires(null) +/obj/machinery/scanner_gate/RefreshParts() . = ..() + for(var/datum/stock_part/scanning_module/scanning_module in component_parts) + minus_false_beep = scanning_module.tier //The better are scanninning modules - the lower is chance of False Positives + +/obj/machinery/scanner_gate/atom_deconstruct(disassembled) + . = ..() + if(n_spect) + n_spect.forceMove(drop_location()) + n_spect = null /obj/machinery/scanner_gate/examine(mob/user) . = ..() + + . += span_notice("It's set to scan for [span_boldnotice(scangate_mode)].") if(locked) . += span_notice("The control panel is ID-locked. Swipe a valid ID to unlock it.") else . += span_notice("The control panel is unlocked. Swipe an ID to lock it.") + if(n_spect) + . += span_notice("The scanner is equipped with an N-Spect scanner. Use a [span_boldnotice("crowbar")] to uninstall.") + +/obj/machinery/scanner_gate/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + if(n_spect && held_item?.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Remove N-Spect scanner" + return CONTEXTUAL_SCREENTIP_SET + if(!n_spect && istype(held_item, /obj/item/inspector)) + context[SCREENTIP_CONTEXT_LMB] = "Install N-Spect scanner" + return CONTEXTUAL_SCREENTIP_SET + /obj/machinery/scanner_gate/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER @@ -100,6 +128,19 @@ if(duration) scanline_timer = addtimer(CALLBACK(src, PROC_REF(set_scanline), "passive"), duration, TIMER_STOPPABLE) +/obj/machinery/scanner_gate/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/inspector)) + if(n_spect) + to_chat(user, span_warning("The scanner is already equipped with an N-Spect scanner.")) + return ITEM_INTERACT_BLOCKING + else + to_chat(user, span_notice("You install an N-Spect scanner on [src].")) + n_spect = tool + if(!user.transferItemToLoc(tool, src)) + return ITEM_INTERACT_BLOCKING + return ITEM_INTERACT_SUCCESS + return NONE + /obj/machinery/scanner_gate/attackby(obj/item/W, mob/user, params) var/obj/item/card/id/card = W.GetID() if(card) @@ -122,6 +163,24 @@ wires.interact(user) return ..() +/obj/machinery/scanner_gate/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(n_spect) + if(locked) + balloon_alert(user, "locked!") + return ITEM_INTERACT_BLOCKING + + to_chat(user, span_notice("You uninstall [n_spect] from [src].")) + n_spect.forceMove(drop_location()) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/scanner_gate/Exited(atom/gone) + . = ..() + if(gone == n_spect) + n_spect = null + if(scangate_mode == SCANGATE_CONTRABAND) + scangate_mode = SCANGATE_NONE + /obj/machinery/scanner_gate/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) return FALSE @@ -134,20 +193,24 @@ /obj/machinery/scanner_gate/proc/perform_scan(mob/living/M) var/beep = FALSE var/color = null + var/detected_thing = null switch(scangate_mode) if(SCANGATE_NONE) return if(SCANGATE_WANTED) if(ishuman(M)) + detected_thing = "Warrant" var/mob/living/carbon/human/H = M var/perpname = H.get_face_name(H.get_id_name()) var/datum/record/crew/target = find_record(perpname) if(!target || (target.wanted_status == WANTED_ARREST)) beep = TRUE if(SCANGATE_MINDSHIELD) + detected_thing = "Mindshield" if(HAS_TRAIT(M, TRAIT_MINDSHIELD)) beep = TRUE if(SCANGATE_DISEASE) + detected_thing = "[disease_threshold] infection" if(iscarbon(M)) var/mob/living/carbon/C = M if(get_disease_severity_value(C.check_virus()) >= get_disease_severity_value(disease_threshold)) @@ -158,22 +221,31 @@ var/datum/species/scan_species = /datum/species/human switch(detect_species) if(SCANGATE_LIZARD) + detected_thing = "Lizardperson" scan_species = /datum/species/lizard if(SCANGATE_FLY) + detected_thing = "Flyperson" scan_species = /datum/species/fly if(SCANGATE_FELINID) + detected_thing = "Felinid" scan_species = /datum/species/human/felinid if(SCANGATE_PLASMAMAN) + detected_thing = "Plasmaman" scan_species = /datum/species/plasmaman if(SCANGATE_MOTH) + detected_thing = "Mothperson" scan_species = /datum/species/moth if(SCANGATE_JELLY) + detected_thing = "Jellyperson" scan_species = /datum/species/jelly if(SCANGATE_POD) + detected_thing = "Podperson" scan_species = /datum/species/pod if(SCANGATE_GOLEM) + detected_thing = "Golem" scan_species = /datum/species/golem if(SCANGATE_ZOMBIE) + detected_thing = "Zombie" scan_species = /datum/species/zombie //SKYRAT EDIT BEGIN - MORE SCANNER GATE OPTIONS if(SCANGATE_MAMMAL) @@ -204,10 +276,12 @@ if(is_species(H, scan_species)) beep = TRUE if(detect_species == SCANGATE_ZOMBIE) //Can detect dormant zombies + detected_thing = "Romerol infection" if(H.get_organ_slot(ORGAN_SLOT_ZOMBIE)) beep = TRUE if(SCANGATE_GUNS) for(var/I in M.get_contents()) + detected_thing = "Weapons" if(isgun(I)) beep = TRUE break @@ -216,8 +290,10 @@ var/mob/living/carbon/human/H = M if(H.nutrition <= detect_nutrition && detect_nutrition == NUTRITION_LEVEL_STARVING) beep = TRUE + detected_thing = "Starvation" if(H.nutrition >= detect_nutrition && detect_nutrition == NUTRITION_LEVEL_FAT) beep = TRUE + detected_thing = "Obesity" //SKYRAT EDIT BEGIN - MORE SCANNER GATE OPTIONS if(SCANGATE_GENDER) if(ishuman(M)) @@ -226,11 +302,23 @@ if(scanned_human.gender == detect_gender) beep = TRUE //SKYRAT EDIT END - MORE SCANNER GATE OPTIONS + if(SCANGATE_CONTRABAND) + for(var/obj/item/content in M.get_all_contents_skipping_traits(TRAIT_CONTRABAND_BLOCKER)) + detected_thing = "Contraband" + if(content.is_contraband()) + beep = TRUE + break + if(!n_spect.scans_correctly) + beep = !beep //We do a little trolling if(reverse) beep = !beep + + if(prob(base_false_beep - minus_false_beep)) //False positive/negative + beep = prob(50) + if(beep) - alarm_beep() + alarm_beep(detected_thing) SEND_SIGNAL(src, COMSIG_SCANGATE_PASS_TRIGGER, M) if(!ignore_signals) color = wires.get_color_of_wire(WIRE_ACCEPT) @@ -246,12 +334,15 @@ use_energy(active_power_usage) -/obj/machinery/scanner_gate/proc/alarm_beep() - if(next_beep <= world.time) - next_beep = world.time + (2 SECONDS) - playsound(src, 'sound/machines/scanbuzz.ogg', 100, FALSE) - var/mutable_appearance/alarm_display = mutable_appearance(icon, "alarm_light") - flick_overlay_view(alarm_display, 2 SECONDS) +/obj/machinery/scanner_gate/proc/alarm_beep(detected_thing) + if(!COOLDOWN_FINISHED(src, next_beep)) + return + + if(detected_thing) + say("[detected_thing][reverse ? " not " : " "]detected!!") + + COOLDOWN_START(src, next_beep, 2 SECONDS) + playsound(src, 'sound/machines/scanbuzz.ogg', 100, FALSE) set_scanline("alarm", 2 SECONDS) /obj/machinery/scanner_gate/can_interact(mob/user) @@ -274,6 +365,7 @@ data["target_species"] = detect_species data["target_nutrition"] = detect_nutrition data["target_gender"] = detect_gender //SKYRAT EDIT - MORE SCANNER GATE OPTIONS + data["contraband_enabled"] = !!n_spect return data /obj/machinery/scanner_gate/ui_act(action, params) @@ -331,6 +423,11 @@ . = TRUE //SKYRAT EDIT END - MORE SCANNER GATE OPTIONS +/obj/machinery/scanner_gate/preset_guns + locked = TRUE + req_access = ACCESS_SECURITY + scangate_mode = SCANGATE_GUNS + #undef SCANGATE_NONE #undef SCANGATE_MINDSHIELD #undef SCANGATE_DISEASE @@ -338,6 +435,7 @@ #undef SCANGATE_WANTED #undef SCANGATE_SPECIES #undef SCANGATE_NUTRITION +#undef SCANGATE_CONTRABAND #undef SCANGATE_HUMAN #undef SCANGATE_LIZARD diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 1ef5e9d18c0cc..d5dc9e3a26ef8 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -324,6 +324,8 @@ /obj/machinery/power/shieldwallgen/Initialize(mapload) . = ..() + //Add to the early process queue to prioritize power draw + SSmachines.processing_early += src if(anchored) connect_to_network() RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity_if_active)) @@ -356,7 +358,7 @@ return FALSE . = ..() -/obj/machinery/power/shieldwallgen/process() +/obj/machinery/power/shieldwallgen/process_early() if(active) if(active == ACTIVE_SETUPFIELDS) var/fields = 0 diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 8915a5d509938..90218cef96d1e 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -2,7 +2,7 @@ #define HEATER_MODE_HEAT "heat" #define HEATER_MODE_COOL "cool" #define HEATER_MODE_AUTO "auto" -#define BASE_HEATING_ENERGY (STANDARD_CELL_RATE * 4) +#define BASE_HEATING_ENERGY (40 KILO JOULES) /obj/machinery/space_heater anchored = FALSE @@ -32,7 +32,7 @@ ///How much heat/cold we can deliver var/heating_energy = BASE_HEATING_ENERGY ///How efficiently we can deliver that heat/cold (higher indicates less cell consumption) - var/efficiency = 200 + var/efficiency = 20 MEGA JOULES / STANDARD_CELL_CHARGE ///The amount of degrees above and below the target temperature for us to change mode to heater or cooler var/temperature_tolerance = 1 ///What's the middle point of our settable temperature (30 °C) @@ -176,7 +176,7 @@ for(var/datum/stock_part/capacitor/capacitor in component_parts) cap += capacitor.tier - heating_energy = laser * BASE_HEATING_ENERGY + heating_energy = laser * initial(heating_energy) settable_temperature_range = cap * initial(settable_temperature_range) efficiency = (cap + 1) * initial(efficiency) * 0.5 @@ -295,7 +295,14 @@ on = !on mode = HEATER_MODE_STANDBY if(!isnull(user)) - balloon_alert(user, "turned [on ? "on" : "off"]") + if(QDELETED(cell)) + balloon_alert(user, "no cell!") + else if(!cell.charge()) + balloon_alert(user, "no charge!") + else if(!is_operational) + balloon_alert(user, "not operational!") + else + balloon_alert(user, "turned [on ? "on" : "off"]") update_appearance() if(on) SSair.start_processing_machine(src) @@ -310,11 +317,18 @@ //We inherit the cell from the heater prior cell = null interaction_flags_click = FORBID_TELEKINESIS_REACH + display_panel = FALSE + settable_temperature_range = 50 ///The beaker within the heater var/obj/item/reagent_containers/beaker = null - ///How powerful the heating is, upgrades with parts. (ala chem_heater.dm's method, basically the same level of heating, but this is restricted) - var/chem_heating_power = 1 - display_panel = FALSE + /// How quickly it delivers heat to the reagents. In watts per joule of the thermal energy difference of the reagent from the temperature difference of the current and target temperatures. + var/beaker_conduction_power = 0.1 + /// The subsystem we're being processed by. + var/datum/controller/subsystem/processing/our_subsystem + +/obj/machinery/space_heater/improvised_chem_heater/Initialize(mapload) + our_subsystem = locate(subsystem_type) in Master.subsystems + . = ..() /obj/machinery/space_heater/improvised_chem_heater/Destroy() . = ..() @@ -322,11 +336,10 @@ /obj/machinery/space_heater/improvised_chem_heater/heating_examine() . = ..() - - var/power_mod = 0.1 * chem_heating_power - if(set_mode == HEATER_MODE_AUTO) - power_mod *= 0.5 - . += span_notice("Heating power for beaker: [display_power(heating_energy * power_mod, convert = TRUE)]") + // Conducted energy per joule of thermal energy difference in a tick. + var/conduction_energy = beaker_conduction_power * (set_mode == HEATER_MODE_AUTO ? 0.5 : 1) * our_subsystem.wait / (1 SECONDS) + // This accounts for the timestep inaccuracy. + . += span_notice("Reagent conduction power: [conduction_energy < 1 ? display_power(-log(1 - conduction_energy) SECONDS / our_subsystem.wait, convert = FALSE) : "∞W"]/J") /obj/machinery/space_heater/improvised_chem_heater/toggle_power(user) . = ..() @@ -341,10 +354,10 @@ return PROCESS_KILL if(beaker.reagents.total_volume) - var/power_mod = 0.1 * chem_heating_power + var/conduction_modifier = beaker_conduction_power switch(set_mode) if(HEATER_MODE_AUTO) - power_mod *= 0.5 + conduction_modifier *= 0.5 if(HEATER_MODE_HEAT) if(target_temperature < beaker.reagents.chem_temp) return @@ -352,7 +365,7 @@ if(target_temperature > beaker.reagents.chem_temp) return - var/required_energy = abs(target_temperature - beaker.reagents.chem_temp) * power_mod * seconds_per_tick * beaker.reagents.heat_capacity() + var/required_energy = abs(target_temperature - beaker.reagents.chem_temp) * conduction_modifier * seconds_per_tick * beaker.reagents.heat_capacity() required_energy = min(required_energy, heating_energy, cell.charge * efficiency) if(required_energy < 1) return @@ -468,16 +481,17 @@ for(var/datum/stock_part/capacitor/capacitor in component_parts) capacitors_rating += capacitor.tier - heating_energy = lasers_rating * BASE_HEATING_ENERGY + heating_energy = lasers_rating * initial(heating_energy) - settable_temperature_range = capacitors_rating * 50 //-20 - 80 at base - efficiency = (capacitors_rating + 1) * 10 + settable_temperature_range = capacitors_rating * initial(settable_temperature_range) //-20 - 80 at base + efficiency = (capacitors_rating + 1) * initial(efficiency) * 0.5 target_temperature = clamp(target_temperature, max(settable_temperature_median - settable_temperature_range, TCMB), settable_temperature_median + settable_temperature_range) - chem_heating_power = efficiency / 20 + // No time integration is used, so we should clamp this to prevent being able to overshoot if there was a subtype with a high initial value. + beaker_conduction_power = min((capacitors_rating + 1) * 0.5 * initial(beaker_conduction_power), 1 SECONDS / our_subsystem.wait) #undef HEATER_MODE_STANDBY #undef HEATER_MODE_HEAT diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index e4f7b0a8338b8..3a7cc849acd30 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -107,7 +107,6 @@ end_processing() /obj/machinery/syndicatebomb/Destroy() - QDEL_NULL(wires) QDEL_NULL(countdown) end_processing() return ..() diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index 4c53cc5e4189d..5887c77667506 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -13,6 +13,10 @@ /// If this list contains `0`, then it will be receivable on every single /// z-level. var/list/levels + /// Blacklisted spans we don't want being put into comms by anything, ever - a place to put any new spans we want to make without letting them annoy people on comms + var/list/blacklisted_spans = list( + SPAN_SOAPBOX, + ) /datum/signal/subspace/New(data) src.data = data || list() @@ -175,7 +179,7 @@ if(!hearer) stack_trace("null found in the hearers list returned by the spatial grid. this is bad") continue - + spans -= blacklisted_spans hearer.Hear(rendered, virt, language, message, frequency, spans, message_mods, message_range = INFINITY) // This following recording is intended for research and feedback in the use of department radio channels diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm index 5aa7b91c501f4..fa4d550cdf477 100644 --- a/code/game/machinery/telecomms/machines/hub.dm +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -65,7 +65,6 @@ "s_relay", "m_relay", "r_relay", - "h_relay", "science", "medical", "supply", diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index a7495e530ff50..8266f3e9df55a 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -63,7 +63,7 @@ GLOBAL_LIST_INIT(dye_registry, list( DYE_QM = /obj/item/clothing/gloves/color/brown, DYE_CAPTAIN = /obj/item/clothing/gloves/captain, DYE_HOP = /obj/item/clothing/gloves/color/grey, - DYE_HOS = /obj/item/clothing/gloves/color/black, + DYE_HOS = /obj/item/clothing/gloves/color/black/security, DYE_CE = /obj/item/clothing/gloves/chief_engineer, DYE_RD = /obj/item/clothing/gloves/color/grey, DYE_CMO = /obj/item/clothing/gloves/latex/nitrile, diff --git a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm index c57a629d85c2b..ab53099ed34e2 100644 --- a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm +++ b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm @@ -24,7 +24,7 @@ if(!COOLDOWN_FINISHED(src, pulse_cooldown)) return - new /obj/effect/temp_visual/bioscrambler_wave(get_turf(src)) + new /obj/effect/temp_visual/circle_wave/bioscrambler(get_turf(src)) playsound(src, 'sound/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) COOLDOWN_START(src, pulse_cooldown, pulse_delay) for(var/mob/living/carbon/nearby in hearers(range, src)) @@ -81,18 +81,25 @@ return /// Visual effect spawned when the bioscrambler scrambles your bio -/obj/effect/temp_visual/bioscrambler_wave +/obj/effect/temp_visual/circle_wave icon = 'icons/effects/64x64.dmi' icon_state = "circle_wave" pixel_x = -16 pixel_y = -16 duration = 0.5 SECONDS color = COLOR_LIME + var/max_alpha = 255 -/obj/effect/temp_visual/bioscrambler_wave/Initialize(mapload) +/obj/effect/temp_visual/circle_wave/Initialize(mapload) transform = matrix().Scale(0.1) animate(src, transform = matrix().Scale(2), time = duration, flags = ANIMATION_PARALLEL) - animate(src, alpha = 255, time = duration * 0.6, flags = ANIMATION_PARALLEL) + animate(src, alpha = max_alpha, time = duration * 0.6, flags = ANIMATION_PARALLEL) animate(alpha = 0, time = duration * 0.4) apply_wibbly_filters(src) return ..() + +/obj/effect/temp_visual/circle_wave/bioscrambler + color = COLOR_LIME + +/obj/effect/temp_visual/circle_wave/bioscrambler/light + max_alpha = 128 diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm index 08becc48c7531..82b55542246c7 100644 --- a/code/game/objects/effects/anomalies/anomalies_gravity.dm +++ b/code/game/objects/effects/anomalies/anomalies_gravity.dm @@ -61,7 +61,7 @@ if(target && !target.stat) O.throw_at(target, 5, 10) - //anomaly quickly contracts then slowly expands it's ring + //anomaly quickly contracts then slowly expands its ring animate(warp, time = seconds_per_tick*3, transform = matrix().Scale(0.5,0.5)) animate(time = seconds_per_tick*7, transform = matrix()) diff --git a/code/game/objects/effects/phased_mob.dm b/code/game/objects/effects/phased_mob.dm index dcd4e39189c87..b1df969b45c92 100644 --- a/code/game/objects/effects/phased_mob.dm +++ b/code/game/objects/effects/phased_mob.dm @@ -84,11 +84,15 @@ return var/area/destination_area = newloc.loc movedelay = world.time + movespeed + + if(SEND_SIGNAL(src, COMSIG_MOB_PHASED_CHECK, user, newloc) & COMPONENT_BLOCK_PHASED_MOVE) + return null + if(newloc.turf_flags & NOJAUNT) to_chat(user, span_warning("Some strange aura is blocking the way.")) return if(destination_area.area_flags & NOTELEPORT || SSmapping.level_trait(newloc.z, ZTRAIT_NOPHASE)) - to_chat(user, span_danger("Some dull, universal force is blocking the way. It's overwhelmingly oppressive force feels dangerous.")) + to_chat(user, span_danger("Some dull, universal force is blocking the way. Its overwhelmingly oppressive force feels dangerous.")) return if (direction == UP || direction == DOWN) newloc = can_z_move(direction, get_turf(src), newloc, ZMOVE_INCAPACITATED_CHECKS | ZMOVE_FEEDBACK | ZMOVE_ALLOW_ANCHORED, user) diff --git a/code/game/objects/effects/posters/contraband.dm b/code/game/objects/effects/posters/contraband.dm index 52528c251b659..04bc790daea83 100644 --- a/code/game/objects/effects/posters/contraband.dm +++ b/code/game/objects/effects/posters/contraband.dm @@ -4,6 +4,10 @@ poster_type = /obj/structure/sign/poster/contraband/random icon_state = "rolled_poster" +/obj/item/poster/random_contraband/Initialize(mapload, obj/structure/sign/poster/new_poster_structure) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/structure/sign/poster/contraband poster_item_name = "contraband poster" poster_item_desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities." diff --git a/code/game/objects/effects/spawners/random/contraband.dm b/code/game/objects/effects/spawners/random/contraband.dm index f17656c61191a..c32d46125c019 100644 --- a/code/game/objects/effects/spawners/random/contraband.dm +++ b/code/game/objects/effects/spawners/random/contraband.dm @@ -25,6 +25,12 @@ /obj/item/reagent_containers/pill/maintenance = 5, ) + +/obj/effect/spawner/random/contraband/make_item(spawn_loc, type_path_to_make) + var/obj/item/made = ..() + ADD_TRAIT(made, TRAIT_CONTRABAND, INNATE_TRAIT) + return made + /obj/effect/spawner/random/contraband/plus name = "contraband loot spawner plus" desc = "Where'd ya find this?" diff --git a/code/game/objects/effects/spawners/random/random.dm b/code/game/objects/effects/spawners/random/random.dm index fae8ff14cda07..9614c4a17813c 100644 --- a/code/game/objects/effects/spawners/random/random.dm +++ b/code/game/objects/effects/spawners/random/random.dm @@ -103,7 +103,7 @@ var/loot_weight = loot_list[loot_type] if(loot_weight <= 1) if(exponent < 1) - loot_list[loot_type] *= precision + loot_list[loot_type] = precision continue loot_list[loot_type] = round(loot_weight ** exponent * precision, 1) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index acff38cdb802d..f001808a9c357 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -79,6 +79,8 @@ var/pickup_sound ///Sound uses when dropping the item, or when its thrown. var/drop_sound + ///Do the drop and pickup sounds vary? + var/sound_vary = FALSE ///Whether or not we use stealthy audio levels for this item's attack sounds var/stealthy_audio = FALSE ///Sound which is produced when blocking an attack @@ -701,7 +703,7 @@ item_flags &= ~IN_INVENTORY SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) if(!silent) - playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE) + playsound(src, drop_sound, DROP_SOUND_VOLUME, vary = sound_vary, ignore_walls = FALSE) user?.update_equipment_speed_mods() /// called just as an item is picked up (loc is not yet changed) @@ -1308,7 +1310,7 @@ if((item_flags & ABSTRACT) || HAS_TRAIT(src, TRAIT_NODROP)) return user.dropItemToGround(src, silent = TRUE) - if(throwforce && HAS_TRAIT(user, TRAIT_PACIFISM)) + if(throwforce && (HAS_TRAIT(user, TRAIT_PACIFISM)) || HAS_TRAIT(user, TRAIT_NO_THROWING)) to_chat(user, span_notice("You set [src] down gently on the ground.")) return return src @@ -1827,6 +1829,20 @@ SEND_SIGNAL(loc, COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED, src, old_w_class, new_w_class) return TRUE +/** + * Used to determine if an item should be considered contraband by N-spect scanners or scanner gates. + * Returns true when an item has the contraband trait, or is included in the traitor uplink. + */ +/obj/item/proc/is_contraband() + if(HAS_TRAIT(src, TRAIT_CONTRABAND)) + return TRUE + for(var/datum/uplink_item/traitor_item as anything in SStraitor.uplink_items) + if(istype(src, traitor_item.item)) + if(!(traitor_item.uplink_item_flags & SYNDIE_TRIPS_CONTRABAND)) + return FALSE + return TRUE + return FALSE + /// Fetches embedding data /obj/item/proc/get_embed() RETURN_TYPE(/datum/embed_data) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index f9cb3dfc8ec55..7524152c65b03 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -840,6 +840,11 @@ /obj/item/card/id/proc/get_trim_sechud_icon_state() return trim?.sechud_icon_state || SECHUD_UNKNOWN +/obj/item/card/id/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(iscash(interacting_with)) + return insert_money(interacting_with, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + return NONE + /obj/item/card/id/away name = "\proper a perfectly generic identification card" desc = "A perfectly generic identification card. Looks like it could use some flavor." @@ -1442,7 +1447,7 @@ theft_target = WEAKREF(interacting_with) ui_interact(user) return ITEM_INTERACT_SUCCESS - return NONE + return ..() /obj/item/card/id/advanced/chameleon/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) // If we're attacking a human, we want it to be covert. We're not ATTACKING them, we're trying diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index 2d3c697fbe360..1c6b468286d75 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -329,7 +329,7 @@ /obj/item/circuitboard/machine/scanner_gate name = "Scanner Gate" - greyscale_colors = CIRCUIT_COLOR_ENGINEERING + greyscale_colors = CIRCUIT_COLOR_SECURITY build_path = /obj/machinery/scanner_gate req_components = list( /datum/stock_part/scanning_module = 3) @@ -572,6 +572,11 @@ return . += span_info("[src] is set to [fridges_name_paths[build_path]]. You can use a screwdriver to reconfigure it.") +/obj/item/circuitboard/machine/dehydrator + name = "Dehydrator" + build_path = /obj/machinery/smartfridge/drying + req_components = list(/datum/stock_part/matter_bin = 1) + needs_anchored = FALSE /obj/item/circuitboard/machine/space_heater name = "Space Heater" diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index ebfc20b25e209..2338439cd5244 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -252,7 +252,7 @@ update_power() /obj/item/defibrillator/proc/cooldowncheck() - addtimer(CALLBACK(src, PROC_REF(finish_charging)), cooldown_duration) + addtimer(CALLBACK(src, PROC_REF(finish_charging)), cooldown_duration) /obj/item/defibrillator/proc/finish_charging() if(cell) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 07a1db55a9c98..4039b412ebe78 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -133,7 +133,7 @@ if(src.uses >= max_uses) break - //consume the item only if it's an light tube,bulb or shard + //consume the item only if it's a light tube, bulb or shard loaded = FALSE if(istype(item_to_check, /obj/item/light)) var/obj/item/light/found_light = item_to_check diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 7ae17c5343ad6..718f3ac721979 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -17,26 +17,39 @@ user.say("AAAAAAAAAAAARGHHHHH", forced="megaphone suicide")//he must have died while coding this return OXYLOSS -/obj/item/megaphone/equipped(mob/M, slot) +/obj/item/megaphone/equipped(mob/equipper, slot) . = ..() - if ((slot & ITEM_SLOT_HANDS) && !HAS_TRAIT(M, TRAIT_SIGN_LANG)) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - else - UnregisterSignal(M, COMSIG_MOB_SAY) + if ((slot & ITEM_SLOT_HANDS)) + RegisterSignal(equipper, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(equipper, COMSIG_LIVING_TREAT_MESSAGE, PROC_REF(add_tts_filter)) -/obj/item/megaphone/dropped(mob/M) +/obj/item/megaphone/dropped(mob/dropper) . = ..() - UnregisterSignal(M, COMSIG_MOB_SAY) + UnregisterSignal(dropper, list(COMSIG_MOB_SAY, COMSIG_LIVING_TREAT_MESSAGE)) + +/obj/item/megaphone/proc/handle_speech(mob/living/user, list/speech_args) + SIGNAL_HANDLER + if(HAS_TRAIT(user, TRAIT_SIGN_LANG) || user.get_active_held_item() != src) + return + if(spamcheck > world.time) + to_chat(user, span_warning("\The [src] needs to recharge!")) + else + playsound(loc, 'sound/items/megaphone.ogg', 100, FALSE, TRUE) + speech_args[SPEECH_SPANS] |= voicespan -/obj/item/megaphone/proc/handle_speech(mob/living/carbon/user, list/speech_args) +/obj/item/megaphone/proc/add_tts_filter(mob/living/carbon/user, list/message_args) SIGNAL_HANDLER - if (user.get_active_held_item() == src) - if(spamcheck > world.time) - to_chat(user, span_warning("\The [src] needs to recharge!")) - else - playsound(loc, 'sound/items/megaphone.ogg', 100, FALSE, TRUE) - spamcheck = world.time + 50 - speech_args[SPEECH_SPANS] |= voicespan + if(HAS_TRAIT(user, TRAIT_SIGN_LANG) || user.get_active_held_item() != src) + return + if(spamcheck > world.time) + return + spamcheck = world.time + 5 SECONDS + if(obj_flags & EMAGGED) + ///somewhat compressed and ear-grating, crusty and noisy with a bit of echo. + message_args[TREAT_TTS_FILTER_ARG] += "acrusher=samples=9:level_out=7,aecho=delays=100:decays=0.4,aemphasis=type=emi,crystalizer=i=6,acontrast=60,rubberband=pitch=0.9" + else + ///A sharper and louder sound with a bit of echo + message_args[TREAT_TTS_FILTER_ARG] += "acrusher=samples=2:level_out=6,aecho=delays=90:decays=0.3,aemphasis=type=cd,acontrast=30,crystalizer=i=5" /obj/item/megaphone/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 808f53f8c1345..6768b9293822d 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -122,7 +122,6 @@ /obj/item/radio/Destroy() remove_radio_all(src) //Just to be sure - QDEL_NULL(wires) if(istype(keyslot)) QDEL_NULL(keyslot) return ..() @@ -397,7 +396,6 @@ // left hands are odd slots if (idx && (idx % 2) == (message_mods[RADIO_EXTENSION] == MODE_L_HAND)) return - talk_into(speaker, raw_message, , spans, language=message_language, message_mods=filtered_mods) /// Checks if this radio can receive on the given frequency. diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index cbae4f73d7b8a..f89731d92a6db 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -356,7 +356,7 @@ // Hulk and body temperature var/datum/species/targetspecies = humantarget.dna.species - var/mutant = humantarget.dna.check_mutation(/datum/mutation/human/hulk) + var/mutant = HAS_TRAIT(humantarget, TRAIT_HULK) render_list += "Species: [targetspecies.name][mutant ? "-derived mutant" : ""]\n" var/core_temperature_message = "Core temperature: [round(humantarget.coretemperature-T0C, 0.1)] °C ([round(humantarget.coretemperature*1.8-459.67,0.1)] °F)" diff --git a/code/game/objects/items/devices/spyglasses.dm b/code/game/objects/items/devices/spyglasses.dm index 8be7666bf96ae..58c18f87427df 100644 --- a/code/game/objects/items/devices/spyglasses.dm +++ b/code/game/objects/items/devices/spyglasses.dm @@ -92,7 +92,7 @@ default_raw_text = @{" Thank you for your purchase of the Nerd Co SpySpeks tm, this paper will be your quick-start guide to violating the privacy of your crewmates in three easy steps!

Step One: Nerd Co SpySpeks tm upon your face.
-Step Two: Place the included "ProfitProtektor tm" camera assembly in a place of your choosing - make sure to make heavy use of it's inconspicous design! +Step Two: Place the included "ProfitProtektor tm" camera assembly in a place of your choosing - make sure to make heavy use of its inconspicous design! Step Three: Press the "Activate Remote View" Button on the side of your SpySpeks tm to open a movable camera display in the corner of your vision, it's just that easy!


TROUBLESHOOTING
My SpySpeks tm Make a shrill beep while attempting to use! diff --git a/code/game/objects/items/drug_items.dm b/code/game/objects/items/drug_items.dm index f313dad5f74ea..d25c957145561 100644 --- a/code/game/objects/items/drug_items.dm +++ b/code/game/objects/items/drug_items.dm @@ -18,6 +18,10 @@ icon_state = "saturnx_glob" //tell kryson to sprite two more variants in the future. food_reagents = list(/datum/reagent/drug/saturnx = 10) +/obj/item/food/drug/saturnx/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/food/drug/moon_rock name = "moon rock" desc = "A small hard lump of kronkaine freebase.\nIt is said the average kronkaine addict causes as much criminal damage as four cat burglars, two arsonists and one rabid pit bull terrier combined." @@ -28,6 +32,7 @@ . = ..() icon_state = pick("moon_rock1", "moon_rock2", "moon_rock3") AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOONICORN, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /obj/item/reagent_containers/cup/blastoff_ampoule name = "bLaSToFF ampoule" //stylized name @@ -70,3 +75,7 @@ SplashReagents(hit_atom, TRUE) qdel(src) hit_atom.Bumped(ampoule_shard) + +/obj/item/reagent_containers/cup/blastoff_ampoule/Initialize(mapload, vol) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index bb8bf7ed7f73e..218a59a646d96 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -58,10 +58,9 @@ /// Triggered on wield of two handed item /// Specific hulk checks due to reflection chance for balance issues and switches hitsounds. /obj/item/dualsaber/proc/on_wield(obj/item/source, mob/living/carbon/user) - if(user?.has_dna()) - if(user.dna.check_mutation(/datum/mutation/human/hulk)) - to_chat(user, span_warning("You lack the grace to wield this!")) - return COMPONENT_TWOHANDED_BLOCK_WIELD + if(user && HAS_TRAIT(user, TRAIT_HULK)) + to_chat(user, span_warning("You lack the grace to wield this!")) + return COMPONENT_TWOHANDED_BLOCK_WIELD update_weight_class(w_class_on) hitsound = 'sound/weapons/blade1.ogg' START_PROCESSING(SSobj, src) @@ -125,12 +124,11 @@ . = ..() /obj/item/dualsaber/attack(mob/target, mob/living/carbon/human/user) - if(user.has_dna()) - if(user.dna.check_mutation(/datum/mutation/human/hulk)) - to_chat(user, span_warning("You grip the blade too hard and accidentally drop it!")) - if(HAS_TRAIT(src, TRAIT_WIELDED)) - user.dropItemToGround(src, force=TRUE) - return + if(HAS_TRAIT(user, TRAIT_HULK)) + to_chat(user, span_warning("You grip the blade too hard and accidentally drop it!")) + if(HAS_TRAIT(src, TRAIT_WIELDED)) + user.dropItemToGround(src, force=TRUE) + return ..() if(!HAS_TRAIT(src, TRAIT_WIELDED)) return diff --git a/code/game/objects/items/fireaxe.dm b/code/game/objects/items/fireaxe.dm index 38e4c840694f5..8a8f26b2c8995 100644 --- a/code/game/objects/items/fireaxe.dm +++ b/code/game/objects/items/fireaxe.dm @@ -77,7 +77,7 @@ icon_state = "metalh2_axe0" base_icon_state = "metalh2_axe" name = "metallic hydrogen axe" - desc = "A lightweight crowbar with an extreme sharp fire axe head attached. It trades it's hefty as a weapon by making it easier to carry around when holstered to suits without having to sacrifice your backpack." + desc = "A lightweight crowbar with an extreme sharp fire axe head attached. It trades its heft as a weapon by making it easier to carry around when holstered to suits without having to sacrifice your backpack." force_unwielded = 5 force_wielded = 15 demolition_mod = 2 diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm index 537c7688d2dd4..c03470ff416b3 100644 --- a/code/game/objects/items/food/meatdish.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -34,6 +34,7 @@ foodtypes = SEAFOOD eatverbs = list("bite", "chew", "gnaw", "swallow", "chomp") w_class = WEIGHT_CLASS_SMALL + starting_reagent_purity = 1.0 /obj/item/food/fishmeat/carp name = "carp fillet" @@ -88,6 +89,7 @@ name = "donkfillet" desc = "The dreaded donkfish fillet. No sane spaceman would eat this, and it does not get better when cooked." icon_state = "donkfillet" + starting_reagent_purity = 0.3 /obj/item/food/fishmeat/octopus name = "octopus tentacle" diff --git a/code/game/objects/items/granters/magic/knock.dm b/code/game/objects/items/granters/magic/knock.dm index 11bdfeeadbfa2..0e4aaf9ee6c4d 100644 --- a/code/game/objects/items/granters/magic/knock.dm +++ b/code/game/objects/items/granters/magic/knock.dm @@ -9,7 +9,7 @@ "Slow down, book. I still haven't finished this page...", "The book won't stop moving!", "I think this is hurting the spine of the book...", - "I can't get to the next page, it's stuck t- I'm good, it just turned to the next page on it's own.", + "I can't get to the next page, it's stuck t- I'm good, it just turned to the next page on its own.", "Yeah, staff of doors does the same thing. Go figure...", ) diff --git a/code/game/objects/items/grenades/_grenade.dm b/code/game/objects/items/grenades/_grenade.dm index ec16b4c22fe95..6c84b5cf46eea 100644 --- a/code/game/objects/items/grenades/_grenade.dm +++ b/code/game/objects/items/grenades/_grenade.dm @@ -25,7 +25,7 @@ var/type_cluster = FALSE ///How long it takes for a grenade to explode after being armed var/det_time = 5 SECONDS - ///Will this state what it's det_time is when examined? + ///Will this state what its det_time is when examined? var/display_timer = TRUE ///Used in botch_check to determine how a user's clumsiness affects that user's ability to prime a grenade correctly. var/clumsy_check = GRENADE_CLUMSY_FUMBLE diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 6a4a08a02fb68..e485490f077cd 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -35,7 +35,6 @@ set_wires(new /datum/wires/explosive/chem_grenade(src)) /obj/item/grenade/chem_grenade/Destroy(force) - QDEL_NULL(wires) QDEL_NULL(landminemode) QDEL_LIST(beakers) return ..() diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 49f66b06896b8..c9090912cc7e6 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -51,8 +51,6 @@ set_wires(new /datum/wires/explosive/c4(src)) /obj/item/grenade/c4/Destroy() - qdel(wires) - set_wires(null) target = null return ..() diff --git a/code/game/objects/items/hand_items.dm b/code/game/objects/items/hand_items.dm index f322a7e47dfea..db3dce27ff3d1 100644 --- a/code/game/objects/items/hand_items.dm +++ b/code/game/objects/items/hand_items.dm @@ -143,7 +143,7 @@ affix_desc = "on [target.p_their()] sensitive antennae" affix_desc_target = "on your highly sensitive antennae" brutal_noogie = TRUE - if(user.dna?.check_mutation(/datum/mutation/human/hulk)) + if(HAS_TRAIT(user, TRAIT_HULK)) prefix_desc = "sickeningly brutal" brutal_noogie = TRUE @@ -178,7 +178,7 @@ var/damage = rand(1, 5) if(HAS_TRAIT(target, TRAIT_ANTENNAE)) damage += rand(3,7) - if(user.dna?.check_mutation(/datum/mutation/human/hulk)) + if(HAS_TRAIT(user, TRAIT_HULK)) damage += rand(3,7) if(damage >= 5) diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index 926131151e92b..049ea8928feff 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -38,10 +38,11 @@ /obj/item/holosign_creator/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!check_allowed_items(interacting_with, not_inside = TRUE)) return NONE + var/turf/target_turf = get_turf(interacting_with) var/obj/structure/holosign/target_holosign = locate(holosign_type) in target_turf + if(target_holosign) - qdel(target_holosign) return ITEM_INTERACT_BLOCKING if(target_turf.is_blocked_turf(TRUE)) //can't put holograms on a tile that has dense stuff return ITEM_INTERACT_BLOCKING @@ -51,7 +52,9 @@ if(LAZYLEN(signs) >= max_signs) balloon_alert(user, "max capacity!") return ITEM_INTERACT_BLOCKING + playsound(src, 'sound/machines/click.ogg', 20, TRUE) + if(creation_time) holocreator_busy = TRUE if(!do_after(user, creation_time, target = interacting_with)) @@ -62,6 +65,7 @@ return ITEM_INTERACT_BLOCKING if(target_turf.is_blocked_turf(TRUE)) //don't try to sneak dense stuff on our tile during the wait. return ITEM_INTERACT_BLOCKING + target_holosign = create_holosign(interacting_with, user) return ITEM_INTERACT_SUCCESS @@ -105,15 +109,15 @@ /obj/item/holosign_creator/security name = "security holobarrier projector" - desc = "A holographic projector that creates holographic security barriers." + desc = "A holographic projector that creates holographic security barriers. You can remotely open barriers with it." icon_state = "signmaker_sec" holosign_type = /obj/structure/holosign/barrier - creation_time = 3 SECONDS + creation_time = 2 SECONDS max_signs = 6 /obj/item/holosign_creator/engineering name = "engineering holobarrier projector" - desc = "A holographic projector that creates holographic engineering barriers." + desc = "A holographic projector that creates holographic engineering barriers. You can remotely open barriers with it." icon_state = "signmaker_engi" holosign_type = /obj/structure/holosign/barrier/engineering creation_time = 1 SECONDS diff --git a/code/game/objects/items/implants/implant_explosive.dm b/code/game/objects/items/implants/implant_explosive.dm index 687b8db014e04..b8f55b0085529 100644 --- a/code/game/objects/items/implants/implant_explosive.dm +++ b/code/game/objects/items/implants/implant_explosive.dm @@ -109,7 +109,7 @@ /** * Merges two explosive implants together, adding the stats of the latter to the former before qdeling the latter implant. * kept_implant = the implant that is kept - * stat_implant = the implant which has it's stats added to kept_implant, before being deleted. + * stat_implant = the implant which has its stats added to kept_implant, before being deleted. */ /obj/item/implant/explosive/proc/merge_implants(obj/item/implant/explosive/kept_implant, obj/item/implant/explosive/stat_implant) kept_implant.explosion_devastate += stat_implant.explosion_devastate diff --git a/code/game/objects/items/implants/implant_storage.dm b/code/game/objects/items/implants/implant_storage.dm index 216d8481afafa..e513967bc4680 100644 --- a/code/game/objects/items/implants/implant_storage.dm +++ b/code/game/objects/items/implants/implant_storage.dm @@ -36,7 +36,7 @@ return TRUE return FALSE create_storage(storage_type = /datum/storage/implant) - + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) return ..() /obj/item/implanter/storage diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm index 82a36336c42b9..4aff1f03388ab 100644 --- a/code/game/objects/items/inspector.dm +++ b/code/game/objects/items/inspector.dm @@ -8,7 +8,7 @@ */ /obj/item/inspector name = "\improper N-spect scanner" - desc = "Central Command-issued inspection device. Performs inspections according to Nanotrasen protocols when activated, then prints an encrypted report regarding the maintenance of the station. Definitely not giving you cancer." + desc = "Central Command standard issue inspection device. Can perform either wide area scans that central command can use to verify the security of the station, or detailed scan. Can scan people for contraband on their person or items being contraband." icon = 'icons/obj/devices/scanner.dmi' icon_state = "inspector" worn_icon_state = "salestagger" @@ -20,6 +20,7 @@ interaction_flags_click = NEED_DEXTERITY throw_range = 1 throw_speed = 1 + COOLDOWN_DECLARE(scanning_person) //Cooldown for scanning a carbon ///How long it takes to print on time each mode, ordered NORMAL, FAST, HONK var/list/time_list = list(5 SECONDS, 1 SECONDS, 0.1 SECONDS) ///Which print time mode we're on. @@ -32,11 +33,15 @@ var/cell_cover_open = FALSE ///Energy used per print. var/energy_per_print = INSPECTOR_ENERGY_USAGE_NORMAL + ///Does this item scan for contraband correctly? If not, will provide a flipped response. + var/scans_correctly = TRUE /obj/item/inspector/Initialize(mapload) . = ..() if(ispath(cell)) cell = new cell(src) + register_context() + register_item_context() // Clean up the cell on destroy /obj/item/inspector/Exited(atom/movable/gone, direction) @@ -87,12 +92,93 @@ if(!cell_cover_open) . += "Its cell cover is closed. It looks like it could be pried out, but doing so would require an appropriate tool." return - . += "It's cell cover is open, exposing the cell slot. It looks like it could be pried in, but doing so would require an appropriate tool." + . += "Its cell cover is open, exposing the cell slot. It looks like it could be pried in, but doing so would require an appropriate tool." if(!cell) . += "The slot for a cell is empty." else . += "\The [cell] is firmly in place. [span_info("Ctrl-click with an empty hand to remove it.")]" +/obj/item/inspector/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(!user.Adjacent(interacting_with)) + return ITEM_INTERACT_BLOCKING + if(cell_cover_open) + balloon_alert(user, "close cover first!") + return ITEM_INTERACT_BLOCKING + if(!cell || !cell.use(INSPECTOR_ENERGY_USAGE_LOW)) + balloon_alert(user, "check cell!") + return ITEM_INTERACT_BLOCKING + + if(iscarbon(interacting_with)) //Prevents insta scanning people + if(!COOLDOWN_FINISHED(src, scanning_person)) + return ITEM_INTERACT_BLOCKING + + visible_message(span_warning("[user] starts scanning [interacting_with] with [src]")) + to_chat(interacting_with, span_userdanger("[user] is trying to scan you for contraband!")) + balloon_alert_to_viewers("scanning...") + playsound(src, 'sound/effects/genetics.ogg', 40, FALSE) + COOLDOWN_START(src, scanning_person, 4 SECONDS) + if(!do_after(user, 4 SECONDS, interacting_with)) + return ITEM_INTERACT_BLOCKING + + if(contraband_scan(interacting_with, user)) + playsound(src, 'sound/machines/uplinkerror.ogg', 40) + balloon_alert(user, "contraband detected!") + return ITEM_INTERACT_SUCCESS + else + playsound(src, 'sound/machines/ping.ogg', 20) + balloon_alert(user, "clear") + return ITEM_INTERACT_SUCCESS + + +/obj/item/inspector/add_context(atom/source, list/context, obj/item/held_item, mob/user) + var/update_context = FALSE + if(cell_cover_open && cell) + context[SCREENTIP_CONTEXT_CTRL_LMB] = "Remove cell" + update_context = TRUE + + if(cell_cover_open && !cell && istype(held_item, /obj/item/stock_parts/power_store/cell)) + context[SCREENTIP_CONTEXT_LMB] = "Install cell" + update_context = TRUE + + if(held_item?.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "[cell_cover_open ? "close" : "open"] battery panel" + update_context = TRUE + + if(update_context) + return CONTEXTUAL_SCREENTIP_SET + return NONE + +/obj/item/inspector/add_item_context(obj/item/source, list/context, atom/target, mob/living/user) + if(cell_cover_open || !cell) + return NONE + if(isitem(target)) + context[SCREENTIP_CONTEXT_LMB] = "Contraband Scan" + return CONTEXTUAL_SCREENTIP_SET + return NONE + +/** + * Scans the carbon or item for contraband. + * + * Arguments: + * - scanned - what or who is scanned? + * - user - who is performing the scanning? + */ +/obj/item/inspector/proc/contraband_scan(scanned, user) + if(iscarbon(scanned)) + var/mob/living/carbon/scanned_carbon = scanned + for(var/obj/item/content in scanned_carbon.get_all_contents_skipping_traits(TRAIT_CONTRABAND_BLOCKER)) + var/contraband_content = content.is_contraband() + if((contraband_content && scans_correctly) || (!contraband_content && !scans_correctly)) + return TRUE + + if(isitem(scanned)) + var/obj/item/contraband_item = scanned + var/contraband_status = contraband_item.is_contraband() + if((contraband_status && scans_correctly) || (!contraband_status && !scans_correctly)) + return TRUE + + return FALSE + /** * Create our report * @@ -178,6 +264,7 @@ * Can be crafted into a bananium HONK-spect scanner */ /obj/item/inspector/clown + scans_correctly = FALSE ///will only cycle through modes with numbers lower than this var/max_mode = CLOWN_INSPECTOR_PRINT_SOUND_MODE_LAST ///names of modes, ordered first to last diff --git a/code/game/objects/items/pillow.dm b/code/game/objects/items/pillow.dm index f699dd34b3bfa..b924983a4272f 100644 --- a/code/game/objects/items/pillow.dm +++ b/code/game/objects/items/pillow.dm @@ -131,7 +131,7 @@ icon_state = "pillow_[variation]_t" inhand_icon_state = "pillow_t" -/// Puts a brick inside the pillow, increasing it's damage +/// Puts a brick inside the pillow, increasing its damage /obj/item/pillow/proc/become_bricked() bricked = TRUE var/datum/component/two_handed/two_handed = GetComponent(/datum/component/two_handed) diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm index 7e7076e842c64..335e7b3d5fbd7 100644 --- a/code/game/objects/items/puzzle_pieces.dm +++ b/code/game/objects/items/puzzle_pieces.dm @@ -169,7 +169,7 @@ trigger_item = TRUE specific_item = /obj/structure/holobox removable_signaller = FALSE //Being a pressure plate subtype, this can also use signals. - roundstart_signaller_freq = FREQ_HOLOGRID_SOLUTION //Frequency is kept on it's own default channel however. + roundstart_signaller_freq = FREQ_HOLOGRID_SOLUTION //Frequency is kept on its own default channel however. active = TRUE trigger_delay = 10 protected = TRUE diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index ef0be22acc476..ee85994143a00 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -30,7 +30,7 @@ RSF ///The cost of the object we are going to dispense var/dispense_cost = 0 w_class = WEIGHT_CLASS_NORMAL - ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object + ///An associated list of atoms and charge costs. This can contain a separate list, as long as its associated item is an object ///The RSF item list below shows in the player facing ui in this order, this is why it isn't in alphabetical order, but instead sorted by category var/list/cost_by_item = list( /obj/item/reagent_containers/cup/glass/drinkingglass = 20, @@ -47,7 +47,7 @@ RSF /obj/item/pen = 50, /obj/item/cigarette = 10, ) - ///An associated list of fuel and it's value + ///An associated list of fuel and its value var/list/matter_by_item = list(/obj/item/rcd_ammo = 10,) ///A list of surfaces that we are allowed to place things on. var/list/allowed_surfaces = list(/turf/open/floor, /obj/structure/table) diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm index 5660de8d60432..f6357b229efb9 100644 --- a/code/game/objects/items/robot/ai_upgrades.dm +++ b/code/game/objects/items/robot/ai_upgrades.dm @@ -8,6 +8,9 @@ icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "datadisk3" +/obj/item/malf_upgrade/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /obj/item/malf_upgrade/pre_attack(atom/A, mob/living/user, proximity) if(!proximity) @@ -37,6 +40,10 @@ icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "datadisk3" +/obj/item/surveillance_upgrade/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/surveillance_upgrade/pre_attack(atom/A, mob/living/user, proximity) if(!proximity) return ..() diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 25c83d1b9635a..7e954fbcec5cd 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -30,7 +30,7 @@ /// If the cyborg starts movement free and not under lockdown var/locomotion = TRUE - /// If the cyborg synchronizes it's laws with it's master AI + /// If the cyborg synchronizes its laws with its master AI var/lawsync = TRUE /// If the cyborg starts with a master AI var/aisync = TRUE diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index af09e1b58bc35..ab5254f03afd1 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -2,10 +2,10 @@ // Contains various borg upgrades. /obj/item/borg/upgrade - name = "borg upgrade module." + name = "borg upgrade module" desc = "Protected by FRM." - icon = 'icons/obj/devices/circuitry_n_data.dmi' - icon_state = "cyborg_upgrade" + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "module_general" w_class = WEIGHT_CLASS_SMALL var/locked = FALSE var/installed = FALSE @@ -73,6 +73,7 @@ /obj/item/borg/upgrade/rename name = "cyborg reclassification board" desc = "Used to rename a cyborg." + icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "cyborg_upgrade1" var/heldname = "" one_use = TRUE @@ -99,7 +100,7 @@ /obj/item/borg/upgrade/disablercooler name = "cyborg rapid disabler cooling module" desc = "Used to cool a mounted disabler, increasing the potential current in it and thus its recharge rate." - icon_state = "cyborg_upgrade3" + icon_state = "module_security" require_model = TRUE model_type = list(/obj/item/robot_model/security) model_flags = BORG_MODEL_SECURITY @@ -134,7 +135,7 @@ /obj/item/borg/upgrade/thrusters name = "ion thruster upgrade" desc = "An energy-operated thruster system for cyborgs." - icon_state = "cyborg_upgrade3" + icon_state = "module_general" /obj/item/borg/upgrade/thrusters/action(mob/living/silicon/robot/borg, mob/living/user = usr) . = ..() @@ -156,7 +157,7 @@ /obj/item/borg/upgrade/diamond_drill name = "mining cyborg diamond drill" desc = "A diamond drill replacement for the mining model's standard drill." - icon_state = "cyborg_upgrade3" + icon_state = "module_miner" require_model = TRUE model_type = list(/obj/item/robot_model/miner) model_flags = BORG_MODEL_MINER @@ -167,7 +168,7 @@ /obj/item/borg/upgrade/soh name = "mining cyborg satchel of holding" desc = "A satchel of holding replacement for mining cyborg's ore satchel module." - icon_state = "cyborg_upgrade3" + icon_state = "module_miner" require_model = TRUE model_type = list(/obj/item/robot_model/miner) model_flags = BORG_MODEL_MINER @@ -178,7 +179,7 @@ /obj/item/borg/upgrade/tboh name = "janitor cyborg trash bag of holding" desc = "A trash bag of holding replacement for the janiborg's standard trash bag." - icon_state = "cyborg_upgrade3" + icon_state = "module_janitor" require_model = TRUE model_type = list(/obj/item/robot_model/janitor) model_flags = BORG_MODEL_JANITOR @@ -189,7 +190,7 @@ /obj/item/borg/upgrade/amop name = "janitor cyborg advanced mop" desc = "An advanced mop replacement for the janiborg's standard mop." - icon_state = "cyborg_upgrade3" + icon_state = "module_janitor" require_model = TRUE model_type = list(/obj/item/robot_model/janitor) model_flags = BORG_MODEL_JANITOR @@ -200,7 +201,7 @@ /obj/item/borg/upgrade/prt name = "janitor cyborg plating repair tool" desc = "A tiny heating device to repair burnt and damaged hull platings with." - icon_state = "cyborg_upgrade3" + icon_state = "module_janitor" require_model = TRUE model_type = list(/obj/item/robot_model/janitor) model_flags = BORG_MODEL_JANITOR @@ -210,9 +211,13 @@ /obj/item/borg/upgrade/syndicate name = "illegal equipment module" desc = "Unlocks the hidden, deadlier functions of a cyborg." - icon_state = "cyborg_upgrade3" + icon_state = "module_illegal" require_model = TRUE +/obj/item/borg/upgrade/syndicate/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/borg, mob/living/user = usr) . = ..() if(!.) @@ -235,7 +240,7 @@ /obj/item/borg/upgrade/lavaproof name = "mining cyborg lavaproof chassis" desc = "An upgrade kit to apply specialized coolant systems and insulation layers to a mining cyborg's chassis, enabling them to withstand exposure to molten rock and liquid plasma." - icon_state = "cyborg_ash_tracks" + icon_state = "module_miner" resistance_flags = LAVA_PROOF | FIRE_PROOF | FREEZE_PROOF require_model = TRUE model_type = list(/obj/item/robot_model/miner) @@ -256,7 +261,7 @@ /obj/item/borg/upgrade/selfrepair name = "self-repair module" desc = "This module will repair the cyborg over time." - icon_state = "cyborg_upgrade5" + icon_state = "module_general" require_model = TRUE var/repair_amount = -1 /// world.time of next repair @@ -356,7 +361,7 @@ name = "medical cyborg hypospray advanced synthesiser" desc = "An upgrade to the Medical model cyborg's hypospray, allowing it \ to produce more advanced and complex medical reagents." - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/medical) model_flags = BORG_MODEL_MEDICAL @@ -385,7 +390,7 @@ name = "cyborg piercing hypospray" desc = "An upgrade to a cyborg's hypospray, allowing it to \ pierce armor and thick material." - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" /obj/item/borg/upgrade/piercing_hypospray/action(mob/living/silicon/robot/borg, mob/living/user = usr) . = ..() @@ -416,7 +421,7 @@ name = "cyborg surgical omni-tool upgrade" desc = "An upgrade to the Medical model, upgrading the built-in \ surgical omnitool, to be on par with advanced surgical tools" - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/medical, /obj/item/robot_model/syndicate_medical) model_flags = BORG_MODEL_MEDICAL @@ -448,7 +453,7 @@ name = "cyborg engineering omni-tool upgrade" desc = "An upgrade to the Engineering model, upgrading the built-in \ engineering omnitool, to be on par with advanced engineering tools" - icon_state = "cyborg_upgrade3" + icon_state = "module_engineer" require_model = TRUE model_type = list(/obj/item/robot_model/engineering, /obj/item/robot_model/saboteur) model_flags = BORG_MODEL_ENGINEERING @@ -475,7 +480,7 @@ name = "medical cyborg defibrillator" desc = "An upgrade to the Medical model, installing a built-in \ defibrillator, for on the scene revival." - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/medical) model_flags = BORG_MODEL_MEDICAL @@ -526,7 +531,7 @@ desc = "An upgrade to the Medical and Research model, installing a processor \ capable of scanning surgery disks and carrying \ out procedures" - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/medical, /obj/item/robot_model/syndicate_medical) model_flags = list(BORG_MODEL_MEDICAL, BORG_MODEL_RESEARCH) @@ -536,6 +541,7 @@ /obj/item/borg/upgrade/ai name = "B.O.R.I.S. module" desc = "Bluespace Optimized Remote Intelligence Synchronization. An uplink device which takes the place of an MMI in cyborg endoskeletons, creating a robotic shell controlled by an AI." + icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "boris" /obj/item/borg/upgrade/ai/action(mob/living/silicon/robot/borg, mob/living/user = usr) @@ -559,7 +565,7 @@ /obj/item/borg/upgrade/expand name = "borg expander" desc = "A cyborg resizer, it makes a cyborg huge." - icon_state = "cyborg_upgrade3" + icon_state = "module_general" /obj/item/borg/upgrade/expand/action(mob/living/silicon/robot/borg, mob/living/user = usr) . = ..() @@ -606,8 +612,7 @@ /obj/item/borg/upgrade/rped name = "engineering cyborg RPED" desc = "A rapid part exchange device for the engineering cyborg." - icon = 'icons/obj/storage/storage.dmi' - icon_state = "borgrped" + icon_state = "module_engineer" require_model = TRUE model_type = list(/obj/item/robot_model/engineering, /obj/item/robot_model/saboteur) model_flags = BORG_MODEL_ENGINEERING @@ -617,6 +622,7 @@ /obj/item/borg/upgrade/inducer name = "engineering integrated power inducer" desc = "An integrated inducer that can charge a device's internal cell from power provided by the cyborg." + icon_state = "module_engineer" require_model = TRUE model_type = list(/obj/item/robot_model/engineering, /obj/item/robot_model/saboteur) model_flags = BORG_MODEL_ENGINEERING @@ -641,8 +647,7 @@ /obj/item/borg/upgrade/pinpointer name = "medical cyborg crew pinpointer" desc = "A crew pinpointer module for the medical cyborg. Permits remote access to the crew monitor." - icon = 'icons/obj/devices/tracker.dmi' - icon_state = "pinpointer_crew" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/medical, /obj/item/robot_model/syndicate_medical) model_flags = BORG_MODEL_MEDICAL @@ -680,7 +685,7 @@ /obj/item/borg/upgrade/transform name = "borg model picker (Standard)" desc = "Allows you to to turn a cyborg into a standard cyborg." - icon_state = "cyborg_upgrade3" + icon_state = "module_general" var/obj/item/robot_model/new_model = null /obj/item/borg/upgrade/transform/action(mob/living/silicon/robot/borg, mob/living/user = usr) @@ -691,13 +696,13 @@ /obj/item/borg/upgrade/transform/clown name = "borg model picker (Clown)" desc = "Allows you to to turn a cyborg into a clown, honk." - icon_state = "cyborg_upgrade3" + icon_state = "module_honk" new_model = /obj/item/robot_model/clown /obj/item/borg/upgrade/circuit_app name = "circuit manipulation apparatus" desc = "An engineering cyborg upgrade allowing for manipulation of circuit boards." - icon_state = "cyborg_upgrade3" + icon_state = "module_engineer" require_model = TRUE model_type = list(/obj/item/robot_model/engineering, /obj/item/robot_model/saboteur) model_flags = BORG_MODEL_ENGINEERING @@ -707,7 +712,7 @@ /obj/item/borg/upgrade/beaker_app name = "beaker storage apparatus" desc = "A supplementary beaker storage apparatus for medical cyborgs." - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/medical) model_flags = BORG_MODEL_MEDICAL @@ -717,7 +722,7 @@ /obj/item/borg/upgrade/drink_app name = "glass storage apparatus" desc = "A supplementary drinking glass storage apparatus for service cyborgs." - icon_state = "cyborg_upgrade3" + icon_state = "module_service" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE @@ -727,7 +732,7 @@ /obj/item/borg/upgrade/broomer name = "experimental push broom" desc = "An experimental push broom used for efficiently pushing refuse." - icon_state = "cyborg_upgrade3" + icon_state = "module_janitor" require_model = TRUE model_type = list(/obj/item/robot_model/janitor) model_flags = BORG_MODEL_JANITOR @@ -737,7 +742,7 @@ /obj/item/borg/upgrade/condiment_synthesizer name = "Service Cyborg Condiment Synthesiser" desc = "An upgrade to the service model cyborg, allowing it to produce solid condiments." - icon_state = "cyborg_upgrade3" + icon_state = "module_service" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE @@ -747,7 +752,7 @@ /obj/item/borg/upgrade/silicon_knife name = "Service Cyborg Kitchen Toolset" desc = "An upgrade to the service model cyborg, to help process foods." - icon_state = "cyborg_upgrade3" + icon_state = "module_service" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE @@ -757,7 +762,7 @@ /obj/item/borg/upgrade/service_apparatus name = "Service Cyborg Service Apparatus" desc = "An upgrade to the service model cyborg, to help handle foods and paper." - icon_state = "cyborg_upgrade3" + icon_state = "module_service" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE @@ -767,7 +772,7 @@ /obj/item/borg/upgrade/rolling_table name = "Service Cyborg Rolling Table Dock" desc = "An upgrade to the service model cyborg, to help provide mobile service." - icon_state = "cyborg_upgrade3" + icon_state = "module_service" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE @@ -777,7 +782,7 @@ /obj/item/borg/upgrade/service_cookbook name = "Service Cyborg Cookbook" desc = "An upgrade to the service model cyborg, that lets them create more foods." - icon_state = "cyborg_upgrade3" + icon_state = "module_service" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm index a0f41574e4b47..709747efc6663 100644 --- a/code/game/objects/items/sharpener.dm +++ b/code/game/objects/items/sharpener.dm @@ -3,7 +3,7 @@ * * Items used for sharpening stuff * -* Whetstones can be used to increase an item's force, throw_force and wound_bonus and it's change it's sharpness to SHARP_EDGED. Whetstones do not work with energy weapons. Two-handed weapons will only get the throw_force bonus. A whetstone can only be used once. +* Whetstones can be used to increase an item's force, throw_force and wound_bonus and it changes its sharpness to SHARP_EDGED. Whetstones do not work with energy weapons. Two-handed weapons will only get the throw_force bonus. A whetstone can only be used once. * */ /obj/item/sharpener diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 5a8e1361c28c3..6314c16c8449c 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -39,6 +39,8 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ cost = HALF_SHEET_MATERIAL_AMOUNT source = /datum/robot_energy_storage/material/iron merge_type = /obj/item/stack/rods + pickup_sound = 'sound/items/iron_rod_pick_up.ogg' + drop_sound = 'sound/items/metal_drop.ogg' /datum/embed_data/rods embed_chance = 50 diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index a9d71fa127abb..19e290170f8af 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -32,6 +32,8 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ cost = SHEET_MATERIAL_AMOUNT source = /datum/robot_energy_storage/material/glass sniffable = TRUE + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /datum/armor/sheet_glass fire = 50 @@ -102,6 +104,8 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) material_flags = NONE tableVariant = /obj/structure/table/glass/plasmaglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/plasmaglass/fifty amount = 50 @@ -160,6 +164,8 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10) matter_amount = 6 tableVariant = /obj/structure/table/reinforced/rglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/rglass/fifty amount = 50 @@ -198,6 +204,8 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ gulag_valid = TRUE matter_amount = 8 tableVariant = /obj/structure/table/reinforced/plasmarglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /datum/armor/sheet_plasmarglass melee = 20 @@ -228,6 +236,8 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/titaniumglass tableVariant = /obj/structure/table/reinforced/titaniumglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/titaniumglass/fifty amount = 50 @@ -258,6 +268,8 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass tableVariant = /obj/structure/table/reinforced/plastitaniumglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/plastitaniumglass/fifty amount = 50 diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index fbd69dbd20d4b..f02a2af11f835 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -6,6 +6,9 @@ novariants = TRUE merge_type = /obj/item/stack/sheet/animalhide + pickup_sound = null + drop_sound = null + /obj/item/stack/sheet/animalhide/human name = "human skin" desc = "The by-product of human farming." diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 492154de1f57c..a954f346de9fa 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -339,7 +339,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("chalkboard", /obj/structure/chalkboard, 20, time = 5 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_STRUCTURE), /* BUBBER EDIT: ADDS CHALKBOARD CRAFT */ \ new/datum/stack_recipe("coffin", /obj/structure/closet/crate/coffin, 5, time = 1.5 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_FURNITURE), \ new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 1.5 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_FURNITURE), \ - new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 1.5 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_TOOLS), \ + new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying/rack, 10, time = 1.5 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_TOOLS), \ new/datum/stack_recipe("wooden barrel", /obj/structure/fermenting_barrel, 8, time = 5 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_CONTAINERS), \ new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 1 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_FURNITURE), \ new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 1.5 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_ONE_PER_TURF | CRAFT_ON_SOLID_GROUND, category = CAT_FURNITURE), \ @@ -395,6 +395,8 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ grind_results = list(/datum/reagent/cellulose = 20) //no lignocellulose or lignin reagents yet, walltype = /turf/closed/wall/mineral/wood stairs_type = /obj/structure/stairs/wood + pickup_sound = 'sound/items/wood_pick_up.ogg' + drop_sound = 'sound/items/wood_drop.ogg' /datum/armor/mineral_wood fire = 50 @@ -864,6 +866,8 @@ GLOBAL_LIST_INIT(plastic_recipes, list( throwforce = 7 material_type = /datum/material/plastic merge_type = /obj/item/stack/sheet/plastic + pickup_sound = 'sound/items/plastic_pick_up.ogg' + drop_sound = 'sound/items/plastic_drop.ogg' /obj/item/stack/sheet/plastic/fifty amount = 50 diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 8b81953528ee1..568fd2f49aa29 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -13,6 +13,8 @@ attack_verb_simple = list("bash", "batter", "bludgeon", "thrash", "smash") novariants = FALSE material_flags = MATERIAL_EFFECTS + pickup_sound = 'sound/items/metal_pick_up.ogg' + drop_sound = 'sound/items/metal_drop.ogg' var/sheettype = null //this is used for girders in the creation of walls/false walls ///If true, this is worth points in the gulag labour stacker var/gulag_valid = FALSE @@ -22,6 +24,8 @@ var/walltype /// whether this sheet can be sniffed by the material sniffer var/sniffable = FALSE + /// this makes pickup and drop sounds vary + sound_vary = TRUE /obj/item/stack/sheet/Initialize(mapload, new_amount, merge = TRUE, list/mat_override=null, mat_amt=1) . = ..() diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index c371f459cb77e..c96cebd58cc50 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -34,7 +34,7 @@ var/merge_type = null /// The weight class the stack has at amount > 2/3rds max_amount var/full_w_class = WEIGHT_CLASS_NORMAL - /// Determines whether the item should update it's sprites based on amount. + /// Determines whether the item should update its sprites based on amount. var/novariants = TRUE /// List that tells you how much is in a single unit. var/list/mats_per_unit diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index 0e054ba8d1062..acfc59b64d037 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -127,12 +127,15 @@ singular_name = "surgical tape" desc = "Made for patching broken bones back together alongside bone gel, not for playing pranks." prefix = "surgical" - conferred_embed = list("embed_chance" = 30, "pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE) + conferred_embed = /datum/embed_data/sticky_tape/surgical splint_factor = 0.5 custom_price = PAYCHECK_CREW merge_type = /obj/item/stack/sticky_tape/surgical greyscale_colors = "#70BAE7#BD6A62" tape_gag = /obj/item/clothing/mask/muzzle/tape/surgical +/datum/embed_data/sticky_tape/surgical + embed_chance = 30 + /obj/item/stack/sticky_tape/surgical/get_surgery_tool_overlay(tray_extended) return "tape" + (tray_extended ? "" : "_out") diff --git a/code/game/objects/items/stickers.dm b/code/game/objects/items/stickers.dm index a02cfd9515ed4..19ac58f6f4072 100644 --- a/code/game/objects/items/stickers.dm +++ b/code/game/objects/items/stickers.dm @@ -174,6 +174,10 @@ icon_state = "synd" contraband = TRUE +/obj/item/sticker/syndicate/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/sticker/syndicate/c4 name = "C-4 sticker" icon_state = "c4" diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 7763025d7672e..4199b544f818f 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -377,7 +377,7 @@ /obj/item/storage/backpack/satchel/flat name = "smuggler's satchel" - desc = "A very slim satchel that can easily fit into tight spaces." + desc = "A very slim satchel that can easily fit into tight spaces. Its contents cannot be detected by contraband scanners." icon_state = "satchel-flat" inhand_icon_state = "satchel-flat" w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself. @@ -387,6 +387,7 @@ AddElement(/datum/element/undertile, TRAIT_T_RAY_VISIBLE, INVISIBILITY_MAXIMUM, use_anchor = TRUE) // SKYRAT EDIT - Ghosts can't see smuggler's satchels atom_storage.max_total_storage = 15 atom_storage.set_holdable(cant_hold_list = /obj/item/storage/backpack/satchel/flat) //muh recursive backpacks + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) /obj/item/storage/backpack/satchel/flat/PopulateContents() for(var/items in 1 to 4) diff --git a/code/game/objects/items/storage/boxes/security_boxes.dm b/code/game/objects/items/storage/boxes/security_boxes.dm index 459c0ab7ce29e..935ead8f93e95 100644 --- a/code/game/objects/items/storage/boxes/security_boxes.dm +++ b/code/game/objects/items/storage/boxes/security_boxes.dm @@ -204,6 +204,16 @@ for(var/i in 1 to 7) new /obj/item/ammo_casing/shotgun/breacher(src) +/obj/item/storage/box/large_dart + name = "box of XL shotgun darts" + name = "A box full of shotgun darts with increased chemical storage capacity." + icon_state = "shotdart_box" + illustration = null + +/obj/item/storage/box/large_dart/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/ammo_casing/shotgun/dart/large(src) + /obj/item/storage/box/emptysandbags name = "box of empty sandbags" illustration = "sandbag" diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 387d8c22554af..421d82b667fde 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -200,7 +200,7 @@ req_access = list(ACCESS_QM) /obj/item/storage/lockbox/medal/cargo/PopulateContents() - new /obj/item/clothing/accessory/medal/ribbon/cargo(src) + new /obj/item/clothing/accessory/medal/ribbon/cargo(src) /obj/item/storage/lockbox/medal/service name = "service award box" @@ -208,7 +208,7 @@ req_access = list(ACCESS_HOP) /obj/item/storage/lockbox/medal/service/PopulateContents() - new /obj/item/clothing/accessory/medal/silver/excellence(src) + new /obj/item/clothing/accessory/medal/silver/excellence(src) /obj/item/storage/lockbox/medal/sci name = "science medal box" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 5bef4162f0230..60e6d4113b5e8 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -267,7 +267,7 @@ if(KIT_MR_FREEZE) new /obj/item/clothing/glasses/cold(src) - new /obj/item/clothing/gloves/color/black(src) + new /obj/item/clothing/gloves/color/black/security/blu(src) new /obj/item/clothing/mask/chameleon(src) new /obj/item/clothing/suit/hooded/wintercoat(src) new /obj/item/clothing/shoes/winterboots(src) diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index b20a1e31ae020..ab2d8f35341af 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -9,6 +9,7 @@ var/obj/item/card/id/front_id = null var/list/combined_access var/cached_flat_icon + var/overlay_icon_state = "wallet_overlay" /obj/item/storage/wallet/Initialize(mapload) . = ..() @@ -107,7 +108,7 @@ return . += mutable_appearance(front_id.icon, front_id.icon_state) . += front_id.overlays - . += mutable_appearance(icon, "wallet_overlay") + . += mutable_appearance(icon, overlay_icon_state) /obj/item/storage/wallet/proc/get_cached_flat_icon() if(!cached_flat_icon) @@ -121,9 +122,9 @@ /obj/item/storage/wallet/proc/update_label() if(front_id) - name = "wallet displaying [front_id]" + name = "[src::name] displaying [front_id]" else - name = "wallet" + name = src::name /obj/item/storage/wallet/examine() . = ..() diff --git a/code/game/objects/items/surgery_tray.dm b/code/game/objects/items/surgery_tray.dm index 37e4fcc3d7917..457e971b90dd6 100644 --- a/code/game/objects/items/surgery_tray.dm +++ b/code/game/objects/items/surgery_tray.dm @@ -68,7 +68,7 @@ . = ..() if(is_portable) desc = "The wheels and bottom storage of this medical cart have been stowed away, \ - leaving a cumbersome tray in it's place." + leaving a cumbersome tray in its place." else desc = initial(desc) diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index bdbfa79001ddf..ee1f314c92add 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -69,7 +69,7 @@ if (QDELETED(breathing_mob)) breathing_mob = null return - // Close open air tank if it got dropped by it's current user. + // Close open air tank if it got dropped by its current user. if (loc != breathing_mob) breathing_mob.cutoff_internals() diff --git a/code/game/objects/items/toy_mechs.dm b/code/game/objects/items/toy_mechs.dm index c50908738fe94..1b3367032c190 100644 --- a/code/game/objects/items/toy_mechs.dm +++ b/code/game/objects/items/toy_mechs.dm @@ -606,7 +606,7 @@ /obj/item/toy/mecha/deathripley/super_special_attack(obj/item/toy/mecha/victim) playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 20, TRUE) - if(victim.combat_health < combat_health) //Instantly kills the other mech if it's health is below our's. + if(victim.combat_health < combat_health) //Instantly kills the other mech if its health is below ours. say("EXECUTE!!") victim.combat_health = 0 else //Otherwise, just deal one damage. diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 5384a11cf3bbe..fbe11fe933d1b 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -162,7 +162,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/claymore/carrot name = "carrot sword" - desc = "A full-sized carrot sword. Definitely \not\ good for the eyes, not anymore." + desc = "A full-sized carrot sword. Definitely not good for the eyes, not anymore." icon_state = "carrot_sword" inhand_icon_state = "carrot_sword" worn_icon_state = "carrot_sword" diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index bfdd0f71426c5..ce1b48985bb67 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -199,7 +199,7 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag) /obj/proc/plunger_act(obj/item/plunger/attacking_plunger, mob/living/user, reinforced) return SEND_SIGNAL(src, COMSIG_PLUNGER_ACT, attacking_plunger, user, reinforced) -// Should move all contained objects to it's location. +// Should move all contained objects to its location. /obj/proc/dump_contents() SHOULD_CALL_PARENT(FALSE) CRASH("Unimplemented.") diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index dc33112b5e12b..28d84e32ef094 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -269,15 +269,16 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool, 0) return /obj/structure/chair/mouse_drop_dragged(atom/over_object, mob/user, src_location, over_location, params) - if(over_object == user) - if(!item_chair || has_buckled_mobs()) - return - user.visible_message(span_notice("[user] grabs \the [src.name]."), span_notice("You grab \the [src.name].")) - var/obj/item/C = new item_chair(loc) - C.set_custom_materials(custom_materials) - TransferComponents(C) - user.put_in_hands(C) - qdel(src) + if(!isliving(user) || over_object != user) + return + if(!item_chair || has_buckled_mobs()) + return + user.visible_message(span_notice("[user] grabs \the [src.name]."), span_notice("You grab \the [src.name].")) + var/obj/item/C = new item_chair(loc) + C.set_custom_materials(custom_materials) + TransferComponents(C) + user.put_in_hands(C) + qdel(src) /obj/structure/chair/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE) return ..() @@ -287,6 +288,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool, 0) desc = "It has some unsavory stains on it..." icon_state = "bar" item_chair = /obj/item/chair/stool/bar + can_buckle = TRUE + +/obj/structure/chair/stool/bar/post_buckle_mob(mob/living/M) + M.pixel_y += 4 + +/obj/structure/chair/stool/bar/post_unbuckle_mob(mob/living/M) + M.pixel_y -= 4 MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) diff --git a/code/game/objects/structures/construction_console/construction_console.dm b/code/game/objects/structures/construction_console/construction_console.dm index d3ae2984e3170..f13dd1d78c64a 100644 --- a/code/game/objects/structures/construction_console/construction_console.dm +++ b/code/game/objects/structures/construction_console/construction_console.dm @@ -119,7 +119,7 @@ return ..() /mob/camera/ai_eye/remote/base_construction/relaymove(mob/living/user, direction) - //This camera eye is visible, and as such needs to keep it's dir updated + //This camera eye is visible, and as such needs to keep its dir updated dir = direction return ..() diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 3c966bb7a801a..a21aa5926fa12 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -62,6 +62,7 @@ ) if(paint_jobs) paint_jobs = crate_paint_jobs + AddComponent(/datum/component/soapbox) /obj/structure/closet/crate/Destroy() QDEL_NULL(manifest) diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm index aead6fafb017c..be4180b5fa177 100644 --- a/code/game/objects/structures/curtains.dm +++ b/code/game/objects/structures/curtains.dm @@ -146,7 +146,7 @@ set_opacity(TRUE) /obj/structure/curtain/cloth/fancy/mechanical/attack_hand(mob/user, list/modifiers) - return + return /obj/structure/curtain/cloth/fancy/mechanical/start_closed icon_state = "cur_fancy-closed" diff --git a/code/game/objects/structures/deployable_turret.dm b/code/game/objects/structures/deployable_turret.dm index f24df392dedef..2b1a90500ccf8 100644 --- a/code/game/objects/structures/deployable_turret.dm +++ b/code/game/objects/structures/deployable_turret.dm @@ -213,7 +213,7 @@ /obj/machinery/deployable_turret/hmg name = "heavy machine gun turret" - desc = "A heavy caliber machine gun commonly used by Nanotrasen forces, famed for it's ability to give people on the receiving end more holes than normal." + desc = "A heavy caliber machine gun commonly used by Nanotrasen forces, famed for its ability to give people on the receiving end more holes than normal." icon_state = "hmg" max_integrity = 250 projectile_type = /obj/projectile/bullet/manned_turret/hmg diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 3bd3e00cc273b..aa9af66868fdd 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -17,6 +17,8 @@ integrity_failure = 0.4 var/rods_type = /obj/item/stack/rods var/rods_amount = 2 + /// Whether or not we're disappearing but dramatically + var/dramatically_disappearing = FALSE /datum/armor/structure_grille melee = 50 @@ -365,6 +367,31 @@ /obj/structure/grille/get_dumping_location() return null +/obj/structure/grille/proc/temporary_shatter(time_to_go = 0 SECONDS, time_to_return = 4 SECONDS) + if(dramatically_disappearing) + return + + //dissapear in 1 second + dramatically_disappearing = TRUE + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, moveToNullspace)), time_to_go) //woosh + + // come back in 1 + 4 seconds + addtimer(VARSET_CALLBACK(src, atom_integrity, atom_integrity), time_to_go + time_to_return) //set the health back (icon is updated on move) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, forceMove), loc), time_to_go + time_to_return) //we back boys + addtimer(VARSET_CALLBACK(src, dramatically_disappearing, FALSE), time_to_go + time_to_return) //also set the var back + +/// Do some very specific checks to see if we *would* get shocked. Returns TRUE if it's shocked +/obj/structure/grille/proc/is_shocked() + var/turf/turf = get_turf(src) + var/obj/structure/cable/cable = turf.get_cable_node() + var/list/powernet_info = get_powernet_info_from_source(cable) + + if(!powernet_info) + return FALSE + + var/datum/powernet/powernet = powernet_info["powernet"] + return !!powernet.get_electrocute_damage() + /obj/structure/grille/broken // Pre-broken grilles for map placement icon_state = "brokengrille" density = FALSE diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 1d7fc470afff8..30983c5088d67 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -3,7 +3,7 @@ /obj/structure/holosign name = "holo sign" - icon = 'icons/effects/effects.dmi' + icon = 'icons/effects/holosigns.dmi' anchored = TRUE max_integrity = 1 armor_type = /datum/armor/structure_holosign @@ -21,10 +21,7 @@ /obj/structure/holosign/Initialize(mapload, source_projector) . = ..() - var/turf/our_turf = get_turf(src) - if(use_vis_overlay) - alpha = 0 - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + create_vis_overlay() if(source_projector) projector = source_projector LAZYADD(projector.signs, src) @@ -41,6 +38,11 @@ return attack_holosign(user, modifiers) +/obj/structure/holosign/CanAllowThrough(atom/movable/mover, border_dir) + . = ..() + if(!. && isprojectile(mover)) // Its short enough to be shot over + return TRUE + /obj/structure/holosign/proc/attack_holosign(mob/living/user, list/modifiers) user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) user.changeNext_move(CLICK_CD_MELEE) @@ -54,38 +56,100 @@ if(BURN) playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) +/obj/structure/holosign/proc/create_vis_overlay() + var/turf/our_turf = get_turf(src) + if(use_vis_overlay) + alpha = 0 + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + /obj/structure/holosign/wetsign name = "wet floor sign" desc = "The words flicker as if they mean nothing." - icon = 'icons/effects/effects.dmi' icon_state = "holosign" /obj/structure/holosign/barrier - name = "holobarrier" - desc = "A short holographic barrier which can only be passed by walking." + name = "security holobarrier" + desc = "A strong short security holographic barrier used for crowd control and blocking crime scenes. Can only be passed by walking." icon_state = "holosign_sec" + base_icon_state = "holosign_sec" pass_flags_self = PASSTABLE | PASSGRILLE | PASSGLASS | LETPASSTHROW density = TRUE max_integrity = 20 - var/allow_walk = TRUE //can we pass through it on walk intent + COOLDOWN_DECLARE(cooldown_open) + ///Can we pass through it on walk intent? + var/allow_walk = TRUE + ///Can it be temporarily opened with the holosign projector? + var/openable = TRUE + ///Is it opened? + var/opened = FALSE + ///What is the icon of opened holobarrier? + var/pass_icon_state = "holosign_pass" /obj/structure/holosign/barrier/CanAllowThrough(atom/movable/mover, border_dir) . = ..() if(.) return + + if(opened) + return TRUE + if(iscarbon(mover)) - var/mob/living/carbon/C = mover - if(C.stat) // Lets not prevent dragging unconscious/dead people. + var/mob/living/carbon/moving_carbon = mover + if(moving_carbon.stat) // Lets not prevent dragging unconscious/dead people. return TRUE - if(allow_walk && C.move_intent == MOVE_INTENT_WALK) + if(allow_walk && moving_carbon.move_intent == MOVE_INTENT_WALK) return TRUE +/obj/structure/holosign/barrier/ranged_item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(tool != projector) + return + if(openable) + open(user) + +/obj/structure/holosign/barrier/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(tool != projector) + return + qdel(src) + +/obj/structure/holosign/barrier/update_icon_state() + if(!opened) + icon_state = base_icon_state + else + icon_state = pass_icon_state + + create_vis_overlay() + . = ..() + +/obj/structure/holosign/barrier/proc/open(user) + if(!openable) + balloon_alert(user, "unable!") + return + + if(!COOLDOWN_FINISHED(src, cooldown_open)) + balloon_alert(user, "on cooldown!") + return + + if(!opened) + density = FALSE + opened = TRUE + playsound(src, 'sound/machines/door_open.ogg', 50, TRUE) + else + density = TRUE + opened = FALSE + playsound(src, 'sound/machines/door_close.ogg', 50, TRUE) + + update_icon_state() + COOLDOWN_START(src, cooldown_open, 1 SECONDS) + /obj/structure/holosign/barrier/wetsign name = "wet floor holobarrier" - desc = "When it says walk it means walk." - icon = 'icons/effects/effects.dmi' - icon_state = "holosign" + desc = "When it says walk it means WALK!" + icon_state = "holosign_dense" max_integrity = 1 + openable = FALSE /obj/structure/holosign/barrier/wetsign/CanAllowThrough(atom/movable/mover, border_dir) . = ..() @@ -97,7 +161,10 @@ return FALSE /obj/structure/holosign/barrier/engineering + name = "engineering holobarrier" + desc = "A short engineering holographic barrier used for designating hazardous zones, slightly blocks radiation. Can only be passed by walking." icon_state = "holosign_engi" + base_icon_state = "holosign_engi" rad_insulation = RAD_LIGHT_INSULATION max_integrity = 1 @@ -105,6 +172,7 @@ name = "holofirelock" desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out." icon_state = "holo_firelock" + openable = FALSE density = FALSE anchored = TRUE can_atmos_pass = ATMOS_PASS_NO @@ -129,11 +197,13 @@ /obj/structure/holosign/barrier/atmos/sturdy name = "sturdy holofirelock" max_integrity = 150 + openable = FALSE /obj/structure/holosign/barrier/atmos/tram name = "tram atmos barrier" max_integrity = 150 icon_state = "holo_tram" + openable = FALSE /obj/structure/holosign/barrier/atmos/Initialize(mapload) . = ..() @@ -166,9 +236,10 @@ name = "\improper PENLITE holobarrier" desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines." icon_state = "holo_medical" - alpha = 125 //lazy :) + base_icon_state = "holo_medical" max_integrity = 1 - var/buzzcd = 0 + openable = FALSE + COOLDOWN_DECLARE(virus_detected) /obj/structure/holosign/barrier/medical/CanAllowThrough(atom/movable/mover, border_dir) . = ..() @@ -183,12 +254,18 @@ /obj/structure/holosign/barrier/medical/Bumped(atom/movable/AM) . = ..() - icon_state = "holo_medical" - if(ishuman(AM) && !CheckHuman(AM)) - if(buzzcd < world.time) - playsound(get_turf(src),'sound/machines/buzz-sigh.ogg',65,TRUE,4) - buzzcd = (world.time + 60) - icon_state = "holo_medical-deny" + icon_state = base_icon_state + update_icon_state() + if(!ishuman(AM) && CheckHuman(AM)) + return + + if(!COOLDOWN_FINISHED(src, virus_detected)) + return + + playsound(get_turf(src),'sound/machines/buzz-sigh.ogg', 65, TRUE, 4) + COOLDOWN_START(src, virus_detected, 1 SECONDS) + icon_state = "holo_medical-deny" + update_icon_state() /obj/structure/holosign/barrier/medical/proc/CheckHuman(mob/living/carbon/human/sickboi) var/threat = sickboi.check_virus() diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm index 7ef40423e0d44..045a703250b0a 100644 --- a/code/game/objects/structures/lavaland/geyser.dm +++ b/code/game/objects/structures/lavaland/geyser.dm @@ -45,7 +45,7 @@ ///start making those CHHHHHEEEEEEMS. Called whenever chems are removed, it's fine because START_PROCESSING checks if we arent already processing /obj/structure/geyser/proc/start_chemming() - START_PROCESSING(SSplumbing, src) //It's main function is to be plumbed, so use SSplumbing + START_PROCESSING(SSplumbing, src) //Its main function is to be plumbed, so use SSplumbing ///We're full so stop processing /obj/structure/geyser/proc/stop_chemming() diff --git a/code/game/objects/structures/lavaland/ore_vent.dm b/code/game/objects/structures/lavaland/ore_vent.dm index cb9d203e3f2c7..024276198ab51 100644 --- a/code/game/objects/structures/lavaland/ore_vent.dm +++ b/code/game/objects/structures/lavaland/ore_vent.dm @@ -159,7 +159,7 @@ * This proc is called when the ore vent is initialized, in order to determine what minerals boulders it spawns can contain. * The materials available are determined by SSore_generation.ore_vent_minerals, which is a list of all minerals that can be contained in ore vents for a given cave generation. * As a result, minerals use a weighted list as seen by ore_vent_minerals_lavaland, which is then copied to ore_vent_minerals. - * Once a material is picked from the weighted list, it's removed from ore_vent_minerals, so that it can't be picked again and provided it's own internal weight used when assigning minerals to boulders spawned by this vent. + * Once a material is picked from the weighted list, it's removed from ore_vent_minerals, so that it can't be picked again and provided its own internal weight used when assigning minerals to boulders spawned by this vent. * May also be called after the fact, as seen in SSore_generation's initialize, to add more minerals to an existing vent. * * The above applies only when spawning in at mapload, otherwise we pick randomly from ore_vent_minerals_lavaland. diff --git a/code/game/objects/structures/maintenance.dm b/code/game/objects/structures/maintenance.dm index ecd6f54d2557a..768bd22d2abe2 100644 --- a/code/game/objects/structures/maintenance.dm +++ b/code/game/objects/structures/maintenance.dm @@ -81,7 +81,7 @@ at the cost of risking a vicious bite.**/ if(critter_infested && prob(50) && iscarbon(user)) var/mob/living/carbon/bite_victim = user var/obj/item/bodypart/affecting = bite_victim.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - to_chat(user, span_danger("You feel a sharp pain as an unseen creature sinks it's [pick("fangs", "beak", "proboscis")] into your arm!")) + to_chat(user, span_danger("You feel a sharp pain as an unseen creature sinks its [pick("fangs", "beak", "proboscis")] into your arm!")) if(affecting?.receive_damage(30)) bite_victim.update_damage_overlays() playsound(src,'sound/weapons/bite.ogg', 70, TRUE) diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index c37be03652c57..7faf3e5d478ec 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -4,7 +4,7 @@ #define SHOWER_NORMAL_TEMP 300 #define SHOWER_BOILING "boiling" #define SHOWER_BOILING_TEMP 400 -/// The volume of it's internal reagents the shower applies to everything it sprays. +/// The volume of its internal reagents the shower applies to everything it sprays. #define SHOWER_SPRAY_VOLUME 5 /// How much the volume of the shower's spay reagents are amplified by when it sprays something. #define SHOWER_EXPOSURE_MULTIPLIER 2 // Showers effectively double exposed reagents @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(shower_mode_descriptions, list( var/reagent_capacity = 200 ///How many units the shower refills every second. var/refill_rate = 0.5 - ///Does the shower have a water recycler to recollect it's water supply? + ///Does the shower have a water recycler to recollect its water supply? var/has_water_reclaimer = TRUE ///Which mode the shower is operating in. var/mode = SHOWER_MODE_UNTIL_EMPTY diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 3e7b5febed630..e44a2e2596a22 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -228,75 +228,100 @@ if(istype(tool, /obj/item/construction/rcd)) return NONE + var/deck_act_value = NONE if(istype(tool, /obj/item/toy/cards/deck)) - var/obj/item/toy/cards/deck/dealer_deck = tool - if(HAS_TRAIT(dealer_deck, TRAIT_WIELDED)) // deal a card faceup on the table - var/obj/item/toy/singlecard/card = dealer_deck.draw(user) - if(card) - card.Flip() - attackby(card, user, list2params(modifiers)) - return ITEM_INTERACT_SUCCESS + deck_act_value = deck_act(user, tool, modifiers, TRUE) + // Continue to placing if we don't do anything else + if(deck_act_value != NONE) + return deck_act_value - return item_interaction(user, tool, modifiers) + if(!user.combat_mode) + return table_place_act(user, tool, modifiers) + + return NONE /obj/structure/table/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = NONE if(istype(tool, /obj/item/storage/bag/tray)) - var/obj/item/storage/bag/tray/tray = tool - if(tray.contents.len > 0) // If the tray isn't empty - for(var/obj/item/thing in tray.contents) - AfterPutItemOnTable(thing, user) - tool.atom_storage.remove_all(drop_location()) - user.visible_message(span_notice("[user] empties [tool] on [src].")) - return ITEM_INTERACT_SUCCESS - // If the tray IS empty, continue on (tray will be placed on the table like other items) + . = tray_act(user, tool) + else if(istype(tool, /obj/item/toy/cards/deck)) + . = deck_act(user, tool, modifiers, FALSE) + else if(istype(tool, /obj/item/riding_offhand)) + . = riding_offhand_act(user, tool) - if(istype(tool, /obj/item/toy/cards/deck)) - var/obj/item/toy/cards/deck/dealer_deck = tool - if(HAS_TRAIT(dealer_deck, TRAIT_WIELDED)) // deal a card facedown on the table - var/obj/item/toy/singlecard/card = dealer_deck.draw(user) - if(card) - attackby(card, user, list2params(modifiers)) - return ITEM_INTERACT_SUCCESS - - if(istype(tool, /obj/item/riding_offhand)) - var/obj/item/riding_offhand/riding_item = tool - var/mob/living/carried_mob = riding_item.rider - if(carried_mob == user) //Piggyback user. - return NONE - if(user.combat_mode) - user.unbuckle_mob(carried_mob) - tablelimbsmash(user, carried_mob) - else - var/tableplace_delay = 3.5 SECONDS - var/skills_space = "" - if(HAS_TRAIT(user, TRAIT_QUICKER_CARRY)) - tableplace_delay = 2 SECONDS - skills_space = " expertly" - else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY)) - tableplace_delay = 2.75 SECONDS - skills_space = " quickly" - - var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) - if(istype(potential_spine)) - tableplace_delay *= potential_spine.athletics_boost_multiplier - - carried_mob.visible_message(span_notice("[user] begins to[skills_space] place [carried_mob] onto [src]..."), - span_userdanger("[user] begins to[skills_space] place [carried_mob] onto [src]...")) - if(do_after(user, tableplace_delay, target = carried_mob)) - user.unbuckle_mob(carried_mob) - tableplace(user, carried_mob) - return ITEM_INTERACT_SUCCESS + // Continue to placing if we don't do anything else + if(. != NONE) + return . - // Where putting things on tables is handled. - if(!user.combat_mode && !(tool.item_flags & ABSTRACT) && user.transferItemToLoc(tool, drop_location(), silent = FALSE)) - //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) - tool.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2) - tool.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) - AfterPutItemOnTable(tool, user) - return ITEM_INTERACT_SUCCESS + if(!user.combat_mode) + return table_place_act(user, tool, modifiers) return NONE +/obj/structure/table/proc/tray_act(mob/living/user, obj/item/storage/bag/tray/used_tray) + if(used_tray.contents.len <= 0) + return NONE // If the tray IS empty, continue on (tray will be placed on the table like other items) + + for(var/obj/item/thing in used_tray.contents) + AfterPutItemOnTable(thing, user) + used_tray.atom_storage.remove_all(drop_location()) + user.visible_message(span_notice("[user] empties [used_tray] on [src].")) + return ITEM_INTERACT_SUCCESS + +/obj/structure/table/proc/deck_act(mob/living/user, obj/item/toy/cards/deck/dealer_deck, list/modifiers, flip) + if(!HAS_TRAIT(dealer_deck, TRAIT_WIELDED)) + return NONE + + var/obj/item/toy/singlecard/card = dealer_deck.draw(user) + if(isnull(card)) + return ITEM_INTERACT_BLOCKING + if(flip) + card.Flip() + return table_place_act(user, card, modifiers) + +/obj/structure/table/proc/riding_offhand_act(mob/living/user, obj/item/riding_offhand/riding_item) + var/mob/living/carried_mob = riding_item.rider + if(carried_mob == user) //Piggyback user. + return NONE + + if(user.combat_mode) + user.unbuckle_mob(carried_mob) + tablelimbsmash(user, carried_mob) + return ITEM_INTERACT_SUCCESS + + var/tableplace_delay = 3.5 SECONDS + var/skills_space = "" + if(HAS_TRAIT(user, TRAIT_QUICKER_CARRY)) + tableplace_delay = 2 SECONDS + skills_space = " expertly" + else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY)) + tableplace_delay = 2.75 SECONDS + skills_space = " quickly" + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + tableplace_delay *= potential_spine.athletics_boost_multiplier + + carried_mob.visible_message(span_notice("[user] begins to[skills_space] place [carried_mob] onto [src]..."), + span_userdanger("[user] begins to[skills_space] place [carried_mob] onto [src]...")) + if(!do_after(user, tableplace_delay, target = carried_mob)) + return ITEM_INTERACT_BLOCKING + user.unbuckle_mob(carried_mob) + tableplace(user, carried_mob) + return ITEM_INTERACT_SUCCESS + +// Where putting things on tables is handled. +/obj/structure/table/proc/table_place_act(mob/living/user, obj/item/tool, list/modifiers) + if(tool.item_flags & ABSTRACT) + return NONE + if(!user.transferItemToLoc(tool, drop_location(), silent = FALSE)) + return ITEM_INTERACT_BLOCKING + //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) + tool.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2) + tool.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) + AfterPutItemOnTable(tool, user) + return ITEM_INTERACT_SUCCESS + /obj/structure/table/proc/AfterPutItemOnTable(obj/item/thing, mob/living/user) return @@ -827,7 +852,7 @@ layer = TABLE_LAYER density = TRUE anchored = TRUE - pass_flags_self = LETPASSTHROW //You can throw objects over this, despite it's density. + pass_flags_self = LETPASSTHROW //You can throw objects over this, despite its density. max_integrity = 20 /obj/structure/rack/skeletal diff --git a/code/game/objects/structures/water_structures/sink.dm b/code/game/objects/structures/water_structures/sink.dm index 24cb2e806965f..878dab578a52e 100644 --- a/code/game/objects/structures/water_structures/sink.dm +++ b/code/game/objects/structures/water_structures/sink.dm @@ -14,7 +14,7 @@ var/buildstacktype = /obj/item/stack/sheet/iron ///Number of sheets of material to drop when broken or deconstructed. var/buildstackamount = 1 - ///Does the sink have a water recycler to recollect it's water supply? + ///Does the sink have a water recycler to recollect its water supply? var/has_water_reclaimer = TRUE ///Units of water to reclaim per second var/reclaim_rate = 0.5 diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index c9460fc9357f2..04428bb617fdb 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -35,6 +35,8 @@ var/bloodied = FALSE ///Datum that the shard and debris type is pulled from for when the glass is broken. var/datum/material/glass_material_datum = /datum/material/glass + /// Whether or not we're disappearing but dramatically + var/dramatically_disappearing = FALSE /datum/armor/structure_window melee = 50 @@ -428,6 +430,36 @@ return TRUE +/obj/structure/window/proc/temporary_shatter(time_to_go = 1 SECONDS, time_to_return = 4 SECONDS, take_grill = TRUE) + if(dramatically_disappearing) + return + + // do a cute breaking animation + var/static/time_interval = 2 DECISECONDS //per how many steps should we do damage? + for(var/damage_step in 1 to (floor(time_to_go / time_interval) - 1)) //10 ds / 2 ds = 5 damage steps, minus 1 so we dont actually break it + // slowly drain our total health for the illusion of shattering + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, take_damage), floor(atom_integrity / (time_to_go / time_interval))), time_interval * damage_step) + + //dissapear in 1 second + dramatically_disappearing = TRUE + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), loc, break_sound, 70, TRUE), time_to_go) //SHATTER SOUND + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, moveToNullspace)), time_to_go) //woosh + + // come back in 1 + 4 seconds + addtimer(VARSET_CALLBACK(src, atom_integrity, atom_integrity), time_to_go + time_to_return) //set the health back (icon is updated on move) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, forceMove), loc), time_to_go + time_to_return) //we back boys + addtimer(VARSET_CALLBACK(src, dramatically_disappearing, FALSE), time_to_go + time_to_return) //also set the var back + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), time_to_go + time_to_return) + + var/obj/structure/grille/grill = take_grill ? (locate(/obj/structure/grille) in loc) : null + if(grill) + grill.temporary_shatter(time_to_go, time_to_return) + +/obj/structure/window/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + if(loc) + update_nearby_icons() + MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/spawner, 0) /obj/structure/window/unanchored diff --git a/code/game/turfs/closed/indestructible.dm b/code/game/turfs/closed/indestructible.dm index 4e576ebede63d..ed80e02a8be34 100644 --- a/code/game/turfs/closed/indestructible.dm +++ b/code/game/turfs/closed/indestructible.dm @@ -185,6 +185,9 @@ SKYRAT EDIT REMOVAL END */ smoothing_groups = SMOOTH_GROUP_ABDUCTOR_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS canSmoothWith = SMOOTH_GROUP_ABDUCTOR_WALLS +/turf/closed/indestructible/alien/nodiagonal + icon_state = "abductor_wall-15" + smoothing_flags = SMOOTH_BITMASK /turf/closed/indestructible/cult name = "runed metal wall" diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 304b2dbbdb72a..8b29df20ed4c5 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -278,7 +278,7 @@ /turf/closed/mineral/random /// What are the base odds that this turf spawns a mineral in the wall on initialize? var/mineralChance = 13 - /// Does this mineral determine it's random chance and mineral contents based on proximity to a vent? Overrides mineralChance and mineralAmt. + /// Does this mineral determine its random chance and mineral contents based on proximity to a vent? Overrides mineralChance and mineralAmt. var/proximity_based = FALSE /// Returns a list of the chances for minerals to spawn. diff --git a/code/game/turfs/open/asteroid.dm b/code/game/turfs/open/asteroid.dm index cf28cdc3a4631..d0234b826a219 100644 --- a/code/game/turfs/open/asteroid.dm +++ b/code/game/turfs/open/asteroid.dm @@ -151,7 +151,7 @@ GLOBAL_LIST_EMPTY(dug_up_basalt) /turf/open/misc/asteroid/basalt/refill_dug() . = ..() GLOB.dug_up_basalt -= src - set_basalt_light(src) + set_basalt_light() /turf/open/misc/asteroid/basalt/lava //lava underneath baseturfs = /turf/open/lava/smooth @@ -162,14 +162,14 @@ GLOBAL_LIST_EMPTY(dug_up_basalt) /turf/open/misc/asteroid/basalt/Initialize(mapload) . = ..() - set_basalt_light(src) + set_basalt_light() -/proc/set_basalt_light(turf/open/floor/B) - switch(B.icon_state) +/turf/open/misc/asteroid/basalt/proc/set_basalt_light() + switch(icon_state) if("basalt1", "basalt2", "basalt3") - B.set_light(2, 0.6, LIGHT_COLOR_LAVA) //more light + set_light(BASALT_LIGHT_RANGE_BRIGHT, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) //more light if("basalt5", "basalt9") - B.set_light(1.4, 0.6, LIGHT_COLOR_LAVA) //barely anything! + set_light(BASALT_LIGHT_RANGE_DIM, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) //barely anything! ///////Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground. diff --git a/code/game/turfs/open/basalt.dm b/code/game/turfs/open/basalt.dm index e52a6053a6efe..e1a423d3c47f6 100644 --- a/code/game/turfs/open/basalt.dm +++ b/code/game/turfs/open/basalt.dm @@ -11,7 +11,11 @@ AddElement(/datum/element/diggable, /obj/item/stack/ore/glass/basalt, 2) if(prob(15)) icon_state = "basalt[rand(0, 12)]" - set_basalt_light(src) + switch(icon_state) + if("basalt1", "basalt2", "basalt3") + set_light(BASALT_LIGHT_RANGE_BRIGHT, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) + if("basalt5", "basalt9") + set_light(BASALT_LIGHT_RANGE_DIM, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) /turf/open/misc/basalt/safe planetary_atmos = FALSE diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm index e672b7f7294fa..370d65b92865e 100644 --- a/code/game/turfs/open/floor/fancy_floor.dm +++ b/code/game/turfs/open/floor/fancy_floor.dm @@ -242,7 +242,11 @@ AddElement(/datum/element/diggable, /obj/item/stack/ore/glass/basalt, 2, worm_chance = 0) if(prob(15)) icon_state = "basalt[rand(0, 12)]" - set_basalt_light(src) + switch(icon_state) + if("basalt1", "basalt2", "basalt3") + set_light(BASALT_LIGHT_RANGE_BRIGHT, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) + if("basalt5", "basalt9") + set_light(BASALT_LIGHT_RANGE_DIM, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) /turf/open/floor/carpet name = "carpet" diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index fd3806c6a9ec0..3eb5deb0c25f9 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -1,6 +1,6 @@ //Blocks an attempt to connect before even creating our client datum thing. -//How many new ckey matches before we revert the stickyban to it's roundstart state +//How many new ckey matches before we revert the stickyban to its roundstart state //These are exclusive, so once it goes over one of these numbers, it reverts the ban #define STICKYBAN_MAX_MATCHES 15 #define STICKYBAN_MAX_EXISTING_USER_MATCHES 3 //ie, users who were connected before the ban triggered diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index e25205d50e799..77d1546eeb71a 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -42,16 +42,6 @@ * (IE, no wacky hair styles / colors) */ /proc/randomize_human_normie(mob/living/carbon/human/human, randomize_mutations = FALSE) - var/static/list/natural_hair_colors = list( - "#111111", "#362925", "#3B3831", "#41250C", "#412922", - "#544C49", "#583322", "#593029", "#703b30", "#714721", - "#744729", "#74482a", "#7b746e", "#855832", "#863019", - "#8c4734", "#9F550E", "#A29A96", "#A4381C", "#B17B41", - "#C0BAB7", "#EFE5E4", "#F7F3F1", "#FFF2D6", "#a15537", - "#a17e61", "#b38b67", "#ba673c", "#c89f73", "#d9b380", - "#dbc9b8", "#e1621d", "#e17d17", "#e1af93", "#f1cc8f", - "#fbe7a1", - ) // Sorry enbys but statistically you are not average enough human.gender = human.dna.species.sexes ? pick(MALE, FEMALE) : PLURAL human.physique = human.gender @@ -61,14 +51,14 @@ human.eye_color_right = human.eye_color_left human.skin_tone = pick(GLOB.skin_tones) // No underwear generation handled here - var/picked_color = pick(natural_hair_colors) + var/picked_color = random_hair_color() human.set_haircolor(picked_color, update = FALSE) human.set_facial_haircolor(picked_color, update = FALSE) var/datum/sprite_accessory/hairstyle = SSaccessories.hairstyles_list[random_hairstyle(human.gender)] - if(hairstyle?.natural_spawn) + if(hairstyle && hairstyle.natural_spawn && !hairstyle.locked) human.set_hairstyle(hairstyle.name, update = FALSE) var/datum/sprite_accessory/facial_hair = SSaccessories.facial_hairstyles_list[random_facial_hairstyle(human.gender)] - if(facial_hair?.natural_spawn) + if(facial_hair && facial_hair.natural_spawn && !facial_hair.locked) human.set_facial_hairstyle(facial_hair.name, update = FALSE) // Normal DNA init stuff, these can generally be wacky but we care less, they're aliens after all human.dna.initialize_dna(newblood_type = random_blood_type(), create_mutation_blocks = randomize_mutations, randomize_features = TRUE) diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index bb55aa3d83b3b..7c6a89a3546ef 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -431,6 +431,7 @@ ROLE_SYNDICATE, ROLE_TRAITOR, ROLE_WIZARD, + ROLE_VOIDWALKER, ROLE_BORER, // SKYRAT EDIT ADDITION ROLE_ASSAULT_OPERATIVE, // SKYRAT EDIT ADDITION ROLE_BLOODSUCKER,// BUBBER EDIT diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e03c42cc64412..9daf217af9708 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1776,6 +1776,15 @@ if(!paper_to_show) return paper_to_show.ui_interact(usr) + else if (href_list["print_fax"]) + if(!check_rights(R_ADMIN)) + return + + for(var/obj/machinery/fax/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax)) + if(!is_centcom_level(FAX.z)) + continue + + FAX.receive(locate(href_list["print_fax"]), href_list["fax_name"]) // SKYRAT EDIT ADDITION START else if(href_list["pass_opfor_candidate"]) if(!check_rights(R_ADMIN)) diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 23676cd8ea909..4c984c42b71ae 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -246,7 +246,7 @@ ADMIN_VERB(cmd_admin_pm_panel, R_NONE, "Admin PM", "Show a list of clients to PM request = "[request] an Administrator." else request = "[request] [recipient_print_key]." - //get message text, limit it's length.and clean/escape html + //get message text, limit its length.and clean/escape html msg = input(src,"Message:", request) as message|null msg = trim(msg) diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index 36dccbb297ed1..e33b6fdf364cf 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -206,7 +206,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) if(live_guy.stat != DEAD) live_guy.investigate_log("has died from blob takeover.", INVESTIGATE_DEATHS) live_guy.death() - create_spore(guy_turf) + create_spore(guy_turf, spore_type = /mob/living/basic/blob_minion/spore) else live_guy.fully_heal() diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 3b6a550b18b0f..72bf91f1919f2 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -14,7 +14,7 @@ if(!.) return FALSE - if(HAS_TRAIT_FROM(user, TRAIT_IGNOREDAMAGESLOWDOWN, CHANGELING_TRAIT)) + if(HAS_TRAIT_FROM(user, TRAIT_PARALYSIS_L_ARM, CHANGELING_TRAIT) || HAS_TRAIT_FROM(user, TRAIT_PARALYSIS_R_ARM, CHANGELING_TRAIT)) user.balloon_alert(user, "already boosted!") return FALSE @@ -40,7 +40,8 @@ var/our_leg_zones = (GLOB.all_body_zones - GLOB.leg_zones) user.regenerate_limbs(excluded_zones = our_leg_zones) // why is this exclusive rather than inclusive - user.add_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM), CHANGELING_TRAIT) + user.add_traits(list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM), CHANGELING_TRAIT) + user.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) // Revert above mob changes. addtimer(CALLBACK(src, PROC_REF(unsting_action), user), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) @@ -57,4 +58,5 @@ /datum/action/changeling/adrenaline/proc/unsting_action(mob/living/user) to_chat(user, span_changeling("The muscles in our limbs shift back to their usual places.")) - user.remove_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM), CHANGELING_TRAIT) + user.remove_traits(list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM), CHANGELING_TRAIT) + user.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index f680ab00bb6a8..bc71d9386824f 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -12,7 +12,7 @@ default_button_position = DEFAULT_BLOODSPELLS var/list/spells = list() var/channeling = FALSE - /// If the magic has been enhanced somehow, likely due to a crimson focus. + /// If the magic has been enhanced somehow, likely due to a crimson medallion. var/magic_enhanced = FALSE /datum/action/innate/cult/blood_magic/Remove() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 595d95c168ebf..ceaa5a0694386 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -85,6 +85,7 @@ Striking a noncultist, however, will tear their flesh."} speed = 4 SECONDS, \ effectiveness = 100, \ ) + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /obj/item/melee/cultblade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(IS_CULTIST(owner) && prob(final_block_chance)) @@ -210,6 +211,7 @@ Striking a noncultist, however, will tear their flesh."} awakener = awakener,\ allow_renaming = FALSE,\ allow_channeling = FALSE,\ + allow_exorcism = FALSE,\ ) // Get the heretic's new body and antag datum. @@ -658,6 +660,10 @@ Striking a noncultist, however, will tear their flesh."} righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/fuel/unholywater = 50) +/obj/item/reagent_containers/cup/beaker/unholywater/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + ///how many times can the shuttle be cursed? #define MAX_SHUTTLE_CURSES 3 ///if the max number of shuttle curses are used within this duration, the entire cult gets an achievement diff --git a/code/modules/antagonists/cult/cult_structure_archives.dm b/code/modules/antagonists/cult/cult_structure_archives.dm index d3a96dd1f77aa..9917d9505f7be 100644 --- a/code/modules/antagonists/cult/cult_structure_archives.dm +++ b/code/modules/antagonists/cult/cult_structure_archives.dm @@ -2,7 +2,7 @@ #define CULT_BLINDFOLD "Zealot's Blindfold" #define CURSE_ORB "Shuttle Curse" #define VEIL_WALKER "Veil Walker Set" -#define CRIMSON_FOCUS "Crimson Focus" +#define CRIMSON_MEDALLION "Crimson Medallion" // Cult archives. Gives out utility items. /obj/structure/destructible/cult/item_dispenser/archives @@ -38,11 +38,11 @@ options += extra_item /obj/structure/destructible/cult/item_dispenser/archives/extra_options() - if(!cult_team?.unlocked_heretic_items[CRIMSON_FOCUS_UNLOCKED]) + if(!cult_team?.unlocked_heretic_items[CRIMSON_MEDALLION_UNLOCKED]) return - return list(CRIMSON_FOCUS = list( - PREVIEW_IMAGE = image(icon = 'icons/obj/clothing/neck.dmi', icon_state = "crimson_focus"), - OUTPUT_ITEMS = list(/obj/item/clothing/neck/heretic_focus/crimson_focus), + return list(CRIMSON_MEDALLION = list( + PREVIEW_IMAGE = image(icon = 'icons/obj/clothing/neck.dmi', icon_state = "crimson_medallion"), + OUTPUT_ITEMS = list(/obj/item/clothing/neck/heretic_focus/crimson_medallion), ), ) @@ -56,4 +56,4 @@ #undef CULT_BLINDFOLD #undef CURSE_ORB #undef VEIL_WALKER -#undef CRIMSON_FOCUS +#undef CRIMSON_MEDALLION diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 5067dcf979904..2cdb2c2e6f468 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -131,6 +131,7 @@ COOLDOWN_START(src, use_cooldown, use_cooldown_duration) for(var/item_to_make in spawned_items) var/obj/item/made_item = new item_to_make(get_turf(src)) + ADD_TRAIT(made_item, TRAIT_CONTRABAND, INNATE_TRAIT) succcess_message(user, made_item) diff --git a/code/modules/antagonists/cult/datums/cult_team.dm b/code/modules/antagonists/cult/datums/cult_team.dm index 09d4a25a321c4..72c7df8bf5d14 100644 --- a/code/modules/antagonists/cult/datums/cult_team.dm +++ b/code/modules/antagonists/cult/datums/cult_team.dm @@ -22,7 +22,7 @@ /// List that keeps track of which items have been unlocked after a heretic was sacked. var/list/unlocked_heretic_items = list( CURSED_BLADE_UNLOCKED = FALSE, - CRIMSON_FOCUS_UNLOCKED = FALSE, + CRIMSON_MEDALLION_UNLOCKED = FALSE, PROTEON_ORB_UNLOCKED = FALSE, ) diff --git a/code/modules/antagonists/cult/datums/cultist.dm b/code/modules/antagonists/cult/datums/cultist.dm index b0fbea4421aa9..f56d79a8f4b18 100644 --- a/code/modules/antagonists/cult/datums/cultist.dm +++ b/code/modules/antagonists/cult/datums/cultist.dm @@ -151,7 +151,8 @@ ///Attempts to make a new item and put it in a potential inventory slot in the provided mob. /datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) - var/item = new item_path(mob) + var/obj/item = new item_path(mob) + ADD_TRAIT(item, TRAIT_CONTRABAND, INNATE_TRAIT) var/where = mob.equip_conspicuous_item(item) if(!where) to_chat(mob, span_userdanger("Unfortunately, you weren't able to get [item]. This is very bad and you should adminhelp immediately (press F1).")) diff --git a/code/modules/antagonists/cult/sword_fling.dm b/code/modules/antagonists/cult/sword_fling.dm index 766f97917de60..83238b0d8a2f4 100644 --- a/code/modules/antagonists/cult/sword_fling.dm +++ b/code/modules/antagonists/cult/sword_fling.dm @@ -55,6 +55,8 @@ particle_to_spawn = /obj/effect/particle_effect/sparks/electricity new particle_to_spawn(get_turf(loccer)) + loccer.shake_up_animation() + playsound(loccer, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) if(prob(resist_chance)) flinged_sword.forceMove(get_turf(loccer)) @@ -82,6 +84,9 @@ flinged_sword.throw_at(cast_on, cast_range, flinged_sword.throw_speed, owner) flinged_sword.visible_message(\ span_warning("\the [flinged_sword] lunges at \the [cast_on]!")) + playsound(flinged_sword, 'sound/items/haunted/ghostitemattack.ogg', 100, TRUE) + flinged_sword.add_filter("cool_glow", 2, list("type" = "outline", "color" = COLOR_HERETIC_GREEN, "size" = 0.7)) + addtimer(CALLBACK(flinged_sword, TYPE_PROC_REF(/datum, remove_filter), "cool_glow"), 0.7 SECONDS) /obj/effect/temp_visual/eldritch_sparks icon_state = "purplesparkles" diff --git a/code/modules/antagonists/heretic/heretic_antag.dm b/code/modules/antagonists/heretic/heretic_antag.dm index 8f788697d4280..1e40f0fff3856 100644 --- a/code/modules/antagonists/heretic/heretic_antag.dm +++ b/code/modules/antagonists/heretic/heretic_antag.dm @@ -88,7 +88,7 @@ /// List that keeps track of which items have been gifted to the heretic after a cultist was sacrificed. Used to alter drop chances to reduce dupes. var/list/unlocked_heretic_items = list( /obj/item/melee/sickly_blade/cursed = 0, - /obj/item/clothing/neck/heretic_focus/crimson_focus = 0, + /obj/item/clothing/neck/heretic_focus/crimson_medallion = 0, /mob/living/basic/construct/harvester/heretic = 0, ) /// Simpler version of above used to limit amount of loot that can be hoarded diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm index 6cfa8db05608f..16c8bde219c8e 100644 --- a/code/modules/antagonists/heretic/heretic_knowledge.dm +++ b/code/modules/antagonists/heretic/heretic_knowledge.dm @@ -155,7 +155,9 @@ return FALSE for(var/result in result_atoms) - new result(loc) + var/atom/result_item = new result(loc) + if(isitem(result_item)) + ADD_TRAIT(result_item, TRAIT_CONTRABAND, INNATE_TRAIT) return TRUE /** @@ -226,7 +228,7 @@ /** * A knowledge subtype for knowledge that can only - * have a limited amount of it's resulting atoms + * have a limited amount of its resulting atoms * created at once. */ /datum/heretic_knowledge/limited_amount @@ -582,7 +584,6 @@ var/datum/antagonist/heretic_monster/heretic_monster = summoned.mind.add_antag_datum(/datum/antagonist/heretic_monster) heretic_monster.set_owner(user.mind) - summoned.RegisterSignal(user, COMSIG_LIVING_DEATH, TYPE_PROC_REF(/mob/living/, on_master_death)) var/datum/objective/heretic_summon/summon_objective = locate() in user.mind.get_all_objectives() summon_objective?.num_summoned++ diff --git a/code/modules/antagonists/heretic/heretic_monsters.dm b/code/modules/antagonists/heretic/heretic_monsters.dm index fcdea51287980..5bc7041cd461d 100644 --- a/code/modules/antagonists/heretic/heretic_monsters.dm +++ b/code/modules/antagonists/heretic/heretic_monsters.dm @@ -28,6 +28,7 @@ */ /datum/antagonist/heretic_monster/proc/set_owner(datum/mind/master) src.master = master + owner.enslave_mind_to_creator(master.current) var/datum/objective/master_obj = new() master_obj.owner = owner @@ -38,7 +39,3 @@ owner.announce_objectives() to_chat(owner, span_boldnotice("You are a [ishuman(owner.current) ? "shambling corpse returned":"horrible creation brought"] to this plane through the Gates of the Mansus.")) to_chat(owner, span_notice("Your master is [master]. Assist them to all ends.")) - - if(istype(owner.current, /mob/living/basic/construct/harvester/heretic)) - var/mob/living/basic/construct/harvester/heretic/shitcode = owner.current - shitcode.master = master diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm index 45ddea163fa71..0c64e4a227eaf 100644 --- a/code/modules/antagonists/heretic/items/heretic_armor.dm +++ b/code/modules/antagonists/heretic/items/heretic_armor.dm @@ -97,6 +97,7 @@ . = ..() create_storage(storage_type = /datum/storage/pockets/void_cloak) make_visible() + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) /obj/item/clothing/suit/hooded/cultrobes/void/equipped(mob/user, slot) . = ..() diff --git a/code/modules/antagonists/heretic/items/heretic_necks.dm b/code/modules/antagonists/heretic/items/heretic_necks.dm index 3f140dc99df1d..5c73c22a4e793 100644 --- a/code/modules/antagonists/heretic/items/heretic_necks.dm +++ b/code/modules/antagonists/heretic/items/heretic_necks.dm @@ -9,16 +9,16 @@ . = ..() AddElement(/datum/element/heretic_focus) -/obj/item/clothing/neck/heretic_focus/crimson_focus - name = "Crimson Focus" +/obj/item/clothing/neck/heretic_focus/crimson_medallion + name = "Crimson Medallion" desc = "A blood-red focusing glass that provides a link to the world beyond, and worse. Its eye is constantly twitching and gazing in all directions. It almost seems to be silently screaming..." - icon_state = "crimson_focus" + icon_state = "crimson_medallion" /// The aura healing component. Used to delete it when taken off. var/datum/component/component /// If active or not, used to add and remove its cult and heretic buffs. var/active = FALSE -/obj/item/clothing/neck/heretic_focus/crimson_focus/equipped(mob/living/user, slot) +/obj/item/clothing/neck/heretic_focus/crimson_medallion/equipped(mob/living/user, slot) . = ..() if(!(slot & ITEM_SLOT_NECK)) return @@ -51,7 +51,7 @@ healing_color = team_color, \ ) -/obj/item/clothing/neck/heretic_focus/crimson_focus/dropped(mob/living/user) +/obj/item/clothing/neck/heretic_focus/crimson_medallion/dropped(mob/living/user) . = ..() if(!istype(user)) @@ -75,7 +75,7 @@ magic_holder?.magic_enhanced = FALSE -/obj/item/clothing/neck/heretic_focus/crimson_focus/attack_self(mob/living/user, modifiers) +/obj/item/clothing/neck/heretic_focus/crimson_medallion/attack_self(mob/living/user, modifiers) . = ..() to_chat(user, span_danger("You start tightly squeezing [src]...")) if(!do_after(user, 1.25 SECONDS, src)) @@ -90,7 +90,7 @@ user.reagents?.add_reagent(/datum/reagent/eldritch, rand(6, 10)) qdel(src) -/obj/item/clothing/neck/heretic_focus/crimson_focus/examine(mob/user) +/obj/item/clothing/neck/heretic_focus/crimson_medallion/examine(mob/user) . = ..() var/magic_dude diff --git a/code/modules/antagonists/heretic/knowledge/rust_lore.dm b/code/modules/antagonists/heretic/knowledge/rust_lore.dm index 5e96119135f71..fe0d03ec18f50 100644 --- a/code/modules/antagonists/heretic/knowledge/rust_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/rust_lore.dm @@ -220,7 +220,6 @@ /// A static list of traits we give to the heretic when on rust. var/static/list/conditional_immunities = list( TRAIT_BOMBIMMUNE, - TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_IGNORESLOWDOWN, TRAIT_NO_SLIP_ALL, TRAIT_NOBREATH, @@ -306,7 +305,7 @@ * * Gives our heretic ([source]) buffs if they stand on rust. */ -/datum/heretic_knowledge/ultimate/rust_final/proc/on_move(mob/source, atom/old_loc, dir, forced, list/old_locs) +/datum/heretic_knowledge/ultimate/rust_final/proc/on_move(mob/living/source, atom/old_loc, dir, forced, list/old_locs) SIGNAL_HANDLER // If we're on a rusty turf, and haven't given out our traits, buff our guy @@ -314,12 +313,14 @@ if(HAS_TRAIT(our_turf, TRAIT_RUSTY)) if(!immunities_active) source.add_traits(conditional_immunities, type) + source.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) immunities_active = TRUE // If we're not on a rust turf, and we have given out our traits, nerf our guy else if(immunities_active) source.remove_traits(conditional_immunities, type) + source.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) immunities_active = FALSE /** diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm index 1654918c02492..78c2b64439618 100644 --- a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm @@ -214,7 +214,7 @@ heretic_datum.knowledge_points += 3 heretic_datum.high_value_sacrifices++ feedback += " graciously" - else if(cultist_datum) + if(cultist_datum) heretic_datum.knowledge_points += 1 grant_reward(user, sacrifice, loc) // easier to read @@ -229,9 +229,9 @@ span_narsie(" one of our own. Destroy and sacrifice the infidel before it claims more!") to_chat(mind.current, message) // he(retic) gets a warn too - var/message = span_cult_bold("You feel that your action has attracted") + \ - span_cult_bold_italic(" attention.") - to_chat(user, message) + to_chat(user, span_narsiesmall("How DARE you!? I will see you destroyed for this.")) + var/non_flavor_warning = span_cult_bold("You feel that your action has attracted ") + span_hypnophrase("attention") + span_cult_bold(".") + to_chat(user, non_flavor_warning) return else heretic_datum.knowledge_points += 2 @@ -263,12 +263,6 @@ var/datum/antagonist/heretic/antag = IS_HERETIC(user) antag.rewards_given++ - // We limit the amount so the heretic doesn't just turn into a frickin' god (early) - to_chat(user, span_hierophant("You feel the rotten energies of the infidel warp and twist, mixing with that of your own...")) - if(prob(8 * antag.rewards_given)) - to_chat(user, span_hierophant("Faint, dark red sparks flit around the dust, then fade. It looks like your patrons weren't able to fashion something out of it.")) - return - // Cool effect for the rune as well as the item var/obj/effect/heretic_rune/rune = locate() in range(2, user) if(rune) @@ -285,7 +279,7 @@ /datum/heretic_knowledge/hunt_and_sacrifice/proc/deposit_reward(mob/user, turf/loc, loop = 0, obj/rune) if(loop > 5) // Max limit for retrying a reward return - // Remove the rays, we don't need them anymore. + // Remove the outline, we don't need it anymore. rune?.remove_filter("reward_outline") playsound(loc, 'sound/magic/repulse.ogg', 75, TRUE) var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user) diff --git a/code/modules/antagonists/heretic/magic/flesh_surgery.dm b/code/modules/antagonists/heretic/magic/flesh_surgery.dm index 96ccb8450f97b..a486b986cd81e 100644 --- a/code/modules/antagonists/heretic/magic/flesh_surgery.dm +++ b/code/modules/antagonists/heretic/magic/flesh_surgery.dm @@ -83,7 +83,7 @@ return . -/// If cast on an organ, we'll restore it's health and even un-fail it. +/// If cast on an organ, we'll restore its health and even un-fail it. /datum/action/cooldown/spell/touch/flesh_surgery/proc/heal_organ(obj/item/melee/touch_attack/hand, obj/item/organ/to_heal, mob/living/carbon/caster) if(to_heal.damage == 0) to_heal.balloon_alert(caster, "already in good condition!") diff --git a/code/modules/antagonists/heretic/magic/space_crawl.dm b/code/modules/antagonists/heretic/magic/space_crawl.dm index 49677e3bb5086..90f74a37047f3 100644 --- a/code/modules/antagonists/heretic/magic/space_crawl.dm +++ b/code/modules/antagonists/heretic/magic/space_crawl.dm @@ -84,8 +84,8 @@ RegisterSignal(jaunter, SIGNAL_REMOVETRAIT(TRAIT_ALLOW_HERETIC_CASTING), PROC_REF(on_focus_lost)) RegisterSignal(jaunter, COMSIG_MOB_STATCHANGE, PROC_REF(on_stat_change)) - our_turf.visible_message(span_warning("[jaunter] sinks into [our_turf]!")) playsound(our_turf, 'sound/magic/cosmic_energy.ogg', 50, TRUE, -1) + our_turf.visible_message(span_warning("[jaunter] sinks into [our_turf]!")) new /obj/effect/temp_visual/space_explosion(our_turf) jaunter.extinguish_mob() @@ -102,7 +102,6 @@ if(!exit_jaunt(jaunter, our_turf)) return FALSE - our_turf.visible_message(span_boldwarning("[jaunter] rises out of [our_turf]!")) return TRUE diff --git a/code/modules/antagonists/heretic/status_effects/buffs.dm b/code/modules/antagonists/heretic/status_effects/buffs.dm index 35a6ab9268784..c72e6bfdef113 100644 --- a/code/modules/antagonists/heretic/status_effects/buffs.dm +++ b/code/modules/antagonists/heretic/status_effects/buffs.dm @@ -53,11 +53,11 @@ alert_type = /atom/movable/screen/alert/status_effect/marshal /datum/status_effect/marshal/on_apply() - ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, STATUS_EFFECT_TRAIT) + owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) return TRUE /datum/status_effect/marshal/on_remove() - REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, STATUS_EFFECT_TRAIT) + owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) /datum/status_effect/marshal/tick(seconds_between_ticks) if(!iscarbon(owner)) diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 077bd2158b8f6..a1c31241e0b75 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -12,6 +12,7 @@ TRAIT_NODISMEMBER, TRAIT_NOFIRE, TRAIT_NOGUNS, + TRAIT_TOSS_GUN_HARD, TRAIT_SHOCKIMMUNE, ) diff --git a/code/modules/antagonists/malf_ai/malf_ai_modules.dm b/code/modules/antagonists/malf_ai/malf_ai_modules.dm index fb4aee34771b3..28181ce32c256 100644 --- a/code/modules/antagonists/malf_ai/malf_ai_modules.dm +++ b/code/modules/antagonists/malf_ai/malf_ai_modules.dm @@ -1044,14 +1044,14 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module) - /datum/ai_module/d owner.speech_span = say_span to_chat(usr, span_notice("Voice set to [selection].")) if("verb") - say_verb = params["verb"] + say_verb = strip_html(params["verb"], MAX_NAME_LEN) if(changing_voice) owner.verb_say = say_verb owner.verb_ask = say_verb owner.verb_exclaim = say_verb owner.verb_yell = say_verb if("name") - say_name = params["name"] + say_name = strip_html(params["name"], MAX_NAME_LEN) /datum/ai_module/utility/emag name = "Targeted Safeties Override" diff --git a/code/modules/antagonists/nightmare/nightmare_equipment.dm b/code/modules/antagonists/nightmare/nightmare_equipment.dm index ec07639cb449c..6fbe6c6097bec 100644 --- a/code/modules/antagonists/nightmare/nightmare_equipment.dm +++ b/code/modules/antagonists/nightmare/nightmare_equipment.dm @@ -52,10 +52,9 @@ if(!has_crit) return playsound(target, 'sound/effects/wounds/crackandbleed.ogg', 100, TRUE) - var/datum/dna/target_dna = target.has_dna() if(target.stat == DEAD) user.visible_message(span_warning("[user] gores [target] with [src]!"), span_warning("You gore [target] with [src], which doesn't accomplish much, but it does make you feel a little better.")) - else if(!target_dna?.check_mutation(/datum/mutation/human/hulk) && (iscarbon(target) || issilicon(target))) + else if(!HAS_TRAIT(target, TRAIT_HULK) && (iscarbon(target) || issilicon(target))) user.visible_message(span_boldwarning("[user] gores [target] with [src], bringing them to a halt!"), span_userdanger("You gore [target] with [src], bringing them to a halt!")) target.Paralyze(issilicon(target) ? 2 SECONDS : 1 SECONDS) else diff --git a/code/modules/antagonists/nightmare/nightmare_organs.dm b/code/modules/antagonists/nightmare/nightmare_organs.dm index 576b911652fa0..a77aaa79b23ea 100644 --- a/code/modules/antagonists/nightmare/nightmare_organs.dm +++ b/code/modules/antagonists/nightmare/nightmare_organs.dm @@ -70,6 +70,8 @@ visual = TRUE color = COLOR_CRAYON_BLACK decay_factor = 0 + // No love is to be found in a heart so twisted. + food_reagents = list(/datum/reagent/consumable/nutriment = 5) /// How many life ticks in the dark the owner has been dead for. Used for nightmare respawns. var/respawn_progress = 0 /// The armblade granted to the host of this heart. diff --git a/code/modules/antagonists/nukeop/equipment/pinpointer.dm b/code/modules/antagonists/nukeop/equipment/pinpointer.dm index da72e41ef51e3..59ab16be7dc9c 100644 --- a/code/modules/antagonists/nukeop/equipment/pinpointer.dm +++ b/code/modules/antagonists/nukeop/equipment/pinpointer.dm @@ -62,7 +62,7 @@ /obj/item/pinpointer/nuke/proc/switch_mode_to(new_mode) if(isliving(loc)) var/mob/living/L = loc - to_chat(L, span_userdanger("Your [name] beeps as it reconfigures it's tracking algorithms.")) + to_chat(L, span_userdanger("Your [name] beeps as it reconfigures its tracking algorithms.")) playsound(L, 'sound/machines/triple_beep.ogg', 50, TRUE) mode = new_mode scan_for_target() diff --git a/code/modules/antagonists/pirate/pirate_roles.dm b/code/modules/antagonists/pirate/pirate_roles.dm index 78a3d3fd12acf..3ea82d4c2002e 100644 --- a/code/modules/antagonists/pirate/pirate_roles.dm +++ b/code/modules/antagonists/pirate/pirate_roles.dm @@ -146,7 +146,7 @@ desc = "A surprisingly clean cryogenic sleeper. You can see your reflection on the sides!" density = FALSE you_are_text = "You are an agent working for the space IRS" - flavour_text = "Not even in the expanse of the expanding universe can someone evade the tax man! Whether you are just a well disciplined and professional pirate gang or an actual agent from a local polity. You will squeeze the station dry of it's income regardless! Through peaceful means or otherwise..." + flavour_text = "Not even in the expanse of the expanding universe can someone evade the tax man! Whether you are just a well disciplined and professional pirate gang or an actual agent from a local polity. You will squeeze the station dry of its income regardless! Through peaceful means or otherwise..." icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper" prompt_name = "An agent of the space IRS" @@ -208,7 +208,7 @@ /obj/effect/mob_spawn/ghost_role/human/pirate/medieval/special(mob/living/carbon/spawned_mob) . = ..() if(rank == "Footsoldier") - ADD_TRAIT(spawned_mob, TRAIT_NOGUNS, INNATE_TRAIT) + spawned_mob.add_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), INNATE_TRAIT) spawned_mob.AddComponent(/datum/component/unbreakable) var/datum/action/cooldown/mob_cooldown/dash/dodge = new(spawned_mob) dodge.Grant(spawned_mob) diff --git a/code/modules/antagonists/voidwalker/voidwalker.dm b/code/modules/antagonists/voidwalker/voidwalker.dm new file mode 100644 index 0000000000000..6ba5ee4490dc0 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker.dm @@ -0,0 +1,59 @@ +/// Space antagonist that harasses people near space and cursed them if they get the chance +/datum/antagonist/voidwalker + name = "\improper Voidwalker" + antagpanel_category = ANTAG_GROUP_ABOMINATIONS + job_rank = ROLE_VOIDWALKER + show_in_antagpanel = TRUE + antagpanel_category = "Voidwalker" + show_name_in_check_antagonists = TRUE + show_to_ghosts = TRUE + ui_name = "AntagInfoVoidwalker" + suicide_cry = "FOR THE VOID!!" + preview_outfit = /datum/outfit/voidwalker + +/datum/antagonist/voidwalker/greet() + . = ..() + owner.announce_objectives() + +/datum/antagonist/voidwalker/on_gain() + . = ..() + + var/mob/living/carbon/human/body = owner.current + if(ishuman(body)) + body.set_species(/datum/species/voidwalker) + + forge_objectives() + +/datum/antagonist/voidwalker/on_removal() + var/mob/living/carbon/human/body = owner.current + if(ishuman(body)) + body.set_species(/datum/species/human) + + return ..() + +/datum/antagonist/voidwalker/forge_objectives() + var/datum/objective/voidwalker_objective/objective = new + objective.owner = owner + objectives += objective + +/datum/outfit/voidwalker + name = "Voidwalker (Preview only)" + +/datum/outfit/voidwalker/post_equip(mob/living/carbon/human/human, visualsOnly) + human.set_species(/datum/species/voidwalker) + +/datum/objective/voidwalker_objective + +/datum/objective/voidwalker_objective/New() + var/list/explanation_texts = list( + "Show them the beauty of the void. Drag them into the cosmic abyss, then impart the truth of the void unto them. Seek to enlighten, not destroy.", + "They must see what you have seen. They must walk where you have walked. Bring them to the void and show them the truth. The dead cannot know what you know.", + "Recover what you have lost. Bring your children into the inky black and return them to your flock.", + ) + if(prob(20)) + explanation_text += "Man I fucking love glass." + explanation_text = pick(explanation_texts) + ..() + +/datum/objective/voidwalker_objective/check_completion() + return owner.current.stat != DEAD diff --git a/code/modules/antagonists/voidwalker/voidwalker_abilities.dm b/code/modules/antagonists/voidwalker/voidwalker_abilities.dm new file mode 100644 index 0000000000000..4fe88f50d01c6 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_abilities.dm @@ -0,0 +1,67 @@ +/// Remain in someones view without breaking line of sight +/datum/action/cooldown/spell/pointed/unsettle + name = "Unsettle" + desc = "Stare directly into someone who doesn't see you. Remain in their view for a bit to stun them for 2 seconds and announce your presence to them. " + button_icon_state = "terrify" + background_icon_state = "bg_void" + panel = null + spell_requirements = NONE + cooldown_time = 12 SECONDS + cast_range = 9 + active_msg = "You prepare to stare down a target..." + deactive_msg = "You refocus your eyes..." + /// how long we need to stare at someone to unsettle them (woooooh) + var/stare_time = 8 SECONDS + /// how long we stun someone on succesful cast + var/stun_time = 2 SECONDS + /// stamina damage we doooo + var/stamina_damage = 80 + +/datum/action/cooldown/spell/pointed/unsettle/is_valid_target(atom/cast_on) + . = ..() + + if(!isliving(cast_on)) + cast_on.balloon_alert(owner, "cannot be targeted!") + return FALSE + + if(!check_if_in_view(cast_on)) + owner.balloon_alert(owner, "cannot see you!") + return FALSE + + return TRUE + +/datum/action/cooldown/spell/pointed/unsettle/cast(mob/living/carbon/human/cast_on) + . = ..() + + if(do_after(owner, stare_time, cast_on, IGNORE_TARGET_LOC_CHANGE | IGNORE_USER_LOC_CHANGE, extra_checks = CALLBACK(src, PROC_REF(check_if_in_view), cast_on), hidden = TRUE)) + spookify(cast_on) + return + owner.balloon_alert(owner, "line of sight broken!") + return SPELL_CANCEL_CAST + +/datum/action/cooldown/spell/pointed/unsettle/proc/check_if_in_view(mob/living/carbon/human/target) + SIGNAL_HANDLER + + if(target.is_blind() || !(owner in view(target, world.view))) + return FALSE + return TRUE + +/datum/action/cooldown/spell/pointed/unsettle/proc/spookify(mob/living/carbon/human/target) + target.Paralyze(stun_time) + target.adjustStaminaLoss(stamina_damage) + target.apply_status_effect(/datum/status_effect/speech/slurring/generic) + target.emote("scream") + + new /obj/effect/temp_visual/circle_wave/unsettle(get_turf(owner)) + new /obj/effect/temp_visual/circle_wave/unsettle(get_turf(target)) + SEND_SIGNAL(owner, COMSIG_ATOM_REVEAL) + +/obj/effect/temp_visual/circle_wave/unsettle + color = COLOR_PURPLE + +/datum/action/cooldown/spell/list_target/telepathy/voidwalker + name = "Transmit" + background_icon_state = "bg_void" + button_icon = 'icons/mob/actions/actions_voidwalker.dmi' + button_icon_state = "voidwalker_telepathy" + panel = null diff --git a/code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm b/code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm new file mode 100644 index 0000000000000..a8e5b8de30f39 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm @@ -0,0 +1,147 @@ +///Turn the damage overlays glassy +#define GLASSY_OVERLAY_MATRIX list(\ + 1, 2, 2, 0, \ + 0, 1, 0, 0, \ + 0, 0, 1, 0, \ + 0, 0, 0, 1, \ + 0, 0, 0, 0) + +/obj/item/bodypart/head/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + bodypart_traits = list(TRAIT_MUTE) + head_flags = NONE + blocks_emissive = EMISSIVE_BLOCK_NONE + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/chest/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/arm/left/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + bodypart_traits = list(TRAIT_CHUNKYFINGERS) + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/arm/right/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + bodypart_traits = list(TRAIT_CHUNKYFINGERS) + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/leg/left/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/leg/right/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +#undef GLASSY_OVERLAY_MATRIX diff --git a/code/modules/antagonists/voidwalker/voidwalker_kidnap.dm b/code/modules/antagonists/voidwalker/voidwalker_kidnap.dm new file mode 100644 index 0000000000000..b763d094cb75a --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_kidnap.dm @@ -0,0 +1,112 @@ +/// A global assoc list for the drop of point +GLOBAL_LIST_EMPTY(voidwalker_void) + +/// Lardmarks meant to designate where voidwalker kidnapees are sent +/obj/effect/landmark/voidwalker_void + name = "default voidwalker void landmark" + icon_state = "x" + +/obj/effect/landmark/voidwalker_void/Initialize(mapload) + . = ..() + GLOB.voidwalker_void += src + +/obj/effect/landmark/voidwalker_void/Destroy() + GLOB.voidwalker_void -= src + return ..() + +/// Voidwalker void where the people go +/area/centcom/voidwalker_void + name = "Voidwalker void" + icon_state = "voidwalker" + has_gravity = STANDARD_GRAVITY + ambience_index = AMBIENCE_SPOOKY + sound_environment = SOUND_ENVIRONMENT_CAVE + area_flags = UNIQUE_AREA | NOTELEPORT | HIDDEN_AREA | BLOCK_SUICIDE + +/// Mini car where people drive around in in their mangled corpse to heal a bit before they get dumped back on station +/obj/effect/wisp_mobile + name = "wisp" + + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "wisp" + + light_system = OVERLAY_LIGHT + light_color = COLOR_WHITE + light_range = 4 + light_power = 1 + light_on = TRUE + + /// Delay between movements + var/move_delay = 0.5 SECONDS + /// when can we move again? + var/can_move + /// what do we eatt? + var/food_type = /obj/effect/wisp_food + /// how much do we heal per food? + var/heal_per_food = 15 + /// Traits given to the wisp driver + var/wisp_driver_traits = list(TRAIT_STASIS, TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_HANDS_BLOCKED) + +/obj/effect/wisp_mobile/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) + . = ..() + + if(!isliving(arrived)) + return + + var/mob/living/driver = arrived + driver.forceMove(src) + driver.add_traits(wisp_driver_traits, REF(src)) + add_atom_colour(random_color(), FIXED_COLOUR_PRIORITY) + + addtimer(CALLBACK(driver, TYPE_PROC_REF(/atom/movable, forceMove), get_safe_random_station_turf()), 60 SECONDS) + +/obj/effect/wisp_mobile/relaymove(mob/living/user, direction) + if(can_move >= world.time) + return + can_move = world.time + move_delay + + if(isturf(loc)) + can_move = world.time + move_delay + try_step_multiz(direction) + +/obj/effect/wisp_mobile/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + + var/obj/food = locate(food_type) in loc + if(!food) + return + + qdel(food) + + // make new food + var/area/our_area = get_area(src) + new food_type(pick(get_area_turfs(our_area))) + + var/mob/living/driver = locate(/mob/living) in contents + if(driver) + driver.heal_ordered_damage(heal_per_food, list(BRUTE, BURN, OXY)) + playsound(src, 'sound/misc/server-ready.ogg', 50, TRUE, -1) + +/obj/effect/wisp_mobile/Exited(atom/movable/gone, direction) + . = ..() + + gone.remove_traits(wisp_driver_traits, REF(src)) + to_chat(gone, span_boldwarning("You feel it would be very bad to get caught again.")) + qdel(src) + +/// we only exist to be eaten by wisps for food 😔👊 +/obj/effect/wisp_food + name = "wisp" + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "wisp" + + color = COLOR_YELLOW + + light_system = OVERLAY_LIGHT + light_color = COLOR_WHITE + light_range = 4 + light_power = 1 + light_on = TRUE + +/obj/item/restraints/handcuffs/energy/void + breakouttime = INFINITY diff --git a/code/modules/antagonists/voidwalker/voidwalker_loot.dm b/code/modules/antagonists/voidwalker/voidwalker_loot.dm new file mode 100644 index 0000000000000..8d3420d0a5278 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_loot.dm @@ -0,0 +1,39 @@ +/// Gives someone the stable voided trauma and then self destructs +/obj/item/cosmic_skull + name = "cosmic skull" + desc = "You can see and feel the surrounding space pulsing through it..." + + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "cosmic_skull_charged" + + /// Icon state for when drained + var/drained_icon_state = "cosmic_skull_drained" + /// How many uses does it have left? + var/uses = 1 + +/obj/item/cosmic_skull/attack_self(mob/user, modifiers) + . = ..() + + if(!uses || !ishuman(user)) + return + + var/mob/living/carbon/human/hewmon = user + if(is_species(hewmon, /datum/species/voidwalker)) + to_chat(user, span_bolddanger("OH GOD NOO!!!! WHYYYYYYYYY!!!!! WHO WOULD DO THIS?!!")) + return + + to_chat(user, span_purple("You begin staring into the [name]...")) + + if(!do_after(user, 10 SECONDS, src)) + return + + var/mob/living/carbon/human/starer = user + starer.cure_trauma_type(/datum/brain_trauma/voided) //this wouldn't make much sense to have anymore + + starer.gain_trauma(/datum/brain_trauma/voided/stable) + to_chat(user, span_purple("And a whole world opens up to you.")) + playsound(get_turf(user), 'sound/effects/curse5.ogg', 60) + + uses-- + if(uses <= 0 ) + icon_state = drained_icon_state diff --git a/code/modules/antagonists/voidwalker/voidwalker_organs.dm b/code/modules/antagonists/voidwalker/voidwalker_organs.dm new file mode 100644 index 0000000000000..e6e3d028ac8ef --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_organs.dm @@ -0,0 +1,132 @@ +/// Voidwalker eyes with nightvision and thermals +/obj/item/organ/internal/eyes/voidwalker + name = "blackened orbs" + desc = "These orbs will withstand the light of the sun, yet still see within the darkest voids." + eye_icon_state = null + pepperspray_protect = TRUE + flash_protect = FLASH_PROTECTION_WELDER + color_cutoffs = list(20, 10, 40) + sight_flags = SEE_MOBS + +/// Voidwalker brain stacked with a lot of the abilities +/obj/item/organ/internal/brain/voidwalker + name = "cosmic brain" + desc = "A mind fully integrated into the cosmic thread." + icon = 'icons/obj/medical/organs/shadow_organs.dmi' + can_smoothen_out = FALSE + + /// Alpha we have in space + var/space_alpha = 15 + /// Alpha we have elsewhere + var/non_space_alpha = 255 + /// We settle the un + var/datum/action/unsettle = /datum/action/cooldown/spell/pointed/unsettle + /// Regen effect we have in space + var/datum/status_effect/regen = /datum/status_effect/space_regeneration + /// Speed modifier given when in gravity + var/datum/movespeed_modifier/speed_modifier = /datum/movespeed_modifier/grounded_voidwalker + /// The void eater weapon + var/obj/item/glass_breaker = /obj/item/void_eater + /// Our brain transmit telepathy spell + var/datum/action/transmit = /datum/action/cooldown/spell/list_target/telepathy/voidwalker + +/obj/item/organ/internal/brain/voidwalker/on_mob_insert(mob/living/carbon/organ_owner, special, movement_flags) + . = ..() + + RegisterSignal(organ_owner, COMSIG_ATOM_ENTERING, PROC_REF(on_atom_entering)) + + organ_owner.AddComponent(/datum/component/space_camo, space_alpha, non_space_alpha, 5 SECONDS) + + organ_owner.AddElement(/datum/element/only_pull_living) + organ_owner.AddElement(/datum/element/glass_pacifist) + organ_owner.AddElement(/datum/element/no_crit_hitting) + + organ_owner.apply_status_effect(regen) + + unsettle = new unsettle(organ_owner) + unsettle.Grant(organ_owner) + + transmit = new transmit(organ_owner) + transmit.Grant(organ_owner) + + glass_breaker = new/obj/item/void_eater + organ_owner.put_in_hands(glass_breaker) + +/obj/item/organ/internal/brain/voidwalker/on_mob_remove(mob/living/carbon/organ_owner, special) + . = ..() + + UnregisterSignal(organ_owner, COMSIG_ENTER_AREA) + alpha = 255 + + qdel(organ_owner.GetComponent(/datum/component/space_camo)) + + organ_owner.RemoveElement(/datum/element/only_pull_living) + organ_owner.RemoveElement(/datum/element/glass_pacifist) + organ_owner.RemoveElement(/datum/element/no_crit_hitting) + + organ_owner.remove_status_effect(regen) + + unsettle.Remove(organ_owner) + unsettle = initial(unsettle) + + transmit.Remove(organ_owner) + transmit = initial(transmit) + + if(glass_breaker) + qdel(glass_breaker) + +/obj/item/organ/internal/brain/voidwalker/proc/on_atom_entering(mob/living/carbon/organ_owner, atom/entering) + SIGNAL_HANDLER + + if(!isturf(entering)) + return + + var/turf/new_turf = entering + + //apply debufs for being in gravity + if(new_turf.has_gravity()) + organ_owner.add_movespeed_modifier(speed_modifier) + //remove debufs for not being in gravity + else + organ_owner.remove_movespeed_modifier(speed_modifier) + +/obj/item/organ/internal/brain/voidwalker/on_death() + . = ..() + + var/turf/spawn_loc = get_turf(owner) + new /obj/effect/spawner/random/glass_shards (spawn_loc) + new /obj/item/cosmic_skull (spawn_loc) + playsound(get_turf(owner), SFX_SHATTER, 100) + + qdel(owner) + +/obj/item/implant/radio/voidwalker + radio_key = /obj/item/encryptionkey/heads/captain + actions_types = null + +/obj/effect/spawner/random/glass_shards + loot = list(/obj/item/shard = 2, /obj/item/shard/plasma = 1, /obj/item/shard/titanium = 1, /obj/item/shard/plastitanium = 1) + spawn_random_offset = TRUE + + /// Min shards we generate + var/min_spawn = 4 + /// Max shards we generate + var/max_spawn = 6 + +/obj/effect/spawner/random/glass_shards/Initialize(mapload) + spawn_loot_count = rand(min_spawn, max_spawn) + + return ..() + +/obj/effect/spawner/random/glass_shards/mini + min_spawn = 1 + max_spawn = 2 + +/obj/effect/spawner/random/glass_debris + /// Weighted list for the debris we spawn + loot = list( + /obj/effect/decal/cleanable/glass = 2, + /obj/effect/decal/cleanable/glass/plasma = 1, + /obj/effect/decal/cleanable/glass/titanium = 1, + /obj/effect/decal/cleanable/glass/plastitanium = 1, + ) diff --git a/code/modules/antagonists/voidwalker/voidwalker_particles.dm b/code/modules/antagonists/voidwalker/voidwalker_particles.dm new file mode 100644 index 0000000000000..8ffbd4abd449e --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_particles.dm @@ -0,0 +1,15 @@ +/particles/void_kidnap + icon = 'icons/effects/particles/voidwalker.dmi' + icon_state = list("kidnap_1" = 1, "kidnap_2" = 1, "kidnap_3" = 2) + width = 100 + height = 300 + count = 1000 + spawning = 20 + lifespan = 1.5 SECONDS + fade = 1 SECONDS + velocity = list(0, 0.4, 0) + position = generator(GEN_SPHERE, 12, 12, NORMAL_RAND) + drift = generator(GEN_SPHERE, 0, 1, NORMAL_RAND) + friction = 0.2 + gravity = list(0.95, 0) + grow = 0.05 diff --git a/code/modules/antagonists/voidwalker/voidwalker_species.dm b/code/modules/antagonists/voidwalker/voidwalker_species.dm new file mode 100644 index 0000000000000..069582fbb2c7e --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_species.dm @@ -0,0 +1,73 @@ +/// Species for the voidwalker antagonist +/datum/species/voidwalker + name = "\improper Voidling" + id = SPECIES_VOIDWALKER + sexes = FALSE + inherent_traits = list( + TRAIT_NOBREATH, + TRAIT_NO_UNDERWEAR, + TRAIT_RADIMMUNE, + TRAIT_VIRUSIMMUNE, + TRAIT_NOBLOOD, + TRAIT_NODISMEMBER, + TRAIT_NEVER_WOUNDED, + TRAIT_MOVE_FLYING, + TRAIT_RESISTCOLD, + TRAIT_RESISTHIGHPRESSURE, + TRAIT_RESISTLOWPRESSURE, + TRAIT_NOHUNGER, + TRAIT_FREE_HYPERSPACE_MOVEMENT, + TRAIT_ADVANCEDTOOLUSER, + TRAIT_NO_BLOOD_OVERLAY, + TRAIT_NO_THROWING, + ) + changesource_flags = MIRROR_BADMIN + + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/voidwalker, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/voidwalker, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/voidwalker, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/voidwalker, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/voidwalker, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/voidwalker, + ) + + no_equip_flags = ITEM_SLOT_OCLOTHING | ITEM_SLOT_ICLOTHING | ITEM_SLOT_GLOVES | ITEM_SLOT_MASK | ITEM_SLOT_HEAD | ITEM_SLOT_FEET | ITEM_SLOT_BACK | ITEM_SLOT_EARS | ITEM_SLOT_EYES + + mutantbrain = /obj/item/organ/internal/brain/voidwalker + mutanteyes = /obj/item/organ/internal/eyes/voidwalker + mutantheart = null + mutantlungs = null + mutanttongue = null + + siemens_coeff = 0 + +/datum/species/voidwalker/on_species_gain(mob/living/carbon/human/human_who_gained_species, datum/species/old_species, pref_load) + . = ..() + + human_who_gained_species.AddComponent(/datum/component/glass_passer) + human_who_gained_species.AddComponent(/datum/component/space_dive) + human_who_gained_species.AddComponent(/datum/component/space_kidnap) + + var/obj/item/implant/radio = new /obj/item/implant/radio/voidwalker (human_who_gained_species) + radio.implant(human_who_gained_species, null, TRUE, TRUE) + + human_who_gained_species.AddComponent(/datum/component/planet_allergy) + + human_who_gained_species.fully_replace_character_name(null, pick(GLOB.voidwalker_names)) + +/datum/species/voidwalker/on_species_loss(mob/living/carbon/human/human, datum/species/new_species, pref_load) + . = ..() + + qdel(human.GetComponent(/datum/component/glass_passer)) + qdel(human.GetComponent(/datum/component/space_dive)) + qdel(human.GetComponent(/datum/component/space_kidnap)) + + var/obj/item/implant/radio = locate(/obj/item/implant/radio/voidwalker) in human + if(radio) + qdel(radio) + + qdel(human.GetComponent(/datum/component/planet_allergy)) + +/datum/species/voidwalker/check_roundstart_eligible() + return FALSE diff --git a/code/modules/antagonists/voidwalker/voidwalker_status_effects.dm b/code/modules/antagonists/voidwalker/voidwalker_status_effects.dm new file mode 100644 index 0000000000000..6dc9cdc35ca7b --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_status_effects.dm @@ -0,0 +1,41 @@ +/// THE GRAVITY!!! IT WEIGHS!!! +/datum/movespeed_modifier/grounded_voidwalker + multiplicative_slowdown = 1.1 + +/// Regenerate in space +/datum/status_effect/space_regeneration + id = "space_regeneration" + duration = INFINITE + alert_type = null + // How much do we heal per tick? + var/healing = 1.5 + +/datum/status_effect/space_regeneration/tick(effect) + heal_owner() + +/// Regenerate health whenever this status effect is applied or reapplied +/datum/status_effect/space_regeneration/proc/heal_owner() + if(isspaceturf(get_turf(owner))) + owner.heal_ordered_damage(healing, list(BRUTE, BURN, OXY, STAMINA, TOX, BRAIN)) + +/datum/status_effect/planet_allergy + id = "planet_allergy" + duration = INFINITE + alert_type = /atom/movable/screen/alert/veryhighgravity + +/datum/status_effect/planet_allergy/tick() + owner.adjustBruteLoss(1) + +/datum/status_effect/void_eatered + duration = 10 SECONDS + remove_on_fullheal = TRUE + +/datum/status_effect/void_eatered/on_apply() + . = ..() + + ADD_TRAIT(owner, TRAIT_NODEATH, REF(src)) + +/datum/status_effect/void_eatered/on_remove() + . = ..() + + REMOVE_TRAIT(owner, TRAIT_NODEATH, REF(src)) diff --git a/code/modules/antagonists/voidwalker/voidwalker_traumas.dm b/code/modules/antagonists/voidwalker/voidwalker_traumas.dm new file mode 100644 index 0000000000000..0a0db9da4fc25 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_traumas.dm @@ -0,0 +1,91 @@ +/// Curse brain trauma that makes someone space textured, mute, pacifist and forbids them from entering space +/datum/brain_trauma/voided + name = "Voided" + desc = "They've seen the secrets of the cosmos, in exchange for a curse that keeps them chained." + scan_desc = "cosmic neural pattern" + gain_text = "" + lose_text = "" + resilience = TRAUMA_RESILIENCE_LOBOTOMY + random_gain = FALSE + /// Type for the bodypart texture we add + var/bodypart_overlay_type = /datum/bodypart_overlay/texture/spacey + ///traits we give on gain + var/list/traits_to_apply = list(TRAIT_PACIFISM) // BUBBER EDIT - REMOVES TRAIT_MUTE + /// Do we ban the person from entering space? + var/ban_from_space = TRUE + +/datum/brain_trauma/voided/on_gain() + . = ..() + + owner.add_traits(traits_to_apply, REF(src)) + if(ban_from_space) + owner.AddComponent(/datum/component/banned_from_space) + owner.AddComponent(/datum/component/planet_allergy) + RegisterSignal(owner, COMSIG_CARBON_ATTACH_LIMB, PROC_REF(texture_limb)) //also catch new limbs being attached + RegisterSignal(owner, COMSIG_CARBON_REMOVE_LIMB, PROC_REF(untexture_limb)) //and remove it from limbs if they go away + + for(var/obj/item/bodypart as anything in owner.bodyparts) + texture_limb(owner, bodypart) + + //your underwear is belong to us + if(ishuman(owner)) + var/mob/living/carbon/human/human = owner //CARBON WILL NEVER BE REAL!!!!! + human.underwear = "Nude" + human.undershirt = "Nude" + human.socks = "Nude" + + owner.update_body() + +/datum/brain_trauma/voided/on_lose() + . = ..() + + owner.remove_traits(traits_to_apply, REF(src)) + UnregisterSignal(owner, list(COMSIG_CARBON_ATTACH_LIMB, COMSIG_CARBON_REMOVE_LIMB)) + if(ban_from_space) + qdel(owner.GetComponent(/datum/component/banned_from_space)) + qdel(owner.GetComponent(/datum/component/planet_allergy)) + + for(var/obj/item/bodypart/bodypart as anything in owner.bodyparts) + untexture_limb(owner, bodypart) + +/// Apply the space texture +/datum/brain_trauma/voided/proc/texture_limb(atom/source, obj/item/bodypart/limb) + SIGNAL_HANDLER + + limb.add_bodypart_overlay(new bodypart_overlay_type) + if(istype(limb, /obj/item/bodypart/head)) + var/obj/item/bodypart/head/head = limb + head.head_flags &= ~HEAD_EYESPRITES + +/datum/brain_trauma/voided/proc/untexture_limb(atom/source, obj/item/bodypart/limb) + SIGNAL_HANDLER + + var/overlay = locate(bodypart_overlay_type) in limb.bodypart_overlays + if(overlay) + limb.remove_bodypart_overlay(overlay) + + if(istype(limb, /obj/item/bodypart/head)) + var/obj/item/bodypart/head/head = limb + head.head_flags = initial(head.head_flags) + +/datum/brain_trauma/voided/on_death() + . = ..() + + if(is_on_a_planet(owner)) + qdel(src) + +/// Positive version of the previous. Get space immunity and the ability to slowly move through glass (but you still get muted) +/datum/brain_trauma/voided/stable + scan_desc = "stable cosmic neural pattern" + traits_to_apply = list(TRAIT_MUTE, TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTCOLD) + ban_from_space = FALSE + +/datum/brain_trauma/voided/stable/on_gain() + . = ..() + + owner.AddComponent(/datum/component/glass_passer, 2 SECONDS) + +/datum/brain_trauma/voided/stable/on_lose() + . = ..() + + qdel(owner.GetComponent(/datum/component/glass_passer)) diff --git a/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm b/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm new file mode 100644 index 0000000000000..db638c2b94818 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm @@ -0,0 +1,99 @@ +/** + * An armblade that pops windows + */ +/obj/item/void_eater + name = "void eater" //as opposed to full eater + desc = "A deformed appendage, capable of shattering any glass and any flesh." + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "tentacle" + inhand_icon_state = "tentacle" + force = 25 + armour_penetration = 35 + lefthand_file = 'icons/mob/inhands/antag/voidwalker_lefthand.dmi' + righthand_file = 'icons/mob/inhands/antag/voidwalker_righthand.dmi' + blocks_emissive = EMISSIVE_BLOCK_NONE + item_flags = ABSTRACT | DROPDEL + resistance_flags = INDESTRUCTIBLE | ACID_PROOF | FIRE_PROOF | LAVA_PROOF | UNACIDABLE + w_class = WEIGHT_CLASS_HUGE + tool_behaviour = TOOL_MINING + hitsound = 'sound/weapons/bladeslice.ogg' + wound_bonus = -30 + bare_wound_bonus = 20 + + /// Damage we loss per hit + var/damage_loss_per_hit = 0.5 + /// The minimal damage we can reach + var/damage_minimum = 15 + +/obj/item/void_eater/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) + + AddComponent(/datum/component/temporary_glass_shatterer) + +/obj/item/void_eater/pickup(mob/user) + . = ..() + + RegisterSignal(user, COMSIG_VOIDWALKER_SUCCESFUL_KIDNAP, PROC_REF(refresh)) + +/obj/item/void_eater/dropped(mob/user, silent) + . = ..() + UnregisterSignal(user, COMSIG_VOIDWALKER_SUCCESFUL_KIDNAP) + +/obj/item/void_eater/examine(mob/user) + . = ..() + . += span_notice("The [name] weakens each hit, recharge it by kidnapping someone!") + . += span_notice("Sharpness: [round(force)]/[initial(force)]") + +/obj/item/void_eater/attack(mob/living/target_mob, mob/living/user, params) + if(!ishuman(target_mob)) + return ..() + + var/mob/living/carbon/human/hewmon = target_mob + + if(hewmon.has_trauma_type(/datum/brain_trauma/voided)) + var/turf/spawnloc = get_turf(hewmon) + + if(hewmon.stat != DEAD) + hewmon.balloon_alert(user, "already voided!") + playsound(hewmon, SFX_SHATTER, 60) + new /obj/effect/spawner/random/glass_shards/mini (spawnloc) + hewmon.adjustBruteLoss(10) // BONUS DAMAGE + else + hewmon.balloon_alert(user, "shattering...") + if(do_after(user, 4 SECONDS, hewmon)) + new /obj/effect/spawner/random/glass_shards (spawnloc) + var/obj/item/organ/brain = hewmon.get_organ_by_type(/obj/item/organ/internal/brain) + if(brain) + brain.Remove(hewmon) + brain.forceMove(spawnloc) + brain.balloon_alert(user, "shattered!") + playsound(hewmon, SFX_SHATTER, 100) + qdel(hewmon) + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(hewmon.stat == HARD_CRIT && !hewmon.has_trauma_type(/datum/brain_trauma/voided)) + target_mob.balloon_alert(user, "is in crit!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + target_mob.apply_status_effect(/datum/status_effect/void_eatered) + + if(force == damage_minimum + damage_loss_per_hit) + user.balloon_alert(user, "void eater blunted!") + + force = max(force - damage_loss_per_hit, damage_minimum) + + if(prob(5)) + new /obj/effect/spawner/random/glass_debris (get_turf(user)) + return ..() + +/// Called when the voidwalker kidnapped someone +/obj/item/void_eater/proc/refresh(mob/living/carbon/human/voidwalker) + SIGNAL_HANDLER + + force = initial(force) + + color = "#000000" + animate(src, color = null, time = 1 SECONDS)//do a color flashy woosh + + to_chat(voidwalker, span_boldnotice("Your [name] refreshes!")) diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 9130883d457ef..a954391bfdb7f 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -516,7 +516,7 @@ playsound(newstruct, 'sound/effects/constructform.ogg', 50) if(stoner) newstruct.faction |= "[REF(stoner)]" - newstruct.master = stoner + newstruct.construct_master = stoner var/datum/action/innate/seek_master/seek_master = new seek_master.Grant(newstruct) diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm index 0586d7ea6da4a..18e2dae715c34 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm @@ -70,6 +70,15 @@ for(var/spell in user.actions) if(is_type_in_typecache(spell, no_coexistance_typecache)) return FALSE + var/datum/antagonist/wizard/wizard_datum = user.mind.has_antag_datum(/datum/antagonist/wizard) + if(!wizard_datum) + return TRUE + for(var/perks in wizard_datum.perks) + if(is_type_in_typecache(perks, no_coexistance_typecache)) + return FALSE + if(is_type_in_list(src, wizard_datum.perks)) + to_chat(user, span_warning("This perk already learned!")) + return FALSE return TRUE /** @@ -137,6 +146,9 @@ * Return TRUE if it can refunded, FALSE otherwise */ /datum/spellbook_entry/proc/can_refund(mob/living/carbon/human/user, obj/item/spellbook/book) + if(HAS_TRAIT(user, TRAIT_SPELLS_LOTTERY)) + to_chat(user, span_notice("No refund.")) + return FALSE if(!refundable) return FALSE if(!book.refunds_allowed) @@ -203,6 +215,11 @@ log_spellbook("[key_name(user)] bought [src] for [cost] points") SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) log_purchase(user.key) + + ADD_TRAIT(spawned_path, TRAIT_CONTRABAND, INNATE_TRAIT) + for(var/obj/contained as anything in spawned_path.contents) + ADD_TRAIT(contained, TRAIT_CONTRABAND, INNATE_TRAIT) + try_equip_item(user, spawned_path) return spawned_path diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm index a66d99c21c88d..e7c204a39e214 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm @@ -55,7 +55,7 @@ it will become easier for others to find your item of power." spell_type = /datum/action/cooldown/spell/lichdom category = SPELLBOOK_CATEGORY_DEFENSIVE - no_coexistance_typecache = list(/datum/action/cooldown/spell/splattercasting) + no_coexistance_typecache = list(/datum/action/cooldown/spell/splattercasting, /datum/spellbook_entry/perks/wormborn) /datum/spellbook_entry/chuunibyou name = "Chuuni Invocations" diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/offensive.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/offensive.dm index 9eb35cbf7b42e..6b8272ed5b7ad 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook_entries/offensive.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/offensive.dm @@ -39,6 +39,13 @@ category = SPELLBOOK_CATEGORY_OFFENSIVE cost = 1 +/datum/spellbook_entry/tie_shoes + name = "Tie Shoes" + desc = "This unassuming spell first unties, then knots the target's shoes. While weak at first glance, each upgrade quietens the spell, allowing it to untie laceless footwear and even summon shoes to knot!" + spell_type = /datum/action/cooldown/spell/pointed/untie_shoes + category = SPELLBOOK_CATEGORY_OFFENSIVE + cost = 1 + /datum/spellbook_entry/mutate name = "Mutate" desc = "Causes you to turn into a hulk and gain laser vision for a short while." diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/perks.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/perks.dm new file mode 100644 index 0000000000000..6cebe8fa1e974 --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/perks.dm @@ -0,0 +1,184 @@ +#define SPELLBOOK_CATEGORY_PERKS "Perks" + +/datum/spellbook_entry/perks + desc = "Main node of perks" + category = SPELLBOOK_CATEGORY_PERKS + refundable = FALSE // no refund + requires_wizard_garb = FALSE + +/datum/spellbook_entry/perks/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + var/datum/antagonist/wizard/wizard_datum = user.mind.has_antag_datum(/datum/antagonist/wizard) + if(wizard_datum) + wizard_datum.perks += src + to_chat(user, span_notice("You got a new perk: [src.name].")) + return TRUE + +/datum/spellbook_entry/perks/fourhands + name = "Four Hands" + desc = "Gives you even more hands to perform magic" + +/datum/spellbook_entry/perks/fourhands/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.change_number_of_hands(4) + +/datum/spellbook_entry/perks/wormborn + name = "Worm Born" + desc = "Your soul is infested with mana worms. When you die, you will be reborn as a large worm. \ + When the worm dies, it has no such luck. Parasitic infection prevents you from binding your soul to objects." + no_coexistance_typecache = list(/datum/action/cooldown/spell/lichdom) + +/datum/spellbook_entry/perks/wormborn/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.AddComponent(/datum/component/wormborn) + +/datum/spellbook_entry/perks/dejavu + name = "Déjà vu" + desc = "Every 60 seconds returns you to the place where you were 60 seconds ago with the same amount of health as you had 60 seconds ago." + +/datum/spellbook_entry/perks/dejavu/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + RegisterSignal(user, COMSIG_ENTER_AREA, PROC_REF(give_dejavu)) + +/datum/spellbook_entry/perks/dejavu/proc/give_dejavu(mob/living/carbon/human/wizard, area/new_area) + SIGNAL_HANDLER + + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + wizard.AddComponent(/datum/component/dejavu/timeline, -1, 60 SECONDS) + UnregisterSignal(wizard, COMSIG_ENTER_AREA) + +/datum/spellbook_entry/perks/spell_lottery + name = "Spells Lottery" + desc = "Spells Lottery gives you the chance to get something from the book absolutely free, but you can no longer refund any purchases." + +/datum/spellbook_entry/perks/spell_lottery/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + ADD_TRAIT(user, TRAIT_SPELLS_LOTTERY, REF(src)) + +/datum/spellbook_entry/perks/gamble + name = "Gamble" + desc = "You get 2 random perks." + +/datum/spellbook_entry/perks/gamble/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + var/datum/antagonist/wizard/check_perks = user.mind.has_antag_datum(/datum/antagonist/wizard) + var/perks_allocated = 0 + var/list/taking_perks = list() + for(var/datum/spellbook_entry/perks/generate_perk in book.entries) + if(istype(generate_perk, src)) + continue + if(check_perks && is_type_in_list(generate_perk, check_perks.perks)) + continue + taking_perks += generate_perk + perks_allocated++ + if(perks_allocated >= 2) + break + if(taking_perks.len < 1) + to_chat(user, span_warning("Gamble cannot give 2 perks, so points are returned")) + return FALSE + taking_perks = shuffle(taking_perks) + for(var/datum/spellbook_entry/perks/perks_ready in taking_perks) + perks_ready.buy_spell(user, book, log_buy) + +/datum/spellbook_entry/perks/heart_eater + name = "Heart Eater" + desc = "Gives you ability to obtain a person's life force by eating their heart. \ + By eating someone's heart you can increase your damage resistance or gain random mutation. \ + Heart also give strong healing buff." + +/datum/spellbook_entry/perks/heart_eater/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.AddComponent(/datum/component/heart_eater) + +/datum/spellbook_entry/perks/slime_friends + name = "Slime Friends" + desc = "Slimes are your friends. \ + Every 15 seconds you lose some nutriments and summon a random evil slime to fight on your side." + +/datum/spellbook_entry/perks/slime_friends/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.AddComponent(/datum/component/slime_friends) + +/datum/spellbook_entry/perks/transparence + name = "Transparence" + desc = "You become a little closer to the world of the dead. \ + Projectiles pass through you, but you lose 25% of your health and you are hunted by a terrible curse which wants to return you to the afterlife." + +/datum/spellbook_entry/perks/transparence/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.maxHealth *= 0.75 + user.alpha = 125 + ADD_TRAIT(user, TRAIT_UNHITTABLE_BY_PROJECTILES, REF(src)) + RegisterSignal(user, COMSIG_ENTER_AREA, PROC_REF(make_stalker)) + +/datum/spellbook_entry/perks/transparence/proc/make_stalker(mob/living/carbon/human/wizard, area/new_area) + SIGNAL_HANDLER + + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + wizard.gain_trauma(/datum/brain_trauma/magic/stalker) + UnregisterSignal(wizard, COMSIG_ENTER_AREA) + +/datum/spellbook_entry/perks/magnetism + name = "Magnetism" + desc = "You get a small gravity anomaly that orbit around you. \ + Nearby things will be attracted to you." + +/datum/spellbook_entry/perks/magnetism/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + var/atom/movable/magnitizm = new /obj/effect/wizard_magnetism(get_turf(user)) + magnitizm.orbit(user, 20) + +/obj/effect/wizard_magnetism + name = "magnetic anomaly" + icon = 'icons/effects/effects.dmi' + icon_state = "shield2" + /// We need to orbit around someone. + var/datum/weakref/owner + +/obj/effect/wizard_magnetism/New(loc, ...) + . = ..() + transform *= 0.4 + +/obj/effect/wizard_magnetism/orbit(atom/new_owner, radius, clockwise, rotation_speed, rotation_segments, pre_rotation) + . = ..() + if(!isliving(new_owner)) + return + owner = WEAKREF(new_owner) + RegisterSignal(new_owner, COMSIG_ENTER_AREA, PROC_REF(check_area)) + RegisterSignal(new_owner, COMSIG_LIVING_DEATH, PROC_REF(on_owner_death)) + +/obj/effect/wizard_magnetism/proc/check_area(mob/living/wizard, area/new_area) + SIGNAL_HANDLER + + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + START_PROCESSING(SSprocessing, src) + UnregisterSignal(wizard, COMSIG_ENTER_AREA) + +/obj/effect/wizard_magnetism/proc/on_owner_death() + SIGNAL_HANDLER + + stop_orbit() + +/obj/effect/wizard_magnetism/process(seconds_per_tick) + if(isnull(owner)) + stop_orbit() + return + var/mob/living/wizard = owner.resolve() + var/list/things_in_range = orange(5, wizard) - orange(1, wizard) + for(var/obj/take_object in things_in_range) + if(!take_object.anchored) + step_towards(take_object, wizard) + for(var/mob/living/living_mov in things_in_range) + if(wizard) + if(living_mov == wizard) + continue + if(!living_mov.mob_negates_gravity()) + step_towards(living_mov, wizard) + +/obj/effect/wizard_magnetism/stop_orbit() + STOP_PROCESSING(SSprocessing, src) + qdel(src) + +#undef SPELLBOOK_CATEGORY_PERKS diff --git a/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm b/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm index d3f9b3ff86614..98ee3d0f22aa7 100644 --- a/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm @@ -229,6 +229,10 @@ return FALSE to_buy.times++ + if(HAS_TRAIT(user, TRAIT_SPELLS_LOTTERY)) + if(prob(50 / to_buy.cost)) + to_chat(user, span_notice("This spell was given to you for free!")) + return TRUE uses -= to_buy.cost return TRUE diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm b/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm index d2f4a5a076358..7c228574a0694 100644 --- a/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm +++ b/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm @@ -9,7 +9,16 @@ /datum/grand_finale/clown/trigger(mob/living/carbon/human/invoker) for(var/mob/living/carbon/human/victim as anything in GLOB.human_list) victim.Unconscious(3 SECONDS) - if (!victim.mind || IS_HUMAN_INVADER(victim) || victim == invoker) + if (victim == invoker) + if(locate(/datum/action/cooldown/spell/pointed/untie_shoes) in invoker.actions) + continue + var/datum/action/cooldown/spell/pointed/untie_shoes/newer_spell = new(invoker) + newer_spell.Grant(invoker) + for(var/i in 1 to newer_spell.spell_max_level) + newer_spell.level_spell() + newer_spell.invocation_type = INVOCATION_SHOUT + continue + if (!victim.mind || IS_HUMAN_INVADER(victim)) continue if (HAS_TRAIT(victim, TRAIT_CLOWN_ENJOYER)) victim.add_mood_event("clown_world", /datum/mood_event/clown_world) @@ -23,6 +32,8 @@ if (is_clown_job(victim.mind.assigned_role)) var/datum/action/cooldown/spell/conjure_item/clown_pockets/new_spell = new(victim) new_spell.Grant(victim) + var/datum/action/cooldown/spell/pointed/untie_shoes/newer_spell = new(victim) + newer_spell.Grant(victim) continue dress_as_magic_clown(victim) if (prob(15)) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 3efb007ab6eaa..223c4d73b70ca 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -25,6 +25,8 @@ GLOBAL_LIST_EMPTY(wizard_spellbook_purchases_by_key) show_to_ghosts = TRUE /// This mob's Grand Ritual ability var/datum/action/cooldown/grand_ritual/ritual + /// Perks that wizard learn + var/list/perks = list() /datum/antagonist/wizard/New() if(move_to_lair) // kick off loading of your lair, if you want to be moved to it diff --git a/code/modules/art/paintings.dm b/code/modules/art/paintings.dm index 0bb3bcfe8ead7..8affc71e568f3 100644 --- a/code/modules/art/paintings.dm +++ b/code/modules/art/paintings.dm @@ -91,6 +91,14 @@ painting_metadata.height = height ADD_KEEP_TOGETHER(src, INNATE_TRAIT) +/obj/item/canvas/Destroy() + last_patron = null + if(istype(loc,/obj/structure/sign/painting)) + var/obj/structure/sign/painting/frame = loc + frame.remove_art_element(painting_metadata.credit_value) + painting_metadata = null + return ..() + /obj/item/canvas/proc/reset_grid() grid = new/list(width,height) for(var/x in 1 to width) @@ -102,6 +110,8 @@ ui_interact(user) /obj/item/canvas/ui_state(mob/user) + if(isobserver(user)) + return GLOB.observer_state if(finalized) return GLOB.physical_obscured_state else @@ -154,6 +164,9 @@ if(.) return var/mob/user = usr + ///this is here to allow observers to zoom in and out but not do anything else. + if(action != "zoom_in" && action != "zoom_out" && isobserver(user)) + return switch(action) if("paint") if(finalized) @@ -286,10 +299,16 @@ curator.adjust_money(curator_cut, "Painting: Patronage cut") curator.bank_card_talk("Cut on patronage received, account now holds [curator.account_balance] cr.") + if(istype(loc, /obj/structure/sign/painting)) + var/obj/structure/sign/painting/frame = loc + frame.remove_art_element(painting_metadata.credit_value) + frame.add_art_element(offer_amount) + painting_metadata.patron_ckey = user.ckey painting_metadata.patron_name = user.real_name painting_metadata.credit_value = offer_amount last_patron = WEAKREF(user.mind) + to_chat(user, span_notice("Nanotrasen Trust Foundation thanks you for your contribution. You're now an official patron of this painting.")) var/list/possible_frames = SSpersistent_paintings.get_available_frames(offer_amount) if(possible_frames.len <= 1) // Not much room for choices here. @@ -566,6 +585,8 @@ /obj/structure/sign/painting/Exited(atom/movable/movable, atom/newloc) . = ..() if(movable == current_canvas) + if(!QDELETED(current_canvas)) + remove_art_element(current_canvas.painting_metadata.credit_value) current_canvas = null update_appearance() @@ -585,6 +606,7 @@ if(!current_canvas.finalized) current_canvas.finalize(user) to_chat(user,span_notice("You frame [current_canvas].")) + add_art_element() update_appearance() return TRUE return FALSE @@ -654,10 +676,31 @@ new_canvas.finalized = TRUE new_canvas.name = "painting - [painting.title]" current_canvas = new_canvas + add_art_element() current_canvas.update_appearance() update_appearance() return TRUE +/obj/structure/sign/painting/proc/add_art_element() + var/artistic_value = get_art_value(current_canvas.painting_metadata.credit_value) + if(artistic_value) + AddElement(/datum/element/art, artistic_value) + +/obj/structure/sign/painting/proc/remove_art_element(patronage) + var/artistic_value = get_art_value(patronage) + if(artistic_value) + RemoveElement(/datum/element/art, artistic_value) + +/obj/structure/sign/painting/proc/get_art_value(patronage) + switch(patronage) + if(PATRONAGE_SUPERB_FRAME to INFINITY) + return GREAT_ART + if(PATRONAGE_EXCELLENT_FRAME to PATRONAGE_SUPERB_FRAME) + return GOOD_ART + if(PATRONAGE_NICE_FRAME to PATRONAGE_EXCELLENT_FRAME) + return OK_ART + return 0 + /obj/structure/sign/painting/proc/save_persistent() if(!persistence_id || !current_canvas || current_canvas.no_save || current_canvas.painting_metadata.loaded_from_json) return diff --git a/code/modules/asset_cache/assets/vending.dm b/code/modules/asset_cache/assets/vending.dm index 4d99eeefdc9d0..caec9bb4f8218 100644 --- a/code/modules/asset_cache/assets/vending.dm +++ b/code/modules/asset_cache/assets/vending.dm @@ -6,22 +6,28 @@ var/target_items = list() for(var/obj/machinery/vending/vendor as anything in typesof(/obj/machinery/vending)) vendor = new vendor() // It seems `initial(list var)` has nothing. need to make a type. - for(var/each in list(vendor.products, vendor.premium, vendor.contraband)) - target_items |= each + target_items |= vendor.products + target_items |= vendor.premium + target_items |= vendor.contraband qdel(vendor) // building icons for each item - for (var/k in target_items) - var/atom/item = k + for (var/atom/item as anything in target_items) if (!ispath(item, /atom)) continue var/icon_file - if (initial(item.greyscale_colors) && initial(item.greyscale_config)) + var/icon_state = initial(item.icon_state) + var/icon_color = initial(item.color) + // GAGS icons must be pregenerated + if(initial(item.greyscale_config) && initial(item.greyscale_colors)) icon_file = SSgreyscale.GetColoredIconByType(initial(item.greyscale_config), initial(item.greyscale_colors)) - else + // Colored atoms must be pregenerated + else if(icon_color && icon_state) icon_file = initial(item.icon) - var/icon_state = initial(item.icon_state) + // Otherwise we can rely on DMIcon, so skip it to save init time + else + continue if (PERFORM_ALL_TESTS(focus_only/invalid_vending_machine_icon_states)) var/icon_states_list = icon_states(icon_file) @@ -36,11 +42,10 @@ stack_trace("[item] does not have a valid icon state, icon=[icon_file], icon_state=[json_encode(icon_state)]([text_ref(icon_state)]), icon_states=[icon_states_string]") continue - var/icon/I = icon(icon_file, icon_state, SOUTH) - var/c = initial(item.color) - if (!isnull(c) && c != COLOR_WHITE) - I.Blend(c, ICON_MULTIPLY) + var/icon/produced = icon(icon_file, icon_state, SOUTH) + if (!isnull(icon_color) && icon_color != COLOR_WHITE) + produced.Blend(icon_color, ICON_MULTIPLY) var/imgid = replacetext(replacetext("[item]", "/obj/item/", ""), "/", "-") - Insert(imgid, I) + Insert(imgid, produced) diff --git a/code/modules/atmospherics/Atmospherics.md b/code/modules/atmospherics/Atmospherics.md index 1203ed232e184..8d280c6dcdcb5 100644 --- a/code/modules/atmospherics/Atmospherics.md +++ b/code/modules/atmospherics/Atmospherics.md @@ -38,7 +38,7 @@ Now then, into the breach. The air controller is, at its core, quite simple, yet it is absolutely fundamental to the atmospheric system. The air controller is the clock which triggers all continuous actions within the atmos system, such as vents distributing air or gas moving between tiles. The actions taken by the air controller are quite simple, and will be enumerated here. Much of the substance of the air ticker is due to the game's master controller, whose intricacies I will not delve into for this document. I will however go into more detail about how SSAir in particular works in Chapter 6. In any case, this is a simplified list of the air controller's actions in a single tick: 1. Rebuild Pipenets - Runs each time SSAir processes, sometimes out of order. It ensures that no pipeline sit unresolved or unbuilt - - Processes the `rebuild_queue` list into the `expansion_queue` list, and then builds a full pipeline piecemeal. We do a ton of fenagling here to reduce overrun + - Processes the `rebuild_queue` list into the `expansion_queue` list, and then builds a full pipeline piecemeal. We do a ton of fenagling here to reduce overrun 2. Pipenets - Updates the internal gasmixes of attached pipe machinery, and reacts the gases in a pipeline - Calls `process()` on each `/datum/pipenet` in the `networks` list @@ -180,7 +180,7 @@ You may notice something like this in `process_cell()`. It's not quite the same Back in the old FEA days, neighbor count was hardcoded to 4 (Likely because this is what cell sharing on an infinite grid would look like). This means that turf A -> turf B is the same as turf B -> turf A, because they're each portioning up the gas in the same way. -But when we moved to LINDA, we started using the length of our atmos_adjacent_turfs list (or an analog). +But when we moved to LINDA, we started using the length of our atmos_adjacent_turfs list (or an analog). We need this so things like multiz can work, and so tiles in a corner share in a way that makes sense. Because of this, turf A -> turf B was no longer the same as turf B -> turf A, assuming one of those turfs had a different neighbor count, from I DON'T KNOW WALLS? @@ -269,7 +269,7 @@ I've been talking kinda abstractly about turfs sleeping. That's because turfs on ### A brief romp to talk about excited groups and LAST_SHARE_CHECK -Excited groups can tell the amount of diff being shared by hooking into a value `share()` sets on gasmixes, the absolute amount of gas shared by each tile. The issue is this isn't pressure, it's molar count. So heat being shared in a sealed room causes excited groups to break down, then reform from sources. This isn't a major issue due to how breakdown evens things out, but it's worth knowing. +Excited groups can tell the amount of diff being shared by hooking into a value `share()` sets on gasmixes, the absolute amount of gas shared by each tile. The issue is this isn't pressure, its molar count. So heat being shared in a sealed room causes excited groups to break down, then reform from sources. This isn't a major issue due to how breakdown evens things out, but it's worth knowing. ### Back to the main thread diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 32acadb3bee52..7bbfea3dcf253 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -45,7 +45,7 @@ |||| only by meta_gas_list(). |||| \*||||||||||||||||||||||||||||||||||||||||*/ -//This is a plot created using the values for gas exports. Each gas has a value that works as it's kind of soft-cap, which limits you from making billions of credits per sale, based on the base_value variable on the gasses themselves. Most of these gasses as a result have a rather low value when sold, like nitrogen and oxygen at 1500 and 600 respectively at their maximum value. The +//This is a plot created using the values for gas exports. Each gas has a value that works as its kind of soft-cap, which limits you from making billions of credits per sale, based on the base_value variable on the gasses themselves. Most of these gasses as a result have a rather low value when sold, like nitrogen and oxygen at 1500 and 600 respectively at their maximum value. The /datum/gas var/id = "" var/specific_heat = 0 @@ -108,7 +108,7 @@ dangerous = TRUE rarity = 800 base_value = 1.5 - desc = "A flammable gas with many other curious properties. It's research is one of NT's primary objective." + desc = "A flammable gas with many other curious properties. Its research is one of NT's primary objective." primary_color = "#ffc0cb" /datum/gas/water_vapor @@ -220,7 +220,7 @@ fusion_power = -5 rarity = 10 base_value = 5 - desc = "A coolant gas. Mainly used for it's endothermic reaction with oxygen." + desc = "A coolant gas. Mainly used for its endothermic reaction with oxygen." primary_color = "#afeeee" /datum/gas/hydrogen @@ -267,7 +267,7 @@ moles_visible = MOLES_GAS_VISIBLE rarity = 1 base_value = 7 - desc = "A highly toxic gas, it's production is highly regulated on top of being difficult. It also breaks down when in contact with nitrogen." + desc = "A highly toxic gas, its production is highly regulated on top of being difficult. It also breaks down when in contact with nitrogen." primary_color = "#006400" /datum/gas/halon @@ -289,7 +289,7 @@ fusion_power = 7 rarity = 50 base_value = 3.5 - desc = "A very inert gas produced by the fusion of hydrogen and it's derivatives." + desc = "A very inert gas produced by the fusion of hydrogen and its derivatives." primary_color = "#f0f8ff" /datum/gas/antinoblium diff --git a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm index 0a6aa23b34d58..0cb82c5c77c7c 100644 --- a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm +++ b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm @@ -137,7 +137,6 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm) /obj/machinery/airalarm/Destroy() if(my_area) my_area = null - QDEL_NULL(wires) QDEL_NULL(alarm_manager) GLOB.air_alarms -= src return ..() diff --git a/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm b/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm index cfe74f13c346c..197e0f520a61f 100644 --- a/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm +++ b/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm @@ -5,7 +5,7 @@ var/hazard_min = 0 var/hazard_max = 0 -/** Initialize a TLV and set it's values if given arguments, mostly for map varedits. +/** Initialize a TLV and set its values if given arguments, mostly for map varedits. * We provide this functionality but please consider not doing this and making proper subtypes. * Only by doing the latter will [datum/tlv/proc/reset_value] work. */ @@ -47,7 +47,7 @@ if(threshold_type & TLV_VAR_HAZARD_MAX) hazard_max = value -/** Reset this particular TLV to it's original value. +/** Reset this particular TLV to its original value. * * Arguments: * * threshold_type: What kind of variable do we want to set. Accepts bitfield subsets of [TLV_VAR_ALL]. diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 867da91d6c893..37cb21ee8cee4 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -131,7 +131,7 @@ /** * For a machine to properly "connect" to a pipeline and share gases, - * the pipeline needs to acknowledge a gas mixture as it's member. + * the pipeline needs to acknowledge a gas mixture as its member. * This is currently handled by the other_airs list in the pipeline datum. * * Other_airs itself is populated by gas mixtures through the parents list that each machineries have. diff --git a/code/modules/atmospherics/machinery/pipes/mapping.dm b/code/modules/atmospherics/machinery/pipes/mapping.dm index 3615147e4d1bf..dce09be9092ed 100644 --- a/code/modules/atmospherics/machinery/pipes/mapping.dm +++ b/code/modules/atmospherics/machinery/pipes/mapping.dm @@ -83,7 +83,7 @@ HELPER(yellow, COLOR_YELLOW) HELPER(general, COLOR_VERY_LIGHT_GRAY) HELPER(cyan, COLOR_CYAN) HELPER(green, COLOR_VIBRANT_LIME) -HELPER(orange, COLOR_TAN_ORANGE) +HELPER(orange, COLOR_ENGINEERING_ORANGE) HELPER(purple, COLOR_PURPLE) HELPER(dark, COLOR_DARK) HELPER(brown, COLOR_BROWN) diff --git a/code/modules/awaymissions/away_props.dm b/code/modules/awaymissions/away_props.dm index 6f6a25b47c8cd..843e55b963fe4 100644 --- a/code/modules/awaymissions/away_props.dm +++ b/code/modules/awaymissions/away_props.dm @@ -1,6 +1,6 @@ /obj/effect/oneway name = "one way effect" - desc = "Only lets things in from it's dir." + desc = "Only lets things in from its dir." icon = 'icons/effects/mapping_helpers.dmi' icon_state = "field_dir" invisibility = INVISIBILITY_MAXIMUM @@ -13,7 +13,7 @@ /obj/effect/wind name = "wind effect" - desc = "Creates pressure effect in it's direction. Use sparingly." + desc = "Creates pressure effect in its direction. Use sparingly." icon = 'icons/effects/mapping_helpers.dmi' icon_state = "field_dir" invisibility = INVISIBILITY_MAXIMUM diff --git a/code/modules/bitrunning/areas.dm b/code/modules/bitrunning/areas.dm index 720bf0f1e5d2c..4fcf0a0496e47 100644 --- a/code/modules/bitrunning/areas.dm +++ b/code/modules/bitrunning/areas.dm @@ -43,8 +43,14 @@ icon_state = "bit_ice" area_flags = UNIQUE_AREA | NOTELEPORT | EVENT_PROTECTED | HIDDEN_AREA -/area/ruin/space/has_grav/powered/virtual_domain - name = "Virtual Domain Space Ruins" +/area/ruin/space/virtual_domain + name = "Virtual Domain Unexplored Location" + icon = 'icons/area/areas_station.dmi' + icon_state = "bit_ruin" + area_flags = UNIQUE_AREA | NOTELEPORT | EVENT_PROTECTED | HIDDEN_AREA + +/area/space/virtual_domain + name = "Virtual Domain Space" icon = 'icons/area/areas_station.dmi' icon_state = "bit_space" area_flags = UNIQUE_AREA | NOTELEPORT | EVENT_PROTECTED | HIDDEN_AREA diff --git a/code/modules/bitrunning/netpod/utils.dm b/code/modules/bitrunning/netpod/utils.dm index 6e0033fe02d93..c593b457e9cc1 100644 --- a/code/modules/bitrunning/netpod/utils.dm +++ b/code/modules/bitrunning/netpod/utils.dm @@ -76,6 +76,11 @@ balloon_alert(neo, "nothing loaded!") return + balloon_alert(neo, "establishing connection...") + if(!do_after(neo, 2 SECONDS, src)) + open_machine() + return + var/mob/living/carbon/current_avatar = avatar_ref?.resolve() if(isnull(current_avatar) || current_avatar.stat != CONSCIOUS) // We need a viable avatar current_avatar = server.start_new_connection(neo, netsuit) @@ -130,9 +135,6 @@ /// Checks for cases to eject/fail connecting an avatar /obj/machinery/netpod/proc/validate_entry(mob/living/neo, mob/living/avatar) - if(!do_after(neo, 2 SECONDS, src)) - return FALSE - // Very invalid if(QDELETED(neo) || QDELETED(avatar) || QDELETED(src) || !is_operational) return FALSE diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm index cc83aa228a8ff..8281408c17967 100644 --- a/code/modules/cargo/bounties/security.dm +++ b/code/modules/cargo/bounties/security.dm @@ -1,8 +1,8 @@ /datum/bounty/item/security/recharger - name = "Rechargers" - description = "Nanotrasen military academy is conducting marksmanship exercises. They request that rechargers be shipped." + name = "Weapon Recharger" + description = "Nanotrasen military academy is conducting marksmanship exercises. They request that a recharger be shipped." reward = CARGO_CRATE_VALUE * 4 - required_count = 3 + required_count = 1 wanted_types = list(/obj/machinery/recharger = TRUE) /datum/bounty/item/security/pepperspray @@ -81,3 +81,13 @@ if(istype(slip.scanned_area, demanded_area)) return TRUE return FALSE + +/datum/bounty/item/security/contraband + name = "Confiscated Contraband" + description = "The syndicate are constantly acting to subvert crewmates of Nanotrasen afilliated stations. Ship us your latest batch of confiscated contraband." + reward = CARGO_CRATE_VALUE * 4 + required_count = 5 + wanted_types = list(/obj/item = TRUE) + +/datum/bounty/item/security/contraband/applies_to(obj/O) + return HAS_TRAIT(O, TRAIT_CONTRABAND) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index cf4a5dfc8759f..5d5bc3f29f57d 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -331,7 +331,7 @@ ADMIN_VERB(centcom_podlauncher, R_ADMIN, "Config/Launch Supplypod", "Configure a if("effectName") //Give the supplypod a custom name. Supplypods automatically get their name based on their style (see supplypod/setStyle() proc), so doing this overrides that. if (temp_pod.adminNamed) //If we're already adminNamed, set the name of the pod back to default temp_pod.adminNamed = FALSE - temp_pod.setStyle(temp_pod.style) //This resets the name of the pod based on it's current style (see supplypod/setStyle() proc) + temp_pod.setStyle(temp_pod.style) //This resets the name of the pod based on its current style (see supplypod/setStyle() proc) return var/nameInput= tgui_input_text(usr, "Enter a custom name", "Custom name", GLOB.podstyles[temp_pod.style][POD_NAME], MAX_NAME_LEN) //Gather input for name and desc if (isnull(nameInput)) @@ -765,7 +765,7 @@ ADMIN_VERB(centcom_podlauncher, R_ADMIN, "Config/Launch Supplypod", "Configure a else var/atom/movable/movable_to_launch = thing_to_launch movable_to_launch.forceMove(toLaunch) //and forceMove any atom/moveable into the supplypod - new /obj/effect/pod_landingzone(target_turf, toLaunch) //Then, create the DPTarget effect, which will eventually forceMove the temp_pod to it's location + new /obj/effect/pod_landingzone(target_turf, toLaunch) //Then, create the DPTarget effect, which will eventually forceMove the temp_pod to its location if (launchClone) launchCounter++ //We only need to increment launchCounter if we are cloning objects. //If we aren't cloning objects, taking and removing the first item each time from the acceptableTurfs list will inherently iterate through the list in order diff --git a/code/modules/cargo/markets/_market.dm b/code/modules/cargo/markets/_market.dm index 78585ed842f2e..0a93469411cdb 100644 --- a/code/modules/cargo/markets/_market.dm +++ b/code/modules/cargo/markets/_market.dm @@ -10,8 +10,10 @@ var/list/available_items = list() /// Item categories available from this market, only items which are in these categories can be gotten from this market. Automatically assigned, so don't manually adjust. var/list/categories = list() + /// Are the items from this market legal or illegal? If illegal, apply a contrband trait to the bought object. + var/legal_status = TRUE -/// Adds item to the available items and add it's category if it is not in categories yet. +/// Adds item to the available items and add its category if it is not in categories yet. /datum/market/proc/add_item(datum/market_item/item) if(ispath(item, /datum/market_item)) item = new item() @@ -30,7 +32,15 @@ if(!length(available_items[item.category])) available_items -= item.category -/// Handles buying the item, this is mainly for future use and moving the code away from the uplink. +/** + * Handles buying the item for a market. + * + * @param identifier The identifier of the item to buy. + * @param category The category of the item to buy. + * @param method The shipping method to use to get the item on the station. + * @param uplink The uplink object that is buying the item. + * @param user The mob that is buying the item. + */ /datum/market/proc/purchase(identifier, category, method, obj/item/market_uplink/uplink, user) var/datum/market_item/item = available_items[category][identifier] if(isnull(item)) @@ -54,7 +64,7 @@ to_chat(user, span_warning("You don't have enough credits in [uplink] for [item] with [method] shipping.")) return FALSE - if(item.buy(uplink, user, method)) + if(item.buy(uplink, user, method, legal_status)) uplink.current_user.adjust_money(-price, "Other: Third Party Transaction") if(ismob(user)) var/mob/m_user = user @@ -70,3 +80,4 @@ SHIPPING_METHOD_LAUNCH = 10, SHIPPING_METHOD_TELEPORT= 75, ) + legal_status = FALSE diff --git a/code/modules/cargo/markets/market_item.dm b/code/modules/cargo/markets/market_item.dm index 21ff3d01deb3b..5e3ce4efb6c07 100644 --- a/code/modules/cargo/markets/market_item.dm +++ b/code/modules/cargo/markets/market_item.dm @@ -81,8 +81,15 @@ return new item(loc) CRASH("Invalid item type for market item [item || "null"]") -/// Buys the item and makes SSblackmarket handle it. -/datum/market_item/proc/buy(obj/item/market_uplink/uplink, mob/buyer, shipping_method) +/** + * Buys the item and makes SSblackmarket handle it. + * + * @param uplink The uplink that is buying the item. + * @param buyer The mob that is buying the item. + * @param shipping_method The shipping method used to get the market item onto the station. + * @param legal_status The legal status of the market. Determines if the item to be spawned is contraband. + */ +/datum/market_item/proc/buy(obj/item/market_uplink/uplink, mob/buyer, shipping_method, legal_status) SHOULD_CALL_PARENT(TRUE) // Sanity if(!istype(uplink) || !istype(buyer)) @@ -93,7 +100,7 @@ return FALSE // Alright, the item has been purchased. - var/datum/market_purchase/purchase = new(src, uplink, shipping_method) + var/datum/market_purchase/purchase = new(src, uplink, shipping_method, legal_status) // SSblackmarket takes care of the shipping. if(SSblackmarket.queue_item(purchase)) @@ -102,6 +109,7 @@ return TRUE return FALSE + // This exists because it is easier to keep track of all the vars this way. /datum/market_purchase /// The entry being purchased. @@ -112,13 +120,16 @@ var/obj/item/market_uplink/uplink /// Shipping method used to buy this item. var/method + /// Is this item considered contraband? If illegal, applies the contraband trait to the item when spawned. + var/legallity -/datum/market_purchase/New(datum/market_item/entry, obj/item/market_uplink/uplink, method) +/datum/market_purchase/New(datum/market_item/entry, obj/item/market_uplink/uplink, method, legal_status) if(!uplink || !entry || !method) CRASH("[type] created with a false value arg: (entry: [entry] - uplink: [uplink] - method: [method])") src.entry = entry src.uplink = uplink src.method = method + src.legallity = legal_status RegisterSignal(entry, COMSIG_QDELETING, PROC_REF(on_instance_del)) RegisterSignal(uplink, COMSIG_QDELETING, PROC_REF(on_instance_del)) if(ismovable(entry.item)) @@ -137,3 +148,13 @@ return // Uh oh, uplink or item is gone. We will just keep the money and you will not get your order. qdel(src) + +/** + * Proc that applies secondary effects to objects that are spawned via a market. + * + * @param spawned_item - Reference to the atom being spawned. + * @param legal_status - Is this item considered legal? If illegal, will apply the contraband trait to the spawned item. + */ +/datum/market_purchase/proc/post_purchase_effects(atom/spawned_item) + if(!legallity && isobj(spawned_item)) + ADD_TRAIT(spawned_item, TRAIT_CONTRABAND, INNATE_TRAIT) diff --git a/code/modules/cargo/markets/market_items/clothing.dm b/code/modules/cargo/markets/market_items/clothing.dm index 82bda848eb8e9..ee0ae6e0a3997 100644 --- a/code/modules/cargo/markets/market_items/clothing.dm +++ b/code/modules/cargo/markets/market_items/clothing.dm @@ -4,7 +4,7 @@ /datum/market_item/clothing/ninja_mask name = "Space Ninja Mask" - desc = "Apart from being acid, lava, fireproof and being hard to take off someone it does nothing special on it's own." + desc = "Apart from being acid, lava, fireproof and being hard to take off someone it does nothing special on its own." item = /obj/item/clothing/mask/gas/ninja price_min = CARGO_CRATE_VALUE @@ -32,13 +32,23 @@ stock_max = 4 availability_prob = 50 +/datum/market_item/tool/medsechud + name = "MedSec HUD" + desc = "A mostly defunct combination of security and health scanner HUDs. They don't produce these around anymore." + item = /obj/item/clothing/glasses/hud/medsechud + + price_min = CARGO_CRATE_VALUE * 2 + price_max = CARGO_CRATE_VALUE * 3.5 + stock_max = 3 + availability_prob = 50 + /datum/market_item/clothing/full_spacesuit_set name = "\improper Nanotrasen Branded Spacesuit Box" desc = "A few boxes of \"Old Style\" space suits fell off the back of a space truck." item = /obj/item/storage/box - price_min = CARGO_CRATE_VALUE * 7.5 - price_max = CARGO_CRATE_VALUE * 20 + price_min = CARGO_CRATE_VALUE * 1.875 + price_max = CARGO_CRATE_VALUE * 4 stock_max = 3 availability_prob = 30 @@ -66,7 +76,7 @@ item = /obj/item/clothing/shoes/bhop/rocket price_min = CARGO_CRATE_VALUE * 5 - price_max = CARGO_CRATE_VALUE * 15 + price_max = CARGO_CRATE_VALUE * 10 stock_max = 1 availability_prob = 40 diff --git a/code/modules/cargo/markets/market_items/consumables.dm b/code/modules/cargo/markets/market_items/consumables.dm index f002ff994249d..b7eed89a1951f 100644 --- a/code/modules/cargo/markets/market_items/consumables.dm +++ b/code/modules/cargo/markets/market_items/consumables.dm @@ -19,10 +19,20 @@ stock_min = 2 stock_max = 5 - price_min = CARGO_CRATE_VALUE * 1.625 - price_max = CARGO_CRATE_VALUE * 2 + price_min = CARGO_CRATE_VALUE * 1.375 + price_max = CARGO_CRATE_VALUE * 1.825 availability_prob = 80 +/datum/market_item/consumable/donk_pocket_box/spawn_item(loc) + var/static/list/choices + if(isnull(choices)) + choices = list() + for(var/boxtype as anything in typesof(/obj/item/storage/box/donkpockets)) + choices[boxtype] = 3 + choices[/obj/item/storage/box/donkpockets/donkpocketgondola] = 1 + item = pick_weight(choices) + return ..() + /datum/market_item/consumable/suspicious_pills name = "Bottle of Suspicious Pills" desc = "A random cocktail of luxury drugs that are sure to put a smile on your face!" @@ -30,17 +40,18 @@ stock_min = 2 stock_max = 3 - price_min = CARGO_CRATE_VALUE * 2 - price_max = CARGO_CRATE_VALUE * 3.5 + price_min = CARGO_CRATE_VALUE * 0.625 + price_max = CARGO_CRATE_VALUE * 1.25 availability_prob = 50 /datum/market_item/consumable/suspicious_pills/spawn_item(loc) - var/pillbottle = pick(list(/obj/item/storage/pill_bottle/zoom, - /obj/item/storage/pill_bottle/happy, - /obj/item/storage/pill_bottle/lsd, - /obj/item/storage/pill_bottle/aranesp, - /obj/item/storage/pill_bottle/stimulant)) - item = pillbottle + item = pick(list(/obj/item/storage/pill_bottle/zoom, + /obj/item/storage/pill_bottle/happy, + /obj/item/storage/pill_bottle/lsd, + /obj/item/storage/pill_bottle/aranesp, + /obj/item/storage/pill_bottle/stimulant, + /obj/item/storage/pill_bottle/maintenance_pill, + )) return ..() /datum/market_item/consumable/floor_pill diff --git a/code/modules/cargo/markets/market_items/misc.dm b/code/modules/cargo/markets/market_items/misc.dm index 9ce3ec43bba5d..209993a7a24cb 100644 --- a/code/modules/cargo/markets/market_items/misc.dm +++ b/code/modules/cargo/markets/market_items/misc.dm @@ -2,7 +2,7 @@ category = "Miscellaneous" abstract_path = /datum/market_item/misc -/datum/market_item/misc/Clear_PDA +/datum/market_item/misc/clear_pda name = "Clear PDA" desc = "Show off your style with this limited edition clear PDA!." item = /obj/item/modular_computer/pda/clear @@ -12,7 +12,7 @@ stock_max = 2 availability_prob = 50 -/datum/market_item/misc/jade_Lantern +/datum/market_item/misc/jade_lantern name = "Jade Lantern" desc = "Found in a box labeled 'Danger: Radioactive'. Probably safe." item = /obj/item/flashlight/lantern/jade @@ -90,7 +90,7 @@ /datum/market_item/misc/smugglers_satchel name = "Smuggler's Satchel" - desc = "This easily hidden satchel can become a versatile tool to anybody with the desire to keep certain items out of sight and out of mind." + desc = "This easily hidden satchel can become a versatile tool to anybody with the desire to keep certain items out of sight and out of mind. Its contents cannot be detected by contraband scanners." item = /obj/item/storage/backpack/satchel/flat/empty price_min = CARGO_CRATE_VALUE * 3.75 diff --git a/code/modules/cargo/markets/market_items/tools.dm b/code/modules/cargo/markets/market_items/tools.dm index 9576810b3a3c9..963d7fbaeb075 100644 --- a/code/modules/cargo/markets/market_items/tools.dm +++ b/code/modules/cargo/markets/market_items/tools.dm @@ -60,8 +60,8 @@ item = /obj/item/binoculars stock = 1 - price_min = CARGO_CRATE_VALUE * 2 - price_max = CARGO_CRATE_VALUE * 4.8 + price_min = CARGO_CRATE_VALUE * 1.75 + price_max = CARGO_CRATE_VALUE * 4 availability_prob = 30 /datum/market_item/tool/riot_shield @@ -76,23 +76,13 @@ /datum/market_item/tool/thermite_bottle name = "Thermite Bottle" - desc = "30u of Thermite to assist in creating a quick access point or get away!" + desc = "50u of Thermite to assist in creating a quick access point or get away!" item = /obj/item/reagent_containers/cup/bottle/thermite - price_min = CARGO_CRATE_VALUE * 2.5 - price_max = CARGO_CRATE_VALUE * 7.5 - stock_max = 3 - availability_prob = 30 - -/datum/market_item/tool/science_goggles - name = "Science Goggles" - desc = "These glasses scan the contents of containers and projects their contents to the user in an easy to read format." - item = /obj/item/clothing/glasses/science - price_min = CARGO_CRATE_VALUE * 0.75 price_max = CARGO_CRATE_VALUE stock_max = 3 - availability_prob = 50 + availability_prob = 30 /** * # Fake N-spect scanner black market entry diff --git a/code/modules/cargo/markets/market_items/weapons.dm b/code/modules/cargo/markets/market_items/weapons.dm index 3323e16916234..4f20cf865bc9b 100644 --- a/code/modules/cargo/markets/market_items/weapons.dm +++ b/code/modules/cargo/markets/market_items/weapons.dm @@ -13,16 +13,15 @@ availability_prob = 40 /datum/market_item/weapon/shotgun_dart - name = "Shotgun Dart" + name = "Box of XL Shotgun Darts" desc = "These handy darts can be filled up with any chemical and be shot with a shotgun! \ Prank your friends by shooting them with laughter! \ Not recommended for comercial use." - item = /obj/item/ammo_casing/shotgun/dart + item = /obj/item/storage/box/large_dart - price_min = CARGO_CRATE_VALUE * 0.05 - price_max = CARGO_CRATE_VALUE * 0.25 - stock_min = 10 - stock_max = 60 + price_min = CARGO_CRATE_VALUE * 1.375 + price_max = CARGO_CRATE_VALUE * 2.875 + stock_max = 4 availability_prob = 40 /datum/market_item/weapon/bone_spear diff --git a/code/modules/cargo/markets/market_telepad.dm b/code/modules/cargo/markets/market_telepad.dm index 4545b07e487f4..7c5b509a9421d 100644 --- a/code/modules/cargo/markets/market_telepad.dm +++ b/code/modules/cargo/markets/market_telepad.dm @@ -91,6 +91,7 @@ if(receiving) receiving.item = receiving.entry.spawn_item(turf, receiving) + receiving.post_purchase_effects(receiving.item) use_energy(energy_usage_per_teleport / power_efficiency) var/datum/effect_system/spark_spread/sparks = new diff --git a/code/modules/cargo/markets/market_uplink.dm b/code/modules/cargo/markets/market_uplink.dm index df8c8eb36a507..d13f59937b66c 100644 --- a/code/modules/cargo/markets/market_uplink.dm +++ b/code/modules/cargo/markets/market_uplink.dm @@ -157,6 +157,9 @@ accessible_markets = list(/datum/market/blackmarket) custom_premium_price = PAYCHECK_CREW * 2.5 +/obj/item/market_uplink/blackmarket/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /datum/crafting_recipe/blackmarket_uplink name = "Black Market Uplink" diff --git a/code/modules/cargo/materials_market.dm b/code/modules/cargo/materials_market.dm index 947197d16f298..797ebf5411d6f 100644 --- a/code/modules/cargo/materials_market.dm +++ b/code/modules/cargo/materials_market.dm @@ -232,7 +232,7 @@ var/material_str = params["material"] var/quantity = text2num(params["quantity"]) - //find material from it's name + //find material from its name var/datum/material/material_bought var/obj/item/stack/sheet/sheet_to_buy for(var/datum/material/mat as anything in SSstock_market.materials_prices) @@ -346,7 +346,7 @@ var/datum/material/export_mat /// Quantity of export material var/quantity = 0 - /// Is this stock block currently updating it's value with the market (aka fluid)? + /// Is this stock block currently updating its value with the market (aka fluid)? var/fluid = FALSE /obj/item/stock_block/Initialize(mapload) @@ -358,9 +358,9 @@ . = ..() . += span_notice("\The [src] is worth [export_value] cr, from selling [quantity] sheets of [initial(export_mat?.name)].") if(fluid) - . += span_warning("\The [src] is currently liquid! It's value is based on the market price.") + . += span_warning("\The [src] is currently liquid! Its value is based on the market price.") else - . += span_notice("\The [src]'s value is still [span_boldnotice("locked in")]. [span_boldnotice("Sell it")] before it's value becomes liquid!") + . += span_notice("\The [src]'s value is still [span_boldnotice("locked in")]. [span_boldnotice("Sell it")] before its value becomes liquid!") /obj/item/stock_block/proc/value_warning() visible_message(span_warning("\The [src] is starting to become liquid!")) diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm index 3f8ceb5ca0217..c675352d024b2 100644 --- a/code/modules/cargo/order.dm +++ b/code/modules/cargo/order.dm @@ -185,6 +185,9 @@ else account_holder = "Cargo" var/obj/structure/closet/crate/crate = pack.generate(A, paying_account) + if(pack.contraband) + for(var/atom/movable/item_within as anything in crate.get_all_contents()) + ADD_TRAIT(item_within, TRAIT_CONTRABAND, INNATE_TRAIT) if(department_destination) crate.AddElement(/datum/element/deliver_first, department_destination, pack.cost) generateManifest(crate, account_holder, pack, pack.cost) diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm index a48e9db6bc6e6..6e5643e383efb 100644 --- a/code/modules/cargo/orderconsole.dm +++ b/code/modules/cargo/orderconsole.dm @@ -178,6 +178,7 @@ "desc" = P.desc || P.name, // If there is a description, use it. Otherwise use the pack's name. "goody" = P.goody, "access" = P.access, + "contraband" = P.contraband, )) return data diff --git a/code/modules/cargo/packs/_packs.dm b/code/modules/cargo/packs/_packs.dm index 662938320cb76..b6c533050f675 100644 --- a/code/modules/cargo/packs/_packs.dm +++ b/code/modules/cargo/packs/_packs.dm @@ -77,6 +77,7 @@ continue A.flags_1 |= ADMIN_SPAWNED_1 + /// For generating supply packs at runtime. Returns a list of supply packs to use instead of this one. /datum/supply_pack/proc/generate_supply_packs() return diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm index fddd093b4fb7e..434450b430292 100644 --- a/code/modules/cargo/packs/service.dm +++ b/code/modules/cargo/packs/service.dm @@ -195,7 +195,7 @@ /datum/supply_pack/service/greyidbox name = "Grey ID Card Multipack Crate" desc = "A convenient crate containing a box of seven cheap ID cards in a handy wallet-sized form factor. \ - Cards come in every colour you can imagne, as long as it's grey." + Cards come in every colour you can imagine, as long as it's grey." cost = CARGO_CRATE_VALUE * 3 contains = list(/obj/item/storage/box/ids) crate_name = "basic id card crate" diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index 309d9435f0091..ff1208f634a57 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -38,7 +38,7 @@ var/effectCircle = FALSE //If true, allows the pod to come in at any angle. Bit of a weird feature but whatever its here var/style = STYLE_STANDARD //Style is a variable that keeps track of what the pod is supposed to look like. It acts as an index to the GLOB.podstyles list in cargo.dm defines to get the proper icon/name/desc for the pod. var/reversing = FALSE //If true, the pod will not send any items. Instead, after opening, it will close again (picking up items/mobs) and fly back to centcom - var/list/reverse_dropoff_coords //Turf that the reverse pod will drop off it's newly-acquired cargo to + var/list/reverse_dropoff_coords //Turf that the reverse pod will drop off its newly-acquired cargo to var/fallingSoundLength = 11 var/fallingSound = 'sound/weapons/mortar_long_whistle.ogg'//Admin sound to play before the pod lands var/landingSound //Admin sound to play when the pod lands @@ -656,7 +656,7 @@ transform = matrix() * 1.5 animate(src, transform = matrix()*0.01, time = pod.delays[POD_TRANSIT]+pod.delays[POD_FALLING]) -/obj/effect/pod_landingzone //This is the object that forceMoves the supplypod to it's location +/obj/effect/pod_landingzone //This is the object that forceMoves the supplypod to its location name = "Landing Zone Indicator" desc = "A holographic projection designating the landing zone of something. It's probably best to stand back." icon = 'icons/obj/supplypods_32x32.dmi' diff --git a/code/modules/cargo/universal_scanner.dm b/code/modules/cargo/universal_scanner.dm index fdcbc9ba2bb9b..484f4a7a03201 100644 --- a/code/modules/cargo/universal_scanner.dm +++ b/code/modules/cargo/universal_scanner.dm @@ -165,7 +165,7 @@ context[SCREENTIP_CONTEXT_LMB] = "Scan for export value" return CONTEXTUAL_SCREENTIP_SET /** - * Scans an object, target, and provides it's export value based on selling to the cargo shuttle, to mob/user. + * Scans an object, target, and provides its export value based on selling to the cargo shuttle, to mob/user. */ /obj/item/universal_scanner/proc/export_scan(obj/target, mob/user) var/datum/export_report/report = export_item_and_contents(target, dry_run = TRUE) @@ -240,7 +240,7 @@ to_chat(user, span_warning("Bank account not detected. Handling tip not registered.")) /** - * Scans an object, target, and sets it's custom_price variable to new_custom_price, presenting it to the user. + * Scans an object, target, and sets its custom_price variable to new_custom_price, presenting it to the user. */ /obj/item/universal_scanner/proc/price_tag(obj/target, mob/user) if(isitem(target)) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 6e93cdd3028a1..7a7e0aeaf63a1 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -490,7 +490,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( display_unread_notes(src, time_stamp) qdel(query_last_connected) - var/cached_player_age = set_client_age_from_db(tdata) //we have to cache this because other shit may change it and we need it's current value now down below. + var/cached_player_age = set_client_age_from_db(tdata) //we have to cache this because other shit may change it and we need its current value now down below. if (isnum(cached_player_age) && cached_player_age == -1) //first connection player_age = 0 var/nnpa = CONFIG_GET(number/notify_new_player_age) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6229cf55cc68e..a8bef76b28275 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -33,7 +33,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/list/key_bindings_by_key = list() var/toggles = TOGGLES_DEFAULT - var/db_flags + var/db_flags = NONE var/chat_toggles = TOGGLES_DEFAULT_CHAT var/ghost_form = "ghost" diff --git a/code/modules/client/preferences/_preference.dm b/code/modules/client/preferences/_preference.dm index 05dfe53961274..f70a92e583cff 100644 --- a/code/modules/client/preferences/_preference.dm +++ b/code/modules/client/preferences/_preference.dm @@ -18,16 +18,19 @@ /// support the "use gender" option. #define PREFERENCE_PRIORITY_BODY_TYPE 5 +/// Used for preferences that rely on body setup being finalized. +#define PREFERENCE_PRORITY_LATE_BODY_TYPE 6 + /// Equpping items based on preferences. /// Should happen after species and body type to make sure it looks right. /// Mostly redundant, but a safety net for saving/loading. -#define PREFERENCE_PRIORITY_LOADOUT 6 +#define PREFERENCE_PRIORITY_LOADOUT 7 /// The priority at which names are decided, needed for proper randomization. -#define PREFERENCE_PRIORITY_NAMES 7 +#define PREFERENCE_PRIORITY_NAMES 8 /// Preferences that aren't names, but change the name changes set by PREFERENCE_PRIORITY_NAMES. -#define PREFERENCE_PRIORITY_NAME_MODIFICATIONS 8 +#define PREFERENCE_PRIORITY_NAME_MODIFICATIONS 9 /// The maximum preference priority, keep this updated, but don't use it for `priority`. #define MAX_PREFERENCE_PRIORITY PREFERENCE_PRIORITY_NAME_MODIFICATIONS diff --git a/code/modules/client/preferences/age.dm b/code/modules/client/preferences/age.dm index cad9786ce1fef..07b4644bc6a9e 100644 --- a/code/modules/client/preferences/age.dm +++ b/code/modules/client/preferences/age.dm @@ -8,3 +8,6 @@ /datum/preference/numeric/age/apply_to_human(mob/living/carbon/human/target, value) target.age = value + +/datum/preference/numeric/age/create_informed_default_value(datum/preferences/preferences) + return rand(max(minimum, 21), min(maximum, 50)) diff --git a/code/modules/client/preferences/blindfold_color.dm b/code/modules/client/preferences/blindfold_color.dm index 9e6504579acb6..8081ac15be8ae 100644 --- a/code/modules/client/preferences/blindfold_color.dm +++ b/code/modules/client/preferences/blindfold_color.dm @@ -4,6 +4,9 @@ savefile_key = "blindfold_color" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/color/blindfold_color/create_default_value() + return COLOR_WHITE + /datum/preference/color/blindfold_color/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE diff --git a/code/modules/client/preferences/body_type.dm b/code/modules/client/preferences/body_type.dm index 4e695f7ab9b32..caad2b0437b72 100644 --- a/code/modules/client/preferences/body_type.dm +++ b/code/modules/client/preferences/body_type.dm @@ -5,6 +5,7 @@ priority = PREFERENCE_PRIORITY_BODY_TYPE savefile_key = "body_type" savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE /datum/preference/choiced/body_type/init_possible_values() return list(USE_GENDER, MALE, FEMALE) diff --git a/code/modules/client/preferences/clothing.dm b/code/modules/client/preferences/clothing.dm index 36161c15d1ee8..b54149db2998b 100644 --- a/code/modules/client/preferences/clothing.dm +++ b/code/modules/client/preferences/clothing.dm @@ -33,6 +33,9 @@ DMESSENGER, ) +/datum/preference/choiced/backpack/create_default_value() + return DBACKPACK + /datum/preference/choiced/backpack/icon_for(value) switch (value) if (GBACKPACK) @@ -66,6 +69,7 @@ /datum/preference/choiced/jumpsuit savefile_key = "jumpsuit_style" savefile_identifier = PREFERENCE_CHARACTER + priority = PREFERENCE_PRIORITY_BODY_TYPE main_feature_name = "Jumpsuit" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE @@ -76,6 +80,9 @@ PREF_SKIRT, ) +/datum/preference/choiced/jumpsuit/create_default_value() + return PREF_SUIT + /datum/preference/choiced/jumpsuit/icon_for(value) switch (value) if (PREF_SUIT) @@ -86,6 +93,15 @@ /datum/preference/choiced/jumpsuit/apply_to_human(mob/living/carbon/human/target, value) target.jumpsuit_style = value +/datum/preference/choiced/jumpsuit/create_informed_default_value(datum/preferences/preferences) + switch(preferences.read_preference(/datum/preference/choiced/gender)) + if(MALE) + return PREF_SUIT + if(FEMALE) + return PREF_SKIRT + + return ..() + /// Socks preference /datum/preference/choiced/socks savefile_key = "socks" @@ -93,10 +109,14 @@ main_feature_name = "Socks" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE + can_randomize = FALSE /datum/preference/choiced/socks/init_possible_values() return assoc_to_keys_features(SSaccessories.socks_list) +/datum/preference/choiced/socks/create_default_value() + return /datum/sprite_accessory/socks/nude::name + /datum/preference/choiced/socks/icon_for(value) var/static/icon/lower_half @@ -114,13 +134,29 @@ /datum/preference/choiced/undershirt savefile_key = "undershirt" savefile_identifier = PREFERENCE_CHARACTER + priority = PREFERENCE_PRIORITY_BODY_TYPE main_feature_name = "Undershirt" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE + can_randomize = FALSE /datum/preference/choiced/undershirt/init_possible_values() return assoc_to_keys_features(SSaccessories.undershirt_list) +/datum/preference/choiced/undershirt/create_default_value() + return /datum/sprite_accessory/undershirt/nude::name + +/* // SKYRAT EDIT REMOVAL - sports bra doesn't exist as an undershirt. so just let this default to naked and we'll add underwear elsewhere +/datum/preference/choiced/undershirt/create_informed_default_value(datum/preferences/preferences) + switch(preferences.read_preference(/datum/preference/choiced/gender)) + if(MALE) + return /datum/sprite_accessory/undershirt/nude::name + if(FEMALE) + return /datum/sprite_accessory/undershirt/sports_bra::name + + return ..() +*/ // NOVA EDIT REMOVAL END + /datum/preference/choiced/undershirt/icon_for(value) var/static/icon/body if (isnull(body)) @@ -152,10 +188,14 @@ main_feature_name = "Underwear" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE + can_randomize = FALSE /datum/preference/choiced/underwear/init_possible_values() return assoc_to_keys_features(SSaccessories.underwear_list) +/datum/preference/choiced/underwear/create_default_value() + return /datum/sprite_accessory/underwear/male_hearts::name + /datum/preference/choiced/underwear/icon_for(value) var/static/icon/lower_half diff --git a/code/modules/client/preferences/gender.dm b/code/modules/client/preferences/gender.dm index 38c9342449b46..4861fae7e1aa9 100644 --- a/code/modules/client/preferences/gender.dm +++ b/code/modules/client/preferences/gender.dm @@ -13,3 +13,8 @@ value = PLURAL //disregard gender preferences on this species */ // SKYRAT EDIT REMOVAL END target.gender = value + +/datum/preference/choiced/gender/create_informed_default_value(datum/preferences/preferences) + // The only reason I'm limiting this to male or female + // is that hairstyle randomization handles enbies poorly + return pick(MALE, FEMALE) diff --git a/code/modules/client/preferences/glasses.dm b/code/modules/client/preferences/glasses.dm index a08f15955eaa4..e5158f1acbbde 100644 --- a/code/modules/client/preferences/glasses.dm +++ b/code/modules/client/preferences/glasses.dm @@ -4,6 +4,9 @@ savefile_identifier = PREFERENCE_CHARACTER should_generate_icons = TRUE +/datum/preference/choiced/glasses/create_default_value() + return "Random" + /datum/preference/choiced/glasses/init_possible_values() return assoc_to_keys(GLOB.nearsighted_glasses) + "Random" diff --git a/code/modules/client/preferences/language.dm b/code/modules/client/preferences/language.dm index 8d4c791763031..dbe4c700a318e 100644 --- a/code/modules/client/preferences/language.dm +++ b/code/modules/client/preferences/language.dm @@ -3,6 +3,9 @@ savefile_key = "language" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/language/create_default_value() + return "Random" + /datum/preference/choiced/language/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE diff --git a/code/modules/client/preferences/multiz_parallax.dm b/code/modules/client/preferences/multiz_parallax.dm index d4f77e206b2a5..dab945e4bb393 100644 --- a/code/modules/client/preferences/multiz_parallax.dm +++ b/code/modules/client/preferences/multiz_parallax.dm @@ -13,4 +13,4 @@ for(var/group_key as anything in my_hud.master_groups) var/datum/plane_master_group/group = my_hud.master_groups[group_key] - group.transform_lower_turfs(my_hud, my_hud.current_plane_offset) + group.build_planes_offset(my_hud, my_hud.current_plane_offset) diff --git a/code/modules/client/preferences/multiz_performance.dm b/code/modules/client/preferences/multiz_performance.dm index 7591401f2d8d1..f4575357e3482 100644 --- a/code/modules/client/preferences/multiz_performance.dm +++ b/code/modules/client/preferences/multiz_performance.dm @@ -18,4 +18,4 @@ for(var/group_key as anything in my_hud.master_groups) var/datum/plane_master_group/group = my_hud.master_groups[group_key] - group.transform_lower_turfs(my_hud, my_hud.current_plane_offset) + group.build_planes_offset(my_hud, my_hud.current_plane_offset) diff --git a/code/modules/client/preferences/prosthetic_limb.dm b/code/modules/client/preferences/prosthetic_limb.dm index 3d9525734e572..be807ac4e1f76 100644 --- a/code/modules/client/preferences/prosthetic_limb.dm +++ b/code/modules/client/preferences/prosthetic_limb.dm @@ -3,6 +3,9 @@ savefile_key = "prosthetic" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/prosthetic/create_default_value() + return "Random" + /datum/preference/choiced/prosthetic/init_possible_values() return list("Random") + GLOB.prosthetic_limb_choice diff --git a/code/modules/client/preferences/prosthetic_organ.dm b/code/modules/client/preferences/prosthetic_organ.dm index 35d3b818355eb..02e8418e3db2f 100644 --- a/code/modules/client/preferences/prosthetic_organ.dm +++ b/code/modules/client/preferences/prosthetic_organ.dm @@ -3,6 +3,9 @@ savefile_key = "prosthetic_organ" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/prosthetic_organ/create_default_value() + return "Random" + /datum/preference/choiced/prosthetic_organ/init_possible_values() return list("Random") + GLOB.organ_choice diff --git a/code/modules/client/preferences/species_features/basic.dm b/code/modules/client/preferences/species_features/basic.dm index 3f101ad9e44a5..21459697f864f 100644 --- a/code/modules/client/preferences/species_features/basic.dm +++ b/code/modules/client/preferences/species_features/basic.dm @@ -52,7 +52,7 @@ return random_eye_color() /datum/preference/choiced/facial_hairstyle - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE savefile_key = "facial_style_name" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_FEATURES @@ -69,15 +69,32 @@ /datum/preference/choiced/facial_hairstyle/apply_to_human(mob/living/carbon/human/target, value) target.set_facial_hairstyle(value, update = FALSE) +/datum/preference/choiced/facial_hairstyle/create_default_value() + return /datum/sprite_accessory/facial_hair/shaved::name + +/datum/preference/choiced/facial_hairstyle/create_informed_default_value(datum/preferences/preferences) + var/gender = preferences.read_preference(/datum/preference/choiced/gender) + var/species_type = preferences.read_preference(/datum/preference/choiced/species) + var/datum/species/species_real = GLOB.species_prototypes[species_type] + if(!gender || !species_real || !species_real.sexes) + return ..() + + var/picked_beard = random_facial_hairstyle(gender) + var/datum/sprite_accessory/beard_style = SSaccessories.facial_hairstyles_list[picked_beard] + if(!beard_style || !beard_style.natural_spawn || beard_style.locked) // Invalid, go with god(bald) + return ..() + + return picked_beard + /datum/preference/choiced/facial_hairstyle/compile_constant_data() var/list/data = ..() - data[SUPPLEMENTAL_FEATURE_KEY] = "facial_hair_color" + data[SUPPLEMENTAL_FEATURE_KEY] = /datum/preference/color/facial_hair_color::savefile_key return data /datum/preference/color/facial_hair_color - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE // Need to happen after hair oclor is set so we can match by default savefile_key = "facial_hair_color" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES @@ -86,12 +103,16 @@ /datum/preference/color/facial_hair_color/apply_to_human(mob/living/carbon/human/target, value) target.set_facial_haircolor(value, update = FALSE) +/datum/preference/color/facial_hair_color/create_informed_default_value(datum/preferences/preferences) + return preferences.read_preference(/datum/preference/color/hair_color) || random_hair_color() + /datum/preference/choiced/facial_hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "facial_hair_gradient" relevant_head_flag = HEAD_FACIAL_HAIR + can_randomize = FALSE /datum/preference/choiced/facial_hair_gradient/init_possible_values() return assoc_to_keys_features(SSaccessories.facial_hair_gradients_list) @@ -100,10 +121,10 @@ target.set_facial_hair_gradient_style(new_style = value, update = FALSE) /datum/preference/choiced/facial_hair_gradient/create_default_value() - return "None" + return /datum/sprite_accessory/gradient/none::name /datum/preference/color/facial_hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "facial_hair_gradient_color" @@ -115,10 +136,10 @@ /datum/preference/color/facial_hair_gradient/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE - return preferences.read_preference(/datum/preference/choiced/facial_hair_gradient) != "None" + return preferences.read_preference(/datum/preference/choiced/facial_hair_gradient) != /datum/sprite_accessory/gradient/none::name /datum/preference/color/hair_color - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE savefile_key = "hair_color" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES @@ -127,8 +148,11 @@ /datum/preference/color/hair_color/apply_to_human(mob/living/carbon/human/target, value) target.set_haircolor(value, update = FALSE) +/datum/preference/color/hair_color/create_informed_default_value(datum/preferences/preferences) + return random_hair_color() + /datum/preference/choiced/hairstyle - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE // Happens after gender so we can picka hairstyle based on that savefile_key = "hairstyle_name" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_FEATURES @@ -146,19 +170,37 @@ /datum/preference/choiced/hairstyle/apply_to_human(mob/living/carbon/human/target, value) target.set_hairstyle(value, update = FALSE) +/datum/preference/choiced/hairstyle/create_default_value() + return /datum/sprite_accessory/hair/bald::name + +/datum/preference/choiced/hairstyle/create_informed_default_value(datum/preferences/preferences) + var/gender = preferences.read_preference(/datum/preference/choiced/gender) + var/species_type = preferences.read_preference(/datum/preference/choiced/species) + var/datum/species/species_real = GLOB.species_prototypes[species_type] + if(!gender || !species_real || !species_real.sexes) + return ..() + + var/picked_hair = random_hairstyle(gender) + var/datum/sprite_accessory/hair_style = SSaccessories.hairstyles_list[picked_hair] + if(!hair_style || !hair_style.natural_spawn || hair_style.locked) // Invalid, go with god(bald) + return ..() + + return picked_hair + /datum/preference/choiced/hairstyle/compile_constant_data() var/list/data = ..() - data[SUPPLEMENTAL_FEATURE_KEY] = "hair_color" + data[SUPPLEMENTAL_FEATURE_KEY] = /datum/preference/color/hair_color::savefile_key return data /datum/preference/choiced/hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "hair_gradient" relevant_head_flag = HEAD_HAIR + can_randomize = FALSE /datum/preference/choiced/hair_gradient/init_possible_values() return assoc_to_keys_features(SSaccessories.hair_gradients_list) @@ -167,10 +209,10 @@ target.set_hair_gradient_style(new_style = value, update = FALSE) /datum/preference/choiced/hair_gradient/create_default_value() - return "None" + return /datum/sprite_accessory/gradient/none::name /datum/preference/color/hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "hair_gradient_color" @@ -182,4 +224,4 @@ /datum/preference/color/hair_gradient/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE - return preferences.read_preference(/datum/preference/choiced/hair_gradient) != "None" + return preferences.read_preference(/datum/preference/choiced/hair_gradient) != /datum/sprite_accessory/gradient/none::name diff --git a/code/modules/client/preferences/species_features/felinid.dm b/code/modules/client/preferences/species_features/felinid.dm index 6d4a06ff3852a..8bf49fac22789 100644 --- a/code/modules/client/preferences/species_features/felinid.dm +++ b/code/modules/client/preferences/species_features/felinid.dm @@ -32,4 +32,5 @@ /datum/preference/choiced/ears/create_default_value() var/datum/sprite_accessory/ears/cat/ears = /datum/sprite_accessory/ears/cat return initial(ears.name) + return /datum/sprite_accessory/ears/cat::name */ diff --git a/code/modules/client/preferences/species_features/lizard.dm b/code/modules/client/preferences/species_features/lizard.dm index ace8779ed15cf..97154c106d54e 100644 --- a/code/modules/client/preferences/species_features/lizard.dm +++ b/code/modules/client/preferences/species_features/lizard.dm @@ -145,4 +145,5 @@ /datum/preference/choiced/lizard_tail/create_default_value() var/datum/sprite_accessory/tails/lizard/smooth/tail = /datum/sprite_accessory/tails/lizard/smooth return initial(tail.name) + return /datum/sprite_accessory/tails/lizard/smooth::name */ diff --git a/code/modules/client/preferences/species_features/monkey.dm b/code/modules/client/preferences/species_features/monkey.dm index 8e469f3ab038f..07448ea7fc297 100644 --- a/code/modules/client/preferences/species_features/monkey.dm +++ b/code/modules/client/preferences/species_features/monkey.dm @@ -4,6 +4,7 @@ savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_SECONDARY_FEATURES relevant_external_organ = /obj/item/organ/external/tail/monkey + can_randomize = FALSE /datum/preference/choiced/monkey_tail/init_possible_values() return assoc_to_keys_features(SSaccessories.tails_list_monkey) @@ -14,4 +15,5 @@ /datum/preference/choiced/monkey_tail/create_default_value() var/datum/sprite_accessory/tails/monkey/default/tail = /datum/sprite_accessory/tails/monkey/default return initial(tail.name) -*/ // SKYRAT EDIT REMOVAL END + return /datum/sprite_accessory/tails/monkey/default::name +*/ diff --git a/code/modules/client/preferences/trans_prosthetic.dm b/code/modules/client/preferences/trans_prosthetic.dm index fd28cb1ecf8c8..ea8128a1f44e4 100644 --- a/code/modules/client/preferences/trans_prosthetic.dm +++ b/code/modules/client/preferences/trans_prosthetic.dm @@ -3,6 +3,9 @@ savefile_key = "trans_prosthetic" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/trans_prosthetic/create_default_value() + return "Random" + /datum/preference/choiced/trans_prosthetic/init_possible_values() return list("Random") + GLOB.part_choice_transhuman diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index fff783341b869..7034cd3484c23 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -292,13 +292,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car return FALSE // Read everything into cache - for (var/preference_type in GLOB.preference_entries) - var/datum/preference/preference = GLOB.preference_entries[preference_type] + // Uses priority order as some values may rely on others for creating default values + for (var/datum/preference/preference as anything in get_preferences_in_priority_order()) if (preference.savefile_identifier != PREFERENCE_CHARACTER) continue - value_cache -= preference_type - read_preference(preference_type) + value_cache -= preference.type + read_preference(preference.type) //Character randomise = save_data?["randomise"] diff --git a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm index 63bede9ec88c8..47b6f4db185a5 100644 --- a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm +++ b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm @@ -252,6 +252,10 @@ do { \ name = "backpack" actions_types = list(/datum/action/item_action/chameleon/change/backpack) +/obj/item/storage/backpack/chameleon/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) + /obj/item/storage/backpack/chameleon/broken /obj/item/storage/backpack/chameleon/broken/Initialize(mapload) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 4f5668f7bcce7..f82f56a48fbe5 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -2,7 +2,8 @@ name = "HUD" desc = "A heads-up display that provides important info in (almost) real time." flags_1 = null //doesn't protect eyes because it's a monocle, duh - var/hud_type = null + ///A list of atom hud types added to the mob when the glasses are worn on the appropriate slot. + var/list/hud_types // NOTE: Just because you have a HUD display doesn't mean you should be able to interact with stuff on examine, that's where the associated trait (TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD, etc) is necessary. @@ -10,7 +11,7 @@ ..() if(!(slot & ITEM_SLOT_EYES)) return - if(hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.show_to(user) @@ -18,7 +19,7 @@ ..() if(!istype(user) || user.glasses != src) return - if(hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.hide_from(user) @@ -55,10 +56,17 @@ name = "health scanner HUD" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status." icon_state = "healthhud" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue +/obj/item/clothing/glasses/hud/medsechud + name = "health scanner security HUD" + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status, ID status and security records." + icon_state = "medsechud" + hud_types = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_SECURITY_ADVANCED) + clothing_traits = list(TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD) + /obj/item/clothing/glasses/hud/health/night name = "night vision health scanner HUD" desc = "An advanced medical heads-up display that allows doctors to find patients in complete darkness." @@ -110,7 +118,7 @@ name = "diagnostic HUD" desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." icon_state = "diagnostichud" - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange @@ -153,7 +161,7 @@ name = "security HUD" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records." icon_state = "securityhud" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red @@ -243,18 +251,18 @@ if (wearer.glasses != src) return - if (hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.hide_from(user) - if (hud_type == DATA_HUD_MEDICAL_ADVANCED) - hud_type = null - else if (hud_type == DATA_HUD_SECURITY_ADVANCED) - hud_type = DATA_HUD_MEDICAL_ADVANCED + if (DATA_HUD_MEDICAL_ADVANCED in hud_types) + hud_types = null + else if (DATA_HUD_SECURITY_ADVANCED in hud_types) + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) else - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) - if (hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.show_to(user) @@ -265,13 +273,14 @@ name = "thermal HUD scanner" desc = "Thermal imaging HUD in the shape of glasses." icon_state = "thermal" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) vision_flags = SEE_MOBS color_cutoffs = list(25, 8, 5) glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user) ..() + var/hud_type = hud_types[1] switch (hud_type) if (DATA_HUD_MEDICAL_ADVANCED) icon_state = "meson" diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 96b7b39f5ab21..83d670458e1b3 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -37,6 +37,15 @@ slapcraft_recipes = slapcraft_recipe_list,\ ) +/obj/item/clothing/gloves/color/black/security + name = "security gloves" + desc = "These security gloves come with microchips that help the user quickly restrain suspects." + icon_state = "sec" + clothing_traits = list(TRAIT_FAST_CUFFING) + +/obj/item/clothing/gloves/color/black/security/blu + icon_state = "sec_blu" + /obj/item/clothing/gloves/fingerless name = "fingerless gloves" desc = "Plain black gloves without fingertips for the hard-working." diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index 4adb374d92bd7..bbe7f5dba18b4 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -59,9 +59,8 @@ /obj/item/clothing/gloves/tackler/combat name = "gorilla gloves" desc = "Premium quality combative gloves, heavily reinforced to give the user an edge in close combat tackles, though they are more taxing to use than normal gripper gloves. Fireproof to boot!" - icon_state = "black" - inhand_icon_state = "greyscale_gloves" - greyscale_colors = "#2f2e31" + icon_state = "gorilla" + inhand_icon_state = null tackle_stam_cost = 30 base_knockdown = 1.25 SECONDS @@ -77,6 +76,7 @@ /obj/item/clothing/gloves/tackler/combat/insulated name = "guerrilla gloves" desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks." + icon_state = "guerrilla" siemens_coefficient = 0 armor_type = /datum/armor/combat_insulated @@ -101,7 +101,7 @@ desc = "Ratty looking fingerless gloves wrapped with sticky tape. Beware anyone wearing these, for they clearly have no shame and nothing to lose." icon_state = "fingerless" inhand_icon_state = null - + clothing_traits = list(TRAIT_FINGERPRINT_PASSTHROUGH) tackle_stam_cost = 30 base_knockdown = 1.75 SECONDS min_distance = 2 diff --git a/code/modules/clothing/head/costume.dm b/code/modules/clothing/head/costume.dm index 2768656d5e6f9..13a6e549b0e91 100644 --- a/code/modules/clothing/head/costume.dm +++ b/code/modules/clothing/head/costume.dm @@ -199,3 +199,9 @@ It's only a replica, and probably wouldn't protect you from anything." icon_state = "allies_helmet" inhand_icon_state = null + +/obj/item/clothing/head/costume/hairpin + name = "fancy hairpin" + desc = "A delicate hairpin normally paired with traditional clothing" + icon_state = "hairpin_fancy" + inhand_icon_state = "hairpin_fancy" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 4d41d9daa5c76..6892133451038 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -137,7 +137,7 @@ /obj/item/clothing/head/helmet/marine/pmc icon_state = "marine" - desc = "A tactical black helmet, designed to protect one's head from various injuries sustained in operations. Its stellar survivability making up is for it's lack of space worthiness" + desc = "A tactical black helmet, designed to protect one's head from various injuries sustained in operations. Its stellar survivability making up is for its lack of space worthiness" min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT clothing_flags = null diff --git a/code/modules/clothing/head/tophat.dm b/code/modules/clothing/head/tophat.dm index 2affc4c63da18..612f02ce692e9 100644 --- a/code/modules/clothing/head/tophat.dm +++ b/code/modules/clothing/head/tophat.dm @@ -38,7 +38,7 @@ /obj/item/clothing/head/hats/tophat/balloon name = "balloon top-hat" - desc = "It's an colourful looking top-hat to match yout colourful personality." + desc = "It's a colourful looking top-hat to match your colourful personality." icon_state = "balloon_tophat" inhand_icon_state = "balloon_that" throwforce = 0 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 7de1868656683..ca01efe5c47f0 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -255,7 +255,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT|HIDEHAIR inhand_icon_state = "gas_mask" has_fov = FALSE - clothing_flags = BLOCK_GAS_SMOKE_EFFECT + clothing_flags = BLOCK_GAS_SMOKE_EFFECT|MASKINTERNALS /obj/item/clothing/mask/gas/syndicate name = "syndicate mask" diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index e30dfc2f5acb2..28bd5e8b85c64 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -118,9 +118,10 @@ * * * * state: SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED, depending on what you want them to become * * user: used to check to see if we're the ones unknotting our own laces + * * force_lacing: boolean. if TRUE, ignores can_be_tied */ -/obj/item/clothing/shoes/proc/adjust_laces(state, mob/user) - if(!can_be_tied) +/obj/item/clothing/shoes/proc/adjust_laces(state, mob/user, force_lacing = FALSE) + if(!can_be_tied && !force_lacing) return var/mob/living/carbon/human/our_guy diff --git a/code/modules/clothing/shoes/sandals.dm b/code/modules/clothing/shoes/sandals.dm index 9c948e2fac88e..92c90a90348ce 100644 --- a/code/modules/clothing/shoes/sandals.dm +++ b/code/modules/clothing/shoes/sandals.dm @@ -11,6 +11,12 @@ can_be_tied = FALSE species_exception = list(/datum/species/golem) +/obj/item/clothing/shoes/sandal/alt + desc = "A pair of shiny black wooden sandals." + name = "black sandals" + icon_state = "blacksandals" + inhand_icon_state = "blacksandals" + /datum/armor/shoes_sandal bio = 10 diff --git a/code/modules/clothing/shoes/sneakers.dm b/code/modules/clothing/shoes/sneakers.dm index 55a5be872c3e2..81f5006f9e8a4 100644 --- a/code/modules/clothing/shoes/sneakers.dm +++ b/code/modules/clothing/shoes/sneakers.dm @@ -13,6 +13,11 @@ greyscale_config_worn_digi = /datum/greyscale_config/sneakers/worn/digi //SKYRAT EDIT ADDITION - DigiGreyscale interaction_flags_mouse_drop = NEED_HANDS +/obj/item/clothing/shoes/sneakers/random/Initialize(mapload) + . = ..() + greyscale_colors = "#" + random_color() + "#" + random_color() + update_greyscale() + /obj/item/clothing/shoes/sneakers/black name = "black shoes" desc = "A pair of black shoes." diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 7aca981aae10b..9c34574840d79 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -107,7 +107,7 @@ body_parts_covered = CHEST|GROIN /obj/item/clothing/suit/armor/vest/marine/pmc - desc = "A set of the finest mass produced, stamped plasteel armor plates, for an all-around door-kicking and ass-smashing. Its stellar survivability making up is for it's lack of space worthiness" + desc = "A set of the finest mass produced, stamped plasteel armor plates, for an all-around door-kicking and ass-smashing. Its stellar survivability making up is for its lack of space worthiness" min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT clothing_flags = THICKMATERIAL @@ -676,7 +676,7 @@ /obj/item/clothing/suit/armor/militia name = "station defender's coat" - desc = "A well worn uniform used by militia across the frontier, it's thick padding useful for cushioning blows." + desc = "A well worn uniform used by militia across the frontier, its thick padding useful for cushioning blows." icon_state = "militia" inhand_icon_state = "b_suit" body_parts_covered = CHEST|GROIN|ARMS diff --git a/code/modules/clothing/suits/ghostsheet.dm b/code/modules/clothing/suits/ghostsheet.dm index 9bd8753f50b41..65213fd176dba 100644 --- a/code/modules/clothing/suits/ghostsheet.dm +++ b/code/modules/clothing/suits/ghostsheet.dm @@ -22,8 +22,18 @@ if(!isinhands && check_holidays(HALLOWEEN)) . += emissive_appearance('icons/mob/simple/mob.dmi', "ghost", offset_spokesman = src, alpha = src.alpha) -/obj/item/clothing/suit/costume/ghost_sheet/spooky +/obj/item/clothing/suit/spooky_ghost_sheet name = "spooky ghost" desc = "This is obviously just a bedsheet, but maybe try it on?" + icon = 'icons/obj/clothing/suits/costume.dmi' + worn_icon = 'icons/mob/clothing/suits/costume.dmi' user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150) + inhand_icon_state = null + throwforce = 0 + throw_speed = 1 + throw_range = 2 + w_class = WEIGHT_CLASS_TINY + flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT + species_exception = list(/datum/species/golem) + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 2b8fef5bb5b46..d211b3cc91edf 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -234,7 +234,7 @@ /obj/item/clothing/suit/jacket/quartermaster name = "quartermaster's overcoat" - desc = "A luxury, brown double-breasted overcoat made from kangaroo skin. It's gold cuffs are linked and styled on the credits symbol. It makes you feel more important than you probably are." + desc = "A luxury, brown double-breasted overcoat made from kangaroo skin. Its gold cuffs are linked and styled on the credits symbol. It makes you feel more important than you probably are." icon_state = "qm_coat" blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|LEGS|ARMS diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index bc9aad4198a9d..ba30233d2b7b9 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -129,6 +129,45 @@ body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE +/obj/item/clothing/under/costume/yukata + name = "black yukata" + desc = "A comfortable black cotton yukata inspired by traditional designs, perfect for a non-formal setting." + icon_state = "yukata1" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/costume/yukata/green + name = "green yukata" + desc = "A comfortable green cotton yukata inspired by traditional designs, perfect for a non-formal setting." + icon_state = "yukata2" + +/obj/item/clothing/under/costume/yukata/white + name = "white yukata" + desc = "A comfortable white cotton yukata inspired by traditional designs, perfect for a non-formal setting." + icon_state = "yukata3" + +/obj/item/clothing/under/costume/kimono + name = "black kimono" + desc = "A luxurious black silk kimono with traditional flair, ideal for elegant festive occasions." + icon_state = "kimono1" + inhand_icon_state = "yukata1" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/costume/kimono/red + name = "red kimono" + desc = "A luxurious red silk kimono with traditional flair, ideal for elegant festive occasions." + icon_state = "kimono2" + inhand_icon_state = "kimono2" + +/obj/item/clothing/under/costume/kimono/purple + name = "purple kimono" + desc = "A luxurious purple silk kimono with traditional flair, ideal for elegant festive occasions." + icon_state = "kimono3" + inhand_icon_state = "kimono3" + /obj/item/clothing/under/costume/villain name = "villain suit" desc = "A change of wardrobe is necessary if you ever want to catch a real superhero." diff --git a/code/modules/events/anomaly/anomaly_ectoplasm.dm b/code/modules/events/anomaly/anomaly_ectoplasm.dm index 6bd929d69225c..b693d221d388e 100644 --- a/code/modules/events/anomaly/anomaly_ectoplasm.dm +++ b/code/modules/events/anomaly/anomaly_ectoplasm.dm @@ -8,7 +8,7 @@ typepath = /datum/round_event/anomaly/anomaly_ectoplasm min_players = 30 max_occurrences = 2 - weight = 4 //Rare because of it's wacky and silly nature + weight = 4 //Rare because of its wacky and silly nature category = EVENT_CATEGORY_ANOMALIES min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 3 diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 950adf622ec06..cfab77009d470 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -60,7 +60,7 @@ announce_to_ghosts(origin_machine) /datum/round_event/brand_intelligence/tick() - if(!origin_machine || QDELETED(origin_machine) || origin_machine.shut_up || origin_machine.wires.is_all_cut()) //if the original vending machine is missing or has it's voice switch flipped + if(!origin_machine || QDELETED(origin_machine) || origin_machine.shut_up || origin_machine.wires.is_all_cut()) //if the original vending machine is missing or has its voice switch flipped for(var/obj/machinery/vending/saved in infected_machines) saved.shoot_inventory = FALSE if(origin_machine) diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 7afc67266102c..686adf1e5d3f6 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -106,7 +106,7 @@ var/ionallergysev = pick_list(ION_FILE, "ionallergysev") //Species, for when the AI has to commit genocide. Plural. var/ionspecies = pick_list(ION_FILE, "ionspecies") - //Abstract concepts for the AI to decide on it's own definition of. + //Abstract concepts for the AI to decide on its own definition of. var/ionabstract = pick_list(ION_FILE, "ionabstract") //Foods. Drinks aren't included due to grammar; if you want to add drinks, make a new set //of possible laws for best effect. Unless you want the crew having to drink hamburgers. diff --git a/code/modules/experisci/experiment/experiments.dm b/code/modules/experisci/experiment/experiments.dm index 244145221ea3b..de5b3abc15a30 100644 --- a/code/modules/experisci/experiment/experiments.dm +++ b/code/modules/experisci/experiment/experiments.dm @@ -82,7 +82,7 @@ /datum/experiment/ordnance/explosive/hydrogenbomb name = "Hydrogen Explosives" - description = "Combustion of Hydrogen and it's derivatives can be very powerful. Capture any tank explosion with a Doppler Array and publish the data in a paper. Only Hydrogen or Tritium Fires are allowed." + description = "Combustion of Hydrogen and its derivatives can be very powerful. Capture any tank explosion with a Doppler Array and publish the data in a paper. Only Hydrogen or Tritium Fires are allowed." gain = list(15,40,60) target_amount = list(50,75,150) experiment_proper = TRUE diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index cd05d0bd34baf..97ce717b4c524 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -45,7 +45,7 @@ var/list/fluid_types = list(AQUARIUM_FLUID_SALTWATER, AQUARIUM_FLUID_FRESHWATER, AQUARIUM_FLUID_SULPHWATEVER, AQUARIUM_FLUID_AIR) - var/panel_open = TRUE + var/panel_open = FALSE ///Current layers in use by aquarium contents var/list/used_layers = list() diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm index 2038f1960f903..f59f1901b8563 100644 --- a/code/modules/fishing/aquarium/fish_analyzer.dm +++ b/code/modules/fishing/aquarium/fish_analyzer.dm @@ -20,14 +20,8 @@ greyscale_config_worn = /datum/greyscale_config/fish_analyzer_worn ///The color of the case. Used by grayscale configs and update_overlays() var/case_color - /** - * The radial menu shown when analyzing aquariums. Having a persistent one allows us - * to update it whenever fish come and go, and is also required since we have a select callback - * used to check right clicks for scanning traits instead of status. - */ - var/datum/radial_menu/persistent/fish_menu - /// A cached list of the current choices for the aforedefined radial menu. - var/list/radial_choices + ///the item we have scanned + var/datum/weakref/scanned_item /obj/item/fish_analyzer/Initialize(mapload) case_color = rgb(rand(16, 255), rand(16, 255), rand(16, 255)) @@ -47,11 +41,6 @@ register_item_context() update_appearance() -/obj/item/fish_analyzer/Destroy() - if(fish_menu) - QDEL_NULL(fish_menu) - radial_choices = null - return ..() /obj/item/fish_analyzer/examine(mob/user) . = ..() @@ -68,190 +57,82 @@ . += case . += emissive_appearance(icon, "fish_analyzer_emissive", src) -/obj/item/fish_analyzer/add_item_context(obj/item/source, list/context, atom/target) - if (isfish(target)) - context[SCREENTIP_CONTEXT_LMB] = "Analyze status" - context[SCREENTIP_CONTEXT_RMB] = "Analyze traits" - return CONTEXTUAL_SCREENTIP_SET - else if(isaquarium(target)) - context[SCREENTIP_CONTEXT_LMB] = "Open radial menu" - return CONTEXTUAL_SCREENTIP_SET - return NONE - /obj/item/fish_analyzer/interact_with_atom(atom/target, mob/living/user, list/modifiers) if(!isfish(target) && !isaquarium(target)) return NONE if(!user.can_read(src) || user.is_blind()) return ITEM_INTERACT_BLOCKING - if(isfish(target)) - balloon_alert(user, "analyzing stats") - user.visible_message(span_notice("[user] analyzes [target]."), span_notice("You analyze [target].")) - analyze_status(target, user) - else if(istype(target, /obj/structure/aquarium)) - scan_aquarium(target, user) - return ITEM_INTERACT_SUCCESS - -/obj/item/fish_analyzer/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) - if(!isfish(interacting_with)) - return NONE - if(!user.can_read(src) || user.is_blind()) - return ITEM_INTERACT_BLOCKING - - balloon_alert(user, "analyzing traits") - analyze_traits(interacting_with, user) - return ITEM_INTERACT_SUCCESS - -///Instantiates the radial menu, populates the list of choices, shows it and register signals on the aquarium. -/obj/item/fish_analyzer/proc/scan_aquarium(obj/structure/aquarium/aquarium, mob/user) - if(fish_menu) - balloon_alert(user, "already scanning") - return - var/list/fishes = aquarium.get_fishes() - if(!length(fishes)) - balloon_alert(user, "no fish to scan") - return - radial_choices = list() - for(var/obj/item/fish/fish as anything in fishes) - radial_choices(fish) - fish_menu = show_radial_menu_persistent(user, aquarium, radial_choices, select_proc = CALLBACK(src, PROC_REF(choice_selected), user, aquarium), tooltips = TRUE, custom_check = CALLBACK(src, PROC_REF(can_select_fish), user, aquarium)) - RegisterSignal(aquarium, COMSIG_ATOM_ABSTRACT_ENTERED, PROC_REF(on_aquarium_entered)) - RegisterSignal(aquarium, COMSIG_ATOM_ABSTRACT_EXITED, PROC_REF(on_aquarium_exited)) - RegisterSignal(aquarium, COMSIG_QDELETING, PROC_REF(delete_radial)) - -///Instantiates a radial menu choice datum for the current fish and adds it to the list of choices. -/obj/item/fish_analyzer/proc/radial_choices(obj/item/fish/fish) - var/datum/radial_menu_choice/menu_choice = new - menu_choice.name = fish.name - menu_choice.info = "[fish.status == FISH_ALIVE ? "Alive" : "Dead"]\n[fish.size] cm\n[fish.weight] g\nProgenitors: [fish.progenitors]\nRight-click to analyze traits" - var/mutable_appearance/fish_appearance = new(fish) - fish_appearance.layer = FLOAT_LAYER - fish_appearance.plane = FLOAT_PLANE - menu_choice.image = fish_appearance - radial_choices[fish] = menu_choice - -///Called when the user has selected a choice. If it's a right click, analyze the traits, else the status -/obj/item/fish_analyzer/proc/choice_selected(mob/user, obj/structure/aquarium/aquarium, obj/item/fish/choice, params) - if(!choice || !can_select_fish(user, aquarium)) - delete_radial(aquarium) - return - var/is_right_clicking = LAZYACCESS(params2list(params), RIGHT_CLICK) - user.visible_message(span_notice("[user] analyzes [choice] inside [aquarium]."), span_notice("You analyze [choice] inside [aquarium].")) - if(is_right_clicking) - analyze_traits(choice, user) - else - analyze_status(choice, user) - -///Whether the item should continue to show its radial menu or delete it. -/obj/item/fish_analyzer/proc/can_select_fish(mob/user, obj/structure/aquarium/aquarium) - if(!user.is_holding(src) || !user?.CanReach(aquarium) || IS_DEAD_OR_INCAP(user)) - delete_radial(aquarium) - return FALSE - return TRUE - -///Called when something enters the aquarium. If it's a fish, update the choices. -/obj/item/fish_analyzer/proc/on_aquarium_entered(obj/structure/aquarium/source, atom/movable/arrived) - SIGNAL_HANDLER - if(isfish(arrived)) - radial_choices(arrived) - fish_menu.change_choices(radial_choices, tooltips = TRUE, animate = TRUE) - -///Called when something exits the aquarium. If it's a fish, update the choices. -/obj/item/fish_analyzer/proc/on_aquarium_exited(obj/structure/aquarium/source, atom/movable/gone) - SIGNAL_HANDLER - if(!isfish(gone)) - return - radial_choices -= gone - if(!length(radial_choices)) - delete_radial(source) - return - fish_menu.change_choices(radial_choices, tooltips = TRUE, animate = TRUE) + if(isfish(target) || istype(target, /obj/structure/aquarium)) + scanned_item = WEAKREF(target) + ui_interact(user) + return ITEM_INTERACT_SUCCESS -///Unregisters signals, delete the radial menu, unsets the choices. -/obj/item/fish_analyzer/proc/delete_radial(obj/structure/aquarium/source) - SIGNAL_HANDLER - UnregisterSignal(source, list(COMSIG_ATOM_ABSTRACT_EXITED, COMSIG_ATOM_ABSTRACT_ENTERED, COMSIG_QDELETING)) - QDEL_NULL(fish_menu) - radial_choices = null - -/** - * Called when a fish or a menu choice is left-clicked. - * This returns the fish's status, size, weight, feed type, hunger, breeding timeout. - */ -/obj/item/fish_analyzer/proc/analyze_status(obj/item/fish/fish, mob/user) - - // the final list of strings to render - var/render_list = list() - - var/fish_status = fish.status == FISH_DEAD ? span_alert("Deceased") : "[PERCENT(fish.health/initial(fish.health))]% healthy" - - render_list += "[span_info("Analyzing status for [fish]:")]\nOverrall status: [fish_status]\n" - render_list += "Size: [fish.size] cm - Weight: [fish.weight] g\n" - render_list += "Required feed type: [initial(fish.food.name)]\n" - render_list += "Safe temperature: [fish.required_temperature_min] - [fish.required_temperature_max]K" - if(isaquarium(fish.loc)) - var/obj/structure/aquarium/aquarium = fish.loc - if(!ISINRANGE(aquarium.fluid_temp, fish.required_temperature_min, fish.required_temperature_max)) - render_list += span_alert("(OUT OF RANGE)") - render_list += "\n" - render_list += "Safe fluid type: [fish.required_fluid_type]" - if(isaquarium(fish.loc)) - var/obj/structure/aquarium/aquarium = fish.loc - if(!compatible_fluid_type(fish.required_fluid_type, aquarium.fluid_type)) - render_list += span_alert("(IN UNSAFE FLUID)") - render_list += "" - - if(fish.status != FISH_DEAD) - render_list += "\n" - if(!HAS_TRAIT(fish, TRAIT_FISH_NO_HUNGER)) - var/hunger = PERCENT(min((world.time - fish.last_feeding) / fish.feeding_frequency, 1)) - var/hunger_string = "[hunger]%" - switch(hunger) - if(0 to 60) - hunger_string = span_info(hunger_string) - if(60 to 90) - hunger_string = span_warning(hunger_string) - if(90 to 100) - hunger_string = span_alert(hunger_string) - render_list += "Hunger: [hunger_string]\n" - var/time_left = round(max(fish.breeding_wait - world.time, 0)/10) - render_list += "Time until it can breed: [time_left] seconds" - - to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO) - - SEND_SIGNAL(src, COMSIG_FISH_ANALYZER_ANALYZE_STATUS, fish, user) - -/** - * Called when a fish or a menu choice is left-clicked. - * This returns the fish's progenitors, traits and their inheritability. - */ -/obj/item/fish_analyzer/proc/analyze_traits(obj/item/fish/fish, mob/user) - - // the final list of strings to render - var/render_list = list() - - render_list += "[span_info("Analyzing traits for [fish]:")]\nProgenitor species: [fish.progenitors]\n" - - if(!length(fish.fish_traits)) - render_list += "This fish has no trait to speak of...\n" - else - render_list += "Traits:\n" - for(var/trait_type in fish.fish_traits) - var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] - var/tooltipped_trait = span_tooltip(trait.catalog_description, trait.name) - render_list += "[tooltipped_trait] - Inheritabilities: [trait.inheritability]% - [trait.diff_traits_inheritability]%\n" - - var/evolution_len = length(fish.evolution_types) - if(!evolution_len) - render_list += "This fish has no evolution to speak of..." - for(var/index in 1 to evolution_len) - var/datum/fish_evolution/evolution = GLOB.fish_evolutions[fish.evolution_types[index]] - var/evolution_name = evolution.name - var/evolution_tooltip = evolution.get_evolution_tooltip() - if(evolution_tooltip) - evolution_name = span_tooltip(evolution_tooltip, evolution_name) - render_list += "[evolution_name] - Base Probability: [evolution.probability]%" - if(index != evolution_len) - render_list += "\n" + return NONE - to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO) +/obj/item/fish_analyzer/ui_interact(mob/user, datum/tgui/ui) + if(isnull(scanned_item?.resolve())) + balloon_alert(user, "no specimen data!") + return TRUE + + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "FishAnalyzer") + ui.open() + +/obj/item/fish_analyzer/ui_static_data(mob/user) + var/list/data = list() + var/atom/scanned_object = scanned_item?.resolve() + data["fish_list"] = list() + data["fish_scanned"] = FALSE + + if(isfish(scanned_object)) + data["fish_scanned"] = TRUE + return extract_fish_info(data, scanned_object) + + var/obj/structure/aquarium/aquarium = scanned_object + for(var/obj/item/fish/fishie in aquarium) + extract_fish_info(data, fishie, aquarium) + + return data + +/obj/item/fish_analyzer/proc/extract_fish_info(list/data, obj/item/fish/fishie, obj/structure/aquarium/aquarium) + var/list/fish_traits = list() + var/list/fish_evolutions = list() + + for(var/evolution_type in fishie.evolution_types) + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type] + var/obj/item/evolution_fish = evolution.new_fish_type + fish_evolutions += list(list( + "evolution_name" = evolution.name, + "evolution_icon" = evolution_fish::icon, + "evolution_icon_state" = evolution_fish::icon_state, + "evolution_probability" = evolution.probability, + "evolution_conditions" = evolution.conditions_note, + )) + + for(var/trait_type in fishie.fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + fish_traits += list(list("trait_name" = trait.name, "trait_desc" = trait.catalog_description, "trait_inherit" = trait.diff_traits_inheritability)) + + data["fish_list"] += list(list( + "fish_name" = fishie.name, + "fish_icon" = fishie::icon, + "fish_icon_state" = fishie::icon_state, + "fish_health" = fishie.status == FISH_DEAD ? 0 : PERCENT(fishie.health/initial(fishie.health)), + "fish_size" = fishie.size, + "fish_weight" = fishie.weight, + "fish_food" = fishie.food::name, + "fish_food_color" = fishie.food::color, + "fish_min_temp" = fishie.required_temperature_min, + "fish_max_temp" = fishie.required_temperature_max, + "fish_hunger" = HAS_TRAIT(fishie, TRAIT_FISH_NO_HUNGER) ? 0 : PERCENT(min((world.time - fishie.last_feeding) / fishie.feeding_frequency, 1)), + "fish_fluid_compatible" = aquarium ? compatible_fluid_type(fishie.required_fluid_type, aquarium.fluid_type) : null, + "fish_fluid_type" = fishie.required_fluid_type, + "fish_breed_timer" = round(max(fishie.breeding_wait - world.time, 0) / 10), + "fish_traits" = fish_traits, + "fish_evolutions" = fish_evolutions, + "fish_suitable_temp" = aquarium ? ISINRANGE(aquarium.fluid_temp, fishie.required_temperature_min, fishie.required_temperature_max) : null + )) + + return data diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index 7f9f36ce1be5b..6b437d8437b1e 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -12,7 +12,7 @@ attack_verb_simple = list("slap", "whack") hitsound = 'sound/weapons/slap.ogg' ///The grind results of the fish. They scale with the weight of the fish. - grind_results = list(/datum/reagent/blood = 20, /datum/reagent/consumable/liquidgibs = 5) + grind_results = list(/datum/reagent/blood = 5, /datum/reagent/consumable/liquidgibs = 5) obj_flags = UNIQUE_RENAME /// Resulting width of aquarium visual icon - default size of "fish_greyscale" state @@ -253,18 +253,21 @@ var/list/same_traits = x_traits & y_traits var/list/all_traits = (x_traits|y_traits)-removed_traits - /** - * Traits that the fish is guaranteed to inherit will be inherited, - * with the assertion that they're compatible anyway. - */ - for(var/trait_type in all_traits) - var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] - if(type in trait.guaranteed_inheritance_types) - fish_traits |= trait_type - all_traits -= trait_type - ///Build a list of incompatible traits. Don't let any such trait pass onto the fish. + /// a list of incompatible traits that'll be filled as it goes on. Don't let any such trait pass onto the fish. var/list/incompatible_traits = list() + + ///some traits can spontaneously manifest for some fishes. These have higher priorities than other traits + var/list/potential_spontaneous_traits = GLOB.spontaneous_fish_traits[type] + for(var/trait_type in potential_spontaneous_traits) + if(!prob(potential_spontaneous_traits[trait_type])) + continue + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + if(length(fish_traits & trait.incompatible_traits)) + continue + fish_traits |= trait_type + incompatible_traits |= trait.incompatible_traits + for(var/trait_type in fish_traits) var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] incompatible_traits |= trait.incompatible_traits @@ -278,6 +281,8 @@ if(trait_type in incompatible_traits) continue var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + if(!isnull(trait.fish_whitelist) && !(type in trait.fish_whitelist)) + continue if(length(fish_traits & trait.incompatible_traits)) continue if((trait_type in same_traits) ? prob(trait.inheritability) : prob(trait.diff_traits_inheritability)) @@ -447,10 +452,6 @@ if(health <= 0) set_status(FISH_DEAD) - -//Fish breeding stops if fish count exceeds this. -#define AQUARIUM_MAX_BREEDING_POPULATION 20 - /obj/item/fish/proc/ready_to_reproduce(being_targeted = FALSE) var/obj/structure/aquarium/aquarium = loc if(!istype(aquarium)) @@ -461,8 +462,6 @@ return FALSE return aquarium.allow_breeding && health >= initial(health) * 0.8 && stable_population > 1 && world.time >= breeding_wait -#undef AQUARIUM_MAX_BREEDING_POPULATION - /obj/item/fish/proc/try_to_reproduce() var/obj/structure/aquarium/aquarium = loc if(!istype(aquarium)) diff --git a/code/modules/fishing/fish/chasm_detritus.dm b/code/modules/fishing/fish/chasm_detritus.dm index 8d6653781595f..ea9fcb4775770 100644 --- a/code/modules/fishing/fish/chasm_detritus.dm +++ b/code/modules/fishing/fish/chasm_detritus.dm @@ -24,27 +24,30 @@ GLOBAL_LIST_INIT_TYPED(chasm_detritus_types, /datum/chasm_detritus, init_chasm_d /// Stuff which you can always fish up even if nothing fell into a hole. Associative by type. var/static/list/default_contents = list( NORMAL_CONTENTS = list( - /obj/item/stack/sheet/bone = 3, - /obj/item/stack/ore/slag = 2, + /obj/item/stack/sheet/bone = 6, + /obj/item/stack/ore/slag = 4, + /obj/effect/mob_spawn/corpse/human/skeleton = 2, /mob/living/basic/mining/lobstrosity/lava = 1, - /obj/effect/mob_spawn/corpse/human/skeleton = 1, + /mob/living/basic/mining/lobstrosity/juvenile/lava = 1, ), BODIES_ONLY = list( - /obj/effect/mob_spawn/corpse/human/skeleton = 3, + /obj/effect/mob_spawn/corpse/human/skeleton = 6, /mob/living/basic/mining/lobstrosity/lava = 1, + /mob/living/basic/mining/lobstrosity/juvenile/lava = 1, ), NO_CORPSES = list( - /obj/item/stack/sheet/bone = 14, - /obj/item/stack/ore/slag = 10, + /obj/item/stack/sheet/bone = 28, + /obj/item/stack/ore/slag = 20, /mob/living/basic/mining/lobstrosity/lava = 1, + /mob/living/basic/mining/lobstrosity/juvenile/lava = 1, ), ) -/datum/chasm_detritus/proc/dispense_detritus(mob/fisherman, turf/fishing_spot) +/datum/chasm_detritus/proc/dispense_detritus(atom/spawn_location, turf/fishing_spot) if(prob(default_contents_chance)) var/default_spawn = pick(default_contents[default_contents_key]) - return new default_spawn(get_turf(fisherman)) - return find_chasm_contents(fishing_spot, get_turf(fisherman)) + return new default_spawn(spawn_location) + return find_chasm_contents(fishing_spot, spawn_location) /// Returns the chosen detritus from the given list of things to choose from /datum/chasm_detritus/proc/determine_detritus(list/chasm_stuff) diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm index b03233e76a724..76b0cc8691c21 100644 --- a/code/modules/fishing/fish/fish_traits.dm +++ b/code/modules/fishing/fish/fish_traits.dm @@ -1,5 +1,26 @@ +///A global list of singleton fish traits by their paths GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list())) +/** + * A nested list of fish types and traits that they can spontaneously manifest with associated probabilities + * e.g. list(/obj/item/fish = list(/datum/fish_trait = 100), etc...) + */ +GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) + +/proc/populate_spontaneous_fish_traits() + var/list/list = list() + for(var/trait_path as anything in GLOB.fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_path] + if(isnull(trait.spontaneous_manifest_types)) + continue + var/list/trait_typecache = zebra_typecacheof(trait.spontaneous_manifest_types) - /obj/item/fish + for(var/fish_type in trait_typecache) + var/trait_prob = trait_typecache[fish_type] + if(!trait_prob) + continue + LAZYSET(list[fish_type], trait_path, trait_typecache[fish_type]) + return list + /datum/fish_trait var/name = "Unnamed Trait" /// Description of the trait in the fishing catalog and scanner @@ -10,8 +31,10 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( var/inheritability = 100 /// Same as above, but for when only one has it. var/diff_traits_inheritability = 50 - /// fishes of types within this list are granted to have this trait, no matter the probability - var/list/guaranteed_inheritance_types + /// A list of fish types and traits that they can spontaneously manifest with associated probabilities + var/list/spontaneous_manifest_types + /// An optional whitelist of fish that can get this trait + var/list/fish_whitelist /// Depending on the value, fish with trait will be reported as more or less difficult in the catalog. var/added_difficulty = 0 @@ -33,6 +56,15 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( /datum/fish_trait/proc/apply_to_fish(obj/item/fish/fish) return +/// Applies some special qualities to basic mobs generated by fish (i.e. chasm chrab --> young lobstrosity --> lobstrosity). +/datum/fish_trait/proc/apply_to_mob(mob/living/basic/mob) + SHOULD_CALL_PARENT(TRUE) + RegisterSignal(mob, COMSIG_MOB_CHANGED_TYPE, PROC_REF(on_transformed)) + +/datum/fish_trait/proc/on_transformed(mob/source, mob/desired_mob) + SIGNAL_HANDLER + apply_to_mob(desired_mob) + /// Proc used by both the predator and necrophage traits. /datum/fish_trait/proc/eat_fish(obj/item/fish/predator, obj/item/fish/prey) predator.last_feeding = world.time @@ -41,6 +73,12 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( SEND_SIGNAL(prey, COMSIG_FISH_EATEN_BY_OTHER_FISH, predator) qdel(prey) +/// Proc that inserts a reagent to the grind_results list of the fish. You'll still have to set the processed comsig proc yourself. +/datum/fish_trait/proc/add_to_reagents(obj/item/fish/fish, reagent_type, amount) + LAZYINITLIST(fish.grind_results) + fish.grind_results.Insert(1, reagent_type) + fish.grind_results[reagent_type] = amount + /datum/fish_trait/wary name = "Wary" catalog_description = "This fish will avoid visible fish lines, cloaked line recommended." @@ -98,9 +136,38 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD) source.adjust_health(source.health - 0.5 * seconds_per_tick) +/datum/fish_trait/nocturnal/apply_to_mob(mob/living/basic/mob) + . = ..() + // Make sure the mob can also ee in the dark + mob.lighting_cutoff_red = min(mob.lighting_cutoff_red, 20) + mob.lighting_cutoff_green = min(mob.lighting_cutoff_green, 20) + mob.lighting_cutoff_blue = min(mob.lighting_cutoff_blue, 20) + mob.update_sight() + + RegisterSignal(mob, COMSIG_LIVING_HANDLE_BREATHING, PROC_REF(on_non_stasis_life)) + +/datum/fish_trait/nocturnal/proc/on_non_stasis_life(mob/living/basic/mob, seconds_per_tick = SSMOBS_DT) + SIGNAL_HANDLER + var/turf/our_turf = mob.loc + if(!isturf(our_turf)) + return + var/light_amount = our_turf.get_lumcount() + + if (light_amount < SHADOW_SPECIES_LIGHT_THRESHOLD) //heal in the dark + mob.apply_status_effect(/datum/status_effect/shadow_regeneration) + /datum/fish_trait/heavy name = "Heavy" - catalog_description = "This fish tends to stay near the waterbed."; + catalog_description = "This fish tends to stay near the waterbed." + +/datum/fish_trait/heavy/apply_to_mob(mob/living/basic/mob) + . = ..() + mob.add_movespeed_modifier(/datum/movespeed_modifier/heavy_fish) + mob.maxHealth *= 1.5 + mob.health *= 1.5 + mob.melee_damage_lower *= 1.3 + mob.melee_damage_upper *= 1.3 + mob.obj_damage *= 1.3 /datum/fish_trait/heavy/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame) minigame.fish_idle_velocity -= 10 @@ -161,6 +228,22 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( source.adjust_health(source.health + 3 * seconds_per_tick) source.last_feeding = world.time //it feeds on the emulsion! +/datum/fish_trait/emulsijack/apply_to_mob(mob/living/basic/mob) + . = ..() + RegisterSignal(mob, COMSIG_LIVING_HANDLE_BREATHING, PROC_REF(on_non_stasis_life)) + +/datum/fish_trait/emulsijack/proc/on_non_stasis_life(mob/living/basic/mob, seconds_per_tick = SSMOBS_DT) + SIGNAL_HANDLER + var/turf/open/our_turf = get_turf(mob) + if(our_turf.return_air().return_pressure() > ONE_ATMOSPHERE * 1.5) //put a cap otherwise closed spaces may overpressurize + return + + var/datum/gas_mixture/stench = new + ADD_GAS(/datum/gas/miasma, stench.gases) + stench.gases[/datum/gas/miasma][MOLES] = MIASMA_CORPSE_MOLES * 2 * seconds_per_tick + stench.temperature = mob.bodytemperature + our_turf.assume_air(stench) + /datum/fish_trait/necrophage name = "Necrophage" catalog_description = "This fish will eat carcasses of dead fish when hungry." @@ -205,7 +288,7 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( diff_traits_inheritability = 15 name = "Self-Revival" catalog_description = "This fish shows a peculiar ability of reviving itself a minute or two after death." - guaranteed_inheritance_types = list(/obj/item/fish/boned, /obj/item/fish/mastodon) + spontaneous_manifest_types = list(/obj/item/fish/boned = 100, /obj/item/fish/mastodon = 100) /datum/fish_trait/revival/apply_to_fish(obj/item/fish/fish) RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(check_status)) @@ -226,6 +309,10 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( else source.visible_message(message) +/datum/fish_trait/revival/apply_to_mob(mob/living/basic/mob) + . = ..() + mob.AddComponent(/datum/component/regenerator, regeneration_delay = 6 SECONDS, brute_per_second = 2 SECONDS, outline_colour = COLOR_BLUE) + /datum/fish_trait/predator name = "Predator" catalog_description = "It's a predatory fish. It'll hunt down and eat live fishes of smaller size when hungry." @@ -254,7 +341,7 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( /datum/fish_trait/yucky/apply_to_fish(obj/item/fish/fish) RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_yuck)) ADD_TRAIT(fish, TRAIT_YUCKY_FISH, FISH_TRAIT_DATUM) - LAZYSET(fish.grind_results, /datum/reagent/yuck, 3) + add_to_reagents(fish, /datum/reagent/yuck, 3) /datum/fish_trait/yucky/proc/add_yuck(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results) var/amount = source.grind_results[/datum/reagent/yuck] / length(results) @@ -269,12 +356,12 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( /datum/fish_trait/toxic/apply_to_fish(obj/item/fish/fish) RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_toxin)) RegisterSignal(fish, COMSIG_FISH_EATEN_BY_OTHER_FISH, PROC_REF(on_eaten)) - LAZYSET(fish.grind_results, /datum/reagent/toxin/tetrodotoxin, 2.5) + add_to_reagents(fish, /datum/reagent/toxin/tetrodotoxin, 2.5) /datum/fish_trait/toxic/proc/add_toxin(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results) var/amount = source.grind_results[ /datum/reagent/toxin/tetrodotoxin] / length(results) for(var/atom/result as anything in results) - result.reagents?.add_reagent( /datum/reagent/toxin/tetrodotoxin, amount) + result.reagents?.add_reagent(/datum/reagent/toxin/tetrodotoxin, amount) /datum/fish_trait/toxic/proc/on_eaten(obj/item/fish/source, obj/item/fish/predator) if(HAS_TRAIT(predator, TRAIT_FISH_TOXIN_IMMUNE)) @@ -291,6 +378,10 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( if(source.status == FISH_DEAD) UnregisterSignal(source, list(COMSIG_FISH_LIFE, COMSIG_FISH_STATUS_CHANGED)) +/datum/fish_trait/toxic/apply_to_mob(mob/living/basic/mob) + . = ..() + mob.AddElement(/datum/element/venomous, /datum/reagent/toxin/tetrodotoxin, 0.5 * mob.mob_size) + /datum/fish_trait/toxin_immunity name = "Toxin Immunity" catalog_description = "This fish has developed an ample-spected immunity to toxins." @@ -335,13 +426,17 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( name = "Lubed" inheritability = 90 diff_traits_inheritability = 45 - guaranteed_inheritance_types = list(/obj/item/fish/clownfish/lube) - catalog_description = "This fish exudes a viscous, slippery lubrificant. It's reccomended not to step on it." + spontaneous_manifest_types = list(/obj/item/fish/clownfish/lube = 100) + catalog_description = "This fish exudes a viscous, slippery lubrificant. It's recommended not to step on it." added_difficulty = 5 /datum/fish_trait/lubed/apply_to_fish(obj/item/fish/fish) fish.AddComponent(/datum/component/slippery, 8 SECONDS, SLIDE|GALOSHES_DONT_HELP) +/datum/fish_trait/lubed/apply_to_mob(mob/living/basic/mob) + . = ..() + mob.AddElement(/datum/element/lube_walking) + /datum/fish_trait/lubed/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame) minigame.reeling_velocity *= 1.4 minigame.gravity_velocity *= 1.4 @@ -380,6 +475,11 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( /datum/fish_trait/antigrav/apply_to_fish(obj/item/fish/fish) fish.AddElement(/datum/element/forced_gravity, NEGATIVE_GRAVITY) +/datum/fish_trait/antigrav/apply_to_mob(mob/living/basic/mob) + . = ..() + mob.add_traits(list(TRAIT_FREE_HYPERSPACE_MOVEMENT, TRAIT_SPACEWALK), FISH_TRAIT_DATUM) + mob.AddElement(/datum/element/simple_flying) + ///Anxiety means the fish will die if in a location with more than 3 fish (including itself) ///This is just barely enough to crossbreed out of anxiety, but it severely limits the potential of /datum/fish_trait/anxiety @@ -429,3 +529,20 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( fish.attack_verb_continuous = fish::attack_verb_continuous fish.attack_verb_simple = fish::attack_verb_simple fish.hitsound = fish::hitsound + +/datum/fish_trait/electrogenesis/apply_to_mob(mob/living/basic/mob) + . = ..() + ADD_TRAIT(mob, TRAIT_SHOCKIMMUNE, FISH_TRAIT_DATUM) + mob.grant_actions_by_list(list(/datum/action/cooldown/mob_cooldown/charge_apc)) + mob.AddElement(/datum/element/venomous, /datum/reagent/teslium, 3 * mob.mob_size) + +/datum/fish_trait/stunted + name = "Stunted Growth" + catalog_description = "This chrab's development is stunted, and will not properly reach adulthood." + spontaneous_manifest_types = list(/obj/item/fish/chasm_crab = 12, /obj/item/fish/chasm_crab/ice = 12) + fish_whitelist = list(/obj/item/fish/chasm_crab, /obj/item/fish/chasm_crab/ice) + diff_traits_inheritability = 40 + +/datum/fish_trait/stunted/apply_to_mob(mob/living/basic/mob) + . = ..() + qdel(mob.GetComponent(/datum/component/growth_and_differentiation)) diff --git a/code/modules/fishing/fish/fish_types.dm b/code/modules/fishing/fish/fish_types.dm index cc001560ee0a9..0dbcb3e97ecd9 100644 --- a/code/modules/fishing/fish/fish_types.dm +++ b/code/modules/fishing/fish/fish_types.dm @@ -243,7 +243,7 @@ required_temperature_min = MIN_AQUARIUM_TEMP+10 required_temperature_max = MIN_AQUARIUM_TEMP+32 -//Chasm fish +/// Commonly found on the mining fishing spots. Can be grown into lobstrosities /obj/item/fish/chasm_crab name = "chasm chrab" desc = "The young of the lobstrosity mature in pools below the earth, eating what falls in until large enough to clamber out. Those found near the station are well-fed." @@ -270,17 +270,102 @@ evolution_types = list(/datum/fish_evolution/ice_chrab) compatible_types = list(/obj/item/fish/chasm_crab/ice) beauty = FISH_BEAUTY_GOOD + ///Chasm crabs mature into juveline lobstrositiess with time. This is the progess from 0 to 100 + var/maturation = 0 + ///This value represents how much the crab needs aren't being met. Higher values translate to a more likely hostile lobstrosity. + var/anger = 0 + ///The lobstrosity type this matures into + var/lob_type = /mob/living/basic/mining/lobstrosity/juvenile/lava + ///at which rate the crab gains maturation + var/growth_rate = 100 / (12 MINUTES) * 10 + +///A chasm crab growth speed is determined by its initial weight and size, ergo bigger crabs for faster lobstrosities +/obj/item/fish/chasm_crab/update_size_and_weight(new_size = average_size, new_weight = average_weight) + . = ..() + var/multiplier = 1 + switch(size) + if(0 to FISH_SIZE_TINY_MAX) + multiplier -= 0.2 + if(FISH_SIZE_SMALL_MAX to FISH_SIZE_NORMAL_MAX) + multiplier += 0.2 + if(FISH_SIZE_NORMAL_MAX to FISH_SIZE_BULKY_MAX) + multiplier += 0.5 + if(FISH_SIZE_BULKY_MAX to INFINITY) + multiplier += 0.8 + + if(weight <= 800) + multiplier -= 0.1 * round((1000 - weight) / 200) + else if(weight >= 1500) + multiplier += min(0.1 * round((weight - 1000) / 500), 2) + + growth_rate = initial(growth_rate) * multiplier + +/obj/item/fish/chasm_crab/process(seconds_per_tick) + . = ..() + grow_up(seconds_per_tick) + +///Slowly grow up each process tick (in an aquarium). This is its own proc so that it can be used in the unit test. +/obj/item/fish/chasm_crab/proc/grow_up(seconds_per_tick) + var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency) + if(health <= initial(health) * 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow. + anger += growth_rate * 2 * seconds_per_tick + return + + if(!isaquarium(loc)) //can't grow outside an aquarium. + return + + var/obj/structure/aquarium/aquarium = loc + if(!aquarium.allow_breeding) //the aquarium has breeding disabled + return + if(hunger >= 0.4) //I'm hungry and angry + anger += growth_rate * 0.6 * seconds_per_tick + if(!locate(/obj/item/aquarium_prop) in aquarium) //the aquarium deco is quite barren + anger += growth_rate * 0.25 * seconds_per_tick + var/fish_count = length(aquarium.get_fishes()) + if(!ISINRANGE(fish_count, 3, AQUARIUM_MAX_BREEDING_POPULATION * 0.5)) //too lonely or overcrowded + anger += growth_rate * 0.3 * seconds_per_tick + if(fish_count <= AQUARIUM_MAX_BREEDING_POPULATION * 0.5) //check if there's enough room to maturate. + maturation += growth_rate * seconds_per_tick + + if(maturation >= 100) + return finish_growing() + +///spawn a juvenile lobstrosity on the aquarium turf +/obj/item/fish/chasm_crab/proc/finish_growing() + var/mob/living/basic/mining/lobstrosity/juvenile/lob = new lob_type(get_turf(src)) + for(var/trait_type in fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + trait.apply_to_mob(lob) + if(!prob(anger)) + lob.AddElement(/datum/element/ai_retaliate) + qdel(lob.ai_controller) + lob.ai_controller = new /datum/ai_controller/basic_controller/lobstrosity/juvenile/calm(lob) + else if(anger < 30) //not really that mad, just a bit unstable. + qdel(lob.ai_controller) + lob.ai_controller = new /datum/ai_controller/basic_controller/lobstrosity/juvenile/capricious(lob) + + animate(lob, pixel_y = 18, time = 0.4 SECONDS, flags = ANIMATION_RELATIVE, easing = CUBIC_EASING|EASE_OUT) + animate(pixel_y = -18, time = 0.4 SECONDS, flags = ANIMATION_RELATIVE, easing = CUBIC_EASING|EASE_IN) + loc.visible_message(span_boldnotice("\A [lob] jumps out of [loc]!")) + playsound(loc, 'sound/effects/fish_splash.ogg', 60) + + ///make sure it moves the next tick so that it properly glides to the next location after jumping off the aquarium. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(random_step), lob, 1, 100), 0.1 SECONDS) + + qdel(src) + return lob /obj/item/fish/chasm_crab/ice name = "arctic chrab" desc = "A subspecies of chasm chrabs that has adapted to the cold climate and lack of abysmal holes of the icemoon." icon_state = "arctic_chrab" - dedicated_in_aquarium_icon_state = "ice_chrab_small" + dedicated_in_aquarium_icon_state = "arctic_chrab_small" required_temperature_min = ICEBOX_MIN_TEMPERATURE-20 required_temperature_max = MIN_AQUARIUM_TEMP+15 evolution_types = list(/datum/fish_evolution/chasm_chrab) compatible_types = list(/obj/item/fish/chasm_crab) beauty = FISH_BEAUTY_GREAT + lob_type = /mob/living/basic/mining/lobstrosity/juvenile /obj/item/fish/donkfish name = "donk co. company patent donkfish" @@ -424,7 +509,7 @@ min_pressure = HAZARD_LOW_PRESSURE health = 150 stable_population = 3 - grind_results = list(/datum/reagent/bone_dust = 20) + grind_results = list(/datum/reagent/bone_dust = 10) fillet_type = /obj/item/stack/sheet/bone num_fillets = 2 fish_traits = list(/datum/fish_trait/revival, /datum/fish_trait/carnivore) @@ -452,7 +537,7 @@ min_pressure = HAZARD_LOW_PRESSURE health = 300 stable_population = 2 //This means they can only crossbreed. - grind_results = list(/datum/reagent/bone_dust = 15, /datum/reagent/consumable/liquidgibs = 5) + grind_results = list(/datum/reagent/bone_dust = 5, /datum/reagent/consumable/liquidgibs = 5) fillet_type = /obj/item/stack/sheet/bone num_fillets = 2 feeding_frequency = 2 MINUTES @@ -565,7 +650,7 @@ safe_air_limits = null min_pressure = 0 max_pressure = INFINITY - grind_results = list(/datum/reagent/bluespace = 10, /datum/reagent/consumable/liquidgibs = 5) + grind_results = list(/datum/reagent/bluespace = 10) fillet_type = null fish_traits = list(/datum/fish_trait/antigrav, /datum/fish_trait/mixotroph) beauty = FISH_BEAUTY_GREAT diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 45739b79399e4..0a6b6b7cc87a9 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -183,7 +183,7 @@ special_effects |= FISHING_MINIGAME_RULE_KILL if(special_effects & FISHING_MINIGAME_RULE_KILL && ispath(reward_path,/obj/item/fish)) - RegisterSignal(user, COMSIG_MOB_FISHING_REWARD_DISPENSED, PROC_REF(hurt_fish)) + RegisterSignal(comp.fish_source, COMSIG_FISH_SOURCE_REWARD_DISPENSED, PROC_REF(hurt_fish)) difficulty += comp.fish_source.calculate_difficulty(reward_path, rod, user, src) difficulty = clamp(round(difficulty), 1, 100) diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 6ee02d6d9de4d..e6ac4bac8abae 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -71,6 +71,7 @@ . = ..() if(currently_hooked) context[SCREENTIP_CONTEXT_LMB] = "Reel in" + context[SCREENTIP_CONTEXT_RMB] = "Unhook" return CONTEXTUAL_SCREENTIP_SET return NONE @@ -212,6 +213,16 @@ cast_line(interacting_with, user) return ITEM_INTERACT_SUCCESS +/obj/item/fishing_rod/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + return ranged_interact_with_atom_secondary(interacting_with, user, modifiers) + +/obj/item/fishing_rod/ranged_interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + //Stop reeling, delete the fishing line + if(currently_hooked) + QDEL_NULL(fishing_line) + return ITEM_INTERACT_BLOCKING + return ..() + /// If the line to whatever that is is clear and we're not already busy, try fishing in it /obj/item/fishing_rod/proc/cast_line(atom/target, mob/user) if(casting || currently_hooked) @@ -219,9 +230,6 @@ if(!hook) balloon_alert(user, "install a hook first!") return - if(!CheckToolReach(user, target, cast_range)) - balloon_alert(user, "cannot reach there!") - return if(!COOLDOWN_FINISHED(src, casting_cd)) return casting = TRUE @@ -580,21 +588,21 @@ transform = transform.Scale(1, -1) return ..() -/obj/projectile/fishing_cast/Impact(atom/hit_atom) +/obj/projectile/fishing_cast/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() - owner.hook_hit(hit_atom) - qdel(src) + if(blocked < 100) + QDEL_NULL(our_line) //we need to delete the old beam datum, otherwise it won't let you fish. + owner.hook_hit(target) /obj/projectile/fishing_cast/fire(angle, atom/direct_target) . = ..() our_line = owner.create_fishing_line(src) /obj/projectile/fishing_cast/Destroy() - . = ..() QDEL_NULL(our_line) owner?.casting = FALSE - - + owner = null + return ..() /datum/beam/fishing_line // Is the fishing rod held in left side hand diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm index 059a532072204..602975ed75a00 100644 --- a/code/modules/fishing/sources/_fish_source.dm +++ b/code/modules/fishing/sources/_fish_source.dm @@ -53,6 +53,10 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list( var/catalog_description /// Background image name from /datum/asset/simple/fishing_minigame var/background = "background_default" + /// It true, repeated and large explosions won't be as efficient. This is usually meant for global fish sources. + var/explosive_malus = FALSE + /// If explosive_malus is true, this will be used to keep track of the turfs where an explosion happened for when we'll spawn the loot. + var/list/exploded_turfs /datum/fish_source/New() if(!PERFORM_ALL_TESTS(focus_only/fish_sources_tables)) @@ -61,6 +65,10 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list( if(!(path in fish_table)) stack_trace("path [path] found in the 'fish_counts' list but not in the fish_table one of [type]") +/datum/fish_source/Destroy() + exploded_turfs = null + return ..() + ///Called when src is set as the fish source of a fishing spot component /datum/fish_source/proc/on_fishing_spot_init(/datum/component/fishing_spot/spot) return @@ -166,13 +174,7 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list( /// Gives out the reward if possible /datum/fish_source/proc/dispense_reward(reward_path, mob/fisherman, turf/fishing_spot) - if((reward_path in fish_counts)) // This is limited count result - fish_counts[reward_path] -= 1 - if(!fish_counts[reward_path]) - fish_counts -= reward_path //Ran out of these since rolling (multiple fishermen on same source most likely) - fish_table -= reward_path - - var/atom/movable/reward = spawn_reward(reward_path, fisherman, fishing_spot) + var/atom/movable/reward = simple_dispense_reward(reward_path, get_turf(fisherman), fishing_spot) if(!reward) //balloon alert instead fisherman.balloon_alert(fisherman, pick(duds)) return @@ -185,18 +187,31 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list( INVOKE_ASYNC(reward, TYPE_PROC_REF(/atom/movable, forceMove), get_turf(fisherman)) fisherman.balloon_alert(fisherman, "caught [reward]!") - SEND_SIGNAL(fisherman, COMSIG_MOB_FISHING_REWARD_DISPENSED, reward) + return reward + +///Simplified version of dispense_reward that doesn't need a fisherman. +/datum/fish_source/proc/simple_dispense_reward(reward_path, atom/spawn_location, turf/fishing_spot) + if(isnull(reward_path)) + return null + if((reward_path in fish_counts)) // This is limited count result + fish_counts[reward_path] -= 1 + if(!fish_counts[reward_path]) + fish_counts -= reward_path //Ran out of these since rolling (multiple fishermen on same source most likely) + fish_table -= reward_path + + var/atom/movable/reward = spawn_reward(reward_path, spawn_location, fishing_spot) + SEND_SIGNAL(src, COMSIG_FISH_SOURCE_REWARD_DISPENSED, reward) return reward /// Spawns a reward from a atom path right where the fisherman is. Part of the dispense_reward() logic. -/datum/fish_source/proc/spawn_reward(reward_path, mob/fisherman, turf/fishing_spot) +/datum/fish_source/proc/spawn_reward(reward_path, atom/spawn_location, turf/fishing_spot) if(reward_path == FISHING_DUD) return if(ispath(reward_path, /datum/chasm_detritus)) - return GLOB.chasm_detritus_types[reward_path].dispense_detritus(fisherman, fishing_spot) + return GLOB.chasm_detritus_types[reward_path].dispense_detritus(spawn_location, fishing_spot) if(!ispath(reward_path, /atom/movable)) CRASH("Unsupported /datum path [reward_path] passed to fish_source/proc/spawn_reward()") - var/atom/movable/reward = new reward_path(get_turf(fisherman)) + var/atom/movable/reward = new reward_path(spawn_location) if(isfish(reward)) var/obj/item/fish/caught_fish = reward caught_fish.randomize_size_and_weight() @@ -316,3 +331,37 @@ GLOBAL_LIST(fishing_property_cache) final_table[fish] += round(difference**leveling_exponent, 1) return final_table + +/datum/fish_source/proc/spawn_reward_from_explosion(atom/location, severity) + if(!explosive_malus) + explosive_spawn(location, severity) + return + if(isnull(exploded_turfs)) + exploded_turfs = list() + addtimer(CALLBACK(src, PROC_REF(post_explosion_spawn)), 1) //run this the next tick. + var/turf/turf = get_turf(location) + var/peak_severity = max(exploded_turfs[turf], severity) + exploded_turfs[turf] = peak_severity + +/datum/fish_source/proc/post_explosion_spawn() + var/multiplier = 1/(length(exploded_turfs)**0.5) + for(var/turf/turf as anything in exploded_turfs) + explosive_spawn(turf, exploded_turfs[turf], multiplier) + exploded_turfs = null + +/datum/fish_source/proc/explosive_spawn(location, severity, multiplier = 1) + for(var/i in 1 to (severity + 2)) + if(!prob((100 + 100 * severity)/i * multiplier)) + continue + var/reward_loot = pick_weight(fish_table) + var/atom/movable/reward = simple_dispense_reward(reward_loot, location, location) + if(isnull(reward)) + continue + if(isfish(reward)) + var/obj/item/fish/fish = reward + fish.set_status(FISH_DEAD) + if(isitem(reward)) + reward.pixel_x = rand(-9, 9) + reward.pixel_y = rand(-9, 9) + if(severity >= EXPLODE_DEVASTATE) + reward.ex_act(EXPLODE_LIGHT) diff --git a/code/modules/fishing/sources/source_types.dm b/code/modules/fishing/sources/source_types.dm index 198db0005496f..8319efd2df482 100644 --- a/code/modules/fishing/sources/source_types.dm +++ b/code/modules/fishing/sources/source_types.dm @@ -14,6 +14,7 @@ /obj/item/fish/clownfish/lube = 2, ) fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5 + explosive_malus = TRUE /datum/fish_source/ocean/beach catalog_description = "Beach shore water" @@ -159,7 +160,7 @@ challenge.special_effects |= effect ///Cherry on top, fish caught from the randomizer portal also have (almost completely) random traits -/datum/fish_source/portal/random/spawn_reward(reward_path, mob/fisherman, turf/fishing_spot) +/datum/fish_source/portal/random/spawn_reward(reward_path, atom/movable/spawn_location, turf/fishing_spot) if(!ispath(reward_path, /obj/item/fish)) return ..() @@ -170,16 +171,11 @@ var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] weighted_traits[trait.type] = round(trait.inheritability**2/100) - var/obj/item/fish/caught_fish = new reward_path(get_turf(fisherman), FALSE) - var/list/fixed_traits = list() - for(var/trait_type in caught_fish.fish_traits) - var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] - if(caught_fish.type in trait.guaranteed_inheritance_types) - fixed_traits += trait_type + var/obj/item/fish/caught_fish = new reward_path(spawn_location, FALSE) var/list/new_traits = list() for(var/iteration in rand(1, 4)) new_traits |= pick_weight(weighted_traits) - caught_fish.inherit_traits(new_traits, fixed_traits = fixed_traits) + caught_fish.inherit_traits(new_traits) caught_fish.randomize_size_and_weight(deviation = 0.3) caught_fish.progenitors = full_capitalize(caught_fish.name) return caught_fish @@ -211,7 +207,8 @@ return rod.hook.chasm_detritus_type -/datum/fish_source/chasm +/datum/fish_source/chasm/spawn_reward_from_explosion(atom/location, severity) + return //Spawned content would immediately fall back into the chasm, so it wouldn't matter. /datum/fish_source/lavaland catalog_description = "Lava vents" @@ -228,6 +225,7 @@ ) fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 10 + explosive_malus = TRUE /datum/fish_source/lavaland/reason_we_cant_fish(obj/item/fishing_rod/rod, mob/fisherman, atom/parent) . = ..() @@ -241,14 +239,15 @@ catalog_description = "Liquid plasma vents" fish_table = list( // FISHING_DUD = 5, BUBBERSTATION CHANGE: NO DUDS. HOLY SHIT. - /obj/item/fish/chasm_crab/ice = 15, - /obj/item/fish/lavaloop/plasma_river = 15, - /obj/item/coin/plasma = 3, - /obj/item/stack/ore/plasma = 3, + /obj/item/fish/chasm_crab/ice = 30, + /obj/item/fish/lavaloop/plasma_river = 30, + /obj/item/coin/plasma = 6, + /obj/item/stack/ore/plasma = 6, + /obj/effect/decal/remains/plasma = 2, + /obj/item/stack/sheet/mineral/runite = 2, + /obj/item/stack/sheet/mineral/adamantine = 2, /mob/living/basic/mining/lobstrosity = 1, - /obj/effect/decal/remains/plasma = 1, - /obj/item/stack/sheet/mineral/runite = 1, - /obj/item/stack/sheet/mineral/adamantine = 1, + /mob/living/basic/mining/lobstrosity/juvenile = 1, ) fish_counts = list( /obj/item/stack/sheet/mineral/adamantine = 3, @@ -360,6 +359,15 @@ return ..() +/datum/fish_source/hydro_tray/spawn_reward_from_explosion(atom/location, severity) + if(!istype(location, /obj/machinery/hydroponics/constructable)) + return ..() + + var/obj/machinery/hydroponics/constructable/basin = location + if(basin.myseed || basin.waterlevel <= 0) + return + return ..() + /datum/fish_source/hydro_tray/spawn_reward(reward_path, mob/fisherman, turf/fishing_spot) if(reward_path != RANDOM_SEED) var/mob/living/created_reward = ..() diff --git a/code/modules/food_and_drinks/machinery/deep_fryer.dm b/code/modules/food_and_drinks/machinery/deep_fryer.dm index 60efe0627aec8..f698ebe39e0e4 100644 --- a/code/modules/food_and_drinks/machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/machinery/deep_fryer.dm @@ -38,6 +38,12 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( var/frying_fried = FALSE /// Has our currently frying object been burnt? var/frying_burnt = FALSE + /// How dirty the fryer is - show overlay at 1 + var/grease_level = 0 + /// The chance (%) of grease_level increase on process() + var/grease_increase_chance = 50 + /// The amount of grease_level increase on process() + var/grease_Increase_amount = 0.1 /// Our sound loop for the frying sounde effect. var/datum/looping_sound/deep_fryer/fry_loop @@ -56,6 +62,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( create_reagents(50, OPENCONTAINER) reagents.add_reagent(/datum/reagent/consumable/nutriment/fat/oil, 25) fry_loop = new(src, FALSE) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_cleaned)) /obj/machinery/deepfryer/Destroy() QDEL_NULL(fry_loop) @@ -75,6 +82,11 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( oil_use = initial(oil_use) - (oil_efficiency * 0.00475) fry_speed = oil_efficiency +/obj/machinery/deepfryer/update_overlays() + . = ..() + if(grease_level >= 1) + . += "fryer_greasy" + /obj/machinery/deepfryer/examine(mob/user) . = ..() if(frying) @@ -140,6 +152,8 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( return reagents.trans_to(frying, oil_use * seconds_per_tick, multiplier = fry_speed * 3) //Fried foods gain more of the reagent thanks to space magic + grease_level += prob(grease_increase_chance) * grease_Increase_amount + cook_time += fry_speed * seconds_per_tick if(cook_time >= DEEPFRYER_COOKTIME && !frying_fried) frying_fried = TRUE //frying... frying... fried @@ -169,7 +183,9 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( frying_burnt = FALSE fry_loop.stop() cook_time = 0 + flick("fryer_stop", src) icon_state = "fryer_off" + update_appearance(UPDATE_OVERLAYS) /obj/machinery/deepfryer/proc/start_fry(obj/item/frying_item, mob/user) to_chat(user, span_notice("You put [frying_item] into [src].")) @@ -188,6 +204,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( ADD_TRAIT(frying, TRAIT_FOOD_CHEF_MADE, REF(user.mind)) SEND_SIGNAL(frying, COMSIG_ITEM_ENTERED_FRYER) + flick("fryer_start", src) icon_state = "fryer_on" fry_loop.start() @@ -234,5 +251,9 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( user.changeNext_move(CLICK_CD_MELEE) return ..() +/obj/machinery/deepfryer/proc/on_cleaned(obj/source_component, obj/source) + grease_level = 0 + update_appearance(UPDATE_OVERLAYS) + #undef DEEPFRYER_COOKTIME #undef DEEPFRYER_BURNTIME diff --git a/code/modules/food_and_drinks/machinery/microwave.dm b/code/modules/food_and_drinks/machinery/microwave.dm index bc5adfbd0f951..2b790306b5ac7 100644 --- a/code/modules/food_and_drinks/machinery/microwave.dm +++ b/code/modules/food_and_drinks/machinery/microwave.dm @@ -112,7 +112,6 @@ /obj/machinery/microwave/Destroy() QDEL_LIST(ingredients) - QDEL_NULL(wires) QDEL_NULL(soundloop) QDEL_NULL(particles) if(!isnull(cell)) @@ -382,6 +381,9 @@ if(operating) return NONE + if (item.item_flags & ABSTRACT) + return NONE + if(broken > NOT_BROKEN) balloon_alert(user, "it's broken!") return ITEM_INTERACT_BLOCKING diff --git a/code/modules/food_and_drinks/machinery/smartfridge.dm b/code/modules/food_and_drinks/machinery/smartfridge.dm index bd06c179d33e9..3519c55fc39ac 100644 --- a/code/modules/food_and_drinks/machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/machinery/smartfridge.dm @@ -5,8 +5,8 @@ name = "smartfridge" desc = "Keeps cold things cold and hot things cold." icon = 'icons/obj/machines/smartfridge.dmi' - icon_state = "smartfridge" - base_icon_state = "plant" + icon_state = "smartfridge-icon" + base_icon_state = "smartfridge" layer = BELOW_OBJ_LAYER density = TRUE circuit = /obj/item/circuitboard/machine/smartfridge @@ -14,9 +14,11 @@ light_range = MINIMUM_USEFUL_LIGHT_RANGE integrity_failure = 0.5 can_atmos_pass = ATMOS_PASS_NO + /// Icon state part for contents display + var/contents_overlay_icon = "plant" /// What path boards used to construct it should build into when dropped. Needed so we don't accidentally have them build variants with items preloaded in them. var/base_build_path = /obj/machinery/smartfridge - /// Maximum number of items that can be loaded into the machine + /// Maximum number of items that can be loaded into the machine per matter bin tier var/max_n_of_items = 1500 /// List of items that the machine starts with upon spawn var/list/initial_contents @@ -25,14 +27,18 @@ /// Is this smartfridge going to have a glowing screen? (Drying Racks are not) var/has_emissive = TRUE /// Whether the smartfridge is welded down to the floor disabling unwrenching + var/can_be_welded_down = TRUE + /// Whether the smartfridge is welded down to the floor disabling unwrenching var/welded_down = FALSE + /// The sound of item retrieval + var/vend_sound = 'sound/machines/machine_vend.ogg' /obj/machinery/smartfridge/Initialize(mapload) . = ..() create_reagents(100, NO_REACT) air_update_turf(TRUE, TRUE) register_context() - if(mapload) + if(mapload && can_be_welded_down) welded_down = TRUE if(islist(initial_contents)) @@ -49,6 +55,8 @@ move_update_air(old_loc) /obj/machinery/smartfridge/welder_act(mob/living/user, obj/item/tool) + if(!can_be_welded_down) + return ..() if(welded_down) if(!tool.tool_start_check(user, amount=2)) return ITEM_INTERACT_BLOCKING @@ -112,9 +120,9 @@ /obj/machinery/smartfridge/screwdriver_act(mob/living/user, obj/item/tool) if(default_deconstruction_screwdriver(user, icon_state, icon_state, tool)) if(panel_open) - add_overlay("[initial(icon_state)]-panel") + add_overlay("[base_icon_state]-panel") else - cut_overlay("[initial(icon_state)]-panel") + cut_overlay("[base_icon_state]-panel") SStgui.update_uis(src) return ITEM_INTERACT_SUCCESS return ITEM_INTERACT_BLOCKING @@ -156,7 +164,7 @@ if(welded_down) context[SCREENTIP_CONTEXT_LMB] = "Unweld" tool_tip_set = TRUE - else if (!welded_down && anchored) + else if (!welded_down && anchored && can_be_welded_down) context[SCREENTIP_CONTEXT_LMB] = "Weld down" tool_tip_set = TRUE if(machine_stat & BROKEN) @@ -181,7 +189,7 @@ /obj/machinery/smartfridge/RefreshParts() . = ..() for(var/datum/stock_part/matter_bin/matter_bin in component_parts) - max_n_of_items = 1500 * matter_bin.tier + max_n_of_items = initial(max_n_of_items) * matter_bin.tier /obj/machinery/smartfridge/examine(mob/user) . = ..() @@ -197,7 +205,7 @@ if(welded_down) . += span_info("It's moorings are firmly [EXAMINE_HINT("welded")] to the floor.") - else + else if (can_be_welded_down) . += span_info("It's moorings are loose and can be [EXAMINE_HINT("welded")] down.") if(anchored) @@ -211,24 +219,21 @@ set_light((!(machine_stat & BROKEN) && powered()) ? MINIMUM_USEFUL_LIGHT_RANGE : 0) /obj/machinery/smartfridge/update_icon_state() - icon_state = "[initial(icon_state)]" + icon_state = "[base_icon_state]" if(machine_stat & BROKEN) icon_state += "-broken" - else if(!powered()) - icon_state += "-off" return ..() /// Returns the number of items visible in the fridge. Faster than subtracting 2 lists /obj/machinery/smartfridge/proc/visible_items() - return contents.len - 1 // Circuitboard + return contents.len - 1 // Exclude circuitboard /obj/machinery/smartfridge/update_overlays() . = ..() - var/initial_icon_state = initial(icon_state) var/shown_contents_length = visible_items() if(visible_contents && shown_contents_length) - var/content_level = "[initial_icon_state]-[base_icon_state]" + var/content_level = "[base_icon_state]-[contents_overlay_icon]" switch(shown_contents_length) if(1 to 25) content_level += "-1" @@ -238,10 +243,10 @@ content_level += "-3" . += mutable_appearance(icon, content_level) - . += mutable_appearance(icon, "[initial_icon_state]-glass[(machine_stat & BROKEN) ? "-broken" : ""]") - - if(!machine_stat && has_emissive) - . += emissive_appearance(icon, "[initial_icon_state]-light-mask", src, alpha = src.alpha) + . += mutable_appearance(icon, "[base_icon_state]-glass[(machine_stat & BROKEN) ? "-broken" : ""]") + if(has_emissive && powered() && !(machine_stat & BROKEN)) + . += mutable_appearance(icon, "[base_icon_state]-powered") + . += emissive_appearance(icon, "[base_icon_state]-light-mask", src, alpha = src.alpha) /obj/machinery/smartfridge/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) @@ -364,14 +369,18 @@ var/atom/movable/atom = item if (!QDELETED(atom)) - var/md5name = md5(atom.name) // This needs to happen because of a bug in a TGUI component, https://github.com/ractivejs/ractive/issues/744 - if (listofitems[md5name]) // which is fixed in a version we cannot use due to ie8 incompatibility - listofitems[md5name]["amount"]++ // The good news is, #30519 made smartfridge UIs non-auto-updating + var/key = "[atom.type]" + if (listofitems[key]) + listofitems[key]["amount"]++ else - listofitems[md5name] = list("name" = atom.name, "amount" = 1) - sort_list(listofitems) - - .["contents"] = listofitems + listofitems[key] = list( + "path" = key, + "name" = full_capitalize(atom.name), + "icon" = atom.icon, + "icon_state" = atom.icon_state, + "amount" = 1 + ) + .["contents"] = sort_list(listofitems) .["name"] = name .["isdryer"] = FALSE @@ -389,32 +398,30 @@ switch(action) if("Release") - var/desired = 0 + var/amount = text2num(params["amount"]) + var/desired = 1 if(isAI(living_mob)) to_chat(living_mob, span_warning("[src] does not respect your authority!")) return - if (params["amount"]) - desired = text2num(params["amount"]) - else - desired = tgui_input_number(living_mob, "How many items would you like to take out?", "Release", max_value = 50) + if (amount > 1) + desired = tgui_input_number(living_mob, "How many items would you like to take out?", "Release", default = min(amount, 50), max_value = min(amount, 50)) if(!desired) return for(var/obj/item/dispensed_item in src) if(desired <= 0) break - // Grab the first item in contents which name matches our passed name. - // format_text() is used here to strip \improper and \proper from both names, - // which is required for correct string comparison between them. - if(format_text(dispensed_item.name) == format_text(params["name"])) + if(istype(dispensed_item, text2path(params["path"]))) if(dispensed_item in component_parts) CRASH("Attempted removal of [dispensed_item] component_part from smartfridge via smartfridge interface.") //dispense the item if(!living_mob.put_in_hands(dispensed_item)) dispensed_item.forceMove(drop_location()) adjust_item_drop_location(dispensed_item) + if(vend_sound) + playsound(src, vend_sound, 50, TRUE, extrarange = -3) use_energy(active_power_usage) desired-- @@ -425,89 +432,50 @@ return FALSE // ---------------------------- -// Drying Rack 'smartfridge' +// Drying 'smartfridge' // ---------------------------- -/obj/machinery/smartfridge/drying_rack - name = "drying rack" - desc = "A wooden contraption, used to dry plant products, food and hide." - icon = 'icons/obj/service/hydroponics/equipment.dmi' - icon_state = "drying_rack" - resistance_flags = FLAMMABLE - visible_contents = FALSE - base_build_path = /obj/machinery/smartfridge/drying_rack //should really be seeing this without admin fuckery. - use_power = NO_POWER_USE - idle_power_usage = 0 +/obj/machinery/smartfridge/drying + name = "dehydrator" + desc = "A machine meant to remove moisture from various food." + icon_state = "dehydrator-icon" + base_icon_state = "dehydrator" + contents_overlay_icon = "contents" + circuit = /obj/item/circuitboard/machine/dehydrator + light_power = 0.5 + base_build_path = /obj/machinery/smartfridge/drying //should really be seeing this without admin fuckery. has_emissive = FALSE can_atmos_pass = ATMOS_PASS_YES + can_be_welded_down = FALSE + max_n_of_items = 25 + vend_sound = null /// Is the rack currently drying stuff var/drying = FALSE /// The reference to the last user's mind. Needed for the chef made trait to be properly applied correctly to dried food. var/datum/weakref/current_user -/obj/machinery/smartfridge/drying_rack/Initialize(mapload) - . = ..() - - //you can't weld down wood - welded_down = FALSE - - //so we don't drop any of the parent smart fridge parts upon deconstruction - clear_components() - -/obj/machinery/smartfridge/drying_rack/Destroy() +/obj/machinery/smartfridge/drying/Destroy() current_user = null return ..() -/// We cleared out the components in initialize so we can optimize this -/obj/machinery/smartfridge/drying_rack/visible_items() - return contents.len - -/obj/machinery/smartfridge/drying_rack/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) - if(isnull(held_item)) - return NONE - - var/tool_tip_set = FALSE - if(held_item.tool_behaviour == TOOL_CROWBAR) - context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" - tool_tip_set = TRUE - else if(held_item.tool_behaviour == TOOL_WRENCH) - context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Un" : ""]anchore" - tool_tip_set = TRUE - - return tool_tip_set ? CONTEXTUAL_SCREENTIP_SET : NONE - -/obj/machinery/smartfridge/drying_rack/structure_examine() - . = "" - if(anchored) - . += span_info("It's currently anchored to the floor. It can be [EXAMINE_HINT("wrenched")] loose.") - else - . += span_info("It's not anchored to the floor. It can be [EXAMINE_HINT("wrenched")] down.") - . += span_info("The whole rack can be [EXAMINE_HINT("pried")] apart.") - -/obj/machinery/smartfridge/drying_rack/welder_act(mob/living/user, obj/item/tool) - return NONE - -/obj/machinery/smartfridge/drying_rack/welder_act_secondary(mob/living/user, obj/item/tool) - return NONE - -/obj/machinery/smartfridge/drying_rack/default_deconstruction_screwdriver() - return NONE - -/obj/machinery/smartfridge/drying_rack/exchange_parts() - return +/obj/machinery/smartfridge/drying/AllowDrop() + return TRUE // Allow drying results to stay inside -/obj/machinery/smartfridge/drying_rack/on_deconstruction(disassembled) - new /obj/item/stack/sheet/mineral/wood(drop_location(), 10) +/obj/machinery/smartfridge/drying/update_overlays() + . = ..() + if(visible_contents && powered() && !(machine_stat & BROKEN)) + var/suffix = drying ? "on" : "off" + . += mutable_appearance(icon, "[base_icon_state]-[suffix]") + . += emissive_appearance(icon, "[base_icon_state]-[suffix]", src, alpha = src.alpha) -/obj/machinery/smartfridge/drying_rack/crowbar_act(mob/living/user, obj/item/tool) - if(default_deconstruction_crowbar(tool, ignore_panel = TRUE)) - return ITEM_INTERACT_SUCCESS +/obj/machinery/smartfridge/drying/visible_items() + return min(1, (contents.len - 1)) // Return one if has any, as there's only one icon for overlay -/obj/machinery/smartfridge/drying_rack/ui_data(mob/user) +/obj/machinery/smartfridge/drying/ui_data(mob/user) . = ..() .["isdryer"] = TRUE .["drying"] = drying -/obj/machinery/smartfridge/drying_rack/ui_act(action, params) +/obj/machinery/smartfridge/drying/ui_act(action, params) . = ..() if(.) update_appearance() // This is to handle a case where the last item is taken out manually instead of through drying pop-out @@ -518,15 +486,15 @@ toggle_drying(FALSE, usr) return TRUE -/obj/machinery/smartfridge/drying_rack/powered() +/obj/machinery/smartfridge/drying/powered() return !anchored ? FALSE : ..() -/obj/machinery/smartfridge/drying_rack/power_change() +/obj/machinery/smartfridge/drying/power_change() . = ..() if(!powered()) toggle_drying(TRUE) -/obj/machinery/smartfridge/drying_rack/load(obj/item/dried_object, mob/user) //For updating the filled overlay +/obj/machinery/smartfridge/drying/load(obj/item/dried_object, mob/user) //For updating the filled overlay . = ..() if(!.) return @@ -534,25 +502,18 @@ if(drying && user?.mind) current_user = WEAKREF(user.mind) -/obj/machinery/smartfridge/drying_rack/update_overlays() - . = ..() - if(drying) - . += "drying_rack_drying" - if(contents.len) - . += "drying_rack_filled" - -/obj/machinery/smartfridge/drying_rack/process() +/obj/machinery/smartfridge/drying/process(seconds_per_tick) if(drying) for(var/obj/item/item_iterator in src) if(!accept_check(item_iterator)) continue - rack_dry(item_iterator) + SEND_SIGNAL(item_iterator, COMSIG_ITEM_DRIED, current_user, seconds_per_tick) SStgui.update_uis(src) update_appearance() use_energy(active_power_usage) -/obj/machinery/smartfridge/drying_rack/accept_check(obj/item/O) +/obj/machinery/smartfridge/drying/accept_check(obj/item/O) return HAS_TRAIT(O, TRAIT_DRYABLE) /** @@ -560,7 +521,7 @@ * Arguments * * forceoff - if TRUE will force the dryer off always */ -/obj/machinery/smartfridge/drying_rack/proc/toggle_drying(forceoff, mob/user) +/obj/machinery/smartfridge/drying/proc/toggle_drying(forceoff, mob/user) if(drying || forceoff) drying = FALSE current_user = FALSE @@ -572,15 +533,70 @@ update_use_power(ACTIVE_POWER_USE) update_appearance() -/obj/machinery/smartfridge/drying_rack/proc/rack_dry(obj/item/target) - SEND_SIGNAL(target, COMSIG_ITEM_DRIED, current_user) - -/obj/machinery/smartfridge/drying_rack/emp_act(severity) +/obj/machinery/smartfridge/drying/emp_act(severity) . = ..() if(. & EMP_PROTECT_SELF) return atmos_spawn_air("[TURF_TEMPERATURE(1000)]") +/// Wooden version +/obj/machinery/smartfridge/drying/rack + name = "drying rack" + desc = "A wooden contraption, used to dry plant products, food and hide." + icon_state = "drying-rack" + base_icon_state = "drying-rack" + resistance_flags = FLAMMABLE + visible_contents = FALSE + base_build_path = /obj/machinery/smartfridge/drying/rack + use_power = NO_POWER_USE + idle_power_usage = 0 + +/obj/machinery/smartfridge/drying/rack/Initialize(mapload) + . = ..() + //so we don't drop any of the parent smart fridge parts upon deconstruction + clear_components() + +/obj/machinery/smartfridge/drying/rack/welder_act_secondary(mob/living/user, obj/item/tool) + return NONE // Can't repair wood with welder + +/obj/machinery/smartfridge/drying/rack/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) + if(isnull(held_item)) + return NONE + + var/tool_tip_set = FALSE + if(held_item.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + tool_tip_set = TRUE + else if(held_item.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Un" : ""]anchore" + tool_tip_set = TRUE + + return tool_tip_set ? CONTEXTUAL_SCREENTIP_SET : NONE + +/obj/machinery/smartfridge/drying/rack/structure_examine() + . = ..() + . += span_info("The whole rack can be [EXAMINE_HINT("pried")] apart.") + +/obj/machinery/smartfridge/drying/rack/default_deconstruction_screwdriver() + return NONE + +/obj/machinery/smartfridge/drying/rack/exchange_parts() + return + +/obj/machinery/smartfridge/drying/rack/on_deconstruction(disassembled) + new /obj/item/stack/sheet/mineral/wood(drop_location(), 10) + +/obj/machinery/smartfridge/drying/rack/crowbar_act(mob/living/user, obj/item/tool) + if(default_deconstruction_crowbar(tool, ignore_panel = TRUE)) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/smartfridge/drying/rack/update_overlays() + . = ..() + if(drying) + . += "[base_icon_state]-drying" + if(contents.len) + . += "[base_icon_state]-filled" + // ---------------------------- // Bar drink smartfridge // ---------------------------- @@ -588,7 +604,7 @@ name = "drink showcase" desc = "A refrigerated storage unit for tasty tasty alcohol." base_build_path = /obj/machinery/smartfridge/drinks - base_icon_state = "drink" + contents_overlay_icon = "drink" /obj/machinery/smartfridge/drinks/accept_check(obj/item/weapon) //not an item or valid container @@ -608,7 +624,7 @@ /obj/machinery/smartfridge/food desc = "A refrigerated storage unit for food." base_build_path = /obj/machinery/smartfridge/food - base_icon_state = "food" + contents_overlay_icon = "food" /obj/machinery/smartfridge/food/accept_check(obj/item/weapon) if(weapon.w_class >= WEIGHT_CLASS_BULKY) @@ -626,7 +642,7 @@ name = "smart slime extract storage" desc = "A refrigerated storage unit for slime extracts." base_build_path = /obj/machinery/smartfridge/extract - base_icon_state = "slime" + contents_overlay_icon = "slime" /obj/machinery/smartfridge/extract/accept_check(obj/item/weapon) return (istype(weapon, /obj/item/slime_extract) || istype(weapon, /obj/item/slime_scanner)) @@ -641,7 +657,7 @@ name = "smart petri dish storage" desc = "A refrigerated storage unit for petri dishes." base_build_path = /obj/machinery/smartfridge/petri - base_icon_state = "petri" + contents_overlay_icon = "petri" /obj/machinery/smartfridge/petri/accept_check(obj/item/weapon) return istype(weapon, /obj/item/petri_dish) @@ -657,7 +673,7 @@ desc = "A refrigerated storage unit for organ storage." max_n_of_items = 20 //vastly lower to prevent processing too long base_build_path = /obj/machinery/smartfridge/organ - base_icon_state = "organ" + contents_overlay_icon = "organ" /// The rate at which this fridge will repair damaged organs var/repair_rate = 0 @@ -710,7 +726,7 @@ name = "smart chemical storage" desc = "A refrigerated storage unit for medicine storage." base_build_path = /obj/machinery/smartfridge/chemistry - base_icon_state = "chem" + contents_overlay_icon = "chem" /obj/machinery/smartfridge/chemistry/accept_check(obj/item/weapon) // not an item or reagent container @@ -761,7 +777,7 @@ name = "smart virus storage" desc = "A refrigerated storage unit for volatile sample storage." base_build_path = /obj/machinery/smartfridge/chemistry/virology - base_icon_state = "viro" + contents_overlay_icon = "viro" /obj/machinery/smartfridge/chemistry/virology/preloaded initial_contents = list( @@ -782,10 +798,12 @@ name = "disk compartmentalizer" desc = "A machine capable of storing a variety of disks. Denoted by most as the DSU (disk storage unit)." icon_state = "disktoaster" - icon = 'icons/obj/machines/vending.dmi' + base_icon_state = "disktoaster" + has_emissive = TRUE pass_flags = PASSTABLE can_atmos_pass = ATMOS_PASS_YES visible_contents = FALSE + has_emissive = FALSE base_build_path = /obj/machinery/smartfridge/disks /obj/machinery/smartfridge/disks/accept_check(obj/item/weapon) diff --git a/code/modules/food_and_drinks/recipes/soup_mixtures.dm b/code/modules/food_and_drinks/recipes/soup_mixtures.dm index a549951890fe6..2b10fe169c272 100644 --- a/code/modules/food_and_drinks/recipes/soup_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/soup_mixtures.dm @@ -1469,6 +1469,20 @@ /datum/reagent/water = 5, ) +//Fresh Jellyfish fillet soup! +/datum/chemical_reaction/food/soup/jellyfish_stew_two + required_reagents = list(/datum/reagent/water = 50) + required_ingredients = list( + /obj/item/food/fishmeat/gunner_jellyfish = 1, + /obj/item/food/grown/soybeans = 1, + /obj/item/food/grown/redbeet = 1, + /obj/item/food/grown/potato = 1 + ) + results = list( + /datum/reagent/consumable/nutriment/soup/jellyfish = 50, + ) + + // Rootbread Soup /datum/reagent/consumable/nutriment/soup/rootbread name = "Rootbread Soup" diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm index c02a7243368bd..4d028de06fb22 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm @@ -827,7 +827,7 @@ // Machinery: Drying rack /datum/crafting_recipe/food/drying - machinery = list(/obj/machinery/smartfridge/drying_rack) + machinery = list(/obj/machinery/smartfridge/drying) steps = list("Put into the rack and dry") category = CAT_MISCFOOD non_craftable = TRUE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm index 100e74fd91682..71716a1ee7c2a 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm @@ -480,6 +480,10 @@ reaction = /datum/chemical_reaction/food/soup/jellyfish_stew category = CAT_LIZARD +/datum/crafting_recipe/food/reaction/soup/jellyfish_stew_two + reaction = /datum/chemical_reaction/food/soup/jellyfish_stew_two + category = CAT_LIZARD + /datum/crafting_recipe/food/reaction/soup/rootbread_soup reaction = /datum/chemical_reaction/food/soup/rootbread_soup category = CAT_LIZARD diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 24e5274f7fbfe..6fe7fdbc57d94 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -856,7 +856,7 @@ Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) -// EASTER (this having it's own spot should be understandable) +// EASTER (this having its own spot should be understandable) /datum/holiday/easter name = EASTER diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index ee62a12b3d0e1..0222fd41cdcf1 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -120,7 +120,11 @@ . = ..() if(prob(15)) icon_state = "basalt[rand(0, 12)]" - set_basalt_light(src) + switch(icon_state) + if("basalt1", "basalt2", "basalt3") + set_light(BASALT_LIGHT_RANGE_BRIGHT, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) + if("basalt5", "basalt9") + set_light(BASALT_LIGHT_RANGE_DIM, BASALT_LIGHT_POWER, LIGHT_COLOR_LAVA) /turf/open/floor/holofloor/space name = "\proper space" diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index fb82737711404..974b19889ecba 100644 --- a/code/modules/hydroponics/grown/beans.dm +++ b/code/modules/hydroponics/grown/beans.dm @@ -44,12 +44,22 @@ /obj/item/food/grown/koibeans seed = /obj/item/seeds/soya/koi name = "koibean" - desc = "Something about these seems fishy." + desc = "Something about these seems fishy, they seem really soft, almost squeezable!" icon_state = "koibeans" foodtypes = VEGETABLES tastes = list("koi" = 1) wine_power = 40 +//Now squeezable for imitation carpmeat +/obj/item/food/grown/koibeans/attack_self(mob/living/user) + user.visible_message(span_notice("[user] crushes [src] into a slab of carplike meat."), span_notice("You crush [src] into something that resembles a slab of carplike meat.")) + playsound(user, 'sound/effects/blobattack.ogg', 50, TRUE) + var/obj/item/food/fishmeat/carp/imitation/fishie = new(null) + fishie.reagents.set_all_reagents_purity(seed.get_reagent_purity()) + qdel(src) + user.put_in_hands(fishie) + return TRUE + //Butterbeans, the beans wid da butta! // Butterbeans! - Squeeze for a single butter slice! /obj/item/seeds/soya/butter diff --git a/code/modules/hydroponics/grown/kronkus.dm b/code/modules/hydroponics/grown/kronkus.dm index e0b6e6b66aad3..90d264230e750 100644 --- a/code/modules/hydroponics/grown/kronkus.dm +++ b/code/modules/hydroponics/grown/kronkus.dm @@ -16,6 +16,10 @@ growing_icon = 'icons/obj/service/hydroponics/growing.dmi' reagents_add = list(/datum/reagent/consumable/nutriment = 0.05) +/obj/item/seeds/kronkus/Initialize(mapload, nogenes) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/food/grown/kronkus seed = /obj/item/seeds/kronkus name = "kronkus vine segment" @@ -24,3 +28,7 @@ filling_color = "#37946e" foodtypes = VEGETABLES | TOXIC distill_reagent = /datum/reagent/kronkus_extract + +/obj/item/food/grown/kronkus/Initialize(mapload, nogenes) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index a90397687a6f6..88c8572a3ae75 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -1,4 +1,4 @@ -// A very special plant, deserving it's own file. +// A very special plant, deserving its own file. // Yes, i'm talking about cabbage, baby! No, just kidding, but cabbages are the precursor to replica pods, so they are here as well. /obj/item/seeds/cabbage diff --git a/code/modules/hydroponics/grown/weeds/kudzu.dm b/code/modules/hydroponics/grown/weeds/kudzu.dm index d8f1a66795b2b..86b49672705b9 100644 --- a/code/modules/hydroponics/grown/weeds/kudzu.dm +++ b/code/modules/hydroponics/grown/weeds/kudzu.dm @@ -1,4 +1,4 @@ -// A very special plant, deserving it's own file. +// A very special plant, deserving its own file. /obj/item/seeds/kudzu name = "pack of kudzu seeds" diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index e55977e2dba96..ccb4bb571e270 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -160,7 +160,7 @@ /** * This proc is called when we scan a hydroponics tray or soil on left click (stats mode) - * It formats the plant name, it's age, the plant's stats, and the tray's stats. + * It formats the plant name, its age, the plant's stats, and the tray's stats. * * - scanned_tray - the tray or soil we are scanning. * diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a6cbf990e20ab..5708327747bcd 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -58,7 +58,7 @@ /obj/machinery/hydroponics/Initialize(mapload) //ALRIGHT YOU DEGENERATES. YOU HAD REAGENT HOLDERS FOR AT LEAST 4 YEARS AND NONE OF YOU MADE HYDROPONICS TRAYS HOLD NUTRIENT CHEMS INSTEAD OF USING "Points". - //SO HERE LIES THE "nutrilevel" VAR. IT'S DEAD AND I PUT IT OUT OF IT'S MISERY. USE "reagents" INSTEAD. ~ArcaneMusic, accept no substitutes. + //SO HERE LIES THE "nutrilevel" VAR. IT'S DEAD AND I PUT IT OUT OF ITS MISERY. USE "reagents" INSTEAD. ~ArcaneMusic, accept no substitutes. create_reagents(maxnutri, INJECTABLE) if(mapload) reagents.add_reagent(/datum/reagent/plantnutriment/eznutriment, max(maxnutri / 2, 10)) //Half filled nutrient trays for dirt trays to have more to grow with in prison/lavaland. @@ -781,7 +781,7 @@ /** * Plant Cross-Pollination. * Checks all plants in the tray's oview range, then averages out the seed's potency, instability, and yield values. - * If the seed's instability is >= 20, the seed donates one of it's reagents to that nearby plant. + * If the seed's instability is >= 20, the seed donates one of its reagents to that nearby plant. * * Range - The Oview range of trays to which to look for plants to donate reagents. */ /obj/machinery/hydroponics/proc/pollinate(range = 1) @@ -1033,7 +1033,7 @@ to_chat(user, span_warning("[src] is empty!")) return if(myseed.endurance <= FLORA_GUN_MIN_ENDURANCE) - to_chat(user, span_warning("[myseed.plantname] isn't hardy enough to sequence it's mutation!")) + to_chat(user, span_warning("[myseed.plantname] isn't hardy enough to sequence its mutation!")) return if(!LAZYLEN(myseed.mutatelist)) to_chat(user, span_warning("[myseed.plantname] has nothing else to mutate into!")) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 9366ddc9d6fa8..ebfff08e87886 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -486,7 +486,7 @@ /** * A plant trait that causes the plant's capacity to double. * - * When harvested, the plant's individual capacity is set to double it's default. + * When harvested, the plant's individual capacity is set to double its default. * However, the plant's maximum yield is also halved, only up to 5. */ /datum/plant_gene/trait/maxchem @@ -762,7 +762,7 @@ /** * A plant trait that causes the plant's food reagents to ferment instead. * - * In practice, it replaces the plant's nutriment and vitamins with half as much of it's fermented reagent. + * In practice, it replaces the plant's nutriment and vitamins with half as much of its fermented reagent. * This exception is executed in seeds.dm under 'prepare_result'. * * Incompatible with auto-juicing composition. diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 30f3ade1a901f..db1d98ba98637 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -40,7 +40,7 @@ var/potency = 10 /// Amount of growth sprites the plant has. var/growthstages = 6 - // Chance that a plant will mutate in each stage of it's life. + // Chance that a plant will mutate in each stage of its life. var/instability = 5 /// How rare the plant is. Used for giving points to cargo when shipping off to CentCom. var/rarity = 0 diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index dcc4ef8daba3d..170000eb11557 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -17,7 +17,7 @@ /obj/item/instrument/Initialize(mapload) . = ..() song = new(src, allowed_instrument_ids, instrument_range) - allowed_instrument_ids = null //We don't need this clogging memory after it's used. + allowed_instrument_ids = null //We don't need this clogging memory after its used. /obj/item/instrument/Destroy() QDEL_NULL(song) diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm index 8bdb652e01da9..1807ad006ffc7 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -208,6 +208,6 @@ GLOBAL_PROTECT(exp_to_update) if(flags_read.NextRow()) prefs.db_flags = text2num(flags_read.item[1]) else if(isnull(prefs.db_flags)) - prefs.db_flags = 0 //This PROBABLY won't happen, but better safe than sorry. + prefs.db_flags = NONE //This PROBABLY won't happen, but better safe than sorry. qdel(flags_read) return TRUE diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index fa901e33de1ce..fc0564af77aec 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -259,6 +259,11 @@ if(!SSdbcore.Connect()) return 0 + // If they have been exempted from date availability checks, we assume they are old enough for all jobs. + // This is only added whenever an admin manually ticks the box for this player. + if(player.prefs?.db_flags & DB_FLAG_EXEMPT) + return 0 + // As of the time of writing this comment, verifying database connection isn't "solved". Sometimes rust-g will report a // connection mid-shift despite the database dying. // If the client age is -1, it means that no code path has overwritten it. Even first time connections get it set to 0, diff --git a/code/modules/jobs/job_types/antagonists/voidwalker.dm b/code/modules/jobs/job_types/antagonists/voidwalker.dm new file mode 100644 index 0000000000000..c29d165efb807 --- /dev/null +++ b/code/modules/jobs/job_types/antagonists/voidwalker.dm @@ -0,0 +1,2 @@ +/datum/job/voidwalker + title = ROLE_VOIDWALKER diff --git a/code/modules/jobs/job_types/assistant/assistant.dm b/code/modules/jobs/job_types/assistant/assistant.dm index 4e25f6a35b40c..12e029f943fe6 100644 --- a/code/modules/jobs/job_types/assistant/assistant.dm +++ b/code/modules/jobs/job_types/assistant/assistant.dm @@ -39,7 +39,7 @@ Assistant /datum/job/assistant/get_outfit(consistent) if(consistent) - return /datum/outfit/job/assistant/consistent + return /datum/outfit/job/assistant/preview if(!HAS_TRAIT(SSstation, STATION_TRAIT_ASSISTANT_GIMMICKS)) return ..() @@ -101,3 +101,12 @@ Assistant if (SSatoms.initialized == INITIALIZATION_INSSATOMS) H.w_uniform?.update_greyscale() H.update_worn_undersuit() + +/datum/outfit/job/assistant/preview + name = "Assistant - Preview" + +/datum/outfit/job/assistant/preview/give_jumpsuit(mob/living/carbon/human/target) + if (target.jumpsuit_style == PREF_SUIT) + uniform = /obj/item/clothing/under/color/grey + else + uniform = /obj/item/clothing/under/color/jumpskirt/grey diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index cc41ee7d01f1a..f3627c3c2a257 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -59,7 +59,7 @@ belt = /obj/item/modular_computer/pda/heads/hos ears = /obj/item/radio/headset/heads/hos/alt glasses = /obj/item/clothing/glasses/hud/security/sunglasses - gloves = /obj/item/clothing/gloves/color/black/security //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/gloves/color/black + gloves = /obj/item/clothing/gloves/color/black/security head = /obj/item/clothing/head/hats/hos/beret shoes = /obj/item/clothing/shoes/jackboots/sec l_pocket = /obj/item/restraints/handcuffs diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 397030734369f..f2ea6070aa686 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -228,7 +228,7 @@ GLOBAL_LIST_EMPTY(security_officer_distribution) ) belt = /obj/item/storage/belt/security/full ears = /obj/item/radio/headset/headset_sec/alt - gloves = /obj/item/clothing/gloves/color/black/security //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/gloves/color/black + gloves = /obj/item/clothing/gloves/color/black/security head = /obj/item/clothing/head/security_garrison //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/head/helmet/sec shoes = /obj/item/clothing/shoes/jackboots/sec l_pocket = /obj/item/restraints/handcuffs diff --git a/code/modules/jobs/job_types/station_trait/human_ai.dm b/code/modules/jobs/job_types/station_trait/human_ai.dm index 0768505b66553..032ad08af5a60 100644 --- a/code/modules/jobs/job_types/station_trait/human_ai.dm +++ b/code/modules/jobs/job_types/station_trait/human_ai.dm @@ -98,9 +98,7 @@ /obj/item/door_remote/omni = 1, /obj/item/machine_remote = 1, /obj/item/secure_camera_console_pod = 1, - ) - implants = list( - /obj/item/implant/teleport_blocker, + /obj/item/sensor_device = 1, ) uniform = /obj/item/clothing/under/rank/station_trait/human_ai @@ -108,9 +106,6 @@ ears = /obj/item/radio/headset/silicon/human_ai glasses = /obj/item/clothing/glasses/hud/diagnostic - suit = /obj/item/clothing/suit/costume/cardborg - head = /obj/item/clothing/head/costume/cardborg - l_pocket = /obj/item/laser_pointer/infinite_range //to punish borgs, this works through the camera console. r_pocket = /obj/item/assembly/flash/handheld diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index 4722ca7d489b5..f7b2d53ff25d9 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -57,7 +57,7 @@ belt = /obj/item/storage/belt/security/full ears = /obj/item/radio/headset/headset_sec/alt glasses = /obj/item/clothing/glasses/hud/security/sunglasses - gloves = /obj/item/clothing/gloves/color/black/security //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/gloves/color/black + gloves = /obj/item/clothing/gloves/color/black/security head = /obj/item/clothing/head/hats/warden //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/head/hats/warden/red shoes = /obj/item/clothing/shoes/jackboots/sec l_pocket = /obj/item/restraints/handcuffs diff --git a/code/modules/library/bibles.dm b/code/modules/library/bibles.dm index 39abe7baa509b..5221dc8047422 100644 --- a/code/modules/library/bibles.dm +++ b/code/modules/library/bibles.dm @@ -316,7 +316,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,TRUE) if(do_after(user, 4 SECONDS, target = sword)) playsound(src,'sound/effects/pray_chaplain.ogg',60,TRUE) - new /obj/item/nullrod/claymore(get_turf(sword)) + new /obj/item/nullrod/nullblade(get_turf(sword)) user.visible_message(span_notice("[user] exorcises [sword]!")) qdel(sword) return ITEM_INTERACT_SUCCESS diff --git a/code/modules/library/bookcase.dm b/code/modules/library/bookcase.dm index 16925dd5138e7..004db281c75c3 100644 --- a/code/modules/library/bookcase.dm +++ b/code/modules/library/bookcase.dm @@ -94,63 +94,81 @@ I.forceMove(Tsec) update_appearance() -/obj/structure/bookcase/attackby(obj/item/I, mob/user, params) - switch(state) - if(BOOKCASE_UNANCHORED) - if(I.tool_behaviour == TOOL_WRENCH) - if(I.use_tool(src, user, 20, volume=50)) - to_chat(user, span_notice("You wrench the frame into place.")) - set_anchored(TRUE) - else if(I.tool_behaviour == TOOL_CROWBAR) - if(I.use_tool(src, user, 20, volume=50)) - to_chat(user, span_notice("You pry the frame apart.")) - deconstruct(TRUE) +/obj/structure/bookcase/attackby(obj/item/attacking_item, mob/user, params) + if(state == BOOKCASE_UNANCHORED) + if(attacking_item.tool_behaviour == TOOL_WRENCH) + if(attacking_item.use_tool(src, user, 20, volume=50)) + balloon_alert(user, "wrenched in place") + set_anchored(TRUE) + return + + if(attacking_item.tool_behaviour == TOOL_CROWBAR) + if(attacking_item.use_tool(src, user, 20, volume=50)) + balloon_alert(user, "pried apart") + deconstruct(TRUE) + return + return ..() - if(BOOKCASE_ANCHORED) - if(istype(I, /obj/item/stack/sheet/mineral/wood)) - var/obj/item/stack/sheet/mineral/wood/W = I - if(W.get_amount() >= 2) - W.use(2) - to_chat(user, span_notice("You add a shelf.")) - state = BOOKCASE_FINISHED - update_appearance() - else if(I.tool_behaviour == TOOL_WRENCH) - I.play_tool_sound(src, 100) - to_chat(user, span_notice("You unwrench the frame.")) - set_anchored(FALSE) + if(state == BOOKCASE_ANCHORED) + if(istype(attacking_item, /obj/item/stack/sheet/mineral/wood)) + var/obj/item/stack/sheet/mineral/wood/W = attacking_item + if(W.get_amount() < 2) + balloon_alert(user, "not enough wood") + return + W.use(2) + balloon_alert(user, "shelf added") + state = BOOKCASE_FINISHED + update_appearance() + return + + if(attacking_item.tool_behaviour == TOOL_WRENCH) + attacking_item.play_tool_sound(src, 100) + balloon_alert(user, "unwrenched the frame") + set_anchored(FALSE) + return + return ..() - if(BOOKCASE_FINISHED) - if(isbook(I)) - if(!user.transferItemToLoc(I, src)) - return - update_appearance() - else if(atom_storage) - for(var/obj/item/T in I.contents) - if(istype(T, /obj/item/book) || istype(T, /obj/item/spellbook)) - atom_storage.attempt_remove(T, src) - to_chat(user, span_notice("You empty \the [I] into \the [src].")) - update_appearance() - else if(IS_WRITING_UTENSIL(I)) - if(!user.can_perform_action(src) || !user.can_write(I)) - return - var/newname = tgui_input_text(user, "What would you like to title this bookshelf?", "Bookshelf Renaming", max_length = MAX_NAME_LEN) - if(!user.can_perform_action(src) || !user.can_write(I)) - return - if(!newname) - return - else - name = "bookcase ([sanitize(newname)])" - else if(I.tool_behaviour == TOOL_CROWBAR) - if(length(contents)) - to_chat(user, span_warning("You need to remove the books first!")) - else - I.play_tool_sound(src, 100) - to_chat(user, span_notice("You pry the shelf out.")) - new /obj/item/stack/sheet/mineral/wood(drop_location(), 2) - state = BOOKCASE_ANCHORED - update_appearance() - else - return ..() + if(isbook(attacking_item)) + if(!user.transferItemToLoc(attacking_item, src)) + return ..() + update_appearance() + return + + if(atom_storage) + var/found_anything = FALSE + for(var/obj/item/T in attacking_item.contents) + if(istype(T, /obj/item/book) || istype(T, /obj/item/spellbook)) + atom_storage.attempt_remove(T, src) + found_anything = TRUE + + if (found_anything) + balloon_alert(user, "emptied into [src]") + update_appearance() + return + + if(IS_WRITING_UTENSIL(attacking_item)) + if(!user.can_perform_action(src) || !user.can_write(attacking_item)) + return ..() + var/newname = tgui_input_text(user, "What would you like to title this bookshelf?", "Bookshelf Renaming", max_length = MAX_NAME_LEN) + if(!user.can_perform_action(src) || !user.can_write(attacking_item)) + return ..() + if(!newname) + return + name = "bookcase ([sanitize(newname)])" + return + + if(attacking_item.tool_behaviour == TOOL_CROWBAR) + if(length(contents)) + balloon_alert(user, "remove the books first") + return + attacking_item.play_tool_sound(src, 100) + balloon_alert(user, "pried the shelf out") + new /obj/item/stack/sheet/mineral/wood(drop_location(), 2) + state = BOOKCASE_ANCHORED + update_appearance() + return + + return ..() /obj/structure/bookcase/attack_hand(mob/living/user, list/modifiers) . = ..() diff --git a/code/modules/mafia/outfits.dm b/code/modules/mafia/outfits.dm index 3b805bd92f9c0..0fdc90c2f3213 100644 --- a/code/modules/mafia/outfits.dm +++ b/code/modules/mafia/outfits.dm @@ -89,7 +89,7 @@ name = "Mafia Security Officer" uniform = /obj/item/clothing/under/rank/security/officer - gloves = /obj/item/clothing/gloves/color/black + gloves = /obj/item/clothing/gloves/color/black/security head = /obj/item/clothing/head/helmet/sec suit = /obj/item/clothing/suit/armor/vest/alt shoes = /obj/item/clothing/shoes/jackboots @@ -116,7 +116,7 @@ uniform = /obj/item/clothing/under/rank/security/head_of_security shoes = /obj/item/clothing/shoes/jackboots suit = /obj/item/clothing/suit/armor/hos/trenchcoat - gloves = /obj/item/clothing/gloves/color/black + gloves = /obj/item/clothing/gloves/color/black/security head = /obj/item/clothing/head/hats/hos/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses @@ -126,7 +126,7 @@ uniform = /obj/item/clothing/under/rank/security/warden shoes = /obj/item/clothing/shoes/jackboots suit = /obj/item/clothing/suit/armor/vest/warden/alt - gloves = /obj/item/clothing/gloves/color/black + gloves = /obj/item/clothing/gloves/color/black/security head = /obj/item/clothing/head/hats/warden/red glasses = /obj/item/clothing/glasses/hud/security/sunglasses diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm index 8dc9cec326d95..860eb8c816882 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm @@ -15,6 +15,7 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF light_range = 8 light_color = LIGHT_COLOR_LAVA + can_atmos_pass = ATMOS_PASS_DENSITY var/open = FALSE var/changing_openness = FALSE var/locked = FALSE diff --git a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm index 3507cb7d94746..ce50fcccc1568 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm @@ -213,7 +213,7 @@ "\[15:29\] USELESS clown", "\[15:35\] And BATSHIT fucking janitors", "\[15:46\] That includes the crotchety fucking IBM piece of shit we're supposed to call an AI", - "\[15:52\] And it's legion of cyborg assholes", + "\[15:52\] And its legion of cyborg assholes", "\[15:58\] If this wasn't bad enough there is the wizards federation to worry about", "\[16:06\] Crazy bastards", "\[16:10\] What can be worse than a bunch of plasma-humping-space-freaks?", @@ -244,7 +244,7 @@ "\[47:32\] Once they called me captain, but when it's all said and done", "\[47:41\] I'll be a hero", "\[47:45\] If you run across this transmission by chance", - "\[47:52\] Get you pudgy little nerd ass over to Space Station 13 and start busting heads.", + "\[47:52\] Get your pudgy little nerd ass over to Space Station 13 and start busting heads.", "\[48:00\] (farting noises)", ) timestamp = list( diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm index b01ca83a8a24d..6ac3fd75f963c 100644 --- a/code/modules/mapping/preloader.dm +++ b/code/modules/mapping/preloader.dm @@ -30,7 +30,7 @@ GLOBAL_LIST_INIT(_preloader_path, null) what.vars[attribute] = value /// Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency -/// ex. if a ship has gaps in it's design, you would use template_noop to fill these in so that when the ship moves z-level, any +/// ex. if a ship has gaps in its design, you would use template_noop to fill these in so that when the ship moves z-level, any /// tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles /area/template_noop name = "Area Passthrough" diff --git a/code/modules/meteors/meteor_dark_matteor.dm b/code/modules/meteors/meteor_dark_matteor.dm index f72bbcff6fa13..18dbaf007024f 100644 --- a/code/modules/meteors/meteor_dark_matteor.dm +++ b/code/modules/meteors/meteor_dark_matteor.dm @@ -32,7 +32,7 @@ START_PROCESSING(SSobj, src) /obj/effect/meteor/dark_matteor/process(seconds_per_tick) - //meteor's warp quickly contracts then slowly expands it's ring + //meteor's warp quickly contracts then slowly expands its ring animate(warp, time = seconds_per_tick*3, transform = matrix().Scale(0.5,0.5)) animate(time = seconds_per_tick*7, transform = matrix()) diff --git a/code/modules/mining/boulder_processing/_boulder_processing.dm b/code/modules/mining/boulder_processing/_boulder_processing.dm index 5795eed1d7490..ab72e4ebae57b 100644 --- a/code/modules/mining/boulder_processing/_boulder_processing.dm +++ b/code/modules/mining/boulder_processing/_boulder_processing.dm @@ -15,7 +15,7 @@ var/boulders_held_max = 1 /// What sound plays when a thing operates? var/usage_sound = 'sound/machines/mining/wooping_teleport.ogg' - /// Silo link to it's materials list. + /// Silo link to its materials list. var/datum/component/remote_materials/silo_materials /// Mining points held by the machine for miners. var/points_held = 0 diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm index 27748135cbb44..d49f1e6b02abb 100644 --- a/code/modules/mining/lavaland/tendril_loot.dm +++ b/code/modules/mining/lavaland/tendril_loot.dm @@ -246,13 +246,13 @@ inhand_icon_state = "lantern-blue" wisp.orbit(user, 20) SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Freed") + return - else - to_chat(user, span_notice("You return the wisp to the lantern.")) - icon_state = "lantern-blue-on" - inhand_icon_state = "lantern-blue-on" - wisp.forceMove(src) - SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Returned") + to_chat(user, span_notice("You return the wisp to the lantern.")) + icon_state = "lantern-blue-on" + inhand_icon_state = "lantern-blue-on" + wisp.forceMove(src) + SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Returned") /obj/item/wisp_lantern/Initialize(mapload) . = ..() @@ -278,26 +278,30 @@ light_flags = LIGHT_ATTACHED layer = ABOVE_ALL_MOB_LAYER plane = ABOVE_GAME_PLANE - var/sight_flags = SEE_MOBS var/list/color_cutoffs = list(10, 25, 25) /obj/effect/wisp/orbit(atom/thing, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lockinorbit) . = ..() - if(ismob(thing)) - RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, PROC_REF(update_user_sight)) - var/mob/being = thing - being.update_sight() - to_chat(thing, span_notice("The wisp enhances your vision.")) + if(!ismob(thing)) + return + var/mob/being = thing + RegisterSignal(being, COMSIG_MOB_UPDATE_SIGHT, PROC_REF(update_user_sight)) + to_chat(being, span_notice("The wisp enhances your vision.")) + ADD_TRAIT(being, TRAIT_THERMAL_VISION, REF(src)) + being.update_sight() /obj/effect/wisp/stop_orbit(datum/component/orbiter/orbits) - . = ..() - if(ismob(orbits.parent)) - UnregisterSignal(orbits.parent, COMSIG_MOB_UPDATE_SIGHT) - to_chat(orbits.parent, span_notice("Your vision returns to normal.")) + if(!ismob(orbit_target)) + return ..() + var/mob/being = orbit_target + UnregisterSignal(being, COMSIG_MOB_UPDATE_SIGHT) + to_chat(being, span_notice("Your vision returns to normal.")) + REMOVE_TRAIT(being, TRAIT_THERMAL_VISION, REF(src)) + being.update_sight() + return ..() /obj/effect/wisp/proc/update_user_sight(mob/user) SIGNAL_HANDLER - user.add_sight(sight_flags) if(!isnull(color_cutoffs)) user.lighting_color_cutoffs = blend_cutoff_colors(user.lighting_color_cutoffs, color_cutoffs) @@ -773,7 +777,7 @@ user.physiology.brute_mod *= 0.5 user.next_move_modifier *= BERSERK_ATTACK_SPEED_MODIFIER user.add_atom_colour(COLOR_BUBBLEGUM_RED, TEMPORARY_COLOUR_PRIORITY) - ADD_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT) + user.add_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), BERSERK_TRAIT) ADD_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT) berserk_active = TRUE START_PROCESSING(SSobj, src) @@ -791,7 +795,7 @@ user.physiology.brute_mod *= 2 user.next_move_modifier /= BERSERK_ATTACK_SPEED_MODIFIER user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, COLOR_BUBBLEGUM_RED) - REMOVE_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT) + user.remove_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), BERSERK_TRAIT) REMOVE_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT) STOP_PROCESSING(SSobj, src) diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 79d7901dd9e44..c8a58a1d0f493 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -13,7 +13,7 @@ /obj/machinery/mineral/stacking_unit_console/Initialize(mapload) . = ..() var/area/our_area = get_area(src) - if(!isnull(our_area)) + if(isnull(our_area)) return var/list/turf_list = our_area.get_turfs_by_zlevel(z) if(!islist(turf_list)) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index d2a9af576ce42..5d9809a01f798 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -406,7 +406,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /*****************************Coin********************************/ -// The coin's value is a value of it's materials. +// The coin's value is a value of its materials. // Yes, the gold standard makes a come-back! // This is the only way to make coins that are possible to produce on station actually worth anything. /obj/item/coin diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 019205ca7da26..cf89aa8dd9789 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -524,6 +524,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp . = ..() //restart our floating animation after orbit is done. pixel_y = base_pixel_y + // if we were autoobserving, reset perspective + if (!isnull(client) && !isnull(client.eye)) + reset_perspective(null) /mob/dead/observer/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak set category = "Ghost" diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index ee0b4528995ef..bdb0b7ce37e88 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -211,13 +211,25 @@ GLOBAL_DATUM_INIT(orbit_menu, /datum/orbit_menu, new) if(issilicon(player)) serialized["job"] = player.job serialized["icon"] = "borg" - else - var/obj/item/card/id/id_card = player.get_idcard(hand_first = FALSE) - serialized["job"] = id_card?.get_trim_assignment() - serialized["icon"] = id_card?.get_trim_sechud_icon_state() + return serialized - return serialized + var/obj/item/card/id/id_card = player.get_idcard(hand_first = FALSE) + serialized["job"] = id_card?.get_trim_assignment() + serialized["icon"] = id_card?.get_trim_sechud_icon_state() + + var/datum/job/job = player.mind?.assigned_role + if (isnull(job)) + return serialized + serialized["mind_job"] = job.title + var/datum/outfit/outfit = job.get_outfit() + if (isnull(outfit)) + return serialized + + var/datum/id_trim/trim = outfit.id_trim + if (!isnull(trim)) + serialized["mind_icon"] = trim::sechud_icon_state + return serialized /// Gets a list: Misc data and whether it's critical. Handles all snowflakey type cases /datum/orbit_menu/proc/get_misc_data(atom/movable/atom_poi) as /list diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 7814bea871be9..021960395d086 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -27,14 +27,19 @@ to_chat(src, span_notice("'[act]' emote does not exist. Say *help for a list.")) return FALSE var/silenced = FALSE - for(var/datum/emote/P in key_emotes) - if(!P.check_cooldown(src, intentional)) + for(var/datum/emote/emote in key_emotes) + if(!emote.check_cooldown(src, intentional)) silenced = TRUE continue - if(P.run_emote(src, param, m_type, intentional)) - SEND_SIGNAL(src, COMSIG_MOB_EMOTE, P, act, m_type, message, intentional) - SEND_SIGNAL(src, COMSIG_MOB_EMOTED(P.key)) - return TRUE + if(!emote.can_run_emote(src, TRUE, intentional, param)) + continue + if(SEND_SIGNAL(src, COMSIG_MOB_PRE_EMOTED, emote.key, param, m_type, intentional, emote) & COMPONENT_CANT_EMOTE) + silenced = TRUE + continue + emote.run_emote(src, param, m_type, intentional) + SEND_SIGNAL(src, COMSIG_MOB_EMOTE, emote, act, m_type, message, intentional) + SEND_SIGNAL(src, COMSIG_MOB_EMOTED(emote.key)) + return TRUE src.nextsoundemote = world.time // SKYRAT EDIT ADDITION if(intentional && !silenced && !force_silence) to_chat(src, span_notice("Unusable emote '[act]'. Say *help for a list.")) @@ -79,15 +84,15 @@ /datum/emote/flip/run_emote(mob/user, params , type_override, intentional) . = ..() - if(.) - user.SpinAnimation(HAS_TRAIT(user, TRAIT_SLOW_FLIP) ? FLIP_EMOTE_DURATION * 2 : FLIP_EMOTE_DURATION, 1) + user.SpinAnimation(HAS_TRAIT(user, TRAIT_SLOW_FLIP) ? FLIP_EMOTE_DURATION * 2 : FLIP_EMOTE_DURATION, 1) /datum/emote/flip/check_cooldown(mob/user, intentional) var/slow_flipper = HAS_TRAIT(user, TRAIT_SLOW_FLIP) if(slow_flipper) cooldown *= 2 . = ..() - cooldown *= 0.5 + if(slow_flipper) + cooldown *= 0.5 if(.) return if(!can_run_emote(user, intentional=intentional)) @@ -117,8 +122,7 @@ /datum/emote/spin/run_emote(mob/user, params, type_override, intentional) . = ..() - if(.) - user.spin(20, 1) + user.spin(20, 1) /datum/emote/spin/check_cooldown(mob/living/carbon/user, intentional) . = ..() diff --git a/code/modules/mob/living/basic/bots/_bots.dm b/code/modules/mob/living/basic/bots/_bots.dm index 86fe0b5cf5704..aad840aa18548 100644 --- a/code/modules/mob/living/basic/bots/_bots.dm +++ b/code/modules/mob/living/basic/bots/_bots.dm @@ -113,7 +113,7 @@ GLOBAL_LIST_INIT(command_strings, list( RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(handle_loop_movement)) RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(after_attacked)) RegisterSignal(src, COMSIG_MOB_TRIED_ACCESS, PROC_REF(attempt_access)) - ADD_TRAIT(src, TRAIT_NO_GLIDE, INNATE_TRAIT) + add_traits(list(TRAIT_NO_GLIDE, TRAIT_SILICON_EMOTES_ALLOWED), INNATE_TRAIT) GLOB.bots_list += src // Give bots a fancy new ID card that can hold any access. diff --git a/code/modules/mob/living/basic/bots/firebot/firebot.dm b/code/modules/mob/living/basic/bots/firebot/firebot.dm index 31fa969fa5983..e6eeaa2031cc6 100644 --- a/code/modules/mob/living/basic/bots/firebot/firebot.dm +++ b/code/modules/mob/living/basic/bots/firebot/firebot.dm @@ -74,15 +74,15 @@ internal_ext.refill() /mob/living/basic/bot/firebot/melee_attack(atom/attacked_atom, list/modifiers, ignore_cooldown = FALSE) - use_extinguisher(attacked_atom) + use_extinguisher(attacked_atom, modifiers) /mob/living/basic/bot/firebot/RangedAttack(atom/attacked_atom, list/modifiers) - use_extinguisher(attacked_atom) + use_extinguisher(attacked_atom, modifiers) -/mob/living/basic/bot/firebot/proc/use_extinguisher(atom/attacked_atom) +/mob/living/basic/bot/firebot/proc/use_extinguisher(atom/attacked_atom, list/modifiers) if(!(bot_mode_flags & BOT_MODE_ON)) return - spray_water(attacked_atom) + spray_water(attacked_atom, modifiers) /mob/living/basic/bot/firebot/emag_act(mob/user, obj/item/card/emag/emag_card) . = ..() @@ -137,12 +137,12 @@ foam.start() COOLDOWN_START(src, foam_cooldown, FOAM_INTERVAL) -/mob/living/basic/bot/firebot/proc/spray_water(atom/attacked_atom) +/mob/living/basic/bot/firebot/proc/spray_water(atom/attacked_atom, list/modifiers) if(firebot_mode_flags & FIREBOT_STATIONARY_MODE) flick("firebots_use", src) else flick("firebot1_use", src) - internal_ext?.melee_attack_chain(src, attacked_atom) + internal_ext?.interact_with_atom(attacked_atom, src, modifiers) /mob/living/basic/bot/firebot/update_icon_state() . = ..() diff --git a/code/modules/mob/living/basic/cult/constructs/_construct.dm b/code/modules/mob/living/basic/cult/constructs/_construct.dm index 79e6e7487721b..1c5e91b50c263 100644 --- a/code/modules/mob/living/basic/cult/constructs/_construct.dm +++ b/code/modules/mob/living/basic/cult/constructs/_construct.dm @@ -35,7 +35,7 @@ /// Flavor text shown to players when they spawn as this construct var/playstyle_string = "You are a generic construct. Your job is to not exist, and you should probably adminhelp this." /// The construct's master - var/master = null + var/mob/construct_master = null /// Whether this construct is currently seeking nar nar var/seeking = FALSE /// Whether this construct can repair other constructs or cult buildings. Gets the healing_touch component if so. diff --git a/code/modules/mob/living/basic/cult/constructs/harvester.dm b/code/modules/mob/living/basic/cult/constructs/harvester.dm index 6d41bb43f26a1..b48a26b681937 100644 --- a/code/modules/mob/living/basic/cult/constructs/harvester.dm +++ b/code/modules/mob/living/basic/cult/constructs/harvester.dm @@ -80,9 +80,9 @@ var/datum/objective/eldergod/summon_objective = locate() in cult_status.cult_team.objectives if(summon_objective.check_completion()) - the_construct.master = cult_status.cult_team.blood_target + the_construct.construct_master = cult_status.cult_team.blood_target - if(!the_construct.master) + if(!the_construct.construct_master) to_chat(the_construct, span_cult_italic("You have no master to seek!")) the_construct.seeking = FALSE return @@ -122,8 +122,8 @@ to_chat(the_construct, span_cult_italic("Nar'Sie has completed her harvest!")) return - the_construct.master = pick(GLOB.cult_narsie.souls_needed) - var/mob/living/real_target = the_construct.master //We can typecast this way because Narsie only allows /mob/living into the souls list + the_construct.construct_master = pick(GLOB.cult_narsie.souls_needed) + var/mob/living/real_target = the_construct.construct_master //We can typecast this way because Narsie only allows /mob/living into the souls list to_chat(the_construct, span_cult_italic("You are now tracking your prey, [real_target.real_name] - harvest [real_target.p_them()]!")) desc = "Activate to track Nar'Sie!" button_icon_state = "sintouch" @@ -150,21 +150,26 @@ lighting_cutoff_red = 10 lighting_cutoff_green = 20 lighting_cutoff_blue = 5 - playstyle_string = "You are a Rusted Harvester, built to serve the Sanguine Apostate, twisted to work the will of the Mansus. You are fragile and weak, but you rend cultists (only) apart on each attack. Follow your Master's orders!" + playstyle_string = span_bold("You are a Rusted Harvester, built to serve the Sanguine Apostate, twisted to work the will of the Mansus. You are fragile and weak, but you rend cultists (only) apart on each attack. Follow your Master's orders!") theme = THEME_HERETIC /mob/living/basic/construct/harvester/heretic/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_MANSUS_TOUCHED, REF(src)) add_filter("rusted_harvester", 3, list("type" = "outline", "color" = COLOR_GREEN, "size" = 2, "alpha" = 40)) + RegisterSignal(src, COMSIG_MIND_TRANSFERRED, TYPE_PROC_REF(/datum/mind, enslave_mind_to_creator)) + RegisterSignal(src, COMSIG_MOB_ENSLAVED_TO, PROC_REF(link_master)) +/mob/living/basic/construct/harvester/heretic/proc/link_master(mob/self, mob/master) + src.construct_master = master + RegisterSignal(construct_master, COMSIG_LIVING_DEATH, PROC_REF(on_master_death)) + SIGNAL_HANDLER -/** - * Somewhat janky proc called when a heretic monster's master dies - * Used to kill any living Rusted Harvester - */ -/mob/living/proc/on_master_death() - return +/mob/living/basic/construct/harvester/heretic/proc/on_master_death(mob/self, mob/master) + SIGNAL_HANDLER + to_chat(src, span_userdanger("Your link to the mansus suddenly snaps as your master [construct_master] perishes! Without [construct_master.p_their()] support, your body crumbles...")) + visible_message(span_alert("[src] suddenly crumbles to dust!")) + death() /mob/living/basic/construct/harvester/heretic/attack_animal(mob/living/simple_animal/user, list/modifiers) // They're pretty fragile so this is probably necessary to prevent bullshit deaths. @@ -172,11 +177,6 @@ return return ..() -/mob/living/basic/construct/harvester/heretic/on_master_death() - to_chat(src, span_userdanger("Your link to the mansus suddenly snaps as your master perishes! Without its support, your body crumbles...")) - visible_message(span_alert("[src] suddenly crumbles to dust!")) - death() - /mob/living/basic/construct/harvester/heretic/grant_abilities() AddElement(/datum/element/wall_walker, or_trait = TRAIT_RUSTY) AddElement(/datum/element/leeching_walk) @@ -233,9 +233,6 @@ . = ..() the_construct = Target the_construct.seeking = TRUE - var/datum/antagonist/heretic_monster/antag = IS_HERETIC_MONSTER(the_construct) - if(antag) - the_construct.master = antag.master // no real reason for most of this weird oldcode /datum/action/innate/seek_master/Activate() diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm index ad10e30acecd7..a06ecb9e9b040 100644 --- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm @@ -28,6 +28,14 @@ ai_controller = /datum/ai_controller/basic_controller/lobstrosity /// Charging ability var/datum/action/cooldown/mob_cooldown/charge/basic_charge/lobster/charge + /// The type of charging ability we give this mob + var/charge_type = /datum/action/cooldown/mob_cooldown/charge/basic_charge/lobster + /// The pet command for the charging ability we give this mob + var/charge_command = /datum/pet_command/point_targeting/use_ability/lob_charge + /// At which speed do we amputate limbs + var/snip_speed = 5 SECONDS + ///Lobstrosities are natural anglers. This rapresent their proficiency at fishing when not mindless + var/base_fishing_level = SKILL_LEVEL_APPRENTICE /// Things we will eat if we see them (arms, chiefly) var/static/list/target_foods = list(/obj/item/bodypart/arm, /obj/item/fish/lavaloop) @@ -35,20 +43,17 @@ . = ..() var/static/list/food_types = list(/obj/item/fish/lavaloop) ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(food_types)) - var/static/list/fishing_preset = list( - /turf/open/lava = /datum/fish_source/lavaland, - /turf/open/lava/plasma = /datum/fish_source/lavaland/icemoon, - ) - AddComponent(/datum/component/profound_fisher, npc_fishing_preset = fishing_preset) + AddComponent(/datum/component/profound_fisher) AddElement(/datum/element/mob_grabber) AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW) AddElement(/datum/element/basic_eating, food_types = target_foods) AddComponent(\ /datum/component/amputating_limbs,\ + surgery_time = snip_speed, \ surgery_verb = "begins snipping",\ target_zones = GLOB.arm_zones,\ ) - charge = new(src) + charge = new charge_type(src) charge.Grant(src) ai_controller.set_blackboard_key(BB_TARGETED_ACTION, charge) @@ -59,6 +64,35 @@ /mob/living/basic/mining/lobstrosity/ranged_secondary_attack(atom/atom_target, modifiers) charge.Trigger(target = atom_target) +/mob/living/basic/mining/lobstrosity/tamed(mob/living/tamer, obj/item/food) + new /obj/effect/temp_visual/heart(loc) + /// Pet commands for this mob, however you'll have to tame juvenile lobstrosities to a trained adult one. + var/list/pet_commands = list( + /datum/pet_command/idle, + /datum/pet_command/free, + /datum/pet_command/point_targeting/attack, + charge_command, + /datum/pet_command/follow, + /datum/pet_command/point_targeting/fish, + ) + AddComponent(/datum/component/happiness) + AddComponent(/datum/component/obeys_commands, pet_commands) + ai_controller.ai_traits = STOP_MOVING_WHEN_PULLED + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + +/mob/living/basic/mining/lobstrosity/befriend(mob/living/new_friend) + . = ..() + faction |= new_friend.faction + faction -= FACTION_MINING + +/mob/living/basic/mining/lobstrosity/mind_initialize() + . = ..() + if(mind.get_skill_level(/datum/skill/fishing) < base_fishing_level) + mind.set_level(/datum/skill/fishing, base_fishing_level, TRUE) + /// Lavaland lobster variant, it basically just looks different /mob/living/basic/mining/lobstrosity/lava name = "chasm lobstrosity" @@ -87,5 +121,145 @@ . = ..() if(!isliving(charger)) return - var/mob/living/living_charger = charger - living_charger.apply_status_effect(/datum/status_effect/tired_post_charge) + apply_post_charge(charger) + +/datum/action/cooldown/mob_cooldown/charge/basic_charge/lobster/proc/apply_post_charge(mob/living/charger) + charger.apply_status_effect(/datum/status_effect/tired_post_charge) + +///A weaker, yet somewhat faster lobstrosity. Sources include aquarium chasm chrabs, chasms, plasma rivers and perhaps xenobio. +/mob/living/basic/mining/lobstrosity/juvenile + name = "juvenile arctic lobstrosity" + desc = "A youngling of the behemothic arctic lobstrosity. They usually stay put in the underground lakes they reside in until they're fully grown." + icon_state = "arctic_juveline_lobstrosity" + icon_living = "arctic_juveline_lobstrosity" + icon_dead = "arctic_juveline_lobstrosity_dead" + status_flags = parent_type::status_flags | CANPUSH + maxHealth = 65 + health = 65 + obj_damage = 6 + melee_damage_lower = 6 + melee_damage_upper = 9 + melee_attack_cooldown = 0.9 SECONDS + speed = 0.7 + mob_size = MOB_SIZE_HUMAN + butcher_results = list( + /obj/item/food/meat/slab/rawcrab = 1, + /obj/item/stack/sheet/bone = 1, + /obj/item/organ/internal/monster_core/rush_gland = 1, + ) + crusher_loot = null + ai_controller = /datum/ai_controller/basic_controller/lobstrosity/juvenile + snip_speed = 6.5 SECONDS + charge_type = /datum/action/cooldown/mob_cooldown/charge/basic_charge/lobster/shrimp + charge_command = /datum/pet_command/point_targeting/use_ability/lob_charge/shrimp + base_fishing_level = SKILL_LEVEL_NOVICE + /// What do we become when we grow up? + var/mob/living/basic/mining/lobstrosity/grow_type = /mob/living/basic/mining/lobstrosity + /// Were we tamed? If yes, tame the mob we become when we grow up too. + var/was_tamed = FALSE + +/mob/living/basic/mining/lobstrosity/juvenile/Initialize(mapload) + . = ..() + var/growth_step = 1000/(8 MINUTES) //It should take 8 minutes if you keep the happiness above 40% and at most 14 + AddComponent(\ + /datum/component/growth_and_differentiation,\ + growth_path = grow_type,\ + growth_probability = 58,\ + lower_growth_value = growth_step,\ + upper_growth_value = growth_step,\ + scale_with_happiness = TRUE,\ + optional_checks = CALLBACK(src, PROC_REF(ready_to_grow)),\ + optional_grow_behavior = CALLBACK(src, PROC_REF(grow_up))\ + ) + AddComponent(/datum/component/tameable, target_foods, tame_chance = 35, bonus_tame_chance = 20) + AddComponent(/datum/component/swarming, 16, 11) + ADD_TRAIT(src, TRAIT_MOB_HIDE_HAPPINESS, INNATE_TRAIT) //Do not let strangers know it gets happy when poked if stray. + +/mob/living/basic/mining/lobstrosity/juvenile/add_ranged_armour(list/vulnerable_projectiles) + AddElement(\ + /datum/element/ranged_armour,\ + minimum_projectile_force = 30,\ + below_projectile_multiplier = 0.6,\ + vulnerable_projectile_types = vulnerable_projectiles,\ + minimum_thrown_force = 13,\ + throw_blocked_message = throw_blocked_message,\ + ) + +#define MAX_JUVENILES_ALLOWED_ON_TURF 3 + +///Juvenile lobstrosities can swarm and pass through each other, but only 3 at most can stand the same turf. +/mob/living/basic/mining/lobstrosity/juvenile/CanAllowThrough(atom/movable/mover, border_dir) + if(!istype(mover, /mob/living/basic/mining/lobstrosity/juvenile)) + return ..() + var/juveniles_count = 0 + for(var/mob/living/basic/mining/lobstrosity/juvenile/lob in loc) + juveniles_count++ + if(juveniles_count > MAX_JUVENILES_ALLOWED_ON_TURF) + return ..() + return TRUE + +#undef MAX_JUVENILES_ALLOWED_ON_TURF + +/mob/living/basic/mining/lobstrosity/juvenile/tamed(mob/living/tamer, obj/item/food) + . = ..() + was_tamed = TRUE + // They are more pettable I guess + AddElement(/datum/element/pet_bonus, "chitters pleasantly!") + REMOVE_TRAIT(src, TRAIT_MOB_HIDE_HAPPINESS, INNATE_TRAIT) + +/mob/living/basic/mining/lobstrosity/juvenile/proc/ready_to_grow() + return isturf(loc) + +/mob/living/basic/mining/lobstrosity/juvenile/proc/grow_up() + var/name_to_use = name == initial(name) ? grow_type::name : name + var/mob/living/basic/mining/lobstrosity/grown = change_mob_type(grow_type, get_turf(src), name_to_use) + if(was_tamed) + grown.tamed() + for(var/friend in ai_controller?.blackboard?[BB_FRIENDS_LIST]) + grown.befriend(friend) + grown.setBruteLoss(getBruteLoss()) + grown.setFireLoss(getFireLoss()) + qdel(src) //We called change_mob_type without 'delete_old_mob = TRUE' since we had to pass down friends and damage + +/mob/living/basic/mining/lobstrosity/juvenile/lava + name = "juvenile chasm lobstrosity" + desc = "A youngling of the behemothic lobstrosity. They usually don't crawl out of the vents they reside in until they're fully grown." + icon_state = "juveline_lobstrosity" + icon_living = "juveline_lobstrosity" + icon_dead = "juveline_lobstrosity_dead" + grow_type = /mob/living/basic/mining/lobstrosity/lava + +/// Shorter, weaker version of the Lobster Rush +/datum/action/cooldown/mob_cooldown/charge/basic_charge/lobster/shrimp + name = "Shrimp Rush" + charge_distance = 4 + knockdown_duration = 1.8 SECONDS + charge_delay = 0.2 SECONDS + charge_damage = 13 + +/datum/action/cooldown/mob_cooldown/charge/basic_charge/lobster/apply_post_charge(mob/living/charger) + charger.apply_status_effect(/datum/status_effect/tired_post_charge/lesser) + +///Command the lobster to charge at someone. +/datum/pet_command/point_targeting/use_ability/lob_charge + command_name = "Charge" + command_desc = "Command your lobstrosity to charge against someone." + radial_icon = 'icons/mob/actions/actions_items.dmi' + radial_icon_state = "sniper_zoom" + speech_commands = list("charge", "slam", "tackle") + command_feedback = "growl" + pointed_reaction = "and growls" + pet_ability_key = BB_TARGETED_ACTION + ability_behavior = /datum/ai_behavior/pet_use_ability/then_attack/long_ranged + +/datum/pet_command/point_targeting/use_ability/lob_charge/set_command_target(mob/living/parent, atom/target) + if (!target) + return + var/datum/targeting_strategy/targeter = GET_TARGETING_STRATEGY(parent.ai_controller.blackboard[targeting_strategy_key]) + if(!targeter?.can_attack(parent, target)) + parent.balloon_alert_to_viewers("shakes head!") + return FALSE + return ..() + +/datum/pet_command/point_targeting/use_ability/lob_charge/shrimp + ability_behavior = /datum/ai_behavior/pet_use_ability/then_attack/short_ranged 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 fb0ba437bf48c..75b64d051203a 100644 --- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm @@ -1,9 +1,20 @@ +#define SHRIMP_HARM_RESPONSES list(\ + "*me stares blankly.",\ + "*me stares shrimply.",\ + "*me gives a confused look.",\ + "*me chitters unpleasantly.",\ +) + /datum/ai_controller/basic_controller/lobstrosity blackboard = list( BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + 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), - BB_LOBSTROSITY_FINGER_LUST = 0 + BB_LOBSTROSITY_FINGER_LUST = 0, + BB_LOBSTROSITY_NAIVE_HUNTER = FALSE, + BB_BASIC_MOB_FLEE_DISTANCE = 8, + BB_OWNER_SELF_HARM_RESPONSES = SHRIMP_HARM_RESPONSES, ) ai_traits = PAUSE_DURING_DO_AFTER @@ -12,6 +23,32 @@ planning_subtrees = list( /datum/ai_planning_subtree/random_speech/insect, /datum/ai_planning_subtree/hoard_fingers, + /datum/ai_planning_subtree/pet_planning, + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/targeted_mob_ability/lobster, + /datum/ai_planning_subtree/flee_target/lobster, + /datum/ai_planning_subtree/attack_obstacle_in_path, + /datum/ai_planning_subtree/basic_melee_attack_subtree/lobster, + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/find_and_hunt_target/lobster_fishing, + /datum/ai_planning_subtree/find_fingers, + ) +///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_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), + BB_LOBSTROSITY_FINGER_LUST = 0, + BB_LOBSTROSITY_NAIVE_HUNTER = TRUE, + BB_BASIC_MOB_FLEE_DISTANCE = 4, + BB_OWNER_SELF_HARM_RESPONSES = SHRIMP_HARM_RESPONSES, + ) + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/insect, + /datum/ai_planning_subtree/hoard_fingers, + /datum/ai_planning_subtree/pet_planning, /datum/ai_planning_subtree/simple_find_target, /datum/ai_planning_subtree/targeted_mob_ability/lobster, /datum/ai_planning_subtree/flee_target/lobster, @@ -22,10 +59,42 @@ /datum/ai_planning_subtree/find_fingers, ) +///A subtype of juvenile lobster AI that has the target_retaliate behaviour instead of simple_find_target +/datum/ai_controller/basic_controller/lobstrosity/juvenile/calm + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/insect, + /datum/ai_planning_subtree/hoard_fingers, + /datum/ai_planning_subtree/pet_planning, + /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/targeted_mob_ability/lobster/juvenile, + /datum/ai_planning_subtree/flee_target/lobster, + /datum/ai_planning_subtree/attack_obstacle_in_path, + /datum/ai_planning_subtree/basic_melee_attack_subtree/lobster, + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/find_and_hunt_target/lobster_fishing, + /datum/ai_planning_subtree/find_fingers, + ) + +///A subtype of juvenile lobster AI that has the capricious_retaliate behaviour instead of simple_find_target +/datum/ai_controller/basic_controller/lobstrosity/juvenile/capricious + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/insect, + /datum/ai_planning_subtree/hoard_fingers, + /datum/ai_planning_subtree/pet_planning, + /datum/ai_planning_subtree/capricious_retaliate, + /datum/ai_planning_subtree/targeted_mob_ability/lobster/juvenile, + /datum/ai_planning_subtree/flee_target/lobster, + /datum/ai_planning_subtree/attack_obstacle_in_path, + /datum/ai_planning_subtree/basic_melee_attack_subtree/lobster, + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/find_and_hunt_target/lobster_fishing, + /datum/ai_planning_subtree/find_fingers, + ) + /datum/ai_planning_subtree/find_and_hunt_target/lobster_fishing target_key = BB_FISHING_TARGET hunt_targets = list(/turf/open/lava) - hunting_behavior = /datum/ai_behavior/hunt_target/unarmed_attack_target/reset_target + hunting_behavior = /datum/ai_behavior/hunt_target/unarmed_attack_target/reset_target_combat_mode /datum/ai_planning_subtree/basic_melee_attack_subtree/lobster melee_attack_behavior = /datum/ai_behavior/basic_melee_attack/lobster @@ -49,11 +118,14 @@ if (isnull(target) || !istype(target)) return ..() var/is_vulnerable = FALSE - for (var/trait in controller.blackboard[BB_LOBSTROSITY_EXPLOIT_TRAITS]) - if (!HAS_TRAIT(target, trait)) - continue + if(controller.blackboard[BB_LOBSTROSITY_NAIVE_HUNTER] && target.body_position == LYING_DOWN) is_vulnerable = TRUE - break + else + for (var/trait in controller.blackboard[BB_LOBSTROSITY_EXPLOIT_TRAITS]) + if (!HAS_TRAIT(target, trait)) + continue + is_vulnerable = TRUE + break if (!is_vulnerable) controller.set_blackboard_key(BB_BASIC_MOB_STOP_FLEEING, FALSE) if (!controller.blackboard[BB_BASIC_MOB_STOP_FLEEING]) @@ -78,6 +150,11 @@ if(isnull(target)) return ..() + if(isliving(target)) + var/mob/living/living_target = target + if(controller.blackboard[BB_LOBSTROSITY_NAIVE_HUNTER] && living_target.body_position == LYING_DOWN) + controller.set_blackboard_key(BB_BASIC_MOB_STOP_FLEEING, TRUE) + return AI_BEHAVIOR_INSTANT | AI_BEHAVIOR_FAILED for (var/trait in controller.blackboard[BB_LOBSTROSITY_EXPLOIT_TRAITS]) if (!HAS_TRAIT(target, trait)) continue @@ -100,6 +177,10 @@ return FALSE return ..() + +/datum/ai_planning_subtree/targeted_mob_ability/lobster/juvenile + use_ability_behaviour = /datum/ai_behavior/targeted_mob_ability/min_range/short + /// Look for loose arms lying around /datum/ai_planning_subtree/find_fingers /// Where do we store target limb data? @@ -226,3 +307,4 @@ #undef FLEE_TO_RANGE #undef MAX_LOBSTROSITY_PATIENCE +#undef SHRIMP_HARM_RESPONSES diff --git a/code/modules/mob/living/basic/lavaland/mining.dm b/code/modules/mob/living/basic/lavaland/mining.dm index 38591dfb39c06..ca84e0d1d20c7 100644 --- a/code/modules/mob/living/basic/lavaland/mining.dm +++ b/code/modules/mob/living/basic/lavaland/mining.dm @@ -27,14 +27,7 @@ var/static/list/vulnerable_projectiles if(!vulnerable_projectiles) vulnerable_projectiles = string_list(MINING_MOB_PROJECTILE_VULNERABILITY) - AddElement(\ - /datum/element/ranged_armour,\ - minimum_projectile_force = 30,\ - below_projectile_multiplier = 0.3,\ - vulnerable_projectile_types = vulnerable_projectiles,\ - minimum_thrown_force = 20,\ - throw_blocked_message = throw_blocked_message,\ - ) + add_ranged_armour(vulnerable_projectiles) if(crusher_loot) AddElement(\ /datum/element/crusher_loot,\ @@ -44,6 +37,16 @@ ) RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(check_ashwalker_peace_violation)) +/mob/living/basic/mining/proc/add_ranged_armour(list/vulnerable_projectiles) + AddElement(\ + /datum/element/ranged_armour,\ + minimum_projectile_force = 30,\ + below_projectile_multiplier = 0.3,\ + vulnerable_projectile_types = vulnerable_projectiles,\ + minimum_thrown_force = 20,\ + throw_blocked_message = throw_blocked_message,\ + ) + /mob/living/basic/mining/proc/check_ashwalker_peace_violation(datum/source, mob/living/carbon/human/possible_ashwalker) SIGNAL_HANDLER diff --git a/code/modules/mob/living/basic/pets/orbie/orbie.dm b/code/modules/mob/living/basic/pets/orbie/orbie.dm index 735f63977d362..c0c6dd7b023fc 100644 --- a/code/modules/mob/living/basic/pets/orbie/orbie.dm +++ b/code/modules/mob/living/basic/pets/orbie/orbie.dm @@ -50,6 +50,7 @@ var/static/list/food_types = list(/obj/item/food/virtual_chocolate) AddComponent(/datum/component/obeys_commands, pet_commands) AddElement(/datum/element/basic_eating, food_types = food_types) + ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) RegisterSignal(src, COMSIG_ATOM_CAN_BE_PULLED, PROC_REF(on_pulled)) RegisterSignal(src, COMSIG_VIRTUAL_PET_LEVEL_UP, PROC_REF(on_level_up)) RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click)) diff --git a/code/modules/mob/living/basic/slime/emote.dm b/code/modules/mob/living/basic/slime/emote.dm index 93b889a07a4f4..617d33b9809c0 100644 --- a/code/modules/mob/living/basic/slime/emote.dm +++ b/code/modules/mob/living/basic/slime/emote.dm @@ -29,8 +29,6 @@ /datum/emote/slime/mood/run_emote(mob/user, params, type_override, intentional) . = ..() - if(!.) - return var/mob/living/basic/slime/slime_user = user slime_user.current_mood = mood_key slime_user.regenerate_icons() diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm index 724833af16f2a..7361e4be7b310 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -369,9 +369,7 @@ var/trans_amount = reagents.maximum_volume - reagents.total_volume * (4 / 3) if(target_reagents.has_reagent(/datum/reagent/fuel) && target_reagents.trans_to(src, trans_amount)) to_chat(user, span_notice("You dip [src] into [interacting_with].")) - else - to_chat(user, span_warning("That's a terrible idea.")) - return ITEM_INTERACT_BLOCKING + return ITEM_INTERACT_SUCCESS /obj/item/food/deadmouse/moldy name = "moldy dead mouse" diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 1bacc08a8b6ff..17f5be02a91cf 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -16,6 +16,7 @@ forceMove(OB) if(!container?.mecha && (!container || container.immobilize)) //Unless inside a mecha, brains are rather helpless. add_traits(list(TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), BRAIN_UNAIDED) + ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) /mob/living/brain/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) var/obj/item/organ/internal/brain/brain_loc = loc diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 3d380ef6824ca..b4c6f8e682d2d 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -40,6 +40,10 @@ /// Size modifier for the sprite var/brain_size = 1 + /// Can this brain become smooth after it gets washed + var/can_smoothen_out = TRUE + /// We got smooth from being washed + var/smooth_brain = FALSE /obj/item/organ/internal/brain/Initialize(mapload) . = ..() @@ -48,6 +52,8 @@ /obj/item/organ/internal/brain/examine() . = ..() + if (smooth_brain) + . += span_notice("All the pesky wrinkles are gone. Now it just needs a good drying...") if(brain_size < 1) . += span_notice("It is a bit on the smaller side...") if(brain_size > 1) @@ -131,6 +137,10 @@ organ_owner.update_body_parts() organ_owner.clear_mood_event("brain_damage") +/obj/item/organ/internal/brain/update_icon_state() + icon_state = "[initial(icon_state)][smooth_brain ? "-smooth_brain" : ""]" + return ..() + /obj/item/organ/internal/brain/proc/transfer_identity(mob/living/L) name = "[L.name]'s [initial(name)]" if(brainmob) @@ -373,6 +383,10 @@ /obj/item/organ/internal/brain/machine_wash(obj/machinery/washing_machine/brainwasher) . = ..() + if (can_smoothen_out && !smooth_brain) + smooth_brain = TRUE + update_appearance() + if(HAS_TRAIT(brainwasher, TRAIT_BRAINWASHING)) set_organ_damage(0) cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY) @@ -408,6 +422,7 @@ name = "crystalline matrix" desc = "This collection of sparkling gems somehow allows a golem to think." icon_state = "adamantine_resonator" + can_smoothen_out = FALSE color = COLOR_GOLEM_GRAY organ_flags = ORGAN_MINERAL organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_CAN_STRIP, TRAIT_ROCK_METAMORPHIC) @@ -416,6 +431,7 @@ name = "lustrous brain" desc = "This is your brain on bluespace dust. Not even once." icon_state = "random_fly_4" + can_smoothen_out = FALSE organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_CAN_STRIP) /obj/item/organ/internal/brain/lustrous/on_mob_remove(mob/living/carbon/organ_owner, special) @@ -493,6 +509,11 @@ arguments = args.Copy(3) . = brain_gain_trauma(trauma, resilience, arguments) +/obj/item/organ/internal/brain/vv_edit_var(var_name, var_value) + . = ..() + if(var_name == NAMEOF(src, smooth_brain)) + update_appearance() + //Direct trauma gaining proc. Necessary to assign a trauma to its brain. Avoid using directly. /obj/item/organ/internal/brain/proc/brain_gain_trauma(datum/brain_trauma/trauma, resilience, list/arguments) if(!can_gain_trauma(trauma, resilience)) diff --git a/code/modules/mob/living/brain/emote.dm b/code/modules/mob/living/brain/emote.dm index 75599e892a25d..c93e3acf4b24a 100644 --- a/code/modules/mob/living/brain/emote.dm +++ b/code/modules/mob/living/brain/emote.dm @@ -3,7 +3,7 @@ mob_type_blacklist_typecache = list() emote_type = EMOTE_AUDIBLE -/datum/emote/brain/can_run_emote(mob/user, status_check = TRUE, intentional) +/datum/emote/brain/can_run_emote(mob/user, status_check = TRUE, intentional, params) . = ..() var/mob/living/brain/B = user if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi)))) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0bc1fb5879a2e..c3532fd04d496 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -153,7 +153,7 @@ if(grab_state >= GRAB_NECK) neckgrab_throw = TRUE stop_pulling() - if(HAS_TRAIT(src, TRAIT_PACIFISM)) + if(HAS_TRAIT(src, TRAIT_PACIFISM) || HAS_TRAIT(src, TRAIT_NO_THROWING)) to_chat(src, span_notice("You gently let go of [throwable_mob].")) return FALSE else @@ -180,6 +180,8 @@ //SKYRAT EDIT END if(neckgrab_throw) power_throw++ + if(HAS_TRAIT(src, TRAIT_TOSS_GUN_HARD) && isgun(thrown_thing)) + power_throw++ if(isitem(thrown_thing)) var/obj/item/thrown_item = thrown_thing frequency_number = 1-(thrown_item.w_class-3)/8 //At normal weight, the frequency is at 1. For tiny, it is 1.25. For huge, it is 0.75. diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 84d18efef8332..98e9e7e0fbb1a 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -294,8 +294,8 @@ else Knockdown(stun_duration) -/mob/living/carbon/proc/help_shake_act(mob/living/carbon/helper) - var/nosound = FALSE //SKYRAT EDIT ADDITION - EMOTES +/mob/living/carbon/proc/help_shake_act(mob/living/carbon/helper, force_friendly) + var/nosound = FALSE //SKYRATEDIT ADDITION - EMOTES if(on_fire) to_chat(helper, span_warning("You can't put [p_them()] out with just your bare hands!")) return @@ -419,7 +419,7 @@ else if(bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) to_chat(helper, span_warning("It feels like [src] is freezing as you hug [p_them()].")) - if(HAS_TRAIT(helper, TRAIT_FRIENDLY)) + if(HAS_TRAIT(helper, TRAIT_FRIENDLY) || force_friendly) if (helper.mob_mood.sanity >= SANITY_GREAT) new /obj/effect/temp_visual/heart(loc) add_mood_event("friendly_hug", /datum/mood_event/besthug, helper) @@ -442,6 +442,9 @@ // Shake animation if (incapacitated()) + shake_up_animation() + +/mob/proc/shake_up_animation() var/direction = prob(50) ? -1 : 1 animate(src, pixel_x = pixel_x + SHAKE_ANIMATION_OFFSET * direction, time = 1, easing = QUAD_EASING | EASE_OUT, flags = ANIMATION_PARALLEL) animate(pixel_x = pixel_x - (SHAKE_ANIMATION_OFFSET * 2 * direction), time = 1) diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm index a96979abb6248..83b46801aa8f1 100644 --- a/code/modules/mob/living/carbon/carbon_update_icons.dm +++ b/code/modules/mob/living/carbon/carbon_update_icons.dm @@ -306,6 +306,7 @@ continue if(isnull(damage_overlay) && (iter_part.brutestate || iter_part.burnstate)) damage_overlay = mutable_appearance('icons/mob/effects/dam_mob.dmi', "blank", -DAMAGE_LAYER, appearance_flags = KEEP_TOGETHER) + damage_overlay.color = iter_part.damage_overlay_color if(iter_part.brutestate) damage_overlay.add_overlay("[iter_part.dmg_overlay_type]_[iter_part.body_zone]_[iter_part.brutestate]0") //we're adding icon_states of the base image as overlays if(iter_part.burnstate) @@ -486,6 +487,10 @@ var/list/needs_update = list() var/limb_count_update = FALSE for(var/obj/item/bodypart/limb as anything in bodyparts) + // SKYRAT EDIT BEGIN - Don't handle abstract limbs (Taurs, etc.) + if(!limb.show_icon) + continue + // SKYRAT EDIT END limb.update_limb(is_creating = update_limb_data) //Update limb actually doesn't do much, get_limb_icon is the cpu eater. var/old_key = icon_render_keys?[limb.body_zone] //Checks the mob's icon render key list for the bodypart diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 3f5d4910bc9e9..bfa097b07a938 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -49,7 +49,7 @@ hands_use_check = TRUE cooldown = 6 SECONDS -/datum/emote/living/carbon/crack/can_run_emote(mob/living/carbon/user, status_check = TRUE , intentional) +/datum/emote/living/carbon/crack/can_run_emote(mob/living/carbon/user, status_check = TRUE , intentional, params) if(!iscarbon(user) || user.usable_hands < 2) return FALSE return ..() @@ -104,8 +104,6 @@ /datum/emote/living/carbon/noogie/run_emote(mob/user, params, type_override, intentional) . = ..() - if(!.) - return var/obj/item/hand_item/noogie/noogie = new(user) if(user.put_in_hands(noogie)) to_chat(user, span_notice("You ready your noogie'ing hand.")) @@ -154,8 +152,6 @@ /datum/emote/living/carbon/slap/run_emote(mob/user, params, type_override, intentional) . = ..() - if(!.) - return var/obj/item/hand_item/slapper/N = new(user) if(user.put_in_hands(N)) to_chat(user, span_notice("You ready your slapping hand.")) @@ -172,9 +168,6 @@ /datum/emote/living/carbon/hand/run_emote(mob/user, params, type_override, intentional) . = ..() - if(!.) - return - var/obj/item/hand_item/hand/hand = new(user) if(user.put_in_hands(hand)) to_chat(user, span_notice("You ready your hand.")) @@ -205,8 +198,6 @@ Bubber removal end */ /datum/emote/living/carbon/shoesteal/run_emote(mob/user, params, type_override, intentional) . = ..() - if (!.) - return var/obj/item/hand_item/stealer/stealing_hand = new(user) if (user.put_in_hands(stealing_hand)) user.balloon_alert(user, "preparing to steal shoes...") diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index b0aad75ac2a9c..501f3c782f29b 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -18,7 +18,7 @@ message = "pushes up their glasses." emote_type = EMOTE_VISIBLE -/datum/emote/living/carbon/human/glasses/can_run_emote(mob/user, status_check = TRUE, intentional) +/datum/emote/living/carbon/human/glasses/can_run_emote(mob/user, status_check = TRUE, intentional, params) var/obj/eyes_slot = user.get_item_by_slot(ITEM_SLOT_EYES) if(istype(eyes_slot, /obj/item/clothing/glasses/regular) || istype(eyes_slot, /obj/item/clothing/glasses/sunglasses)) return ..() @@ -66,10 +66,9 @@ only_forced_audio = TRUE vary = TRUE - -/datum/emote/carbon/human/scream/run_emote(mob/user, params, type_override, intentional = FALSE) +/datum/emote/living/carbon/human/scream/can_run_emote(mob/user, status_check = TRUE , intentional, params) if(!intentional && HAS_TRAIT(user, TRAIT_ANALGESIA)) - return + return FALSE return ..() /datum/emote/living/carbon/human/scream/get_sound(mob/living/carbon/human/user) @@ -120,8 +119,6 @@ /datum/emote/living/carbon/human/wag/run_emote(mob/user, params, type_override, intentional) . = ..() - if(!.) - return var/obj/item/organ/external/tail/oranges_accessory = user.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL) //I am so sorry my son //We bypass helpers here cause we already have the tail @@ -138,7 +135,7 @@ else . = "wags " + message -/datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check, intentional) +/datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check, intentional, params) var/obj/item/organ/external/tail/tail = user.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL) if(tail?.wag_flags & WAG_ABLE) return ..() @@ -151,8 +148,6 @@ /datum/emote/living/carbon/human/wing/run_emote(mob/user, params, type_override, intentional) . = ..() - if(!.) - return var/obj/item/organ/external/wings/functional/wings = user.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS) if(isnull(wings)) CRASH("[type] ran on a mob that has no wings!") @@ -166,7 +161,7 @@ var/emote_verb = wings.wings_open ? "closes" : "opens" return "[emote_verb] [message]" -/datum/emote/living/carbon/human/wing/can_run_emote(mob/user, status_check = TRUE, intentional) +/datum/emote/living/carbon/human/wing/can_run_emote(mob/user, status_check = TRUE, intentional, params) if(!istype(user.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS), /obj/item/organ/external/wings/functional)) return FALSE return ..() @@ -179,7 +174,7 @@ ///Snowflake emotes only for le epic chimp /datum/emote/living/carbon/human/monkey -/datum/emote/living/carbon/human/monkey/can_run_emote(mob/user, status_check = TRUE, intentional) +/datum/emote/living/carbon/human/monkey/can_run_emote(mob/user, status_check = TRUE, intentional, params) if(ismonkey(user)) return ..() return FALSE diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6df51fe8db470..6887cbba2f37f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -552,7 +552,7 @@ #undef CPR_PANIC_SPEED /mob/living/carbon/human/cuff_resist(obj/item/I) - if(dna?.check_mutation(/datum/mutation/human/hulk)) + if(HAS_TRAIT(src, TRAIT_HULK)) say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk") if(..(I, cuff_break = FAST_CUFFBREAK)) dropItemToGround(I) @@ -1053,10 +1053,6 @@ /mob/living/carbon/human/updatehealth() . = ..() - if(HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) - remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) - remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) - return var/health_deficiency = max((maxHealth - health), staminaloss) if(health_deficiency >= 40) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, multiplicative_slowdown = health_deficiency / 75) @@ -1172,3 +1168,6 @@ /mob/living/carbon/human/species/zombie/infectious race = /datum/species/zombie/infectious + +/mob/living/carbon/human/species/voidwalker + race = /datum/species/voidwalker diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index acec80f56522b..41c129dc4ab3d 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -553,7 +553,7 @@ . = rand(-1000, 1000) ..() //Called afterwards because getting the mind after getting gibbed is sketchy -/mob/living/carbon/human/help_shake_act(mob/living/carbon/helper) +/mob/living/carbon/human/help_shake_act(mob/living/carbon/helper, force_friendly) if(!istype(helper)) return diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 728ff63c03cb8..8541f4f742457 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -57,15 +57,27 @@ return if_no_id //repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a separate proc as it'll be useful elsewhere -/mob/living/carbon/human/get_visible_name(add_id_name = TRUE) - if(HAS_TRAIT(src, TRAIT_UNKNOWN)) - return "Unknown" +/mob/living/carbon/human/get_visible_name(add_id_name = TRUE, force_real_name = FALSE) var/list/identity = list(null, null) SEND_SIGNAL(src, COMSIG_HUMAN_GET_VISIBLE_NAME, identity) var/signal_face = LAZYACCESS(identity, VISIBLE_NAME_FACE) var/signal_id = LAZYACCESS(identity, VISIBLE_NAME_ID) var/face_name = !isnull(signal_face) ? signal_face : get_face_name("") var/id_name = !isnull(signal_id) ? signal_id : get_id_name("") + if (force_real_name) + var/fake_name + if (face_name && face_name != real_name) + fake_name = face_name + if(add_id_name && id_name && id_name != real_name) + if (!isnull(fake_name) && id_name != face_name) + fake_name = "[fake_name]/[id_name]" + else + fake_name = id_name + if (HAS_TRAIT(src, TRAIT_UNKNOWN) || (!face_name && !id_name)) + fake_name = "Unknown" + return "[real_name][fake_name ? " (as [fake_name])" : ""]" + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + return "Unknown" if(face_name) if(add_id_name && id_name && (id_name != face_name)) return "[face_name] (as [id_name])" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index d8119c6a5279a..6bdbf8322f26e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -207,7 +207,7 @@ if(thermal_protection_flags & HAND_RIGHT) thermal_protection += THERMAL_PROTECTION_HAND_RIGHT - return min(1, thermal_protection) + return min(1, round(thermal_protection, 0.001)) //See proc/get_heat_protection_flags(temperature) for the description of this proc. /mob/living/carbon/human/proc/get_cold_protection_flags(temperature) @@ -268,7 +268,7 @@ if(thermal_protection_flags & HAND_RIGHT) thermal_protection += THERMAL_PROTECTION_HAND_RIGHT - return min(1, thermal_protection) + return min(1, round(thermal_protection, 0.001)) /mob/living/carbon/human/has_smoke_protection() if(isclothing(wear_mask)) diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm index 71e65cbc22f59..4c6c4b28be51f 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -23,6 +23,8 @@ family_heirlooms = list(/obj/item/toy/cattoy) /// When false, this is a felinid created by mass-purrbation var/original_felinid = TRUE + /// Yummy! + species_cookie = /obj/item/food/nugget // Prevents felinids from taking toxin damage from carpotoxin /datum/species/human/felinid/handle_chemical(datum/reagent/chem, mob/living/carbon/human/affected, seconds_per_tick, times_fired) diff --git a/code/modules/mob/living/carbon/human/species_types/monkeys.dm b/code/modules/mob/living/carbon/human/species_types/monkeys.dm index 1dd87f0d16248..304a831af7302 100644 --- a/code/modules/mob/living/carbon/human/species_types/monkeys.dm +++ b/code/modules/mob/living/carbon/human/species_types/monkeys.dm @@ -1,7 +1,7 @@ #define MONKEY_SPEC_ATTACK_BITE_MISS_CHANCE 25 /datum/species/monkey - name = "Monkey" + name = "\improper Monkey" id = SPECIES_MONKEY external_organs = list( /obj/item/organ/external/tail/monkey = "Monkey", @@ -22,6 +22,7 @@ ) no_equip_flags = ITEM_SLOT_OCLOTHING | ITEM_SLOT_GLOVES | ITEM_SLOT_FEET | ITEM_SLOT_SUITSTORE changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | ERT_SPAWN | SLIME_EXTRACT + species_cookie = /obj/item/food/grown/banana inherent_factions = list(FACTION_MONKEY) sexes = FALSE species_language_holder = /datum/language_holder/monkey diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index 36355ea080a7f..e7e97b114869b 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -13,6 +13,7 @@ mutanttongue = /obj/item/organ/internal/tongue/moth mutanteyes = /obj/item/organ/internal/eyes/moth changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT + species_cookie = /obj/item/food/muffin/moffin species_language_holder = /datum/language_holder/moth death_sound = 'sound/voice/moth/moth_death.ogg' payday_modifier = 1.0 diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index bafa688afeb72..0e7ac486ba519 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -116,30 +116,3 @@ owner.apply_status_effect(applied_status) if (!owner.has_status_effect(applied_status)) owner.take_overall_damage(brute = 0.5 * seconds_per_tick, burn = 0.5 * seconds_per_tick, required_bodytype = BODYTYPE_ORGANIC) - -/// Heal in darkness and potentially trigger other effects, persists for a short duration after leaving -/datum/status_effect/shadow_regeneration - id = "shadow_regeneration" - duration = 2 SECONDS - status_type = STATUS_EFFECT_REFRESH - alert_type = /atom/movable/screen/alert/status_effect/shadow_regeneration - -/datum/status_effect/shadow_regeneration/on_apply() - . = ..() - if (!.) - return FALSE - heal_owner() - return TRUE - -/datum/status_effect/shadow_regeneration/refresh(effect) - . = ..() - heal_owner() - -/// Regenerate health whenever this status effect is applied or reapplied -/datum/status_effect/shadow_regeneration/proc/heal_owner() - owner.heal_overall_damage(brute = 1, burn = 1, required_bodytype = BODYTYPE_ORGANIC) - -/atom/movable/screen/alert/status_effect/shadow_regeneration - name = "Shadow Regeneration" - desc = "Bathed in soothing darkness, you will slowly heal yourself." - icon_state = "lightless" diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 4a5834101f61c..cb6ca3252dfd3 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -63,9 +63,9 @@ /datum/emote/living/collapse/run_emote(mob/user, params, type_override, intentional) . = ..() - if(. && isliving(user)) - var/mob/living/L = user - L.Unconscious(40) + if(isliving(user)) + var/mob/living/living = user + living.Unconscious(4 SECONDS) /datum/emote/living/dance key = "dance" @@ -95,7 +95,7 @@ message_animal_or_basic = custom_message . = ..() message_animal_or_basic = initial(message_animal_or_basic) - if(!. && !user.can_speak() || user.getOxyLoss() >= 50) + if(!user.can_speak() || user.getOxyLoss() >= 50) return //stop the sound if oxyloss too high/cant speak var/mob/living/carbon/carbon_user = user // For masks that give unique death sounds @@ -117,9 +117,9 @@ /datum/emote/living/faint/run_emote(mob/user, params, type_override, intentional) . = ..() - if(. && isliving(user)) - var/mob/living/L = user - L.SetSleeping(200) + if(isliving(user)) + var/mob/living/living = user + living.SetSleeping(20 SECONDS) /datum/emote/living/flap key = "flap" @@ -130,7 +130,7 @@ /datum/emote/living/flap/run_emote(mob/user, params, type_override, intentional) . = ..() - if(. && ishuman(user)) + if(ishuman(user)) var/mob/living/carbon/human/human_user = user var/open = FALSE var/obj/item/organ/external/wings/functional/wings = human_user.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS) @@ -233,8 +233,6 @@ /datum/emote/living/jump/run_emote(mob/living/user, params, type_override, intentional) . = ..() - if(!.) - return FALSE animate(user, pixel_y = user.pixel_y + 4, time = 0.1 SECONDS) animate(pixel_y = user.pixel_y - 4, time = 0.1 SECONDS) @@ -248,8 +246,6 @@ /datum/emote/living/kiss/run_emote(mob/living/user, params, type_override, intentional) . = ..() - if(!.) - return var/kiss_type = /obj/item/hand_item/kisser if(HAS_TRAIT(user, TRAIT_KISS_OF_DEATH)) @@ -271,7 +267,7 @@ audio_cooldown = 5 SECONDS vary = TRUE -/datum/emote/living/laugh/can_run_emote(mob/living/user, status_check = TRUE , intentional) +/datum/emote/living/laugh/can_run_emote(mob/living/user, status_check = TRUE , intentional, params) return ..() && user.can_speak(allow_mimes = TRUE) /datum/emote/living/laugh/get_sound(mob/living/carbon/human/user) @@ -334,7 +330,7 @@ audio_cooldown = 5 SECONDS emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE | EMOTE_RUNECHAT -/datum/emote/living/cough/can_run_emote(mob/user, status_check = TRUE , intentional) +/datum/emote/living/cough/can_run_emote(mob/user, status_check = TRUE , intentional, params) return !HAS_TRAIT(user, TRAIT_SOOTHED_THROAT) && ..() /datum/emote/living/cough/get_sound(mob/living/carbon/human/user) @@ -355,6 +351,7 @@ message = "screams!" message_mime = "acts out a scream!" emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE + mob_type_blacklist_typecache = list(/mob/living/brain, /mob/living/carbon/human) /datum/emote/living/scream/run_emote(mob/user, params, type_override, intentional = FALSE) if(!intentional && HAS_TRAIT(user, TRAIT_ANALGESIA)) @@ -384,8 +381,6 @@ #define SHIVER_LOOP_DURATION (1 SECONDS) /datum/emote/living/shiver/run_emote(mob/living/user, params, type_override, intentional) . = ..() - if(!.) - return FALSE animate(user, pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) for(var/i in 1 to SHIVER_LOOP_DURATION / (0.2 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) @@ -462,10 +457,10 @@ /datum/emote/living/surrender/run_emote(mob/user, params, type_override, intentional) . = ..() - if(. && isliving(user)) - var/mob/living/L = user - L.Paralyze(200) - L.remove_status_effect(/datum/status_effect/grouped/surrender) + if(isliving(user)) + var/mob/living/living = user + living.Paralyze(20 SECONDS) + living.remove_status_effect(/datum/status_effect/grouped/surrender) /datum/emote/living/sway key = "sway" @@ -474,8 +469,6 @@ /datum/emote/living/sway/run_emote(mob/living/user, params, type_override, intentional) . = ..() - if(!.) - return FALSE animate(user, pixel_x = user.pixel_x + 2, time = 0.5 SECONDS) for(var/i in 1 to 2) animate(pixel_x = user.pixel_x - 4, time = 1.0 SECONDS) @@ -495,8 +488,6 @@ #define TREMBLE_LOOP_DURATION (4.4 SECONDS) /datum/emote/living/tremble/run_emote(mob/living/user, params, type_override, intentional) . = ..() - if(!.) - return FALSE animate(user, pixel_x = user.pixel_x + 2, time = 0.2 SECONDS) for(var/i in 1 to TREMBLE_LOOP_DURATION / (0.4 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count animate(pixel_x = user.pixel_x - 2, time = 0.2 SECONDS) @@ -511,8 +502,6 @@ /datum/emote/living/twitch/run_emote(mob/living/user, params, type_override, intentional) . = ..() - if(!.) - return FALSE animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) animate(time = 0.1 SECONDS) @@ -526,8 +515,6 @@ /datum/emote/living/twitch_s/run_emote(mob/living/user, params, type_override, intentional) . = ..() - if(!.) - return FALSE animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) @@ -617,8 +604,36 @@ key_third_person = "custom" message = null -/datum/emote/living/custom/can_run_emote(mob/user, status_check, intentional) - . = ..() && intentional +/datum/emote/living/custom/can_run_emote(mob/user, status_check, intentional, params) + . = ..() + if(!. || !intentional) + return FALSE + + if(!isnull(user.ckey) && is_banned_from(user.ckey, "Emote")) + to_chat(user, span_boldwarning("You cannot send custom emotes (banned).")) + return FALSE + + if(QDELETED(user)) + return FALSE + + if(user.client && user.client.prefs.muted & MUTE_IC) + to_chat(user, span_boldwarning("You cannot send IC messages (muted).")) + return FALSE + + var/our_message = params ? params : get_custom_emote_from_user() + + if(!emote_is_valid(user, our_message)) + return FALSE + + if(!params) + var/user_emote_type = get_custom_emote_type_from_user() + + if(!user_emote_type) + return FALSE + + emote_type = user_emote_type + + message = our_message /datum/emote/living/custom/proc/emote_is_valid(mob/user, input) // We're assuming clientless mobs custom emoting is something codebase-driven and not player-driven. @@ -677,55 +692,17 @@ return FALSE /datum/emote/living/custom/run_emote(mob/user, params, type_override = null, intentional = FALSE) - if(!can_run_emote(user, TRUE, intentional)) - return FALSE - - if(!isnull(user.ckey) && is_banned_from(user.ckey, "Emote")) - to_chat(user, span_boldwarning("You cannot send custom emotes (banned).")) - return FALSE - - if(QDELETED(user)) - return FALSE - - if(user.client && user.client.prefs.muted & MUTE_IC) - to_chat(user, span_boldwarning("You cannot send IC messages (muted).")) - return FALSE - - message = params ? params : get_custom_emote_from_user() - - if(!emote_is_valid(user, message)) - message = null - return FALSE - - if(!params) - var/user_emote_type = get_custom_emote_type_from_user() - - if(!user_emote_type) - return FALSE - - emote_type = user_emote_type - else if(type_override) + if(params && type_override) emote_type = type_override - message = user.say_emphasis(message) //SKYRAT EDIT ADDITION - EMOTES - . = ..() - + ///Reset the message and emote type after it's run. message = null emote_type = EMOTE_VISIBLE /datum/emote/living/custom/replace_pronoun(mob/user, message) return message -/datum/emote/living/beep - key = "beep" - key_third_person = "beeps" - message = "beeps." - message_param = "beeps at %t." - sound = 'sound/machines/twobeep.ogg' - mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon, /mob/living/basic/orbie) - emote_type = EMOTE_AUDIBLE - /datum/emote/living/inhale key = "inhale" key_third_person = "inhales" diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 939ecab436576..375d82f5b69e6 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -139,12 +139,12 @@ return 0 /obj/item/proc/get_volume_by_throwforce_and_or_w_class() - if(throwforce && w_class) - return clamp((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100 - else if(w_class) - return clamp(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100 - else - return 0 + if(throwforce && w_class) + return clamp((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100 + else if(w_class) + return clamp(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100 + else + return 0 /mob/living/proc/set_combat_mode(new_mode, silent = TRUE) if(combat_mode == new_mode) diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index 0248482538871..6a536d77160a6 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -411,27 +411,13 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( var/list/filter = list() var/list/special_filter = list() - var/voice_to_use = voice - var/use_radio = FALSE if(length(voice_filter) > 0) filter += voice_filter if(length(tts_filter) > 0) filter += tts_filter.Join(",") - if(ishuman(src)) - var/mob/living/carbon/human/human_speaker = src - if(istype(human_speaker.wear_mask, /obj/item/clothing/mask)) - var/obj/item/clothing/mask/worn_mask = human_speaker.wear_mask - if(!worn_mask.up) - if(worn_mask.voice_override) - voice_to_use = worn_mask.voice_override - if(worn_mask.voice_filter) - filter += worn_mask.voice_filter - use_radio = worn_mask.use_radio_beeps_tts - if(use_radio) - special_filter += TTS_FILTER_RADIO - if(issilicon(src)) - special_filter += TTS_FILTER_SILICON + + var/voice_to_use = get_tts_voice(filter, special_filter) INVOKE_ASYNC(SStts, TYPE_PROC_REF(/datum/controller/subsystem/tts, queue_tts_message), src, html_decode(tts_message_to_use), message_language, voice_to_use, filter.Join(","), listened, message_range = message_range, pitch = pitch, special_filters = special_filter.Join("|")) @@ -442,6 +428,22 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( LAZYADD(update_on_z, say_popup) addtimer(CALLBACK(src, PROC_REF(clear_saypopup), say_popup), 3.5 SECONDS) +/mob/living/proc/get_tts_voice(list/filter, list/special_filter) + . = voice + var/obj/item/clothing/mask/mask = get_item_by_slot(ITEM_SLOT_MASK) + if(!istype(mask) || mask.up) + return + if(mask.voice_override) + . = mask.voice_override + if(mask.voice_filter) + filter += mask.voice_filter + if(mask.use_radio_beeps_tts) + special_filter |= TTS_FILTER_RADIO + +/mob/living/silicon/get_tts_voice(list/filter, list/special_filter) + . = ..() + special_filter |= TTS_FILTER_SILICON + /mob/living/proc/clear_saypopup(image/say_popup) LAZYREMOVE(update_on_z, say_popup) diff --git a/code/modules/mob/living/silicon/ai/emote.dm b/code/modules/mob/living/silicon/ai/emote.dm index 8050ff1d0a0d9..c4ec04e0899ec 100644 --- a/code/modules/mob/living/silicon/ai/emote.dm +++ b/code/modules/mob/living/silicon/ai/emote.dm @@ -9,12 +9,6 @@ /datum/emote/ai/emotion_display/run_emote(mob/living/silicon/ai/user, params, type_override, intentional) . = ..() - if(!.) - return - - if(!istype(user)) - return - user.apply_emote_display(emotion) /datum/emote/ai/emotion_display/very_happy @@ -72,9 +66,6 @@ /datum/emote/ai/emotion_display/friend_computer/run_emote(mob/user, params, type_override, intentional) . = ..() - if(!.) - return - var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS) if(!frequency) diff --git a/code/modules/mob/living/silicon/ai/freelook/README.txt b/code/modules/mob/living/silicon/ai/freelook/README.txt index 78dc3b52f5cf2..818087f995982 100644 --- a/code/modules/mob/living/silicon/ai/freelook/README.txt +++ b/code/modules/mob/living/silicon/ai/freelook/README.txt @@ -32,7 +32,7 @@ HOW IT UPDATES The camera network uses a streaming method in order to effeciently update chunks. Since the server will have doors opening, doors closing, turf being destroyed and other lag inducing stuff, we want to update it under certain conditions and not every tick. -The chunks are not created straight away, only when an AI eye moves into it's area is when it gets created. +The chunks are not created straight away, only when an AI eye moves into its area is when it gets created. One a chunk is created, when a non glass door opens/closes or an opacity turf is destroyed, we check to see if an AI Eye is looking in the area. We do this with the "seenby" list, which updates everytime an AI is near a chunk. If there is an AI eye inside the area, we update the chunk that the changed atom is inside and all surrounding chunks, since a camera's vision could leak onto another chunk. If there is no AI Eye, we instead diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index a9ad9884045d6..2c5e809e5d921 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -56,7 +56,7 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new) if(!.) chunks[key] = . = new /datum/camerachunk(x, y, lowest.z) -/// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. +/// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or its location is set. /datum/cameranet/proc/visibility(list/moved_eyes, client/C, list/other_eyes, use_static = TRUE) if(!islist(moved_eyes)) moved_eyes = moved_eyes ? list(moved_eyes) : list() @@ -67,7 +67,7 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new) for(var/mob/camera/ai_eye/eye as anything in moved_eyes) var/list/visibleChunks = list() - //Get the eye's turf in case it's located in an object like a mecha + //Get the eye's turf in case its located in an object like a mecha var/turf/eye_turf = get_turf(eye) if(eye.loc) var/static_range = eye.static_visibility_range diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 41855a0db879a..2215864782325 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -1,6 +1,5 @@ -/* SKYRAT EDIT REMOVAL /datum/emote/silicon - mob_type_allowed_typecache = list(/mob/living/silicon, /mob/living/simple_animal/bot, /mob/living/basic/bot) + trait_required = TRAIT_SILICON_EMOTES_ALLOWED emote_type = EMOTE_AUDIBLE /datum/emote/silicon/boop @@ -8,6 +7,14 @@ key_third_person = "boops" message = "boops." +/datum/emote/silicon/beep + key = "beep" + key_third_person = "beeps" + message = "beeps." + message_param = "beeps at %t." + emote_type = EMOTE_AUDIBLE + sound = 'sound/machines/twobeep.ogg' + /datum/emote/silicon/buzz key = "buzz" key_third_person = "buzzes" @@ -16,7 +23,6 @@ emote_type = EMOTE_AUDIBLE sound = 'sound/machines/buzz-sigh.ogg' - /datum/emote/silicon/buzz2 key = "buzz2" message = "buzzes twice." @@ -63,4 +69,3 @@ message = "activates their slow clap processor." emote_type = EMOTE_AUDIBLE sound = 'sound/machines/slowclap.ogg' -*/ diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7f1a302518d60..38c18c17ed127 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -11,7 +11,7 @@ post_tipped_callback = CALLBACK(src, PROC_REF(after_tip_over)), \ post_untipped_callback = CALLBACK(src, PROC_REF(after_righted)), \ roleplay_friendly = TRUE, \ - roleplay_emotes = list(/datum/emote/living/human/buzz, /datum/emote/living/human/buzz2, /datum/emote/living/beep, /datum/emote/living/human/beep2), /* SKYRAT EDIT CHANGE - ORIGINAL: roleplay_emotes = list(/datum/emote/silicon/buzz, /datum/emote/silicon/buzz2, /datum/emote/living/beep), */ \ + roleplay_emotes = list(/datum/emote/silicon/buzz, /datum/emote/silicon/buzz2, /datum/emote/silicon/beep, /datum/emote/silicon/beep2), /* SKYRAT EDIT CHANGE - ORIGINAL: roleplay_emotes = list(/datum/emote/silicon/buzz, /datum/emote/silicon/buzz2, /datum/emote/silicon/beep)*/ \ roleplay_callback = CALLBACK(src, PROC_REF(untip_roleplay))) //BUBBER EDIT: REDUCES THE SELF-RIGHT TIME FOR BORGS TO 20 SECONDS, FROM 60 SECONDS @@ -126,9 +126,9 @@ GLOB.available_ai_shells -= src QDEL_NULL(modularInterface) - QDEL_NULL(wires) QDEL_NULL(model) QDEL_NULL(eye_lights) + QDEL_NULL(hat_overlay) QDEL_NULL(inv1) QDEL_NULL(inv2) QDEL_NULL(inv3) @@ -322,12 +322,34 @@ add_overlay("ov-opencover +c") else add_overlay("ov-opencover -c") + if(hat) - var/mutable_appearance/head_overlay = hat.build_worn_icon(default_layer = 20, default_icon_file = 'icons/mob/clothing/head/default.dmi') - head_overlay.pixel_z += hat_offset - add_overlay(head_overlay) + hat_overlay = hat.build_worn_icon(default_layer = 20, default_icon_file = 'icons/mob/clothing/head/default.dmi') + update_worn_icons() + else if(hat_overlay) + QDEL_NULL(hat_overlay) + update_appearance(UPDATE_OVERLAYS) +/mob/living/silicon/robot/proc/update_worn_icons() + if(!hat_overlay) + return + cut_overlay(hat_overlay) + + if(islist(hat_offset)) + var/list/offset = hat_offset[ISDIAGONALDIR(dir) ? dir2text(dir & (WEST|EAST)) : dir2text(dir)] + if(offset) + hat_overlay.pixel_w = offset[1] + hat_overlay.pixel_z = offset[2] + + add_overlay(hat_overlay) + +/mob/living/silicon/robot/setDir(newdir) + var/old_dir = dir + . = ..() + if(. != old_dir) + update_worn_icons() + /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 ..() @@ -361,7 +383,7 @@ set_lockcharge(FALSE) scrambledcodes = TRUE log_silicon("CYBORG: [key_name(src)] has been unlinked from an AI.") - //Disconnect it's camera so it's not so easily tracked. + //Disconnect its camera so it's not so easily tracked. if(!QDELETED(builtInCamera)) QDEL_NULL(builtInCamera) // I'm trying to get the Cyborg to not be listed in the camera list diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index a5c6c7f3d8075..b7ddd290a1989 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -246,7 +246,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real if (!getBruteLoss()) to_chat(user, span_warning("[src] is already in good condition!")) return - if (!tool.tool_start_check(user, amount=1)) //The welder has 1u of fuel consumed by it's afterattack, so we don't need to worry about taking any away. + if (!tool.tool_start_check(user, amount=1)) //The welder has 1u of fuel consumed by its afterattack, so we don't need to worry about taking any away. return if(src == user) to_chat(user, span_notice("You start fixing yourself...")) diff --git a/code/modules/mob/living/silicon/robot/robot_defines.dm b/code/modules/mob/living/silicon/robot/robot_defines.dm index 7556cc7d85bba..6f8abfc725406 100644 --- a/code/modules/mob/living/silicon/robot/robot_defines.dm +++ b/code/modules/mob/living/silicon/robot/robot_defines.dm @@ -55,7 +55,10 @@ ////Power consumption of the light per lamp_intensity. var/lamp_power_consumption = BORG_LAMP_POWER_CONSUMPTION + // Overlay for borg eye lights var/mutable_appearance/eye_lights + // Overlay for borg hat + var/mutable_appearance/hat_overlay // Hud @@ -129,7 +132,7 @@ var/hasExpanded = FALSE var/obj/item/hat - var/hat_offset = -3 + var/hat_offset = list("north" = list(0, -3), "south" = list(0, -3), "east" = list(4, -3), "west" = list(-4, -3)) ///What types of mobs are allowed to ride/buckle to this mob var/static/list/can_ride_typecache = typecacheof(/mob/living/carbon/human) diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 0c2858219b7ca..d2dc1e8e34507 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -45,8 +45,8 @@ var/allow_riding = TRUE ///Whether the borg can stuff itself into disposals var/canDispose = FALSE - ///The y offset of the hat put on - var/hat_offset = -3 + ///The pixel offset of the hat. List of "north" "south" "east" "west" x, y offsets + var/hat_offset = list("north" = list(0, -3), "south" = list(0, -3), "east" = list(4, -3), "west" = list(-4, -3)) ///The x offsets of a person riding the borg var/list/ride_offset_x = list("north" = 0, "south" = 0, "east" = -6, "west" = 6) ///The y offsets of a person riding the borg @@ -306,6 +306,8 @@ //SKYRAT EDIT ADDITION if(!isnull(details[SKIN_FEATURES])) model_features += details[SKIN_FEATURES] + if (!isnull(details[SKIN_HAT_REST_OFFSET])) + rest_hat_offset = details[SKIN_HAT_REST_OFFSET] //SKYRAT EDIT END for(var/i in old_model.added_modules) added_modules += i @@ -390,7 +392,7 @@ ) model_select_icon = "service" cyborg_base_icon = "clown" - hat_offset = -2 + hat_offset = list("north" = list(0, -2), "south" = list(0, -2), "east" = list(4, -2), "west" = list(-4, -2)) /obj/item/robot_model/clown/respawn_consumable(mob/living/silicon/robot/cyborg, coeff = 1) . = ..() @@ -436,7 +438,7 @@ cyborg_base_icon = "engineer" model_select_icon = "engineer" model_traits = list(TRAIT_NEGATES_GRAVITY) - hat_offset = -4 + hat_offset = list("north" = list(0, -4), "south" = list(0, -4), "east" = list(4, -4), "west" = list(-4, -4)) /obj/item/robot_model/janitor name = "Janitor" @@ -463,7 +465,7 @@ ) cyborg_base_icon = "janitor" model_select_icon = "janitor" - hat_offset = -5 + hat_offset = list("north" = list(0, -5), "south" = list(0, -5), "east" = list(4, -5), "west" = list(-4, -5)) /// Weakref to the wash toggle action we own var/datum/weakref/wash_toggle_ref @@ -733,10 +735,9 @@ cyborg_base_icon = "medical" model_select_icon = "medical" model_traits = list(TRAIT_PUSHIMMUNE) - hat_offset = 3 borg_skins = list( - "Machinified Doctor" = list(SKIN_ICON_STATE = "medical"), - "Qualified Doctor" = list(SKIN_ICON_STATE = "qualified_doctor"), + "Machinified Doctor" = list(SKIN_ICON_STATE = "medical", SKIN_HAT_OFFSET = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(-1, 3), "west" = list(1, 3))), + "Qualified Doctor" = list(SKIN_ICON_STATE = "qualified_doctor", SKIN_HAT_OFFSET = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(1, 3), "west" = list(-1, 3))), ) /obj/item/robot_model/miner @@ -763,10 +764,10 @@ ) cyborg_base_icon = "miner" model_select_icon = "miner" - hat_offset = 0 + hat_offset = list("north" = list(0, 0), "south" = list(0, 0), "east" = list(0, 0), "west" = list(0, 0)) borg_skins = list( "Asteroid Miner" = list(SKIN_ICON_STATE = "minerOLD"), - "Spider Miner" = list(SKIN_ICON_STATE = "spidermin"), + "Spider Miner" = list(SKIN_ICON_STATE = "spidermin", SKIN_HAT_OFFSET = list("north" = list(0, -2), "south" = list(0, -2), "east" = list(-2, -2), "west" = list(2, -2))), "Lavaland Miner" = list(SKIN_ICON_STATE = "miner"), ) @@ -788,7 +789,7 @@ cyborg_base_icon = "peace" model_select_icon = "standard" model_traits = list(TRAIT_PUSHIMMUNE) - hat_offset = -2 + hat_offset = list("north" = list(0, -2), "south" = list(0, -2), "east" = list(1, -2), "west" = list(-1, -2)) /obj/item/robot_model/peacekeeper/do_transform_animation() ..() @@ -812,7 +813,7 @@ cyborg_base_icon = "sec" model_select_icon = "security" model_traits = list(TRAIT_PUSHIMMUNE) - hat_offset = 3 + hat_offset = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(1, 3), "west" = list(-1, 3)) /obj/item/robot_model/security/do_transform_animation() ..() @@ -882,11 +883,11 @@ cyborg_base_icon = "service_m" // display as butlerborg for radial model selection model_select_icon = "service" special_light_key = "service" - hat_offset = 0 + hat_offset = list("north" = list(0, 0), "south" = list(0, 0), "east" = list(0, 0), "west" = list(0, 0)) borg_skins = list( "Bro" = list(SKIN_ICON_STATE = "brobot"), "Butler" = list(SKIN_ICON_STATE = "service_m"), - "Kent" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = 3), + "Kent" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(-1, 3), "west" = list(1, 3))), "Tophat" = list(SKIN_ICON_STATE = "tophat", SKIN_LIGHT_KEY = NONE, SKIN_HAT_OFFSET = INFINITY), "Waitress" = list(SKIN_ICON_STATE = "service_f"), ) @@ -915,7 +916,7 @@ cyborg_base_icon = "synd_sec" model_select_icon = "malf" model_traits = list(TRAIT_PUSHIMMUNE) - hat_offset = 3 + hat_offset = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(4, 3), "west" = list(-4, 3)) /obj/item/robot_model/syndicate/rebuild_modules() ..() @@ -950,7 +951,7 @@ cyborg_base_icon = "synd_medical" model_select_icon = "malf" model_traits = list(TRAIT_PUSHIMMUNE) - hat_offset = 3 + hat_offset = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(-1, 3), "west" = list(1, 3)) /obj/item/robot_model/saboteur name = "Syndicate Saboteur" @@ -979,7 +980,7 @@ cyborg_base_icon = "synd_engi" model_select_icon = "malf" model_traits = list(TRAIT_PUSHIMMUNE, TRAIT_NEGATES_GRAVITY) - hat_offset = -4 + hat_offset = list("north" = list(0, -4), "south" = list(0, -4), "east" = list(4, -4), "west" = list(-4, -4)) canDispose = TRUE /obj/item/robot_model/syndicate/kiltborg @@ -990,7 +991,7 @@ ) model_select_icon = "kilt" cyborg_base_icon = "kilt" - hat_offset = -2 + hat_offset = list("north" = list(0, -2), "south" = list(0, -2), "east" = list(4, -2), "west" = list(-4, -2)) breakable_modules = FALSE locked_transform = FALSE //GO GO QUICKLY AND SLAUGHTER THEM ALL diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 7862d9cb44262..cde99e84c1f46 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -80,6 +80,7 @@ ) add_traits(traits_to_apply, ROUNDSTART_TRAIT) + ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) RegisterSignal(src, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_silicon_shocked)) /mob/living/silicon/Destroy() diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 49b44122ac0e7..50b30b09aa88c 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -202,6 +202,7 @@ pa_system = new(src, automated_announcements = automated_announcements) pa_system.Grant(src) RegisterSignal(src, COMSIG_MOB_TRIED_ACCESS, PROC_REF(attempt_access)) + ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) /mob/living/simple_animal/bot/Destroy() GLOB.bots_list -= src diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index ae1c52d1652da..4bedf0d3d621b 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -218,52 +218,54 @@ target = scan(tiles_scanned) - if(!target && bot_mode_flags & BOT_MODE_AUTOPATROL) - switch(mode) - if(BOT_IDLE, BOT_START_PATROL) - start_patrol() - if(BOT_PATROL) - bot_patrol() - - if(target) - if(loc == target || loc == get_turf(target)) - if(check_bot(target)) //Target is not defined at the parent - if(prob(50)) //50% chance to still try to repair so we dont end up with 2 floorbots failing to fix the last breach - target = null - path = list() - return - if(isturf(target) && !(bot_cover_flags & BOT_COVER_EMAGGED)) - repair(target) - else if(bot_cover_flags & BOT_COVER_EMAGGED && isfloorturf(target)) - var/turf/open/floor/F = target - toggle_magnet() - mode = BOT_REPAIRING - if(isplatingturf(F)) - F.attempt_lattice_replacement() - else - F.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) - audible_message(span_danger("[src] makes an excited booping sound.")) - addtimer(CALLBACK(src, PROC_REF(go_idle)), 0.5 SECONDS) - path = list() - return - if(!length(path)) - if(!isturf(target)) - var/turf/TL = get_turf(target) - path = get_path_to(src, TL, max_distance=30, access=access_card.GetAccess(), simulated_only = FALSE) - else - path = get_path_to(src, target, max_distance=30, access=access_card.GetAccess(), simulated_only = FALSE) + if (!target) + if(bot_mode_flags & BOT_MODE_AUTOPATROL) + switch(mode) + if(BOT_IDLE, BOT_START_PATROL) + start_patrol() + if(BOT_PATROL) + bot_patrol() + return - if(!bot_move(target)) - add_to_ignore(target) + if(loc == target || loc == get_turf(target)) + if(check_bot(target)) //Target is not defined at the parent + if(prob(50)) //50% chance to still try to repair so we dont end up with 2 floorbots failing to fix the last breach target = null - mode = BOT_IDLE + path = list() return - else if( !bot_move(target) ) + if(isturf(target) && !(bot_cover_flags & BOT_COVER_EMAGGED)) + repair(target) + else if(bot_cover_flags & BOT_COVER_EMAGGED && isfloorturf(target)) + var/turf/open/floor/floor = target + toggle_magnet() + mode = BOT_REPAIRING + if(isplatingturf(floor)) + floor.attempt_lattice_replacement() + else + floor.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + audible_message(span_danger("[src] makes an excited booping sound.")) + addtimer(CALLBACK(src, PROC_REF(go_idle)), 0.5 SECONDS) + path = list() + return + + if(!length(path)) + if(!isturf(target)) + var/turf/TL = get_turf(target) + path = get_path_to(src, TL, max_distance=30, access=access_card.GetAccess(), simulated_only = FALSE) + else + path = get_path_to(src, target, max_distance=30, access=access_card.GetAccess(), simulated_only = FALSE) + + if(!bot_move(target)) + add_to_ignore(target) target = null mode = BOT_IDLE - return + else if(!bot_move(target)) + target = null + mode = BOT_IDLE /mob/living/simple_animal/bot/floorbot/proc/go_idle() + if (QDELETED(src)) + return toggle_magnet(FALSE) mode = BOT_IDLE target = null @@ -278,7 +280,7 @@ //Floorbots, having several functions, need sort out special conditions here. /mob/living/simple_animal/bot/floorbot/process_scan(scan_target) var/result - var/turf/open/floor/F + var/turf/open/floor/floor move_resist = initial(move_resist) switch(process_type) if(HULL_BREACH) //The most common job, patching breaches in the station's hull. @@ -290,21 +292,21 @@ result = scan_target move_resist = INFINITY if(PLACE_TILE) - F = scan_target - if(isplatingturf(F)) //The floor must not already have a tile. - result = F + floor = scan_target + if(isplatingturf(floor)) //The floor must not already have a tile. + result = floor if(REPLACE_TILE) - F = scan_target - if(isfloorturf(F) && !isplatingturf(F)) //The floor must already have a tile. - result = F + floor = scan_target + if(isfloorturf(floor) && !isplatingturf(floor)) //The floor must already have a tile. + result = floor if(FIX_TILE) //Selects only damaged floors. - F = scan_target - if(istype(F) && (F.broken || F.burnt)) - result = F + floor = scan_target + if(istype(floor) && (floor.broken || floor.burnt)) + result = floor if(TILE_EMAG) //Emag mode! Rip up the floor and cause breaches to space! - F = scan_target - if(!isplatingturf(F)) - result = F + floor = scan_target + if(!isplatingturf(floor)) + result = floor else //If no special processing is needed, simply return the result. result = scan_target return result @@ -326,57 +328,69 @@ toggle_magnet() visible_message(span_notice("[targetdirection ? "[src] begins installing a bridge plating." : "[src] begins to repair the hole."] ")) mode = BOT_REPAIRING - if(do_after(src, 5 SECONDS, target = target_turf) && mode == BOT_REPAIRING) - if(autotile) //Build the floor and include a tile. - if(replacetiles && tilestack) - target_turf.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) //make sure a hull is actually below the floor tile - tilestack.place_tile(target_turf, src) - if(!tilestack) - speak("Requesting refill of custom floor tiles to continue replacing.") - else - target_turf.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) //make sure a hull is actually below the floor tile - target_turf.place_on_top(/turf/open/floor/iron, flags = CHANGETURF_INHERIT_AIR) - else //Build a hull plating without a floor tile. - target_turf.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + if(!do_after(src, 5 SECONDS, target = target_turf) && mode == BOT_REPAIRING) + go_idle() + return - else - var/turf/open/floor/F = target_turf - var/success = FALSE - var/was_replacing = replacetiles + if(!autotile) + target_turf.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + go_idle() + return - if(F.broken || F.burnt || isplatingturf(F)) - toggle_magnet() - mode = BOT_REPAIRING - visible_message(span_notice("[src] begins [(F.broken || F.burnt) ? "repairing the floor" : "placing a floor tile"].")) - if(do_after(src, 5 SECONDS, target = F) && mode == BOT_REPAIRING) - success = TRUE + if(replacetiles && tilestack) + target_turf.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) //make sure a hull is actually below the floor tile + tilestack.place_tile(target_turf, src) + if(!tilestack) + speak("Requesting refill of custom floor tiles to continue replacing.") + else + target_turf.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) //make sure a hull is actually below the floor tile + target_turf.place_on_top(/turf/open/floor/iron, flags = CHANGETURF_INHERIT_AIR) + go_idle() + return - else if(replacetiles && tilestack && F.type != tilestack.turf_type) - toggle_magnet() - mode = BOT_REPAIRING - visible_message(span_notice("[src] begins replacing the floor tiles.")) - if(do_after(src, 5 SECONDS, target = target_turf) && mode == BOT_REPAIRING && tilestack) - success = TRUE - - if(success) - var/area/is_this_maints = get_area(F) - if(was_replacing && tilestack) //turn the tile into plating (if needed), then replace it - F = F.make_plating(TRUE) || F - tilestack.place_tile(F, src) - if(!tilestack) - speak("Requesting refill of custom floor tiles to continue replacing.") - else if(F.broken || F.burnt) //repair the tile and reset it to be undamaged (rather than replacing it) - F.broken = FALSE - F.burnt = FALSE - F.update_appearance() - else if(istype(is_this_maints, /area/station/maintenance)) //place catwalk if it's plating and we're in maints - F.place_on_top(/turf/open/floor/catwalk_floor, flags = CHANGETURF_INHERIT_AIR) - else //place normal tile if it's plating anywhere else - F = F.make_plating(TRUE) || F - F.place_on_top(/turf/open/floor/iron, flags = CHANGETURF_INHERIT_AIR) - - if(!QDELETED(src)) + var/turf/open/floor/floor = target_turf + var/was_replacing = replacetiles + + if(floor.broken || floor.burnt || isplatingturf(floor)) + toggle_magnet() + mode = BOT_REPAIRING + visible_message(span_notice("[src] begins [(floor.broken || floor.burnt) ? "repairing the floor" : "placing a floor tile"].")) + if(!do_after(src, 5 SECONDS, target = floor) && mode == BOT_REPAIRING) + go_idle() + return + else if(replacetiles && tilestack && floor.type != tilestack.turf_type) + toggle_magnet() + mode = BOT_REPAIRING + visible_message(span_notice("[src] begins replacing the floor tiles.")) + if(do_after(src, 5 SECONDS, target = target_turf) && mode == BOT_REPAIRING && tilestack) + go_idle() + return + + var/area/is_this_maints = get_area(floor) + if(was_replacing && tilestack) //turn the tile into plating (if needed), then replace it + floor = floor.make_plating(TRUE) || floor + tilestack.place_tile(floor, src) + if(!tilestack) + speak("Requesting refill of custom floor tiles to continue replacing.") go_idle() + return + + if(floor.broken || floor.burnt) //repair the tile and reset it to be undamaged (rather than replacing it) + floor.broken = FALSE + floor.burnt = FALSE + floor.update_appearance() + go_idle() + return + + if(istype(is_this_maints, /area/station/maintenance)) //place catwalk if it's plating and we're in maints + floor.place_on_top(/turf/open/floor/catwalk_floor, flags = CHANGETURF_INHERIT_AIR) + go_idle() + return + + //place normal tile if it's plating anywhere else + floor = floor.make_plating(TRUE) || floor + floor.place_on_top(/turf/open/floor/iron, flags = CHANGETURF_INHERIT_AIR) + go_idle() /mob/living/simple_animal/bot/floorbot/update_icon_state() . = ..() @@ -396,13 +410,23 @@ new /obj/item/stack/tile/iron/base(Tsec, 1) return ..() -/mob/living/simple_animal/bot/floorbot/UnarmedAttack(atom/A, proximity_flag, list/modifiers) +/mob/living/simple_animal/bot/floorbot/UnarmedAttack(atom/target, proximity_flag, list/modifiers) if(!can_unarmed_attack()) return - if(isturf(A)) - repair(A) + + if (!isturf(target)) + return ..() + + if(!(bot_cover_flags & BOT_COVER_EMAGGED) || !isfloorturf(target)) + repair(target) + return + + var/turf/open/floor/floor = target + if(isplatingturf(floor)) + floor.attempt_lattice_replacement() else - ..() + floor.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + audible_message(span_danger("[src] makes an excited booping sound.")) /** * Checks a given turf to see if another floorbot is there, working as well. diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 39db78fdffb1d..6b9b4aa77faee 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -48,9 +48,8 @@ ///Number of times retried a blocked path var/blockcount = 0 - var/auto_return = TRUE /// true if auto return to home beacon after unload - var/auto_pickup = TRUE /// true if auto-pickup at beacon - var/report_delivery = TRUE /// true if bot will announce an arrival to a location. + ///flags of mulebot mode + var/mulebot_delivery_flags = MULEBOT_RETURN_MODE | MULEBOT_AUTO_PICKUP_MODE | MULEBOT_REPORT_DELIVERY_MODE var/obj/item/stock_parts/power_store/cell /// Internal Powercell var/cell_move_power_usage = 1///How much power we use when we move. @@ -113,7 +112,6 @@ /mob/living/simple_animal/bot/mulebot/Destroy() UnregisterSignal(src, list(COMSIG_MOB_BOT_PRE_STEP, COMSIG_MOB_CLIENT_PRE_MOVE, COMSIG_MOB_BOT_STEP, COMSIG_MOB_CLIENT_MOVED)) unload(0) - QDEL_NULL(wires) QDEL_NULL(cell) return ..() @@ -262,7 +260,7 @@ /mob/living/simple_animal/bot/mulebot/ui_data(mob/user) var/list/data = list() - data["on"] = bot_mode_flags & BOT_MODE_ON + data["powerStatus"] = bot_mode_flags & BOT_MODE_ON data["locked"] = bot_cover_flags & BOT_COVER_LOCKED data["siliconUser"] = HAS_SILICON_ACCESS(user) data["mode"] = mode ? "[mode]" : "Ready" @@ -275,18 +273,17 @@ if(BOT_NO_ROUTE) data["modeStatus"] = "bad" data["load"] = get_load_name() - data["destination"] = destination ? destination : null - data["home"] = home_destination - data["destinations"] = GLOB.deliverybeacontags - data["cell"] = cell ? TRUE : FALSE - data["cellPercent"] = cell ? cell.percent() : null - data["autoReturn"] = auto_return - data["autoPickup"] = auto_pickup - data["reportDelivery"] = report_delivery - data["id"] = id - data["allow_possession"] = bot_mode_flags & BOT_MODE_CAN_BE_SAPIENT - data["possession_enabled"] = can_be_possessed - data["pai_inserted"] = !!paicard + data["destination"] = destination + data["homeDestination"] = home_destination + data["destinationsList"] = GLOB.deliverybeacontags + data["cellPercent"] = cell?.percent() + data["autoReturn"] = mulebot_delivery_flags & MULEBOT_RETURN_MODE + data["autoPickup"] = mulebot_delivery_flags & MULEBOT_AUTO_PICKUP_MODE + data["reportDelivery"] = mulebot_delivery_flags & MULEBOT_REPORT_DELIVERY_MODE + data["botId"] = id + data["allowPossession"] = bot_mode_flags & BOT_MODE_CAN_BE_SAPIENT + data["possessionEnabled"] = can_be_possessed + data["paiInserted"] = !!paicard return data /mob/living/simple_animal/bot/mulebot/ui_act(action, params) @@ -352,11 +349,11 @@ else unload(0) if("autoret") - auto_return = !auto_return + mulebot_delivery_flags ^= MULEBOT_RETURN_MODE if("autopick") - auto_pickup = !auto_pickup + mulebot_delivery_flags ^= MULEBOT_AUTO_PICKUP_MODE if("report") - report_delivery = !report_delivery + mulebot_delivery_flags ^= MULEBOT_REPORT_DELIVERY_MODE /mob/living/simple_animal/bot/mulebot/proc/buzz(type) switch(type) @@ -433,8 +430,8 @@ return TRUE /mob/living/simple_animal/bot/mulebot/post_unbuckle_mob(mob/living/M) - load = null - return ..() + load = null + return ..() // called to unload the bot // argument is optional direction to unload @@ -637,12 +634,12 @@ radio_channel = RADIO_CHANNEL_AI_PRIVATE //Report on AI Private instead if the AI is controlling us. if(load) // if loaded, unload at target - if(report_delivery) + if(mulebot_delivery_flags & MULEBOT_REPORT_DELIVERY_MODE) speak("Destination [RUNECHAT_BOLD("[destination]")] reached. Unloading [load].",radio_channel) unload(loaddir) else // not loaded - if(auto_pickup) // find a crate + if(mulebot_delivery_flags & MULEBOT_AUTO_PICKUP_MODE) // find a crate var/atom/movable/AM if(wires.is_cut(WIRE_LOADCHECK)) // if hacked, load first unanchored thing we find for(var/atom/movable/A in get_step(loc, loaddir)) @@ -653,11 +650,11 @@ AM = locate(/obj/structure/closet/crate) in get_step(loc,loaddir) if(AM?.Adjacent(src)) load(AM) - if(report_delivery) + if(mulebot_delivery_flags & MULEBOT_REPORT_DELIVERY_MODE) speak("Now loading [load] at [RUNECHAT_BOLD("[get_area_name(src)]")].", radio_channel) // whatever happened, check to see if we return home - if(auto_return && home_destination && destination != home_destination) + if((mulebot_delivery_flags & MULEBOT_RETURN_MODE) && home_destination && destination != home_destination) // auto return set and not at home already start_home() mode = BOT_BLOCKED diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index cf573c3a57479..7c68d760f4399 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -12,7 +12,7 @@ * *It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. * - *Whenever possible, the drake will breathe fire directly at it's target, igniting and heavily damaging anything caught in the blast. + *Whenever possible, the drake will breathe fire directly at its target, igniting and heavily damaging anything caught in the blast. *It also often causes lava to pool from the ground around you - many nearby turfs will temporarily turn into lava, dealing damage to anything on the turfs. *The drake also utilizes its wings to fly into the sky, flying after its target and attempting to slam down on them. Anything near when it slams down takes huge damage. *Sometimes it will chain these swooping attacks over and over, making swiftness a necessity. diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 2dcbbf74eb20d..f892c7d05e913 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -8,7 +8,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/wendigo name = "wendigo" - desc = "A mythological man-eating legendary creature, the sockets of it's eyes track you with an unsatiated hunger." + desc = "A mythological man-eating legendary creature, the sockets of its eyes track you with an unsatiated hunger." health = 2500 maxHealth = 2500 icon_state = "wendigo" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index f7d86c350deef..bb3b6874f043c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -7,8 +7,8 @@ * # Goliath Broodmother * * A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will. - * When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled. - * It's attacks are as follows: + * When its health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled. + * Its attacks are as follows: * - Spawns a 3x3/plus shape of tentacles on the target location * - Spawns 2 baby goliaths on its tile, up to a max of 8. Children blow up when they die. * - The broodmother lets out a noise, and is able to move faster for 6.5 seconds. @@ -167,7 +167,7 @@ //The goliath's children. Pretty weak, simple mobs which are able to put a single tentacle under their target when at range. /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child name = "baby goliath" - desc = "A young goliath recently born from it's mother. While they hatch from eggs, said eggs are incubated in the mother until they are ready to be born." + desc = "A young goliath recently born from its mother. While they hatch from eggs, said eggs are incubated in the mother until they are ready to be born." icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' icon_state = "goliath_baby" icon_living = "goliath_baby" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 9f162e0cfdc77..b80a6af1778af 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -6,9 +6,9 @@ /** * # Herald * - * A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style. - * As it's health gets lower, the amount of projectiles fired per-attack increases. - * It's attacks are as follows: + * A slow-moving projectile user with a few tricks up its sleeve. Less unga-bunga than Colossus, with more cleverness in its fighting style. + * As its health gets lower, the amount of projectiles fired per-attack increases. + * Its attacks are as follows: * - Fires three projectiles in a given direction. * - Fires a spread in every cardinal and diagonal direction at once, then does it again after a bit. * - Shoots a single, golden bolt. Wherever it lands, the herald will be teleported to the location. diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 1ec573dbd6c56..ba9e8daa99621 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -7,12 +7,12 @@ * # Legionnaire * * A towering skeleton, embodying the power of Legion. - * As it's health gets lower, the head does more damage. - * It's attacks are as follows: + * As its health gets lower, the head does more damage. + * Its attacks are as follows: * - Charges at the target after a telegraph, throwing them across the arena should it connect. - * - Legionnaire's head detaches, attacking as it's own entity. Has abilities of it's own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed. + * - Legionnaire's head detaches, attacking as its own entity. Has abilities of its own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed. * - Leaves a pile of bones at your location. Upon using this skill again, you'll swap locations with the bone pile. - * - Spews a cloud of smoke from it's maw, wherever said maw is. + * - Spews a cloud of smoke from its maw, wherever said maw is. * A unique fight incorporating the head mechanic of legion into a whole new beast. Combatants will need to make sure the tag-team of head and body don't lure them into a deadly trap. */ diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index a9babf2eccafa..33bcb4dc9d704 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -7,8 +7,8 @@ * # Pandora * * A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones. - * As it's health gets lower, the time between it's attacks decrease. - * It's attacks are as follows: + * As its health gets lower, the time between its attacks decrease. + * Its attacks are as follows: * - Fires hierophant blasts in a straight line. Can only fire in a straight line in 8 directions, being the diagonals and cardinals. * - Creates a box of hierophant blasts around the target. If they try to run away to avoid it, they'll very likely get hit. * - Teleports the pandora from one location to another, almost identical to Hierophant. diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index 936398478a3d3..ba2752dd0e45e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -1,6 +1,6 @@ /mob/living/simple_animal/hostile/asteroid/polarbear name = "polar bear" - desc = "An aggressive animal that defends it's territory with incredible power. These beasts don't run from their enemies." + desc = "An aggressive animal that defends its territory with incredible power. These beasts don't run from their enemies." icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' icon_state = "polarbear" icon_living = "polarbear" diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index a4964add6c865..d017a2acca1be 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -8,7 +8,7 @@ * * sets lastKnownIP * * sets computer_id * * logs the login - * * tells the world to update it's status (for player count) + * * tells the world to update its status (for player count) * * create mob huds for the mob if needed * * reset next_move to 1 * * Set statobj to our mob diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 5d46f3c0dc06a..28de95ff94dd5 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -17,7 +17,7 @@ //Make mob invisible and spawn animation ADD_TRAIT(src, TRAIT_NO_TRANSFORM, TEMPORARY_TRANSFORMATION_TRAIT) - Paralyze(TRANSFORMATION_DURATION, ignore_canstun = TRUE) + Stun(TRANSFORMATION_DURATION, ignore_canstun = TRUE) icon = null cut_overlays() @@ -29,12 +29,12 @@ /mob/living/carbon/proc/finish_monkeyize() transformation_timer = null - to_chat(src, span_boldnotice("You are now a monkey.")) REMOVE_TRAIT(src, TRAIT_NO_TRANSFORM, TEMPORARY_TRANSFORMATION_TRAIT) icon = initial(icon) RemoveInvisibility(type) set_species(/datum/species/monkey) - name = "monkey" + to_chat(src, span_boldnotice("You are now \a [dna.species.name].")) + name = LOWER_TEXT(dna.species.name) regenerate_icons() set_name() SEND_SIGNAL(src, COMSIG_HUMAN_MONKEYIZE) @@ -57,7 +57,7 @@ //Make mob invisible and spawn animation ADD_TRAIT(src, TRAIT_NO_TRANSFORM, TEMPORARY_TRANSFORMATION_TRAIT) - Paralyze(TRANSFORMATION_DURATION, ignore_canstun = TRUE) + Stun(TRANSFORMATION_DURATION, ignore_canstun = TRUE) icon = null cut_overlays() @@ -70,15 +70,15 @@ /mob/living/carbon/proc/finish_humanize(species = /datum/species/human) transformation_timer = null - to_chat(src, span_boldnotice("You are now a human.")) REMOVE_TRAIT(src, TRAIT_NO_TRANSFORM, TEMPORARY_TRANSFORMATION_TRAIT) icon = initial(icon) RemoveInvisibility(type) set_species(species) + to_chat(src, span_boldnotice("You are now \a [dna.species.name].")) SEND_SIGNAL(src, COMSIG_MONKEY_HUMANIZE) return src -/mob/living/carbon/human/finish_humanize(species = /datum/species/human, instant = FALSE) +/mob/living/carbon/human/finish_humanize(species = /datum/species/human) underwear = "Nude" undershirt = "Nude" socks = "Nude" diff --git a/code/modules/mod/mod_construction.dm b/code/modules/mod/mod_construction.dm index ca7be41ec426f..16ce70df94563 100644 --- a/code/modules/mod/mod_construction.dm +++ b/code/modules/mod/mod_construction.dm @@ -92,6 +92,9 @@ desc = "[desc] [used_theme.desc]" icon_state = "[used_theme.default_skin]-plating" +/obj/item/mod/construction/plating/civilian + theme = /datum/mod_theme/civilian + /obj/item/mod/construction/plating/engineering theme = /datum/mod_theme/engineering diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index 8dde85455040a..f62992a9557fc 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -117,7 +117,6 @@ uninstall(module, deleting = TRUE) if(core) QDEL_NULL(core) - QDEL_NULL(wires) QDEL_NULL(mod_link) for(var/datum/mod_part/part_datum as anything in get_part_datums(all = TRUE)) part_datum.part_item = null diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm index ab2c76fc40f5b..fb85df02713d0 100644 --- a/code/modules/mod/mod_theme.dm +++ b/code/modules/mod/mod_theme.dm @@ -83,37 +83,6 @@ SEALED_MESSAGE = BOOT_SEAL_MESSAGE, ), ), - "civilian" = list( - /obj/item/clothing/head/mod = list( - UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, - SEALED_CLOTHING = STOPSPRESSUREDAMAGE|HEADINTERNALS, - UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, - UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, - UNSEALED_MESSAGE = HELMET_UNSEAL_MESSAGE, - SEALED_MESSAGE = HELMET_SEAL_MESSAGE, - ), - /obj/item/clothing/suit/mod = list( - UNSEALED_CLOTHING = THICKMATERIAL, - SEALED_CLOTHING = STOPSPRESSUREDAMAGE, - SEALED_INVISIBILITY = HIDEJUMPSUIT, - UNSEALED_MESSAGE = CHESTPLATE_UNSEAL_MESSAGE, - SEALED_MESSAGE = CHESTPLATE_SEAL_MESSAGE, - ), - /obj/item/clothing/gloves/mod = list( - UNSEALED_CLOTHING = THICKMATERIAL, - SEALED_CLOTHING = STOPSPRESSUREDAMAGE, - CAN_OVERSLOT = TRUE, - UNSEALED_MESSAGE = GAUNTLET_UNSEAL_MESSAGE, - SEALED_MESSAGE = GAUNTLET_SEAL_MESSAGE, - ), - /obj/item/clothing/shoes/mod = list( - UNSEALED_CLOTHING = THICKMATERIAL, - SEALED_CLOTHING = STOPSPRESSUREDAMAGE, - CAN_OVERSLOT = TRUE, - UNSEALED_MESSAGE = BOOT_UNSEAL_MESSAGE, - SEALED_MESSAGE = BOOT_SEAL_MESSAGE, - ), - ), ) #ifdef UNIT_TESTS @@ -212,6 +181,58 @@ acid = 25 wound = 5 +/datum/mod_theme/civilian + name = "civilian" + desc = "A light-weight civilian suit that offers unmatched ease of movement but no protection from the vacuum of space." + extended_desc = "An experimental design by Nakamura Engineering, intended to be marketed towards planet-bound customers. \ + This model sacrifices the protection from biological and chemical threats and the vacuum of space in exchange for \ + vastly improved mobility. Due to the slimmed-down profile, it also has less capacity for modifications compared to \ + mainline models." + default_skin = "civilian" + armor_type = /datum/armor/mod_theme_civilian + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + complexity_max = DEFAULT_MAX_COMPLEXITY - 3 + slowdown_inactive = 0.5 + slowdown_active = 0 + variants = list( + "civilian" = list( + /obj/item/clothing/head/mod = list( + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + UNSEALED_MESSAGE = HELMET_UNSEAL_MESSAGE, + SEALED_MESSAGE = HELMET_SEAL_MESSAGE, + ), + /obj/item/clothing/suit/mod = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + UNSEALED_MESSAGE = CHESTPLATE_UNSEAL_MESSAGE, + SEALED_MESSAGE = CHESTPLATE_SEAL_MESSAGE, + ), + /obj/item/clothing/gloves/mod = list( + UNSEALED_CLOTHING = THICKMATERIAL, + CAN_OVERSLOT = TRUE, + UNSEALED_MESSAGE = GAUNTLET_UNSEAL_MESSAGE, + SEALED_MESSAGE = GAUNTLET_SEAL_MESSAGE, + ), + /obj/item/clothing/shoes/mod = list( + UNSEALED_CLOTHING = THICKMATERIAL, + CAN_OVERSLOT = TRUE, + UNSEALED_MESSAGE = BOOT_UNSEAL_MESSAGE, + SEALED_MESSAGE = BOOT_SEAL_MESSAGE, + ), + ), + ) + +/datum/armor/mod_theme_civilian + melee = 5 + bullet = 5 + laser = 5 + energy = 5 + bio = 50 + fire = 25 + acid = 25 + wound = 5 + /datum/mod_theme/engineering name = "engineering" desc = "An engineer-fit suit with heat and shock resistance. Nakamura Engineering's classic." @@ -1868,7 +1889,7 @@ extended_desc = "A bulky and only legal by technicality suit, this ominous black and red MODsuit is only worn by \ Nanotrasen Black Ops teams. If you can see this suit, you fucked up. A collaborative joint effort between \ Apadyne and Nanotrasen the construction and modules gives the user robust protection against \ - anything that can be thrown at it, along with acute combat awareness tools for it's wearer. \ + anything that can be thrown at it, along with acute combat awareness tools for its wearer. \ Whether the wearer uses it or not is up to them. \ There seems to be a little inscription on the wrist that reads; \'squiddie', d'aww." default_skin = "apocryphal" diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index c6d0869c6e987..5125b70a9a7ad 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -46,6 +46,14 @@ /obj/item/mod/module/flashlight, ) +/obj/item/mod/control/pre_equipped/civilian + theme = /datum/mod_theme/civilian + applied_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + ) + /obj/item/mod/control/pre_equipped/engineering theme = /datum/mod_theme/engineering applied_modules = list( @@ -171,6 +179,9 @@ /obj/item/mod/module/quick_cuff, /obj/item/mod/module/headprotector, ) + default_pins = list( + /obj/item/mod/module/jetpack, + ) /obj/item/mod/control/pre_equipped/safeguard theme = /datum/mod_theme/safeguard @@ -351,6 +362,9 @@ /obj/item/mod/module/quick_cuff, ) +/obj/item/mod/control/pre_equipped/infiltrator/Initialize(mapload, new_theme, new_skin, new_core) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) /obj/item/mod/control/pre_equipped/interdyne theme = /datum/mod_theme/interdyne diff --git a/code/modules/mod/modules/module_kinesis.dm b/code/modules/mod/modules/module_kinesis.dm index 81a266f8ff41a..9048701f1d017 100644 --- a/code/modules/mod/modules/module_kinesis.dm +++ b/code/modules/mod/modules/module_kinesis.dm @@ -180,6 +180,7 @@ if(playsound) playsound(grabbed_atom, 'sound/effects/empulse.ogg', 75, TRUE) STOP_PROCESSING(SSfastprocess, src) + UnregisterSignal(grabbed_atom, list(COMSIG_MOB_STATCHANGE, COMSIG_MOVABLE_SET_ANCHORED)) kinesis_catcher = null mod.wearer.clear_fullscreen("kinesis") grabbed_atom.cut_overlay(kinesis_icon) @@ -265,7 +266,7 @@ name = "MOD kinesis+ module" desc = "A modular plug-in to the forearm, this module was recently redeveloped in secret. \ The bane of all ne'er-do-wells, the kinesis+ module is a powerful tool that allows the user \ - to manipulate the world around them. Like it's older counterpart, it's capable of manipulating \ + to manipulate the world around them. Like its older counterpart, it's capable of manipulating \ structures, machinery, vehicles, and, thanks to the fruitful efforts of its creators - living beings." complexity = 0 prebuilt = TRUE diff --git a/code/modules/mod/modules/modules_medical.dm b/code/modules/mod/modules/modules_medical.dm index 936c261dd2047..b828169e3bfa0 100644 --- a/code/modules/mod/modules/modules_medical.dm +++ b/code/modules/mod/modules/modules_medical.dm @@ -212,15 +212,20 @@ continue succeed = TRUE break - if(succeed) - var/list/organs_to_boot_out = organ_receiver.get_organ_slot(organ.slot) - for(var/obj/item/organ/organ_evacced as anything in organs_to_boot_out) - if(organ_evacced.organ_flags & ORGAN_UNREMOVABLE) - continue - organ_evacced.Remove(target) - organ_evacced.forceMove(get_turf(target)) - organ.Insert(target) - else + + if(!succeed) + organ.forceMove(drop_location()) + organ = null + return + + var/list/organs_to_boot_out = organ_receiver.get_organ_slot(organ.slot) + for(var/obj/item/organ/organ_evacced as anything in organs_to_boot_out) + if(organ_evacced.organ_flags & ORGAN_UNREMOVABLE) + continue + organ_evacced.Remove(target, special = TRUE) + organ_evacced.forceMove(get_turf(target)) + + if (!organ.Insert(target)) organ.forceMove(drop_location()) organ = null diff --git a/code/modules/mod/modules/modules_ninja.dm b/code/modules/mod/modules/modules_ninja.dm index 0e0de691e030b..518e3683abf72 100644 --- a/code/modules/mod/modules/modules_ninja.dm +++ b/code/modules/mod/modules/modules_ninja.dm @@ -177,10 +177,10 @@ var/accepted_type = /obj/item/energy_katana /obj/item/mod/module/weapon_recall/on_suit_activation() - ADD_TRAIT(mod.wearer, TRAIT_NOGUNS, MOD_TRAIT) + mod.wearer.add_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), MOD_TRAIT) /obj/item/mod/module/weapon_recall/on_suit_deactivation(deleting = FALSE) - REMOVE_TRAIT(mod.wearer, TRAIT_NOGUNS, MOD_TRAIT) + mod.wearer.remove_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), MOD_TRAIT) /obj/item/mod/module/weapon_recall/on_use() if(!linked_weapon) diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index 701861897dc5a..87bbcfd88a48b 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -499,6 +499,7 @@ mod.wearer.add_traits(user_traits, MOD_TRAIT) mod.wearer.RemoveElement(/datum/element/footstep, FOOTSTEP_MOB_HUMAN, 1, -6) mod.wearer.AddElement(/datum/element/footstep, FOOTSTEP_OBJ_ROBOT, 1, -6, sound_vary = TRUE) + mod.wearer.add_movespeed_mod_immunities(MOD_TRAIT, /datum/movespeed_modifier/damage_slowdown) mod.wearer.add_movespeed_modifier(/datum/movespeed_modifier/sphere) RegisterSignal(mod.wearer, COMSIG_MOB_STATCHANGE, PROC_REF(on_statchange)) @@ -560,6 +561,7 @@ light_power = 1 light_color = COLOR_LIGHT_ORANGE embed_type = null + can_hit_turfs = TRUE /obj/projectile/bullet/mining_bomb/Initialize(mapload) . = ..() diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 034bfa8125850..7f85ef0b80ea7 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -80,8 +80,8 @@ var/base_idle_power_usage = 0.2 WATTS //SKYRAT EDIT CHANGE - ORIGINAL: 1 WATTS // Modular computers can run on various devices. Each DEVICE (Laptop, Console & Tablet) - // must have it's own DMI file. Icon states must be called exactly the same in all files, but may look differently - // If you create a program which is limited to Laptops and Consoles you don't have to add it's icon_state overlay for Tablets too, for example. + // must have its own DMI file. Icon states must be called exactly the same in all files, but may look differently + // If you create a program which is limited to Laptops and Consoles you don't have to add its icon_state overlay for Tablets too, for example. ///If set, what the icon_state will be if the computer is unpowered. var/icon_state_unpowered diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm index f0ba52b076381..ec67185314d98 100644 --- a/code/modules/modular_computers/computers/item/pda.dm +++ b/code/modules/modular_computers/computers/item/pda.dm @@ -144,6 +144,11 @@ return . || NONE +/obj/item/modular_computer/pda/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(iscash(interacting_with)) + return money_act(user,interacting_with) + return NONE + /obj/item/modular_computer/pda/item_interaction(mob/living/user, obj/item/tool, list/modifiers) . = ..() if(.) diff --git a/code/modules/modular_computers/file_system/programs/atmosscan.dm b/code/modules/modular_computers/file_system/programs/atmosscan.dm index 7e26087285971..32819a358058c 100644 --- a/code/modules/modular_computers/file_system/programs/atmosscan.dm +++ b/code/modules/modular_computers/file_system/programs/atmosscan.dm @@ -27,7 +27,7 @@ on_analyze(source=source, target=get_turf(computer)) return COMPONENT_CANCEL_ATTACK_CHAIN -/// Keep this in sync with it's tool based counterpart [/obj/proc/analyzer_act] and [/atom/proc/tool_act] +/// Keep this in sync with its tool based counterpart [/obj/proc/analyzer_act] and [/atom/proc/tool_act] /datum/computer_file/program/atmosscan/tap(atom/A, mob/living/user, params) if(atmozphere_mode != ATMOZPHERE_SCAN_CLICK) return FALSE diff --git a/code/modules/modular_computers/file_system/programs/powermonitor.dm b/code/modules/modular_computers/file_system/programs/powermonitor.dm index 817cad275cd1e..4dbd4ea467f51 100644 --- a/code/modules/modular_computers/file_system/programs/powermonitor.dm +++ b/code/modules/modular_computers/file_system/programs/powermonitor.dm @@ -42,7 +42,7 @@ attached_wire_ref = WEAKREF(locate(/obj/structure/cable) in T) if(attached_wire_ref) return - var/area/A = get_area(computer) //if the computer isn't directly connected to a wire, attempt to find the APC powering it to pull it's powernet instead + var/area/A = get_area(computer) //if the computer isn't directly connected to a wire, attempt to find the APC powering it to pull its powernet instead if(!A) return var/obj/machinery/power/apc/local_apc = A.apc diff --git a/code/modules/modular_computers/file_system/programs/robocontrol.dm b/code/modules/modular_computers/file_system/programs/robocontrol.dm index 314048c514958..694c84eaeea4d 100644 --- a/code/modules/modular_computers/file_system/programs/robocontrol.dm +++ b/code/modules/modular_computers/file_system/programs/robocontrol.dm @@ -53,9 +53,9 @@ "dest" = simple_mulebot.destination, "power" = simple_mulebot.cell ? simple_mulebot.cell.percent() : 0, "home" = simple_mulebot.home_destination, - "autoReturn" = simple_mulebot.auto_return, - "autoPickup" = simple_mulebot.auto_pickup, - "reportDelivery" = simple_mulebot.report_delivery, + "autoReturn" = simple_mulebot.mulebot_delivery_flags & MULEBOT_RETURN_MODE, + "autoPickup" = simple_mulebot.mulebot_delivery_flags & MULEBOT_AUTO_PICKUP_MODE, + "reportDelivery" = simple_mulebot.mulebot_delivery_flags & MULEBOT_REPORT_DELIVERY_MODE, "mule_ref" = REF(simple_mulebot), "load" = simple_mulebot.get_load_name(), )) diff --git a/code/modules/modular_computers/file_system/programs/secureye.dm b/code/modules/modular_computers/file_system/programs/secureye.dm index a754c37d811e9..c7a24a6e8b7b9 100644 --- a/code/modules/modular_computers/file_system/programs/secureye.dm +++ b/code/modules/modular_computers/file_system/programs/secureye.dm @@ -209,7 +209,7 @@ var/list/visible_turfs = list() - // Get the camera's turf to correctly gather what's visible from it's turf, in case it's located in a moving object (borgs / mechs) + // Get the camera's turf to correctly gather what's visible from its turf, in case it's located in a moving object (borgs / mechs) var/new_cam_turf = get_turf(active_camera) // If we're not forcing an update for some reason and the cameras are in the same location, diff --git a/code/modules/modular_computers/file_system/programs/virtual_pet.dm b/code/modules/modular_computers/file_system/programs/virtual_pet.dm index 7a0adba3cce6d..78a9148b013fe 100644 --- a/code/modules/modular_computers/file_system/programs/virtual_pet.dm +++ b/code/modules/modular_computers/file_system/programs/virtual_pet.dm @@ -432,7 +432,7 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) /datum/emote/living/jump, /datum/emote/living/shiver, /datum/emote/spin, - /datum/emote/living/beep, + /datum/emote/silicon/beep, ) data["possible_emotes"] = list("none") for(var/datum/emote/target_emote as anything in possible_emotes) diff --git a/code/modules/movespeed/modifiers/innate.dm b/code/modules/movespeed/modifiers/innate.dm index 83d8b3fb78d98..545d92d26b57b 100644 --- a/code/modules/movespeed/modifiers/innate.dm +++ b/code/modules/movespeed/modifiers/innate.dm @@ -18,3 +18,8 @@ /datum/movespeed_modifier/dna_vault_speedup blacklisted_movetypes = (FLYING|FLOATING) multiplicative_slowdown = -0.4 + +/// The movespeed modifier from the heavy fish trait when applied to mobs. +/datum/movespeed_modifier/heavy_fish + multiplicative_slowdown = 0.4 + flags = IGNORE_NOSLOW diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 1624ce37bf6d9..aa8c8153e97f5 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -172,3 +172,6 @@ /datum/movespeed_modifier/basilisk_overheat multiplicative_slowdown = -18 + +/datum/movespeed_modifier/magic_ties + multiplicative_slowdown = 0.5 diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm index 4768f66a544f4..8f4e59d65557b 100644 --- a/code/modules/movespeed/modifiers/status_effects.dm +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -38,6 +38,9 @@ /datum/movespeed_modifier/status_effect/tired_post_charge multiplicative_slowdown = 3 +/datum/movespeed_modifier/status_effect/tired_post_charge/lesser + multiplicative_slowdown = 2 + /// Get slower the more gold is in your system. /datum/movespeed_modifier/status_effect/midas_blight id = MOVESPEED_ID_MIDAS_BLIGHT diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 0be6375ed1742..e652b92e97805 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -78,7 +78,6 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department /obj/machinery/fax/Destroy() QDEL_NULL(loaded_item_ref) - QDEL_NULL(wires) return ..() /obj/machinery/fax/update_overlays() @@ -233,7 +232,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department var/list/data = list() //Record a list of all existing faxes. for(var/obj/machinery/fax/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax)) - if(FAX.fax_id == fax_id) //skip yourself + if(FAX.fax_id == fax_id || is_centcom_level(FAX.z)) //skip yourself and the centcom fax machine. continue var/list/fax_data = list() fax_data["fax_name"] = FAX.fax_name @@ -301,7 +300,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department history_add("Send", params["name"]) GLOB.requests.fax_request(usr.client, "sent a fax message from [fax_name]/[fax_id] to [params["name"]]", fax_paper) - to_chat(GLOB.admins, span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)]"), confidential = TRUE) + to_chat(GLOB.admins, span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name)]"), confidential = TRUE) for(var/client/staff as anything in GLOB.admins) if(staff?.prefs.read_preference(/datum/preference/toggle/comms_notification)) SEND_SOUND(staff, sound('sound/misc/server-ready.ogg')) diff --git a/code/modules/paperwork/paperwork.dm b/code/modules/paperwork/paperwork.dm index 03f22177f9e71..cd26482bf6c8a 100644 --- a/code/modules/paperwork/paperwork.dm +++ b/code/modules/paperwork/paperwork.dm @@ -166,7 +166,7 @@ detailed_desc += span_info(" The stack of documents appear to be a medical report from a nearby station, detailing the autopsy of an unknown xenofauna.") detailed_desc += span_info(" Skipping to the end of the report reveals that the specimen was the station bartender's pet monkey.") - detailed_desc += span_info(" The specimen had been exposed to radiation during an 'unrelated incident with the engine', leading to it's mutated form.") + detailed_desc += span_info(" The specimen had been exposed to radiation during an 'unrelated incident with the engine', leading to its mutated form.") detailed_desc += span_info(" Regardless, the autopsy results look like they could be useful. You should probably stamp this.") diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index d37d97c167792..7be0e3548ad2b 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -363,8 +363,8 @@ var/datum/component/transforming/transform_comp = GetComponent(/datum/component/transforming) .["damage"] = max(5, transform_comp.throwforce_on) .["speed"] = max(0, transform_comp.throw_speed_on - 3) - var/list/embed_params = .["embedding"] - embed_params["embed_chance"] = 100 + var/datum/embed_data/data = .["embedding"] + .["embedding"] = data.generate_with_values(embed_chance = 100) /obj/item/pen/edagger/proc/on_containing_dart_fired(obj/projectile/source) SIGNAL_HANDLER diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 72d3ecd85ba03..b72a232017029 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -78,8 +78,6 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks()) var/color_mode = PHOTO_COLOR /// Indicates whether the printer is currently busy copying or not. var/busy = FALSE - /// Variable needed to determine the selected category of forms on Photocopier.js - var/category /// Variable that holds a reference to any object supported for photocopying inside the photocopier var/obj/object_copy /// Variable for the UI telling us how many copies are in the queue. @@ -149,6 +147,8 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks()) static_data["blanks"] = blank_infos static_data["categories"] = category_names + static_data["max_paper_count"] = MAX_PAPER_CAPACITY + static_data["max_copies"] = MAX_COPIES_AT_ONCE return static_data @@ -156,8 +156,6 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks()) var/list/data = list() data["has_item"] = !copier_empty() data["num_copies"] = num_copies - - data["category"] = category data["copies_left"] = copies_left if(istype(object_copy, /obj/item/photo)) @@ -265,10 +263,6 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks()) if("set_copies") num_copies = clamp(text2num(params["num_copies"]), 1, MAX_COPIES_AT_ONCE) return TRUE - // Changes the forms displayed on Photocopier.js when you switch categories - if("choose_category") - category = params["category"] - return TRUE // Called when you press print blank if("print_blank") if(check_busy(usr)) @@ -276,7 +270,7 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks()) if(!(params["code"] in GLOB.paper_blanks)) return FALSE var/list/blank = GLOB.paper_blanks[params["code"]] - do_copies(CALLBACK(src, PROC_REF(make_blank_print), blank), usr, PAPER_PAPER_USE, PAPER_TONER_USE, 1) + do_copies(CALLBACK(src, PROC_REF(make_blank_print), blank), usr, PAPER_PAPER_USE, PAPER_TONER_USE, num_copies) return TRUE /// Returns the color used for the printing operation. If the color is below TONER_LOW_PERCENTAGE, it returns a gray color. diff --git a/code/modules/plumbing/ducts.dm b/code/modules/plumbing/ducts.dm index de4a900579219..a7045567fa80d 100644 --- a/code/modules/plumbing/ducts.dm +++ b/code/modules/plumbing/ducts.dm @@ -100,7 +100,7 @@ All the important duct code: other.add_connects(opposite_dir) other.update_appearance() - return TRUE //tell the current pipe to also update it's sprite + return TRUE //tell the current pipe to also update its sprite if(!(other in neighbours)) //we cool if((duct_color != other.duct_color) && !(ignore_colors || other.ignore_colors)) return @@ -339,7 +339,7 @@ All the important duct code: /obj/item/stack/ducts/examine(mob/user) . = ..() - . += span_notice("It's current color and layer are [duct_color] and [duct_layer]. Use in-hand to change.") + . += span_notice("Its current color and layer are [duct_color] and [duct_layer]. Use in-hand to change.") /obj/item/stack/ducts/attack_self(mob/user) var/new_layer = tgui_input_list(user, "Select a layer", "Layer", GLOB.plumbing_layers, duct_layer) diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index c8564b15f1215..33c063bbfed20 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -190,6 +190,8 @@ transfer_amount = reagent.volume * part if(reagent.intercept_reagents_transfer(target_holder, amount)) + update_total() + target_holder.update_total() continue transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. diff --git a/code/modules/plumbing/plumbers/pill_press.dm b/code/modules/plumbing/plumbers/pill_press.dm index dad5ad943b12f..050402f79f5af 100644 --- a/code/modules/plumbing/plumbers/pill_press.dm +++ b/code/modules/plumbing/plumbers/pill_press.dm @@ -63,7 +63,7 @@ . = ..() . += span_notice("The [name] currently has [stored_products.len] stored. There needs to be less than [MAX_FLOOR_PRODUCTS] on the floor to continue dispensing.") -/// decode product category from it's type path and returns the decoded typepath +/// decode product category from its type path and returns the decoded typepath /obj/machinery/plumbing/pill_press/proc/decode_category() var/obj/item/reagent_containers/container = locate(packaging_type) if(ispath(container, /obj/item/reagent_containers/pill/patch)) diff --git a/code/modules/plumbing/plumbers/reaction_chamber.dm b/code/modules/plumbing/plumbers/reaction_chamber.dm index 59fcfaf7caf91..9828c9e697f85 100644 --- a/code/modules/plumbing/plumbers/reaction_chamber.dm +++ b/code/modules/plumbing/plumbers/reaction_chamber.dm @@ -180,8 +180,8 @@ /** * figure out which buffer to transfer to restore balance - * if solution is getting too basic(high ph) add some acid to lower it's value - * else if solution is getting too acidic(low ph) add some base to increase it's value + * if solution is getting too basic(high ph) add some acid to lower its value + * else if solution is getting too acidic(low ph) add some base to increase its value */ var/datum/reagents/buffer = reagents.ph > alkaline_limit ? acidic_beaker.reagents : alkaline_beaker.reagents if(!buffer.total_volume) diff --git a/code/modules/power/apc/apc_main.dm b/code/modules/power/apc/apc_main.dm index c0fedfa5b2240..871906fe4b8f7 100644 --- a/code/modules/power/apc/apc_main.dm +++ b/code/modules/power/apc/apc_main.dm @@ -7,6 +7,12 @@ ///Cap for how fast cells charge, as a percentage per second (.01 means cellcharge is capped to 1% per second) #define CHARGELEVEL 0.01 +///Charge percentage at which the lights channel stops working +#define APC_CHANNEL_LIGHT_TRESHOLD 10 //SKYRAT EDIT CHANGE - Original: 15 +///Charge percentage at which the equipment channel stops working +#define APC_CHANNEL_EQUIP_TRESHOLD 20 //SKYRAT EDIT CHANGE - Original: 30 +///Charge percentage at which the APC icon indicates discharging +#define APC_CHANNEL_ALARM_TRESHOLD 75 /obj/machinery/power/apc name = "area power controller" @@ -49,6 +55,8 @@ var/operating = TRUE ///State of the apc charging (not charging, charging, fully charged) var/charging = APC_NOT_CHARGING + ///Previous state of charging, to detect the change + var/last_charging ///Can the APC charge? var/chargemode = TRUE ///Is the apc interface locked? @@ -67,6 +75,8 @@ var/lastused_environ = 0 ///Total amount of power used by the three channels var/lastused_total = 0 + ///Total amount of power put into the battery + var/lastused_charge = 0 ///State of the apc external power (no power, low power, has power) var/main_status = APC_NO_POWER powernet = FALSE // set so that APCs aren't found as powernet nodes //Hackish, Horrible, was like this before I changed it :( @@ -146,8 +156,7 @@ //APCs get added to their own processing tasks for the machines subsystem. if (!(datum_flags & DF_ISPROCESSING)) datum_flags |= DF_ISPROCESSING - SSmachines.apc_early_processing += src - SSmachines.apc_late_processing += src + SSmachines.processing_apcs += src //Pixel offset its appearance based on its direction dir = ndir @@ -240,8 +249,6 @@ QDEL_NULL(alarm_manager) if(occupier) malfvacate(TRUE) - if(wires) - QDEL_NULL(wires) if(cell) QDEL_NULL(cell) if(terminal) @@ -362,7 +369,7 @@ "powerCellStatus" = cell ? cell.percent() : null, "chargeMode" = chargemode, "chargingStatus" = charging, - "chargingPowerDisplay" = display_power(area.energy_usage[AREA_USAGE_APC_CHARGE]), + "chargingPowerDisplay" = display_power(lastused_charge), "totalLoad" = display_power(lastused_total), "coverLocked" = coverlocked, "remoteAccess" = (user == remote_control_user), @@ -516,15 +523,22 @@ disconnect_remote_access() /** - * APC early processing. This gets processed before any other machine does. + * APC early processing. This gets processed after any other machine on the powernet does. * This adds up the total static power usage for the apc's area, then draw that power usage from the grid or APC cell. - * This is done early so machines that use dynamic power get a more truthful surplus when accessing available energy. */ /obj/machinery/power/apc/proc/early_process() + if(cell && cell.charge < cell.maxcharge) + last_charging = charging + charging = APC_NOT_CHARGING + if(isnull(area)) + return + var/total_static_energy_usage = 0 total_static_energy_usage += APC_CHANNEL_IS_ON(lighting) * area.energy_usage[AREA_USAGE_STATIC_LIGHT] total_static_energy_usage += APC_CHANNEL_IS_ON(equipment) * area.energy_usage[AREA_USAGE_STATIC_EQUIP] total_static_energy_usage += APC_CHANNEL_IS_ON(environ) * area.energy_usage[AREA_USAGE_STATIC_ENVIRON] + area.clear_usage() + if(total_static_energy_usage) //Use power from static power users. draw_energy(total_static_energy_usage) @@ -549,17 +563,14 @@ lastused_light = APC_CHANNEL_IS_ON(lighting) ? area.energy_usage[AREA_USAGE_LIGHT] + area.energy_usage[AREA_USAGE_STATIC_LIGHT] : 0 lastused_equip = APC_CHANNEL_IS_ON(equipment) ? area.energy_usage[AREA_USAGE_EQUIP] + area.energy_usage[AREA_USAGE_STATIC_EQUIP] : 0 lastused_environ = APC_CHANNEL_IS_ON(environ) ? area.energy_usage[AREA_USAGE_ENVIRON] + area.energy_usage[AREA_USAGE_STATIC_ENVIRON] : 0 - area.clear_usage() - - lastused_total = lastused_light + lastused_equip + lastused_environ + lastused_charge = charging == APC_CHARGING ? area.energy_usage[AREA_USAGE_APC_CHARGE] : 0 + lastused_total = lastused_light + lastused_equip + lastused_environ + lastused_charge //store states to update icon if any change var/last_lt = lighting var/last_eq = equipment var/last_en = environ - var/last_ch = charging - var/excess = surplus() if(!avail()) @@ -579,7 +590,7 @@ if(!nightshift_lights || (nightshift_lights && !low_power_nightshift_lights)) low_power_nightshift_lights = TRUE INVOKE_ASYNC(src, PROC_REF(set_nightshift), TRUE) - else if(cell.percent() < 7) // SKYRAT EDIT CHANGE - ORIGINAL: cell.percent() < 15 + else if(cell.percent() < APC_CHANNEL_LIGHT_TRESHOLD) // turn off lighting & equipment equipment = autoset(equipment, AUTOSET_OFF) lighting = autoset(lighting, AUTOSET_OFF) environ = autoset(environ, AUTOSET_ON) @@ -587,7 +598,7 @@ if(!nightshift_lights || (nightshift_lights && !low_power_nightshift_lights)) low_power_nightshift_lights = TRUE INVOKE_ASYNC(src, PROC_REF(set_nightshift), TRUE) - else if(cell.percent() < 17) // SKYRAT EDIT CHANGE - ORIGINAL: cell.percent() < 30 + else if(cell.percent() < APC_CHANNEL_EQUIP_TRESHOLD) equipment = autoset(equipment, AUTOSET_ON) // SKYRAT EDIT CHANGE - ORIGINAL: AUTOSET_OFF lighting = autoset(lighting, AUTOSET_OFF) // SKYRAT EDIT CHANGE - ORIGINAL: AUTOSET_ON environ = autoset(environ, AUTOSET_ON) @@ -603,21 +614,8 @@ low_power_nightshift_lights = FALSE if(!SSnightshift.nightshift_active) INVOKE_ASYNC(src, PROC_REF(set_nightshift), FALSE) - if(cell.percent() > 75) + if(cell.percent() > APC_CHANNEL_ALARM_TRESHOLD) alarm_manager.clear_alarm(ALARM_POWER) - - charging = APC_NOT_CHARGING - // now trickle-charge the cell - if(chargemode && operating && excess && cell.used_charge()) - // Max charge is capped to % per second constant. - lastused_total += charge_cell(min(cell.chargerate, cell.maxcharge * CHARGELEVEL) * seconds_per_tick, cell = cell, grid_only = TRUE, channel = AREA_USAGE_APC_CHARGE) - charging = APC_CHARGING - - // show cell as fully charged if so - if(cell.charge >= cell.maxcharge) - cell.charge = cell.maxcharge - charging = APC_FULLY_CHARGED - // SKYRAT ADDITION START - CLOCK CULT if(integration_cog) var/power_delta = clamp(cell.charge - 50, 0, 50) @@ -634,16 +632,47 @@ lighting = autoset(lighting, AUTOSET_FORCE_OFF) environ = autoset(environ, AUTOSET_FORCE_OFF) alarm_manager.send_alarm(ALARM_POWER) - // update icon & area power if anything changed - if(last_lt != lighting || last_eq != equipment || last_en != environ || force_update) force_update = FALSE queue_icon_update() update() - else if(last_ch != charging) + else if(charging != last_charging) queue_icon_update() +// charge until the battery is full or to the treshold of the provided channel +/obj/machinery/power/apc/proc/charge_channel(channel = null, seconds_per_tick) + if(!cell || shorted || !operating || !chargemode || !surplus() || !cell.used_charge()) + return + + // no overcharge past the next treshold + var/need_charge_for_channel + switch(channel) + if(SSMACHINES_APCS_ENVIRONMENT) + need_charge_for_channel = (cell.maxcharge * 0.05) - cell.charge + if(SSMACHINES_APCS_LIGHTS) + need_charge_for_channel = (cell.maxcharge * (APC_CHANNEL_LIGHT_TRESHOLD + 5) * 0.01) - cell.charge + if(SSMACHINES_APCS_EQUIPMENT) + need_charge_for_channel = (cell.maxcharge * (APC_CHANNEL_EQUIP_TRESHOLD + 5) * 0.01) - cell.charge + else + need_charge_for_channel = cell.used_charge() + + var/charging_used = area ? area.energy_usage[AREA_USAGE_APC_CHARGE] : 0 + var/remaining_charge_rate = min(cell.chargerate, cell.maxcharge * CHARGELEVEL) - charging_used + var/need_charge = min(need_charge_for_channel, remaining_charge_rate) * seconds_per_tick + //check if we can charge the battery + if(need_charge < 0) + return + + charge_cell(need_charge, cell = cell, grid_only = TRUE, channel = AREA_USAGE_APC_CHARGE) + + // show cell as fully charged if so + if(cell.charge >= cell.maxcharge) + cell.charge = cell.maxcharge + charging = APC_FULLY_CHARGED + else + charging = APC_CHARGING + /obj/machinery/power/apc/proc/reset(wire) switch(wire) if(WIRE_IDSCAN) @@ -762,3 +791,6 @@ return null #undef CHARGELEVEL +#undef APC_CHANNEL_LIGHT_TRESHOLD +#undef APC_CHANNEL_EQUIP_TRESHOLD +#undef APC_CHANNEL_ALARM_TRESHOLD diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index a29e1860a33a7..2914a9edec53f 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -118,6 +118,7 @@ RegisterSignal(src, COMSIG_LIGHT_EATER_ACT, PROC_REF(on_light_eater)) RegisterSignal(src, COMSIG_HIT_BY_SABOTEUR, PROC_REF(on_saboteur)) AddElement(/datum/element/atmos_sensitive, mapload) + AddElement(/datum/element/contextual_screentip_bare_hands, rmb_text = "Remove bulb") if(break_if_moved) find_and_hang_on_wall(custom_drop_callback = CALLBACK(src, PROC_REF(knock_down))) @@ -373,22 +374,20 @@ . = ..() switch(status) if(LIGHT_OK) - . += "It is turned [on? "on" : "off"]." + . += span_notice("It is turned [on? "on" : "off"].") if(LIGHT_EMPTY) - . += "The [fitting] has been removed." + . += span_notice("The [fitting] has been removed.") if(LIGHT_BURNED) - . += "The [fitting] is burnt out." + . += span_danger("The [fitting] is burnt out.") if(LIGHT_BROKEN) - . += "The [fitting] has been smashed." + . += span_danger("The [fitting] has been smashed.") if(cell || has_mock_cell) - . += "Its backup power charge meter reads [has_mock_cell ? 100 : round((cell.charge / cell.maxcharge) * 100, 0.1)]%." + . += span_notice("Its backup power charge meter reads [has_mock_cell ? 100 : round((cell.charge / cell.maxcharge) * 100, 0.1)]%.") //SKYRAT EDIT ADDITION if(constant_flickering) . += span_danger("The lighting ballast appears to be damaged, this could be fixed with a multitool.") //SKYRAT EDIT END - - // attack with item - insert light (if right type), otherwise try to break the light /obj/machinery/light/attackby(obj/item/tool, mob/living/user, params) @@ -577,9 +576,9 @@ // attack with hand - remove tube/bulb // if hands aren't protected and the light is on, burn the player -/obj/machinery/light/attack_hand(mob/living/carbon/human/user, list/modifiers) +/obj/machinery/light/attack_hand_secondary(mob/living/carbon/human/user, list/modifiers) . = ..() - if(.) + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return user.changeNext_move(CLICK_CD_MELEE) add_fingerprint(user) @@ -754,7 +753,10 @@ * All the effects that occur when a light falls off a wall that it was hung onto. */ /obj/machinery/light/proc/knock_down() - new /obj/item/wallframe/light_fixture(drop_location()) + if (fitting == "bulb") + new /obj/item/wallframe/light_fixture/small(drop_location()) + else + new /obj/item/wallframe/light_fixture(drop_location()) new /obj/item/stack/cable_coil(drop_location(), 1, "red") if(status != LIGHT_BROKEN) break_light_tube(FALSE) diff --git a/code/modules/power/lighting/light_construct.dm b/code/modules/power/lighting/light_construct.dm index 2bca5e3b3f157..ec09fdc26924f 100644 --- a/code/modules/power/lighting/light_construct.dm +++ b/code/modules/power/lighting/light_construct.dm @@ -45,16 +45,16 @@ . = ..() switch(stage) if(LIGHT_CONSTRUCT_EMPTY) - . += "It's an empty frame." + . += span_notice("It's an empty frame with no wires.") if(LIGHT_CONSTRUCT_WIRED) - . += "It's wired." + . += span_notice("It is wired, but the bolts are not screwed in.") if(LIGHT_CONSTRUCT_CLOSED) - . += "The casing is closed." + . += span_notice("The casing is closed.") if(cell_connectors) if(cell) - . += "You see [cell] inside the casing." + . += span_notice("You see [cell] inside the casing.") else - . += "The casing has no power cell for backup power." + . += span_notice("The casing has no power cell for backup power.") else . += span_danger("This casing doesn't support power cells for backup power.") diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm index 289b2d46fab38..1cff0f5f1a1bd 100644 --- a/code/modules/power/monitor.dm +++ b/code/modules/power/monitor.dm @@ -19,11 +19,13 @@ /obj/machinery/computer/monitor/Initialize(mapload) . = ..() + //Add to the late process queue to record the accurate power usage data + SSmachines.processing_late += src search() history["supply"] = list() history["demand"] = list() -/obj/machinery/computer/monitor/process() +/obj/machinery/computer/monitor/process_late() if(!get_powernet()) update_use_power(IDLE_POWER_USE) search() @@ -36,7 +38,7 @@ attached_wire_ref = WEAKREF(locate(/obj/structure/cable) in T) if(attached_wire_ref) return - var/area/A = get_area(src) //if the computer isn't directly connected to a wire, attempt to find the APC powering it to pull it's powernet instead + var/area/A = get_area(src) //if the computer isn't directly connected to a wire, attempt to find the APC powering it to pull its powernet instead if(!A) return var/obj/machinery/power/apc/local_apc = A.apc diff --git a/code/modules/power/pipecleaners.dm b/code/modules/power/pipecleaners.dm index 4514c89b862e2..4c91301978940 100644 --- a/code/modules/power/pipecleaners.dm +++ b/code/modules/power/pipecleaners.dm @@ -403,7 +403,7 @@ By design, d1 is the smallest direction and d2 is the highest // exisiting pipe_cleaner doesn't point at our position or we have a supplied direction, so see if it's a stub else if(C.d1 == 0) - // if so, make it a full pipe_cleaner pointing from it's old direction to our dirn + // if so, make it a full pipe_cleaner pointing from its old direction to our dirn var/nd1 = C.d2 // these will be the new directions var/nd2 = dirn diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index e4c1617c0f0b8..c5353ce62d537 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -1,4 +1,4 @@ -//Baseline portable generator. Has all the default handling. Not intended to be used on it's own (since it generates unlimited power). +//Baseline portable generator. Has all the default handling. Not intended to be used on its own (since it generates unlimited power). /obj/machinery/power/port_gen name = "portable generator" desc = "A portable generator for emergency backup power." diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 5cfeab92f06ca..c31870f2ad080 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -53,7 +53,7 @@ . += span_notice("It's operating on the [LOWER_TEXT(GLOB.cable_layer_to_name["[cable_layer]"])].") else . += span_warning("It's disconnected from the [LOWER_TEXT(GLOB.cable_layer_to_name["[cable_layer]"])].") - . += span_notice("It's power line can be changed with a [EXAMINE_HINT("multitool")].") + . += span_notice("Its power line can be changed with a [EXAMINE_HINT("multitool")].") /obj/machinery/power/multitool_act(mob/living/user, obj/item/tool) if(can_change_cable_layer) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 5cab751e6e775..414baedec347e 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -60,6 +60,8 @@ /obj/machinery/power/emitter/Initialize(mapload) . = ..() + //Add to the early process queue to prioritize power draw + SSmachines.processing_early += src RefreshParts() set_wires(new /datum/wires/emitter(src)) if(welded) @@ -187,7 +189,7 @@ togglelock(user) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN -/obj/machinery/power/emitter/process(seconds_per_tick) +/obj/machinery/power/emitter/process_early(seconds_per_tick) var/power_usage = active_power_usage * seconds_per_tick if(machine_stat & (BROKEN)) return diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index eae49834499df..73801e0d7d01a 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -306,7 +306,7 @@ /** * Selects cinematic to play as part of the cult end depending on the outcome then ends the round afterward - * called either when narsie eats everyone, or when [/proc/begin_the_end()] reaches it's conclusion + * called either when narsie eats everyone, or when [/proc/begin_the_end()] reaches its conclusion */ /proc/cult_ending_helper(ending_type = CULT_VICTORY_NUKE) switch(ending_type) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 1c35e687f6ac1..e73b2cbf54b27 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -69,7 +69,17 @@ var/max_charge = 0 var/new_charge = 0 for(var/datum/stock_part/capacitor/capacitor in component_parts) - power_coefficient += capacitor.tier + // SKYRAT EDIT CHANGE START - Original: power_coefficient += capacitor.tier + switch(capacitor.tier) + if(1) + power_coefficient = 1 + if(2) + power_coefficient = 2 + if(3) + power_coefficient = 4 + else + power_coefficient = 8 + // SKYRAT EDIT CHANGE END input_level_max = initial(input_level_max) * power_coefficient output_level_max = initial(output_level_max) * power_coefficient for(var/obj/item/stock_parts/power_store/power_cell in component_parts) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 63e82df9700c5..eb359c78a9041 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -105,7 +105,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) var/external_power_immediate = 0 /// External damage that are added to the sm on next [/obj/machinery/power/supermatter_crystal/process_atmos] call. - /// SM will not take damage if it's health is lower than emergency point. + /// SM will not take damage if its health is lower than emergency point. var/external_damage_immediate = 0 ///The cutoff for a bolt jumping, grows with heat, lowers with higher mol count, diff --git a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm index b1c66da35dca5..76249306571b9 100644 --- a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm +++ b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm @@ -85,12 +85,12 @@ GLOBAL_LIST_INIT(sm_delam_list, list( SEND_SIGNAL(sm, COMSIG_SUPERMATTER_DELAM_ALARM) return TRUE -/// Called when a supermatter switches it's strategy from another one to us. +/// Called when a supermatter switches its strategy from another one to us. /// [/obj/machinery/power/supermatter_crystal/proc/set_delam] /datum/sm_delam/proc/on_select(obj/machinery/power/supermatter_crystal/sm) return -/// Called when a supermatter switches it's strategy from us to something else. +/// Called when a supermatter switches its strategy from us to something else. /// [/obj/machinery/power/supermatter_crystal/proc/set_delam] /datum/sm_delam/proc/on_deselect(obj/machinery/power/supermatter_crystal/sm) return diff --git a/code/modules/power/turbine/turbine.dm b/code/modules/power/turbine/turbine.dm index 590b135ad9a31..dbf5d1848dd48 100644 --- a/code/modules/power/turbine/turbine.dm +++ b/code/modules/power/turbine/turbine.dm @@ -292,7 +292,7 @@ input_turf = null /** - * transfer's gases from it's input turf to it's internal gas mix + * transfers gases from its input turf to its internal gas mix * Returns temperature of the gas mix absorbed only if some work was done */ /obj/machinery/power/turbine/inlet_compressor/proc/compress_gases() diff --git a/code/modules/procedural_mapping/README.md b/code/modules/procedural_mapping/README.md index 6434b534bff10..5123f51ef18f8 100644 --- a/code/modules/procedural_mapping/README.md +++ b/code/modules/procedural_mapping/README.md @@ -63,7 +63,7 @@ Existing Calls: `initialiseModules(),generate(),generateOneTurf()` ### mapGeneratorModule -Desc: a mapGeneratorModule has spawnableAtoms and spawnableTurfs lists which it will generate on turfs in it's mother's map based on cluster variables. +Desc: a mapGeneratorModule has spawnableAtoms and spawnableTurfs lists which it will generate on turfs in its mother's map based on cluster variables. ### sync(var/datum/map_generator/mum) @@ -77,7 +77,7 @@ Existing Calls: `mapGenerator/syncModules()` Example: `generate()` -Desc: Calls place(T) on all turfs in it's mother's map +Desc: Calls place(T) on all turfs in its mother's map Existing Calls: `mapGenerator/generate()` @@ -104,9 +104,9 @@ Existing Calls: `place()` Simple Workflow: 1. Define a/some mapGeneratorModule(s) to your liking, choosing atoms and turfs to spawn - + * I chose to split Turfs and Atoms off into separate modules, but this is NOT required. -* A mapGeneratorModule may have turfs AND atoms, so long as each is in it's appropriate list +* A mapGeneratorModule may have turfs AND atoms, so long as each is in its appropriate list 2. Define a mapGenerator type who's modules list contains the typepath(s) of all the module(s) you wish to use @@ -149,15 +149,15 @@ Variable Breakdown (For Mappers): ### mapGeneratorModule * mother - INTERNAL, do not touch - + * spawnableAtoms - A list of typepaths and their probability to spawn, eg: `spawnableAtoms = list(/obj/structure/flora/tree/pine = 30)` - + * spawnableTurfs - A list of typepaths and their probability to spawn, eg: `spawnableTurfs = list(/turf/unsimulated/floor/grass = 100)` - + * clusterMax - The max range to check for something being "too close" for this atom/turf to spawn, the true value is random between clusterMin and clusterMax - + * clusterMin - The min range to check for something being "too close" for this atom/turf to spawn, the true value is random between clusterMin and clusterMax - + * clusterCheckFlags - A Bitfield that controls how the cluster checks work, All based on clusterMin and clusterMax guides * allowAtomsOnSpace - A Boolean for if we allow atoms to spawn on space tiles diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm index 009c52b227ee3..23b2032b45daa 100644 --- a/code/modules/projectiles/ammunition/_firing.dm +++ b/code/modules/projectiles/ammunition/_firing.dm @@ -82,9 +82,7 @@ var/direct_target if(target && curloc.Adjacent(targloc, target=targloc, mover=src)) //if the target is right on our location or adjacent (including diagonally if reachable) we'll skip the travelling code in the proj's fire() direct_target = target - if(!direct_target) - var/modifiers = params2list(params) - loaded_projectile.preparePixelProjectile(target, fired_from, modifiers, spread) + loaded_projectile.preparePixelProjectile(target, fired_from, params2list(params), spread) var/obj/projectile/loaded_projectile_cache = loaded_projectile loaded_projectile = null loaded_projectile_cache.fire(null, direct_target) diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index c3816608800e4..2b445dba93676 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -160,7 +160,13 @@ /obj/item/ammo_casing/shotgun/dart/attackby() return +/obj/item/ammo_casing/shotgun/dart/large + name = "XL shotgun dart" + desc = "A dart for use in shotguns. Can be injected with up to 25 units of any chemical." + reagent_amount = 25 + /obj/item/ammo_casing/shotgun/dart/bioterror + name = "bioterror dart" desc = "An improved shotgun dart filled with deadly toxins. Can be injected with up to 30 units of any chemical." reagent_amount = 30 diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm index dbf071f6aee6c..6d90c54fc6927 100644 --- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm @@ -14,25 +14,30 @@ /obj/item/ammo_box/magazine/m12g/stun name = "shotgun magazine (12g taser slugs)" + icon_state = "m12gs" base_icon_state = "m12gs" ammo_type = /obj/item/ammo_casing/shotgun/stunslug /obj/item/ammo_box/magazine/m12g/slug name = "shotgun magazine (12g slugs)" + icon_state = "m12gsl" base_icon_state = "m12gsl" ammo_type = /obj/item/ammo_casing/shotgun /obj/item/ammo_box/magazine/m12g/dragon name = "shotgun magazine (12g dragon's breath)" + icon_state = "m12gf" base_icon_state = "m12gf" ammo_type = /obj/item/ammo_casing/shotgun/dragonsbreath /obj/item/ammo_box/magazine/m12g/bioterror name = "shotgun magazine (12g bioterror)" + icon_state = "m12gt" base_icon_state = "m12gt" ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror /obj/item/ammo_box/magazine/m12g/meteor name = "shotgun magazine (12g meteor slugs)" + icon_state = "m12gbc" base_icon_state = "m12gbc" ammo_type = /obj/item/ammo_casing/shotgun/meteorslug diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index c0a64007c131d..cd3d0cc04ed86 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -127,6 +127,21 @@ suppressed = null update_appearance() +/obj/item/gun/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + . = ..() + if(isliving(hit_atom)) + var/mob/living/thrower = throwingdatum?.get_thrower() + toss_gun_hard(thrower, hit_atom) + +/obj/item/gun/proc/toss_gun_hard(mob/living/thrower, mob/living/target) //throw a gun at them. They don't expect it. + if(isnull(thrower)) + return FALSE + if(!HAS_TRAIT(thrower, TRAIT_TOSS_GUN_HARD)) + return FALSE + target.Knockdown(0.5 SECONDS) + target.apply_damage(damage = max(w_class * 5 - throwforce, 10), damagetype = BRUTE, def_zone = thrower.zone_selected, wound_bonus = CANT_WOUND, attacking_item = src) + return TRUE + /obj/item/gun/examine(mob/user) . = ..() if(!pinless) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 25fbdd1f6269c..e4063d4520037 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -742,6 +742,24 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( chamber_round() update_appearance() +/obj/item/gun/ballistic/toss_gun_hard(mob/living/carbon/thrower, mob/living/target) + . = ..() + if(!.) + return + switch(bolt_type) + if(BOLT_TYPE_NO_BOLT) //emptying the revolver cylinder + attack_self() + return + if(BOLT_TYPE_OPEN) //emptying the chamber of an automatic weapon, because rack() doesn't do this to it + handle_chamber(chamber_next_round = FALSE) + if(!internal_magazine && magazine) //if a magazine is attached to the weapon, we remove it and throw it aside + magazine.forceMove(drop_location()) + magazine.throw_at(get_edge_target_turf(src, pick(GLOB.alldirs)), 1, 1) + magazine = null + update_icon() //updating the sprite of weapons without a magazine + if(!isnull(chambered)) //if there is a cartridge in the chamber, we remove it + rack() + /obj/item/suppressor name = "suppressor" desc = "A syndicate small-arms suppressor for maximum espionage." diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 8604e21b32503..f5f27274b07f0 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -273,13 +273,14 @@ obj_flags = UNIQUE_RENAME can_be_sawn_off = FALSE trigger_guard = TRIGGER_GUARD_ALLOW_ALL + pb_knockback = 3 SET_BASE_PIXEL(-8, 0) /obj/item/gun/ballistic/rifle/boltaction/pipegun/add_bayonet_point() AddComponent(/datum/component/bayonet_attachable, offset_x = 35, offset_y = 10) -/obj/item/gun/ballistic/rifle/boltaction/pipegun/handle_chamber() +/obj/item/gun/ballistic/rifle/boltaction/pipegun/handle_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) . = ..() do_sparks(1, TRUE, src) @@ -303,13 +304,16 @@ accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol projectile_damage_multiplier = 0.50 spread = 15 //kinda inaccurate + burst_size = 3 //but it empties the entire magazine when it fires + fire_delay = 0.3 // and by empties, I mean it does it all at once slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_MEDIUM + semi_auto = TRUE SET_BASE_PIXEL(0, 0) -/obj/item/gun/ballistic/rifle/boltaction/pipegun/pipepistol/add_bayonet_point() +/obj/item/gun/ballistic/rifle/boltaction/pipegun/pistol/add_bayonet_point() return /obj/item/gun/ballistic/rifle/boltaction/pipegun/prime @@ -330,6 +334,7 @@ inhand_icon_state = "regal_pipepistol" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol/prime projectile_damage_multiplier = 1 + burst_size = 6 // WHOLE CLIP spread = 0 /// MAGICAL BOLT ACTIONS /// diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 7f8f6587bf03d..5fceedfb39548 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -140,12 +140,15 @@ /obj/item/gun/ballistic/shotgun/bulldog name = "\improper Bulldog Shotgun" - desc = "A 2-round burst fire, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines. Can have a secondary magazine attached to quickly swap between ammo types, or just to keep shooting." + desc = "A 2-round burst fire, mag-fed shotgun for combat in narrow corridors, \ + nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines. \ + Can have a secondary magazine attached to quickly swap between ammo types, or just to keep shooting." icon_state = "bulldog" - inhand_icon_state = "bulldog" - worn_icon_state = "cshotgun" lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' + inhand_icon_state = "bulldog" + worn_icon = 'icons/mob/clothing/back.dmi' + worn_icon_state = "bulldog" inhand_x_dimension = 32 inhand_y_dimension = 32 projectile_damage_multiplier = 1.2 @@ -166,9 +169,9 @@ internal_magazine = FALSE tac_reloads = TRUE burst_fire_selection = TRUE - ///the type of secondary magazine for the bulldog + /// The type of secondary magazine for the bulldog var/secondary_magazine_type - ///the secondary magazine + /// The secondary magazine var/obj/item/ammo_box/magazine/secondary_magazine /obj/item/gun/ballistic/shotgun/bulldog/Initialize(mapload) @@ -199,10 +202,8 @@ . += "[icon_state]_secondary_mag_[initial(secondary_magazine.icon_state)]" if(!secondary_magazine.ammo_count()) . += "[icon_state]_secondary_mag_empty" - else - . += "[icon_state]_no_secondary_mag" -/obj/item/gun/ballistic/shotgun/bulldog/handle_chamber() +/obj/item/gun/ballistic/shotgun/bulldog/handle_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) if(!secondary_magazine) return ..() var/secondary_shells_left = LAZYLEN(secondary_magazine.stored_ammo) diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 237d7cbbb1005..cb90438f56b4f 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -47,7 +47,7 @@ pb_knockback = 0 gun_flags = TOY_FIREARM_OVERLAY | NOT_A_REAL_GUN -/obj/item/gun/ballistic/shotgun/toy/handle_chamber() +/obj/item/gun/ballistic/shotgun/toy/handle_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) . = ..() if(chambered && !chambered.loaded_projectile) qdel(chambered) diff --git a/code/modules/projectiles/guns/bolt_types_explained.md b/code/modules/projectiles/guns/bolt_types_explained.md index 63f6d6d4364f6..e1f638dceabda 100644 --- a/code/modules/projectiles/guns/bolt_types_explained.md +++ b/code/modules/projectiles/guns/bolt_types_explained.md @@ -1,7 +1,7 @@ # Balistic gun icon states explained -For a unknown period of time, `/obj/item/gun/ballistic` used the wrong icon state for it's `bolt_type` and so, if you tried to copy how it worked to make your own gun, you'd get a broken sprite. This documentation is intended to explain in detail what some of the variables and functions do, and how to make your own gun subtypes that work properly. +For a unknown period of time, `/obj/item/gun/ballistic` used the wrong icon state for its `bolt_type` and so, if you tried to copy how it worked to make your own gun, you'd get a broken sprite. This documentation is intended to explain in detail what some of the variables and functions do, and how to make your own gun subtypes that work properly. ## Bolt Types The easiest thing to screw up. For a long time, `/obj/item/gun/ballistic` had `bolt_type` set to `BOLT_TYPE_STANDARD` when the sprite was configured to use `BOLT_TYPE_LOCKING` sprites. Nobody noticed, because it wasn't obtainable through normal gameplay, and the Mosin which was broken by it only has like 3 pixels missing. diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index ea84c84ee83cd..d7f5bad44c468 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -86,6 +86,9 @@ else to_chat(user, span_notice("There are no modifications currently installed.")) +/obj/item/gun/energy/recharge/kinetic_accelerator/try_fire_gun(atom/target, mob/living/user, params) + return fire_gun(target, user, user.Adjacent(target) && !isturf(target), params) + /obj/item/gun/energy/recharge/kinetic_accelerator/attack_hand_secondary(mob/user, list/modifiers) . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) @@ -194,6 +197,7 @@ var/pressure_decrease = 0.25 var/obj/item/gun/energy/recharge/kinetic_accelerator/kinetic_gun + /obj/projectile/kinetic/Destroy() kinetic_gun = null return ..() diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 9b5aeb4ae0e77..b3b3935a86c7d 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -169,6 +169,9 @@ else . = ..(amount=1) +/obj/item/gun/energy/plasmacutter/try_fire_gun(atom/target, mob/living/user, params) + return fire_gun(target, user, user.Adjacent(target) && !isturf(target), params) + #undef PLASMA_CUTTER_CHARGE_WELD /obj/item/gun/energy/plasmacutter/adv diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index a7352645d8b93..b9622e47c8b00 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -583,7 +583,7 @@ */ /obj/projectile/proc/select_target(turf/our_turf, atom/target, atom/bumped) // 1. special bumped border object check - if((bumped?.flags_1 & ON_BORDER_1) && can_hit_target(bumped, original == bumped, FALSE, TRUE)) + if((bumped?.flags_1 & ON_BORDER_1) && can_hit_target(bumped, original == bumped, TRUE, TRUE)) return bumped // 2. original if(can_hit_target(original, TRUE, FALSE, original == bumped)) @@ -807,7 +807,7 @@ if(!log_override && firer && original && !do_not_log) log_combat(firer, original, "fired at", src, "from [get_area_name(src, TRUE)]") //note: mecha projectile logging is handled in /obj/item/mecha_parts/mecha_equipment/weapon/action(). try to keep these messages roughly the sameish just for consistency's sake. - if(direct_target && (get_dist(direct_target, get_turf(fired_from)) <= 1)) // point blank shots // SKYRAT EDIT - ORIGINAL: if(direct_target && (get_dist(direct_target, get_turf(src)) <= 1)) + if(direct_target && (get_dist(direct_target, get_turf(src)) <= 1)) // point blank shots process_hit(get_turf(direct_target), direct_target) if(QDELETED(src)) return diff --git a/code/modules/projectiles/projectile/bullets/junk.dm b/code/modules/projectiles/projectile/bullets/junk.dm index 285c3ea281509..1c6ea89962e14 100644 --- a/code/modules/projectiles/projectile/bullets/junk.dm +++ b/code/modules/projectiles/projectile/bullets/junk.dm @@ -5,9 +5,28 @@ icon_state = "trashball" damage = 30 embed_type = /datum/embed_data/bullet_junk - var/bane_mob_biotypes = MOB_ROBOTIC - var/bane_multiplier = 1.5 - var/bane_added_damage = 0 + /// What biotype does our junk projectile especially harm? + var/extra_damage_mob_biotypes = MOB_ROBOTIC + /// How much do we multiply our total base damage? + var/extra_damage_multiplier = 1.5 + /// How much extra damage do we do on top of this total damage? Separate from the multiplier and unaffected by it. + var/extra_damage_added_damage = 0 + /// What damage type is our extra damage? + var/extra_damage_type = BRUTE + +/obj/projectile/bullet/junk/on_hit(atom/target, blocked = 0, pierce_hit) + . = ..() + + if(!isliving(target)) + return + var/mob/living/living_target = target + + var/is_correct_biotype = living_target.mob_biotypes & extra_damage_mob_biotypes + if(extra_damage_mob_biotypes && is_correct_biotype) + var/multiplied_damage = extra_damage_multiplier ? ((damage * extra_damage_multiplier) - damage) : 0 + var/finalized_damage = multiplied_damage + extra_damage_added_damage + if(finalized_damage) + living_target.apply_damage(finalized_damage, damagetype = extra_damage_type, def_zone = BODY_ZONE_CHEST, wound_bonus = wound_bonus) /datum/embed_data/bullet_junk embed_chance=15 @@ -19,10 +38,6 @@ jostle_pain_mult=6 rip_time=10 -/obj/projectile/bullet/junk/Initialize(mapload) - . = ..() - AddElement(/datum/element/bane, mob_biotypes = bane_mob_biotypes, target_type = /mob/living, damage_multiplier = bane_multiplier, added_damage = bane_added_damage, requires_combat_mode = FALSE) - /obj/projectile/bullet/incendiary/fire/junk name = "burning oil" damage = 30 @@ -40,7 +55,8 @@ damage = 15 embed_type = null shrapnel_type = null - bane_multiplier = 3 + extra_damage_added_damage = 30 + extra_damage_type = BURN /obj/projectile/bullet/junk/shock/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() @@ -51,9 +67,9 @@ /obj/projectile/bullet/junk/hunter name = "junk hunter bullet" icon_state = "gauss" - bane_mob_biotypes = MOB_ROBOTIC | MOB_BEAST | MOB_SPECIAL - bane_multiplier = 0 - bane_added_damage = 50 + extra_damage_mob_biotypes = MOB_ROBOTIC | MOB_BEAST | MOB_SPECIAL + extra_damage_multiplier = 0 + extra_damage_added_damage = 50 /obj/projectile/bullet/junk/ripper name = "junk ripper bullet" diff --git a/code/modules/projectiles/projectile/energy/photon.dm b/code/modules/projectiles/projectile/energy/photon.dm index 7caac3e062e01..62b5770fb441e 100644 --- a/code/modules/projectiles/projectile/energy/photon.dm +++ b/code/modules/projectiles/projectile/energy/photon.dm @@ -37,7 +37,7 @@ do_sparks(rand(1, 4), FALSE, src) /** - * When traveling to a new turf, throws a probability to generate a hotspot across it's path. + * When traveling to a new turf, throws a probability to generate a hotspot across its path. */ /obj/projectile/energy/photon/proc/scorch_earth(turf/open/floor/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) SIGNAL_HANDLER diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index 40a5fc723cb81..5543b11d115b9 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -22,7 +22,7 @@ C.adjust_confusion_up_to(15 SECONDS, 30 SECONDS) // SKYRAT EDIT ADDITION - Electrode jitteriness C.add_mood_event("tased", /datum/mood_event/tased) SEND_SIGNAL(C, COMSIG_LIVING_MINOR_SHOCK) - if(C.dna && C.dna.check_mutation(/datum/mutation/human/hulk)) + if(HAS_TRAIT(C, TRAIT_HULK)) C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk") else if(!C.check_stun_immunity(CANKNOCKDOWN)) addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 20), 0.5 SECONDS) diff --git a/code/modules/reagents/chemistry/chem_wiki_render.dm b/code/modules/reagents/chemistry/chem_wiki_render.dm index 99116adc84b08..2bb6bd7175bdc 100644 --- a/code/modules/reagents/chemistry/chem_wiki_render.dm +++ b/code/modules/reagents/chemistry/chem_wiki_render.dm @@ -9,7 +9,7 @@ ADMIN_VERB(generate_wikichem_list, R_DEBUG, "Parse Wikichems", "Parse and genera |- "} - var/input_text = tgui_input_text(user, "Input a name of a reagent, or a series of reagents split with a comma (no spaces) to get it's wiki table entry", "Recipe") //95% of the time, the reagent type is a lowercase, no spaces / underscored version of the name + var/input_text = tgui_input_text(user, "Input a name of a reagent, or a series of reagents split with a comma (no spaces) to get its wiki table entry", "Recipe") //95% of the time, the reagent type is a lowercase, no spaces / underscored version of the name if(!input_text) to_chat(user, "Input was blank!") return diff --git a/code/modules/reagents/chemistry/equilibrium.dm b/code/modules/reagents/chemistry/equilibrium.dm index 4ab88b3caa674..435f4159ccbed 100644 --- a/code/modules/reagents/chemistry/equilibrium.dm +++ b/code/modules/reagents/chemistry/equilibrium.dm @@ -87,10 +87,10 @@ PRIVATE_PROC(TRUE) if(QDELETED(holder)) - stack_trace("an equilibrium is missing it's holder.") + stack_trace("an equilibrium is missing its holder.") return FALSE if(QDELETED(reaction)) - stack_trace("an equilibrium is missing it's reaction.") + stack_trace("an equilibrium is missing its reaction.") return FALSE if(!length(reaction.required_reagents)) stack_trace("an equilibrium is missing required reagents.") diff --git a/code/modules/reagents/chemistry/fermi_readme.md b/code/modules/reagents/chemistry/fermi_readme.md index ebb930e486fca..0fc2ed76da1a9 100644 --- a/code/modules/reagents/chemistry/fermi_readme.md +++ b/code/modules/reagents/chemistry/fermi_readme.md @@ -82,11 +82,11 @@ Reaction rates are determined by the current temperature of the reagents holder. The amount added is based off the recipies’ required_temp, optimal_temp, overheat_temp and temp_exponent_factor. See below: ![image](https://user-images.githubusercontent.com/33956696/104081088-5e571e00-5224-11eb-8834-87aa36b3e45f.png) -the y axis is the normalised value of growth, which is then muliplied by the rate_up_lim. You can see that temperatures below the required_temp produce no result (the reaction doesn't start, or if it is reacting, the reaction will stop). Between the required and optimal is a region that is defined by the temp_exponent_factor, so in this case the value is ^2, so we see exponential growth. Between the optimal_temp and the overheat_temp is the optimal phase - where the rate factor is 1. After that it continues to react, but will call overheated() per timestep. Presently the default for overheated() is to reduce the yield of the product (i.e. it's faster but you get less). The rate_up_lim is the maximum rate the reaction can go at optimal temperatures, so in this case a rate factor of 1 i.e. a temperature between 500+ will produce 10u, or a temperature of 400 will roughly produce 4u per step (independant of product ratio produced, if you put 10, it will only create 10 maximum regardless of how much product is defined in the results list). +the y axis is the normalised value of growth, which is then muliplied by the rate_up_lim. You can see that temperatures below the required_temp produce no result (the reaction doesn't start, or if it is reacting, the reaction will stop). Between the required and optimal is a region that is defined by the temp_exponent_factor, so in this case the value is ^2, so we see exponential growth. Between the optimal_temp and the overheat_temp is the optimal phase - where the rate factor is 1. After that it continues to react, but will call overheated() per timestep. Presently the default for overheated() is to reduce the yield of the product (i.e. it's faster but you get less). The rate_up_lim is the maximum rate the reaction can go at optimal temperatures, so in this case a rate factor of 1 i.e. a temperature between 500+ will produce 10u, or a temperature of 400 will roughly produce 4u per step (independant of product ratio produced, if you put 10, it will only create 10 maximum regardless of how much product is defined in the results list). ### How pH ranges are set and what pH mechanics do -Optimal pH ranges are set on a per recipe basis - though at the moment all recipes use a default recipe, so they all have the same window (except for the buffers). Hopefully either as a community effort/or in future PRs we can create unique profiles for the present reactions in the game. +Optimal pH ranges are set on a per recipe basis - though at the moment all recipes use a default recipe, so they all have the same window (except for the buffers). Hopefully either as a community effort/or in future PRs we can create unique profiles for the present reactions in the game. As for how you define the reaction variables for a reaction, there are a few new variables for the chemical_recipe datum. I'll go over specifically how pH works for the default reaction. ```dm @@ -106,7 +106,7 @@ The y axis is the purity of the product made for that time step. This is recalcu If you're designing a reaction you can define an optimal range between the OptimalpHMin to OptimalpHMax (5 - 7 in this case) and a deterministic region set by the ReactpHLim (5 - 4, 9 + 4 aka between 1 to 5 and 9 to 13). This deterministic region is exponential, so if you set it to 2 then it’ll exponentially grow, but since our CurveSharpph = 1, it’s linear (basically normalise the range in the determinsitic region, then put that to the power of CurveSharppH). Finally values outside of these ranges will prevent reactions from starting, but if a reaction drifts out during a reaction, the purity of volume created for each step will be 0 (It does not stop ongoing reactions). It’s entirely possible to design a reaction without a deterministic or optimal phase if you wanted. -Though to note; if your purity dips below the PurityMin of a reaction it’ll call the overly_impure() function – which by default reduces the purity of all reagents in the beaker. Additionally, if the purity at the end of a reaction is below the PurityMin, it’ll convert into the failed chem defined by the product’s failed_chem defined in it's reagent datum. For default the PurityMin is 0.15, and is pretty difficult to fail. This is all customisable however, if you wanted to use these hooks to design a even more unique reaction, just don’t call the parent proc when using methods. +Though to note; if your purity dips below the PurityMin of a reaction it’ll call the overly_impure() function – which by default reduces the purity of all reagents in the beaker. Additionally, if the purity at the end of a reaction is below the PurityMin, it’ll convert into the failed chem defined by the product’s failed_chem defined in its reagent datum. For default the PurityMin is 0.15, and is pretty difficult to fail. This is all customisable however, if you wanted to use these hooks to design a even more unique reaction, just don’t call the parent proc when using methods. ### Conditional changes in reagents datum per timestep @@ -118,7 +118,7 @@ Though to note; if your purity dips below the PurityMin of a reaction it’ll ca var/H_ion_release = 0.01 // pH change per 1u reaction ``` -The thermic_constant is how much the temperature changes per u created, so for 10u created the temperature will increase by 10K. The H_ion_release is how much the pH changes per u created, for 10u created the pH will increase by 0.1. During a reaction this is the only factor in pH changes - presently the addition/removal of reagents tie to the reaction won't affect this, though other reactions ongoing in the beaker will also affect pH, as well as the removal/addition of reagents outside of the reaction. +The thermic_constant is how much the temperature changes per u created, so for 10u created the temperature will increase by 10K. The H_ion_release is how much the pH changes per u created, for 10u created the pH will increase by 0.1. During a reaction this is the only factor in pH changes - presently the addition/removal of reagents tie to the reaction won't affect this, though other reactions ongoing in the beaker will also affect pH, as well as the removal/addition of reagents outside of the reaction. ### Reaction flags @@ -127,11 +127,11 @@ Reaction_flags can be used to set these defines: ```dm #define REACTION_CLEAR_IMPURE //Convert into impure/pure on reaction completion in the datum/reagents holder instead of on consumption #define REACTION_CLEAR_INVERSE //Convert into inverse on reaction completion when purity is low enough in the datum/reagents holder instead of on consumption -#define REACTION_CLEAR_RETAIN //Clear converted chems retain their purities/inverted purities. Requires 1 or both of the above. This is so that it can split again after splitting from a reaction (i.e. if your impure_chem or inverse_chem has it's own impure_chem/inverse_chem and you want it to split again on consumption). +#define REACTION_CLEAR_RETAIN //Clear converted chems retain their purities/inverted purities. Requires 1 or both of the above. This is so that it can split again after splitting from a reaction (i.e. if your impure_chem or inverse_chem has its own impure_chem/inverse_chem and you want it to split again on consumption). #define REACTION_INSTANT //Used to create instant reactions /datum/chemical_reaction - var/reaction_flags + var/reaction_flags ``` For REACTION_CLEAR – this causes the purity mechanics to resolve in the beaker at the end of the reaction, instead of when added to a mob. @@ -145,7 +145,7 @@ Eg: ... var/required_temp = 300 var/optimal_temp = 200 - var/overheat_temp = 50 + var/overheat_temp = 50 ``` # Reagents @@ -156,45 +156,45 @@ The new vars that are introduced are below: var/ph = 7 ///Purity of the reagent var/purity = 1 - ///the purity of the reagent on creation (i.e. when it's added to a mob and it's purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that) - var/creation_purity = 1 + ///the purity of the reagent on creation (i.e. when it's added to a mob and its purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that) + var/creation_purity = 1 //impure chem values (see fermi_readme.dm for more details): var/impure_chem = /datum/reagent/impurity // What chemical path is made when metabolised as a function of purity var/inverse_chem_val = 0.2 // If the impurity is below 0.5, replace ALL of the chem with inverse_chem upon metabolising var/inverse_chem = /datum/reagent/impurity/toxic // What chem is metabolised when purity is below inverse_chem_val var/failed_chem = /datum/reagent/consumable/failed_reaction //what chem is made at the end of a reaction IF the purity is below the recipies purity_min - var/chemical_flags + var/chemical_flags ``` - `pH` is the innate pH of the reagent and is used to calculate the pH of a reagents datum on addition/removal. This does not change and is a reference value. The reagents datum pH changes. - `purity` is the INTERNAL value for splitting. This is set to 1 after splitting so that it doesn't infinite split - `creation_purity` is the purity of the reagent on creation. This won't change. If you want to write code that checks the purity in any of the methods, use this. -- `impure_chem` is the datum type that is created provided that it's `creation_purity` is above the `inverse_chem_val`. When the reagent is consumed it will split into this OR if the associated `datum/chemical_recipe` has a REACTION_CLEAR_IMPURE flag it will split at the end of the reaction in the `datum/reagents` holder +- `impure_chem` is the datum type that is created provided that its `creation_purity` is above the `inverse_chem_val`. When the reagent is consumed it will split into this OR if the associated `datum/chemical_recipe` has a REACTION_CLEAR_IMPURE flag it will split at the end of the reaction in the `datum/reagents` holder - `inverse_chem_val` if a reagent's purity is below this value it will 100% convert into `inverse_chem`. If above it will split into `impure_chem`. See the note on purity effects above -- `inverse_chem` is the datum type that is created provided that it's `creation_purity` is below the `inverse_chem_val`. When the reagent is consumed it will 100% convert into this OR if the associated `datum/chemical_recipe` has a REACTION_CLEAR_INVERSE flag it will 100% convert at the end of the reaction in the `datum/reagents` holder -- `failed_chem` is the chem that the product is 100% converted into if the purity is below the associated `datum/chemical_recipies`' `PurityMin` AT THE END OF A REACTION. +- `inverse_chem` is the datum type that is created provided that its `creation_purity` is below the `inverse_chem_val`. When the reagent is consumed it will 100% convert into this OR if the associated `datum/chemical_recipe` has a REACTION_CLEAR_INVERSE flag it will 100% convert at the end of the reaction in the `datum/reagents` holder +- `failed_chem` is the chem that the product is 100% converted into if the purity is below the associated `datum/chemical_recipies`' `PurityMin` AT THE END OF A REACTION. When writing any reagent code ALWAYS use creation_purity. Purity is kept for internal mechanics only and won’t reflect the purity on creation. See above for purity mechanics, but this is where you set the reagents that are created. If you’re making an impure reagent I recommend looking at impure_reagents.dm to see how they’re set up and consider using the `datum/reagents/impure` as a parent. The flags you can set for `var/chemical_flags` are: -```dm +```dm #define REAGENT_DEAD_PROCESS (1<<0) //allows on_mob_dead() if present in a dead body #define REAGENT_DONOTSPLIT (1<<1) //Do not split the chem at all during processing - ignores all purity effects #define REAGENT_INVISIBLE (1<<2) //Doesn't appear on handheld health analyzers. #define REAGENT_SNEAKYNAME (1<<3) //When inverted, the inverted chem uses the name of the original chem -#define REAGENT_SPLITRETAINVOL (1<<4) //Retains initial volume of chem when splitting for purity effects +#define REAGENT_SPLITRETAINVOL (1<<4) //Retains initial volume of chem when splitting for purity effects /datum/reagent - var/chemical_flags + var/chemical_flags ``` While you might think reagent_flags is a more sensible name - it is already used for beakers. Hopefully this doesn't trip anyone up. # Relivant vars from the holder.dm / reagents datum -There are a few variables that are useful to know about +There are a few variables that are useful to know about ```dm /datum/reagents /// Current temp of the holder volume @@ -209,4 +209,4 @@ There are a few variables that are useful to know about - chem_temp is the temperature used in the `datum/chemical_recipe` - pH is a result of the sum of all reagents, as well as any changes from buffers and reactions. This is the pH used in `datum/chemical_recipe`. - isReacting is a bool that can be used outside to ensure that you don't touch a reagents that is reacting. -- previous_reagent_list is a list of the previous reagents (just the typepaths, not the objects) that was present on the last handle_reactions() method. This is to prevent pointless method calls. \ No newline at end of file +- previous_reagent_list is a list of the previous reagents (just the typepaths, not the objects) that was present on the last handle_reactions() method. This is to prevent pointless method calls. diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm index 46d00e765a343..11117142d70e5 100644 --- a/code/modules/reagents/chemistry/holder/holder.dm +++ b/code/modules/reagents/chemistry/holder/holder.dm @@ -249,7 +249,7 @@ cached_reagent.volume -= remove_amount //record the changes - removed_reagents += cached_reagent + removed_reagents[cached_reagent] = remove_amount total_removed_amount += remove_amount //if we reached here means we have found our specific reagent type so break @@ -257,8 +257,8 @@ break //inform others about our reagents being removed - for(var/datum/reagent/removed_reagent as anything in cached_reagents) - SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, removed_reagent, amount) + for(var/datum/reagent/removed_reagent as anything in removed_reagents) + SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, removed_reagent, removed_reagents[removed_reagent]) //update the holder & handle reactions update_total() @@ -476,6 +476,8 @@ if(preserve_data) trans_data = copy_data(reagent) if(reagent.intercept_reagents_transfer(target_holder, amount)) + update_total() + target_holder.update_total() continue transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount * multiplier, trans_data, chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. if(!transfered_amount) @@ -607,7 +609,7 @@ . = 0 //responsible for removing reagents and computing total ph & volume - //all it's code was taken out of del_reagent() initially for efficiency purposes + //all its code was taken out of del_reagent() initially for efficiency purposes while(chem_index <= num_reagents) var/datum/reagent/reagent = cached_reagents[chem_index] chem_index += 1 diff --git a/code/modules/reagents/chemistry/items.dm b/code/modules/reagents/chemistry/items.dm index ad7f0413ce561..0344971497b01 100644 --- a/code/modules/reagents/chemistry/items.dm +++ b/code/modules/reagents/chemistry/items.dm @@ -109,7 +109,7 @@ to_chat(user, span_notice("You switch the chemical analyzer to provide a detailed description of each reagent.")) scanmode = DETAILED_CHEM_OUTPUT else - to_chat(user, span_notice("You switch the chemical analyzer to not include reagent descriptions in it's report.")) + to_chat(user, span_notice("You switch the chemical analyzer to not include reagent descriptions in its report.")) scanmode = SHORTENED_CHEM_OUTPUT /obj/item/ph_meter/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index f7aadf04b8cc7..7065b10372509 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -264,8 +264,8 @@ .["amount"] = amount .["energy"] = cell.charge ? cell.charge : 0 //To prevent NaN in the UI. .["maxEnergy"] = cell.maxcharge - .["displayedEnergy"] = display_energy(cell.charge) - .["displayedMaxEnergy"] = display_energy(cell.maxcharge) + .["displayedUnits"] = cell.charge ? (cell.charge / power_cost) : 0 + .["displayedMaxUnits"] = cell.maxcharge / power_cost .["showpH"] = isnull(recording_recipe) ? show_ph : FALSE //virtual beakers have no ph to compute & display var/list/chemicals = list() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 8638bfdfecb5d..93748a3304377 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -373,32 +373,18 @@ * Transfers a single reagent between buffer & beaker * Arguments * - * * mob/user - the player who is attempting the transfer * * datum/reagents/source - the holder we are transferring from * * datum/reagents/target - the holder we are transferring to * * datum/reagent/path - the reagent typepath we are transfering - * * amount - volume to transfer -1 means custom amount + * * amount - volume to transfer * * do_transfer - transfer the reagents else destroy them */ -/obj/machinery/chem_master/proc/transfer_reagent(mob/user, datum/reagents/source, datum/reagents/target, datum/reagent/path, amount, do_transfer) +/obj/machinery/chem_master/proc/transfer_reagent(datum/reagents/source, datum/reagents/target, datum/reagent/path, amount, do_transfer) PRIVATE_PROC(TRUE) //sanity checks for transfer amount - if(isnull(amount)) + if(isnull(amount) || amount <= 0) return FALSE - amount = text2num(amount) - if(isnull(amount)) - return FALSE - if(amount == -1) - var/target_amount = tgui_input_number(user, "Enter amount to transfer", "Transfer amount") - if(!target_amount) - return FALSE - amount = text2num(target_amount) - if(isnull(amount)) - return FALSE - if(amount <= 0) - return FALSE - //sanity checks for reagent path var/datum/reagent/reagent = text2path(path) if (!reagent) @@ -433,18 +419,34 @@ if("transfer") if(is_printing) - say("buffer locked while printing!") + say("The buffer is locked while printing.") return var/reagent_ref = params["reagentRef"] var/amount = params["amount"] var/target = params["target"] + if(amount == -1) // Set custom amount + var/mob/user = ui.user //Hold a reference of the user if the UI is closed + amount = tgui_input_number(user, "Enter amount to transfer", "Transfer amount") + if(!amount || !user.can_perform_action(src)) + return FALSE + + var/should_transfer = is_transfering || (target == "buffer") // we should always transfer if target is the buffer + if(should_transfer && isnull(beaker)) // if there's no beaker, we cannot transfer + say("No reagent container is inserted.") + return FALSE + + var/reagents_from + var/reagents_to = null if(target == "buffer") - return transfer_reagent(ui.user, beaker.reagents, reagents, reagent_ref, amount, TRUE) + reagents_from = beaker.reagents + reagents_to = reagents // buffer else if(target == "beaker") - return transfer_reagent(ui.user, reagents, beaker.reagents, reagent_ref, amount, is_transfering) - return FALSE + reagents_from = reagents // buffer + if(should_transfer) + reagents_to = beaker.reagents + return transfer_reagent(reagents_from, reagents_to, reagent_ref, amount, should_transfer) if("toggleTransferMode") is_transfering = !is_transfering diff --git a/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm index 9d81188fb405e..9b0773a8316b5 100644 --- a/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm +++ b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm @@ -203,7 +203,7 @@ ui.send_update() /** - * Decodes the ui reaction var into it's original name + * Decodes the ui reaction var into its original name * Arguments * * * variable - the name of the variable as seen in the UI diff --git a/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm b/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm index 016e55012c570..9c92cc631be79 100644 --- a/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm +++ b/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm @@ -11,6 +11,7 @@ custom_premium_price = PAYCHECK_CREW * 14 interaction_flags_click = FORBID_TELEKINESIS_REACH interaction_flags_mouse_drop = FORBID_TELEKINESIS_REACH + storage_type = /datum/storage/portable_chem_mixer ///Creating an empty slot for a beaker that can be added to dispense into var/obj/item/reagent_containers/beaker @@ -21,15 +22,7 @@ /obj/item/storage/portable_chem_mixer/Initialize(mapload) . = ..() - atom_storage.max_total_storage = 200 - atom_storage.max_slots = 50 - atom_storage.set_holdable(list( - /obj/item/reagent_containers/cup/beaker, - /obj/item/reagent_containers/cup/bottle, - /obj/item/reagent_containers/cup/tube, - /obj/item/reagent_containers/cup/glass/waterbottle, - /obj/item/reagent_containers/condiment, - )) + register_context() /obj/item/storage/portable_chem_mixer/Destroy() @@ -107,18 +100,18 @@ /obj/item/storage/portable_chem_mixer/ex_act(severity, target) return severity > EXPLODE_LIGHT ? ..() : FALSE -/obj/item/storage/portable_chem_mixer/item_interaction(mob/living/user, obj/item/weapon, list/modifiers) +/obj/item/storage/portable_chem_mixer/storage_insert_on_interacted_with(datum/storage, obj/item/weapon, mob/living/user) if (!atom_storage.locked || \ (weapon.item_flags & ABSTRACT) || \ (weapon.flags_1 & HOLOGRAM_1) || \ !is_reagent_container(weapon) || \ !weapon.is_open_container() \ ) - return NONE + return TRUE //continue with regular insertion replace_beaker(user, weapon) update_appearance() - return ITEM_INTERACT_SUCCESS + return FALSE //block insertion cause we handled it ourselves /** * Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently @@ -267,7 +260,7 @@ SStgui.close_uis(src) else atom_storage.locked = STORAGE_FULLY_LOCKED - atom_storage.hide_contents(usr) + atom_storage.hide_contents(user) update_appearance() return CLICK_ACTION_SUCCESS diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index a4fa10cb88c63..3b0272240b0df 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -204,7 +204,11 @@ if(weapon.w_class + total_weight > maximum_weight) to_chat(user, span_warning("[weapon] is too big to fit into [src].")) continue - weapon.forceMove(src) + + //try to remove the right way + if(!user.transferItemToLoc(weapon, src)) + continue + total_weight += weapon.w_class items_transfered += 1 to_chat(user, span_notice("[weapon] was loaded into [src].")) @@ -212,8 +216,8 @@ return items_transfered /obj/machinery/reagentgrinder/item_interaction(mob/living/user, obj/item/tool, list/modifiers) - if(user.combat_mode || (tool.item_flags & ABSTRACT) || (tool.flags_1 & HOLOGRAM_1) || !can_interact(user) || !user.can_perform_action(src, ALLOW_SILICON_REACH)) - return NONE + if(user.combat_mode || (tool.item_flags & ABSTRACT) || (tool.flags_1 & HOLOGRAM_1)) + return ITEM_INTERACT_SKIP_TO_ATTACK //add the beaker if (is_reagent_container(tool) && tool.is_open_container()) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 576d62585f7a8..8edfb38abc397 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -24,7 +24,7 @@ var/ph = 7 ///Purity of the reagent - for use with internal reaction mechanics only. Use below (creation_purity) if you're writing purity effects into a reagent's use mechanics. var/purity = 1 - ///the purity of the reagent on creation (i.e. when it's added to a mob and it's purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that) + ///the purity of the reagent on creation (i.e. when it's added to a mob and its purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that) var/creation_purity = 1 ///The molar mass of the reagent - if you're adding a reagent that doesn't have a recipe, just add a random number between 10 - 800. Higher numbers are "harder" but it's mostly arbitary. var/mass @@ -270,7 +270,7 @@ Primarily used in reagents/reaction_agents return creation_purity / normalise_num_to /** - * Gets the inverse purity of this reagent. Mostly used when converting from a normal reagent to it's inverse one. + * Gets the inverse purity of this reagent. Mostly used when converting from a normal reagent to its inverse one. * * Arguments * * purity - Overrides the purity used for determining the inverse purity. diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index 548b8e8a658dd..f70ae995832b8 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -546,7 +546,7 @@ /* *How this medicine works: *Penthrite if you are not in crit only stabilizes your heart. -*As soon as you pass crit threshold it's special effects kick in. Penthrite forces your heart to beat preventing you from entering +*As soon as you pass crit threshold its special effects kick in. Penthrite forces your heart to beat preventing you from entering *soft and hard crit, but there is a catch. During this you will be healed and you will sustain *heart damage that will not imapct you as long as penthrite is in your system. *If you reach the threshold of -60 HP penthrite stops working and you get a heart attack, penthrite is flushed from your system in that very moment, diff --git a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm index 555d2cba2f6ea..0487e80ea6d92 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm @@ -10,7 +10,7 @@ metabolization_rate = 0.3 * REAGENTS_METABOLISM // BUBBER EDIT CHANGE - Original: 0.5 * REAGENTS_METABOLISM creation_purity = 1 // impure base reagents are a big no-no ph = 7.33 - burning_temperature = 2193//ethanol burns at 1970C (at it's peak) + burning_temperature = 2193//ethanol burns at 1970C (at its peak) burning_volume = 0.1 default_container = /obj/item/reagent_containers/cup/glass/bottle/beer fallback_icon = 'icons/obj/drinks/bottles.dmi' @@ -1755,28 +1755,32 @@ quality = DRINK_GOOD taste_description = "bitter, creamy cacao" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - var/obj/item/shield/mighty_shield + var/datum/weakref/mighty_shield /datum/reagent/consumable/ethanol/alexander/on_mob_metabolize(mob/living/drinker) . = ..() if(ishuman(drinker)) var/mob/living/carbon/human/the_human = drinker for(var/obj/item/shield/the_shield in the_human.contents) - mighty_shield = the_shield - mighty_shield.block_chance += 10 + mighty_shield = WEAKREF(the_shield) + the_shield.block_chance += 10 to_chat(the_human, span_notice("[the_shield] appears polished, although you don't recall polishing it.")) + break /datum/reagent/consumable/ethanol/alexander/on_mob_life(mob/living/drinker, seconds_per_tick, times_fired) - if(mighty_shield && !(mighty_shield in drinker.contents)) //If you had a shield and lose it, you lose the reagent as well. Otherwise this is just a normal drink. + var/obj/item/shield/the_shield = mighty_shield?.resolve() + if(the_shield && !(the_shield in drinker.contents)) //If you had a shield and lose it, you lose the reagent as well. Otherwise this is just a normal drink. holder.remove_reagent(type, volume) return return ..() /datum/reagent/consumable/ethanol/alexander/on_mob_end_metabolize(mob/living/drinker) . = ..() - if(mighty_shield) - mighty_shield.block_chance -= 10 - to_chat(drinker,span_notice("You notice [mighty_shield] looks worn again. Weird.")) + var/obj/item/shield/the_shield = mighty_shield?.resolve() + if(the_shield) + the_shield.block_chance -= 10 + to_chat(drinker,span_notice("You notice [the_shield] looks worn again. Weird.")) + mighty_shield = null /datum/reagent/consumable/ethanol/amaretto_alexander name = "Amaretto Alexander" diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm index 3473db75d3572..8d48e3da78a89 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm @@ -227,7 +227,7 @@ Basically, we fill the time between now and 2s from now with hands based off the ///Prevents message spam var/spammer = 0 -//Just the removed itching mechanism - omage to it's origins. +//Just the removed itching mechanism - omage to its origins. /datum/reagent/inverse/ichiyuri/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() if(prob(resetting_probability) && !(HAS_TRAIT(affected_mob, TRAIT_RESTRAINED) || affected_mob.incapacitated())) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 4faf255361ae5..d1134cba2a3f5 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -956,7 +956,7 @@ reagent_state = GAS color = COLOR_GRAY taste_mult = 0 // oderless and tasteless - ph = 9.2//It's acutally a huge range and very dependant on the chemistry but ph is basically a made up var in it's implementation anyways + ph = 9.2//It's acutally a huge range and very dependant on the chemistry but ph is basically a made up var in its implementation anyways chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -2714,7 +2714,7 @@ /datum/reagent/metalgen name = "Metalgen" data = list("material"=null) - description = "A purple metal morphic liquid, said to impose it's metallic properties on whatever it touches." + description = "A purple metal morphic liquid, said to impose its metallic properties on whatever it touches." color = "#b000aa" taste_mult = 0 // oderless and tasteless chemical_flags = REAGENT_NO_RANDOM_RECIPE diff --git a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm index d6c4f0009b403..e7cb222ac5837 100644 --- a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm @@ -110,7 +110,7 @@ /datum/reagent/reaction_agent/speed_agent name = "Tempomyocin" - description = "This reagent will consume itself and speed up an ongoing reaction, modifying the current reaction's purity by it's own." + description = "This reagent will consume itself and speed up an ongoing reaction, modifying the current reaction's purity by its own." ph = 10 color = "#e61f82" diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index f61c5eade1bb4..b61a4d4d67cbc 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -157,7 +157,7 @@ return /** - * Occurs when a reation is overheated (i.e. past it's overheatTemp) + * Occurs when a reation is overheated (i.e. past its overheatTemp) * Will be called every tick in the reaction that it is overheated * If you want this to be a once only proc (i.e. the reaction is stopped after) set reaction.toDelete = TRUE * The above is useful if you're writing an explosion diff --git a/code/modules/reagents/chemistry/recipes/cat2_medicines.dm b/code/modules/reagents/chemistry/recipes/cat2_medicines.dm index 28aeb5743faaa..ae6e616b20390 100644 --- a/code/modules/reagents/chemistry/recipes/cat2_medicines.dm +++ b/code/modules/reagents/chemistry/recipes/cat2_medicines.dm @@ -155,7 +155,7 @@ if(off_cooldown(holder, equilibrium, 2, "hercuri_freeze")) return playsound(holder.my_atom, 'sound/magic/ethereal_exit.ogg', 50, 1) - holder.my_atom.visible_message("The reaction frosts over, releasing it's chilly contents!") + holder.my_atom.visible_message("The reaction frosts over, releasing its chilly contents!") var/radius = max((equilibrium.step_target_vol/50), 1) freeze_radius(holder, equilibrium, 200, radius, 60 SECONDS) //drying agent exists explode_shockwave(holder, equilibrium, sound_and_text = FALSE) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index f02aaa3ab2473..62a14ddc794be 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -499,7 +499,7 @@ return ..() var/turf/local_turf = get_turf(holder.my_atom) playsound(local_turf, 'sound/magic/ethereal_exit.ogg', 50, 1) - local_turf.visible_message("The reaction frosts over, releasing it's chilly contents!") + local_turf.visible_message("The reaction frosts over, releasing its chilly contents!") freeze_radius(holder, null, holder.chem_temp*2, clamp(cryostylane.volume/30, 2, 6), 120 SECONDS, 2) clear_reactants(holder, 15) holder.chem_temp += 100 diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index 592a281ed7301..75a60ba49d53d 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -345,9 +345,9 @@ GLOBAL_LIST_INIT(medicine_reagents, build_medicine_reagents()) dat += "
  • heating it above [recipe.required_temp] degrees" dat += " but not above [recipe.overheat_temp] degrees" if(recipe.thermic_constant > 0) - dat += "
  • taking care of it's exothermic nature
  • " + dat += "
  • taking care of its exothermic nature
  • " else if(recipe.thermic_constant < 0) - dat += "
  • taking care of it's endothermic nature
  • " + dat += "
  • taking care of its endothermic nature
  • " var/datum/chemical_reaction/randomized/random_recipe = recipe if(random_recipe) if(random_recipe.randomize_req_ph) diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm index 97906b26240e5..fda39ed4877ba 100644 --- a/code/modules/reagents/reagent_containers/cups/bottle.dm +++ b/code/modules/reagents/reagent_containers/cups/bottle.dm @@ -431,7 +431,7 @@ /obj/item/reagent_containers/cup/bottle/thermite name = "thermite bottle" - list_reagents = list(/datum/reagent/thermite = 30) + list_reagents = list(/datum/reagent/thermite = 50) // Bottles for mail goodies. diff --git a/code/modules/reagents/reagent_containers/cups/drinks.dm b/code/modules/reagents/reagent_containers/cups/drinks.dm index 46e7090c4aacd..e58864a6a7097 100644 --- a/code/modules/reagents/reagent_containers/cups/drinks.dm +++ b/code/modules/reagents/reagent_containers/cups/drinks.dm @@ -317,7 +317,7 @@ var/mob/living/thrower = throwingdatum?.get_thrower() if(thrower) thrower.add_mood_event("bottle_flip", /datum/mood_event/bottle_flip) - else // landed on it's side + else // landed on its side animate(src, transform = matrix(prob(50)? 90 : -90, MATRIX_ROTATE), time = 3, loop = 0) /obj/item/reagent_containers/cup/glass/waterbottle/pickup(mob/user) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 9fffd5ccc7c10..06537e591c976 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -316,6 +316,10 @@ name = "unlabeled syringe" desc = "A syringe containing some sort of unknown chemical cocktail." +/obj/item/reagent_containers/syringe/contraband/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/reagent_containers/syringe/contraband/space_drugs list_reagents = list(/datum/reagent/drug/space_drugs = 15) diff --git a/code/modules/recycling/conveyor.dm b/code/modules/recycling/conveyor.dm index c5dfdc39d3e98..21c5aa7a1a902 100644 --- a/code/modules/recycling/conveyor.dm +++ b/code/modules/recycling/conveyor.dm @@ -373,8 +373,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/machinery/conveyor_switch/Destroy() LAZYREMOVE(GLOB.conveyors_by_id[id], src) - QDEL_NULL(wires) - . = ..() + return ..() /obj/machinery/conveyor_switch/vv_edit_var(var_name, var_value) if (var_name == NAMEOF(src, id)) diff --git a/code/modules/religion/sparring/sparring_datum.dm b/code/modules/religion/sparring/sparring_datum.dm index 78de2bd3a0bb0..8e01403e5a64c 100644 --- a/code/modules/religion/sparring/sparring_datum.dm +++ b/code/modules/religion/sparring/sparring_datum.dm @@ -60,7 +60,6 @@ UnregisterSignal(sparring, list( COMSIG_MOB_FIRED_GUN, COMSIG_MOB_GRENADE_ARMED, - COMSIG_MOB_ITEM_ATTACK, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_POST_TELEPORT, COMSIG_MOB_STATCHANGE, diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index b8b11e7b44f67..53104494c820e 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -582,6 +582,16 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE +/datum/design/board/dehydrator + name = "Dehydrator Board" + desc = "The circuit board for a dehydrator." + id = "dehydrator" + build_path = /obj/item/circuitboard/machine/dehydrator + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + /datum/design/board/vatgrower name = "Growing Vat Board" desc = "The circuit board for a growing vat." @@ -660,7 +670,7 @@ category = list( RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/holopad name = "AI Holopad Board" diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 53aeb467a2f1a..e400c7570ed9b 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1990,6 +1990,17 @@ var/datum/mod_theme/theme = GLOB.mod_themes[initial(armor_type.theme)] desc = "External plating for a MODsuit. [theme.desc]" +/datum/design/mod_plating/civilian + name = "MOD Civilian Plating" + id = "mod_plating_civilian" + build_path = /obj/item/mod/construction/plating/civilian + materials = list( + /datum/material/iron =SHEET_MATERIAL_AMOUNT*3, + /datum/material/glass =SHEET_MATERIAL_AMOUNT*1.5, + /datum/material/plasma =HALF_SHEET_MATERIAL_AMOUNT, + ) + research_icon_state = "civilian-plating" + /datum/design/mod_plating/engineering name = "MOD Engineering Plating" id = "mod_plating_engineering" diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index e7c02c199aa44..0c28fcab2bf6e 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -17,7 +17,7 @@ #define EFFECT_PROB_VERYHIGH 95 #define FAIL 8 -/obj/machinery/rnd/experimentor//SKYRAT EDIT - ICON OVERRIDDEN BY AESTHETICS - SEE MODULE +/obj/machinery/rnd/experimentor name = "\improper E.X.P.E.R.I-MENTOR" desc = "A \"replacement\" for the destructive analyzer with a slight tendency to catastrophically fail." icon = 'icons/obj/machines/experimentator.dmi' @@ -574,11 +574,19 @@ COOLDOWN_DECLARE(cooldown) //What visual theme this artefact has. Current possible choices: "prototype", "necrotech" var/artifact_theme = "prototype" + var/datum/effect_system/spark_spread/sparks /obj/item/relic/Initialize(mapload) . = ..() + sparks = new() + sparks.set_up(5, 1, src) + sparks.attach(src) random_themed_appearance() +/obj/item/relic/Destroy(force) + QDEL_NULL(sparks) + . = ..() + /obj/item/relic/proc/random_themed_appearance() var/themed_name_prefix var/themed_name_suffix @@ -616,6 +624,12 @@ PROC_REF(uncontrolled_teleport), PROC_REF(heat_and_explode), PROC_REF(rapid_self_dupe), + PROC_REF(drink_dispenser), + PROC_REF(tummy_ache), + PROC_REF(charger), + PROC_REF(hugger), + PROC_REF(dimensional_shift), + PROC_REF(disguiser), ) /obj/item/relic/attack_self(mob/user) @@ -714,12 +728,176 @@ /obj/item/relic/proc/do_the_teleport(mob/user) var/turf/userturf = get_turf(user) - if(loc == user && !is_centcom_level(userturf.z)) //Because Nuke Ops bringing this back on their shuttle, then looting the ERT area is 2fun4you! - visible_message(span_notice("[src] twists and bends, relocating itself!")) - throw_smoke(userturf) - do_teleport(user, userturf, 8, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) - throw_smoke(get_turf(user)) - warn_admins(user, "Teleport", 0) + //Because Nuke Ops bringing this back on their shuttle, then looting the ERT area is 2fun4you! + if(is_centcom_level(userturf.z)) + return + var/to_teleport = ismovable(loc) ? loc : src + visible_message(span_notice("[to_teleport] twists and bends, relocating itself!")) + throw_smoke(get_turf(to_teleport)) + do_teleport(to_teleport, userturf, 8, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) + throw_smoke(get_turf(to_teleport)) + warn_admins(user, "Teleport", 0) + +// Creates a glass and fills it up with a drink. +/obj/item/relic/proc/drink_dispenser(mob/user) + var/obj/item/reagent_containers/cup/glass/drinkingglass/freebie = new(get_step_rand(user)) + playsound(freebie, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + sparks.start() + addtimer(CALLBACK(src, PROC_REF(dispense_drink), freebie), 0.5 SECONDS) + +/obj/item/relic/proc/dispense_drink(obj/item/reagent_containers/cup/glass/glasser) + playsound(glasser, 'sound/effects/phasein.ogg', rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + glasser.reagents.add_reagent(get_random_drink_id(), rand(glasser.volume * 0.3, glasser.volume)) + throw_smoke(get_turf(glasser)) + +// Scrambles your organs. 33% chance to delete after use. +/obj/item/relic/proc/tummy_ache(mob/user) + new /obj/effect/temp_visual/circle_wave/bioscrambler/light(get_turf(src)) + to_chat(user, span_notice("Your stomach starts growling...")) + addtimer(CALLBACK(src, PROC_REF(scrambliticus), user), rand(1 SECONDS, 3 SECONDS)) // throw it away! + +/obj/item/relic/proc/scrambliticus(mob/user) + new /obj/effect/temp_visual/circle_wave/bioscrambler/light(get_turf(src)) + playsound(src, 'sound/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) + for(var/mob/living/carbon/nearby in range(2, get_turf(src))) //needs get_turf() to work + nearby.bioscramble(name) + playsound(nearby, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + throw_smoke(get_turf(nearby)) + to_chat(nearby, span_notice("You feel weird.")) + if(prob(33)) + qdel(src) + +// Charges an item or two in your inventory. Also yourself. +/obj/item/relic/proc/charger(mob/living/user) + to_chat(user, span_danger("You're recharged!")) + var/stunner = 1.25 SECONDS + if(iscarbon(user)) + var/mob/living/carbon/carboner = user + carboner.electrocute_act(15, src, flags = SHOCK_NOGLOVES, stun_duration = stunner) + else + user.electrocute_act(15, src, flags = SHOCK_NOGLOVES) + playsound(user, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + + var/list/chargeable_batteries = list() + for(var/obj/item/stock_parts/power_store/C in user.get_all_contents()) + if(C.charge < (C.maxcharge * 0.95)) // otherwise the PDA always gets recharged + chargeable_batteries |= C + + lightning_fx(user, stunner) + var/recharges = rand(1, 2) + if(!length(chargeable_batteries)) + to_chat(user, span_notice("You have a strange feeling for a moment, but then it passes.")) + return + for(var/obj/item/stock_parts/power_store/to_charge as anything in chargeable_batteries) + if(!recharges) + return + recharges-- + to_charge = pick(chargeable_batteries) + to_charge.charge = to_charge.maxcharge + // The device powered by the cell is assumed to be its location. + var/obj/device = to_charge.loc + // If it's not an object, or the loc's assigned power_store isn't the cell, undo. + if(!istype(device) || (device.get_cell() != to_charge)) + device = to_charge + device.update_appearance(UPDATE_ICON|UPDATE_OVERLAYS) + to_chat(user, span_notice("[device] feels energized!")) + lightning_fx(device, 0.8 SECONDS) + +/obj/item/relic/proc/lightning_fx(atom/shocker, time) + var/lightning = mutable_appearance('icons/effects/effects.dmi', "electricity3", layer = ABOVE_MOB_LAYER) + shocker.add_overlay(lightning) + addtimer(CALLBACK(src, PROC_REF(cut_the_overlay), shocker, lightning), time) + +/obj/item/relic/proc/cut_the_overlay(atom/shocker, lightning) + shocker.cut_overlay(lightning) + +// Hugs/shakes everyone in range! +/obj/item/relic/proc/hugger(mob/user) + var/list/mob/living/carbon/huggeds = oviewers(3, user) + for(var/mob/living/carbon/victim in huggeds) + victim.help_shake_act(user, force_friendly = TRUE) + new /obj/effect/temp_visual/heart(victim.loc) + if(length(huggeds)) + to_chat(user, span_nicegreen("You feel friendly!")) + else + to_chat(user, pick(span_notice("You hug yourself, for some reason."), span_notice("You have a strange feeling for a moment, but then it passes."))) + +// Converts a 3x3 area into a random dimensional theme. +/obj/item/relic/proc/dimensional_shift(mob/user) + var/new_theme_path = pick(subtypesof(/datum/dimension_theme)) + var/datum/dimension_theme/shifter = SSmaterials.dimensional_themes[new_theme_path] + for(var/turf/shiftee in range(1, user)) + shifter.apply_theme(shiftee, show_effect = TRUE) + qdel(shifter) + // prevent *total* spam conversion + min_cooldown += 2 SECONDS + max_cooldown += 2 SECONDS + +// Replaces your clothing with a random costume, and your ID with a cardboard one. +// TODO: make them part of the same kit (lobster hat, lobster suit) +/obj/item/relic/proc/disguiser(mob/user) + if(!iscarbon(user)) + to_chat(user, span_notice("You have a strange feeling for a moment, but then it passes.")) + return + + if(prob(80)) // >:) + ADD_TRAIT(user, TRAIT_NO_JUMPSUIT, REF(src)) // prevent dropping pockets & belt + + // magic trick! + playsound(user, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + throw_smoke(user) + + // carbons always get a hat at least + var/mob/living/carbon/carbonius = user + //hat + var/obj/item/clothing/head/costume/disguise_hat = roll_costume(ITEM_SLOT_HEAD, HIDEMASK) + carbonius.dropItemToGround(carbonius.head) + carbonius.equip_to_slot_or_del(disguise_hat, ITEM_SLOT_HEAD) + if(!ishuman(carbonius)) + to_chat(user, span_notice("You have a peculiar feeling for a moment, but then it passes.")) + return + + var/mob/living/carbon/human/humerus = carbonius + // uniform + var/obj/item/clothing/under/costume/disguise_uniform = roll_costume(ITEM_SLOT_ICLOTHING) + humerus.dropItemToGround(humerus.w_uniform) + humerus.equip_to_slot_or_del(disguise_uniform, ITEM_SLOT_ICLOTHING) + // suit + var/obj/item/clothing/suit/costume/disguise_suit = roll_costume(ITEM_SLOT_OCLOTHING) + humerus.dropItemToGround(humerus.wear_suit) + humerus.equip_to_slot_or_del(disguise_suit, ITEM_SLOT_OCLOTHING) + // id + var/obj/item/card/cardboard/card_id = new() + humerus.dropItemToGround(humerus.wear_id) + humerus.equip_to_slot_or_del(card_id, ITEM_SLOT_ID) + + // edit the card to a random job & name + if(!card_id) + return + card_id.scribbled_name = "[pick(GLOB.first_names)] [pick(GLOB.last_names)]" + card_id.details_colors = list(ready_random_color(), ready_random_color(), ready_random_color()) + card_id.item_flags |= DROPDEL + + var/datum/id_trim/random_trim = pick(subtypesof(/datum/id_trim)) // this can pick silly things + random_trim = new random_trim() + if(random_trim.trim_state && random_trim.assignment) + card_id.scribbled_trim = replacetext(random_trim.trim_state, "trim_", "cardboard_") + card_id.scribbled_assignment = random_trim.assignment + card_id.update_appearance() + REMOVE_TRAIT(user, TRAIT_NO_JUMPSUIT, REF(src)) + +/obj/item/relic/proc/roll_costume(slot, flagcheck) + var/list/candidates = list() + for(var/obj/item/costume as anything in GLOB.all_autodrobe_items) + if(flagcheck && !(initial(costume.flags_inv) & flagcheck)) + continue + if(slot && !(initial(costume.slot_flags) & slot)) + continue + candidates |= costume + var/obj/item/new_costume = pick(candidates) + new_costume = new new_costume() + new_costume.item_flags |= DROPDEL + return new_costume //Admin Warning proc for relics /obj/item/relic/proc/warn_admins(mob/user, relic_type, priority = 1) diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 0cfca236d24c3..665dae0e243c9 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -35,7 +35,6 @@ if(stored_research) log_research("[src] disconnected from techweb [stored_research] (destroyed).") stored_research = null - QDEL_NULL(wires) return ..() /obj/machinery/rnd/examine(mob/user) diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index a85c4b82c1725..1a5a387551178 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -332,16 +332,16 @@ return techweb_point_display_generic(research_points) /datum/techweb/proc/enqueue_node(id, mob/user) - var/mob/living/carbon/human/human_user = user - var/is_rd = FALSE - if(human_user.wear_id) - var/list/access = human_user.wear_id.GetAccess() + var/queue_first = FALSE + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/human_user = user + var/list/access = human_user.wear_id?.GetAccess() if(ACCESS_RD in access) - is_rd = TRUE + queue_first = TRUE if(id in research_queue_nodes) - if(is_rd) - research_queue_nodes.Remove(id) + if(queue_first) + research_queue_nodes.Remove(id) // Remove to be able to place first else return FALSE @@ -349,7 +349,7 @@ if(research_queue_nodes[node_id] == user) research_queue_nodes.Remove(node_id) - if (is_rd) + if (queue_first) research_queue_nodes.Insert(1, id) research_queue_nodes[id] = user diff --git a/code/modules/research/techweb/nodes/mech_nodes.dm b/code/modules/research/techweb/nodes/mech_nodes.dm index 6b7a9803ae495..d6b7171d55b37 100644 --- a/code/modules/research/techweb/nodes/mech_nodes.dm +++ b/code/modules/research/techweb/nodes/mech_nodes.dm @@ -1,8 +1,8 @@ /datum/techweb_node/mech_assembly id = TECHWEB_NODE_MECH_ASSEMBLY starting_node = TRUE - display_name = "Mech Assembly" - description = "Development of mech designed to contend with artificial gravity while transporting cargo." + display_name = "Exosuit Assembly" + description = "Development of mechanical exosuits designed to contend with artificial gravity while transporting cargo." prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "mechapower", @@ -21,7 +21,7 @@ /datum/techweb_node/mech_equipment id = TECHWEB_NODE_MECH_EQUIPMENT display_name = "Expedition Equipment" - description = "Specialized mech gear tailored for navigating space and celestial bodies, ensuring durability and functionality in the harshest conditions." + description = "Specialized exosuit gear tailored for navigating space and celestial bodies, ensuring durability and functionality in the harshest conditions." prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY) design_ids = list( "mechacontrol", @@ -63,7 +63,7 @@ /datum/techweb_node/mech_medical id = TECHWEB_NODE_MECH_MEDICAL - display_name = "Medical Mech" + display_name = "Medical Exosuit" description = "Advanced robotic unit equipped with syringe guns and healing beams, revolutionizing medical assistance in hazardous environments." prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( @@ -83,8 +83,8 @@ /datum/techweb_node/mech_mining id = TECHWEB_NODE_MECH_MINING - display_name = "Mining Mech" - description = "Robust mech engineered to withstand lava and storms for continuous off-station mining operations." + display_name = "Mining Exosuit" + description = "Robust exosuit engineered to withstand lava and storms for continuous off-station mining operations." prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT, TECHWEB_NODE_MINING) design_ids = list( "clarke_chassis", @@ -99,8 +99,8 @@ /datum/techweb_node/mech_combat id = TECHWEB_NODE_MECH_COMBAT - display_name = "Combat Mechs" - description = "Modular armor upgrades and specialized equipment for security mechs." + display_name = "Combat Exosuits" + description = "Modular armor upgrades and specialized equipment for security exosuits." prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT) design_ids = list( "mech_ccw_armor", @@ -115,8 +115,8 @@ /datum/techweb_node/mech_assault id = TECHWEB_NODE_MECH_ASSAULT - display_name = "Assault Mech" - description = "Heavy battle mech boasting robust armor but sacrificing speed for enhanced durability." + display_name = "Assault Exosuits" + description = "Heavy battle exosuits boasting robust armor but sacrificing speed for enhanced durability." prereq_ids = list(TECHWEB_NODE_MECH_COMBAT) design_ids = list( "durand_armor", @@ -135,8 +135,8 @@ /datum/techweb_node/mech_light id = TECHWEB_NODE_MECH_LIGHT - display_name = "Light Combat Mech" - description = "Agile combat mech equipped with overclocking capabilities for temporary speed boosts, prioritizing speed over durability on the battlefield." + display_name = "Light Combat Exosuits" + description = "Agile combat exosuits equipped with overclocking capabilities for temporary speed boosts, prioritizing speed over durability on the battlefield." prereq_ids = list(TECHWEB_NODE_MECH_COMBAT) design_ids = list( "gygax_armor", @@ -155,7 +155,7 @@ /datum/techweb_node/mech_heavy id = TECHWEB_NODE_MECH_HEAVY - display_name = "Heavy Mech" + display_name = "Heavy Exosuits" description = "Advanced heavy mechanized unit with dual pilot capability, designed for robust battlefield performance and increased tactical versatility." prereq_ids = list(TECHWEB_NODE_MECH_ASSAULT) design_ids = list( @@ -175,8 +175,8 @@ /datum/techweb_node/mech_infiltrator id = TECHWEB_NODE_MECH_INFILTRATOR - display_name = "Infiltration Mech" - description = "Advanced mech with phasing capabilities, allowing it to move through walls and obstacles, ideal for covert and special operations." + display_name = "Infiltration Exosuits" + description = "Advanced exosuit with phasing capabilities, allowing it to move through walls and obstacles, ideal for covert and special operations." prereq_ids = list(TECHWEB_NODE_MECH_LIGHT, TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( "phazon_armor", @@ -211,8 +211,8 @@ /datum/techweb_node/mech_energy_guns id = TECHWEB_NODE_MECH_ENERGY_GUNS - display_name = "Mech Energy Guns" - description = "Scaled-up versions of electric weapons optimized for mech deployment." + display_name = "Exosuit Energy Guns" + description = "Scaled-up versions of electric weapons optimized for exosuit deployment." prereq_ids = list(TECHWEB_NODE_MECH_COMBAT, TECHWEB_NODE_ELECTRIC_WEAPONS) design_ids = list( "mech_laser", @@ -225,7 +225,7 @@ /datum/techweb_node/mech_firearms id = TECHWEB_NODE_MECH_FIREARMS - display_name = "Mech Firearms" + display_name = "Exosuit Firearms" description = "Mounted ballistic weaponry, enhancing combat capabilities for mechanized units." prereq_ids = list(TECHWEB_NODE_MECH_ENERGY_GUNS, TECHWEB_NODE_EXOTIC_AMMO) design_ids = list( @@ -240,7 +240,7 @@ /datum/techweb_node/mech_heavy_arms id = TECHWEB_NODE_MECH_HEAVY_ARMS - display_name = "Heavy Mech Firearms" + display_name = "Heavy Exosuit Firearms" description = "High-impact weaponry integrated into mechs, optimized for maximum firepower." prereq_ids = list(TECHWEB_NODE_MECH_HEAVY, TECHWEB_NODE_EXOTIC_AMMO) design_ids = list( @@ -255,7 +255,7 @@ /datum/techweb_node/mech_equip_bluespace id = TECHWEB_NODE_BLUESPACE - display_name = "Bluespace Mech Equipment" + display_name = "Bluespace Exosuit Equipment" description = "An array of equipment empowered by bluespace, providing unmatched mobility and utility." prereq_ids = list(TECHWEB_NODE_MECH_INFILTRATOR, TECHWEB_NODE_BLUESPACE_TRAVEL) design_ids = list( diff --git a/code/modules/research/techweb/nodes/modsuit_nodes.dm b/code/modules/research/techweb/nodes/modsuit_nodes.dm index d4e30e9cd5d8f..955389f61aeba 100644 --- a/code/modules/research/techweb/nodes/modsuit_nodes.dm +++ b/code/modules/research/techweb/nodes/modsuit_nodes.dm @@ -1,7 +1,7 @@ /datum/techweb_node/mod_suit id = TECHWEB_NODE_MOD_SUIT starting_node = TRUE - display_name = "Modular Exosuit" + display_name = "Modular Suit" description = "Specialized back mounted power suits with various different modules." prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( @@ -12,6 +12,7 @@ "mod_gauntlets", "mod_boots", "mod_plating_standard", + "mod_plating_civilian", "mod_paint_kit", "mod_storage", "mod_plasma", @@ -52,7 +53,7 @@ /datum/techweb_node/mod_medical id = TECHWEB_NODE_MOD_MEDICAL display_name = "Medical Modular Suit" - description = "Medical exosuits for quick rescue purposes." + description = "Medical MODsuits for quick rescue purposes." prereq_ids = list(TECHWEB_NODE_MOD_SUIT, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( "mod_plating_medical", @@ -98,7 +99,7 @@ /datum/techweb_node/mod_medical_adv id = TECHWEB_NODE_MOD_MEDICAL_ADV display_name = "Field Surgery Modules" - description = "Medical exosuit equipment designed for conducting surgical operations in field conditions." + description = "Medical MODsuit equipment designed for conducting surgical operations in field conditions." prereq_ids = list(TECHWEB_NODE_MOD_MEDICAL, TECHWEB_NODE_SURGERY_ADV) design_ids = list( "mod_defib", @@ -130,7 +131,7 @@ /datum/techweb_node/mod_anomaly id = TECHWEB_NODE_MOD_ANOMALY display_name = "Anomalock Modular Suit" - description = "Modules for exosuits that require anomaly cores to function." + description = "Modules for MODsuits that require anomaly cores to function." prereq_ids = list(TECHWEB_NODE_MOD_ENGI_ADV, TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( "mod_antigrav", diff --git a/code/modules/research/techweb/nodes/service_nodes.dm b/code/modules/research/techweb/nodes/service_nodes.dm index 1553f3a0c20d8..591308947b23f 100644 --- a/code/modules/research/techweb/nodes/service_nodes.dm +++ b/code/modules/research/techweb/nodes/service_nodes.dm @@ -138,6 +138,7 @@ "reagentgrinder", "microwave_engineering", "smartfridge", + "dehydrator", "sheetifier", "fat_sucker", "dish_drive", diff --git a/code/modules/research/techweb/nodes/syndicate_nodes.dm b/code/modules/research/techweb/nodes/syndicate_nodes.dm index 377ac392f938f..7743b9442f829 100644 --- a/code/modules/research/techweb/nodes/syndicate_nodes.dm +++ b/code/modules/research/techweb/nodes/syndicate_nodes.dm @@ -33,7 +33,7 @@ required_items_to_unlock = list() for(var/datum/uplink_item/item_path as anything in SStraitor.uplink_items_by_type) var/datum/uplink_item/item = SStraitor.uplink_items_by_type[item_path] - if(!item.item || !item.illegal_tech) + if(!item.item || !(item.uplink_item_flags & SYNDIE_ILLEGAL_TECH)) continue required_items_to_unlock |= item.item //allows deconning to unlock. diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index 82beed78e439c..d04838f79ec0d 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -8,6 +8,7 @@ Regenerative extracts: desc = "It's filled with a milky substance, and pulses like a heartbeat." effect = "regenerative" icon_state = "regenerative" + effect_desc = "Completely heals your injuries, with no extra effects." /obj/item/slimecross/regenerative/proc/core_effect(mob/living/carbon/human/target, mob/user) return diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 9f22520d6ab10..be805ae9da82f 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -799,7 +799,7 @@ user.do_attack_animation(interacting_with) prompted = 1 - if(tgui_alert(usr,"This will permanently transfer your consciousness to [switchy_mob]. Are you sure you want to do this?",,list("Yes","No")) == "No") + if(tgui_alert(usr,"This will permanently transfer your consciousness to [switchy_mob]. Are you sure you want to do this?",,list("Yes","No")) != "Yes") prompted = 0 return ITEM_INTERACT_BLOCKING diff --git a/code/modules/shuttle/shuttle_events/_shuttle_events.dm b/code/modules/shuttle/shuttle_events/_shuttle_events.dm index 35b00ac3e790a..f809e274dc601 100644 --- a/code/modules/shuttle/shuttle_events/_shuttle_events.dm +++ b/code/modules/shuttle/shuttle_events/_shuttle_events.dm @@ -69,6 +69,11 @@ var/list/target_corner //Top left or bottom right corner var/list/spawn_offset //bounding_coords is ONLY the shuttle, not the space around it, so offset spawn_tiles or stuff spawns on the walls of the shuttle + // Bounding coords sticky to either the top right or bottom left corner of the template, depending on proximity to docking port + // If we sticky to the bottom right corner, then [1] and [2] will be the bottom right corner, so we need to invert it + if(bounding_coords[1] > bounding_coords[3]) + bounding_coords = list(bounding_coords[3], bounding_coords[4], bounding_coords[1], bounding_coords[2]) + switch(direction) if(NORTH) //we're travelling north (so people get pushed south) step_dir = list(1, 0) @@ -101,7 +106,6 @@ //Get the corner tile, but jump over the shuttle and then continue unto the cordon spawning_turfs_miss.Add(locate(target_corner[1] + corner_delta[1] * step_dir[1] + step_dir[1] * i + spawn_offset[1], target_corner[2] + corner_delta[2] * step_dir[2] + step_dir[2] * i + spawn_offset[2], port.z)) - /datum/shuttle_event/simple_spawner/event_process() . = ..() diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index f76ecb104e72b..b72abea937ed6 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -248,7 +248,7 @@ if(HAS_TRAIT(cast_loc, TRAIT_CASTABLE_LOC)) if(HAS_TRAIT(cast_loc, TRAIT_SPELLS_TRANSFER_TO_LOC) && ismob(cast_loc.loc)) return cast_loc.loc - else + else return cast_loc // They're in an atom which allows casting, so redirect the caster to loc diff --git a/code/modules/spells/spell_types/pointed/terrorize.dm b/code/modules/spells/spell_types/pointed/terrorize.dm index 33465b1d35348..699410b9a3c6b 100644 --- a/code/modules/spells/spell_types/pointed/terrorize.dm +++ b/code/modules/spells/spell_types/pointed/terrorize.dm @@ -1,6 +1,6 @@ /datum/action/cooldown/spell/pointed/terrorize name = "Terrorize" - desc = "Project yourself into a victim's mind, inflictng them with terror buildup. \ + desc = "Project yourself into a victim's mind, inflicting them with terror buildup. \ Prey will become increasingly terrified. Swatting terrified prey with an open hand will \ scare and disorient them." button_icon_state = "terrify" diff --git a/code/modules/spells/spell_types/pointed/tie_shoes.dm b/code/modules/spells/spell_types/pointed/tie_shoes.dm new file mode 100644 index 0000000000000..5783717d0e72b --- /dev/null +++ b/code/modules/spells/spell_types/pointed/tie_shoes.dm @@ -0,0 +1,137 @@ + +/datum/action/cooldown/spell/pointed/untie_shoes + name = "Untie Shoes" + desc = "This unassuming spell unties and then knots the target's shoes." + ranged_mousepointer = 'icons/effects/mouse_pointers/lace.dmi' + button_icon_state = "lace" + + school = SCHOOL_CONJURATION + cooldown_time = 3 SECONDS + cooldown_reduction_per_rank = 0.2 SECONDS + + spell_max_level = 4 + invocation = "Acetato!" + invocation_type = INVOCATION_SHOUT + spell_requirements = NONE + antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY + + cast_range = INFINITY + active_msg = "You prepare to tie your target's shoes!" + + /// Ignores inability to tie laces, such as jackboots, magboots, or sandals. + var/bypass_tie_status = FALSE + /// Summons shoes to untie if the target has none. + var/summons_shoes = FALSE + +/datum/action/cooldown/spell/pointed/untie_shoes/New(Target) + . = ..() + // tgs first spell with multiple invocations!!!!!! + invocation = pick("Acetato!", "Agaletto!") + +/datum/action/cooldown/spell/pointed/untie_shoes/level_spell(bypass_cap) + . = ..() + if(spell_level == 2) + bypass_tie_status = TRUE + to_chat(owner, span_notice("You will now summon laces on laceless shoes, such as jackboots.")) + + if(spell_level == 3) + summons_shoes = TRUE + to_chat(owner, span_notice("You will now summon shoes if your target has none.")) + + if(spell_level == 4) + invocation_type = INVOCATION_NONE + to_chat(owner, span_boldnotice("Your invocations are now silent!")) + +/datum/action/cooldown/spell/pointed/untie_shoes/is_valid_target(atom/cast_on) + 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) + return ..() | SPELL_NO_IMMEDIATE_COOLDOWN + +/datum/action/cooldown/spell/pointed/untie_shoes/cast(mob/living/carbon/cast_on) + . = ..() + if(cast_on.can_block_magic(antimagic_flags)) + to_chat(owner, span_warning("The spell had no effect!")) + return FALSE + + if(isanimal_or_basicmob(cast_on)) + cast_on.add_movespeed_modifier(/datum/movespeed_modifier/magic_ties) + addtimer(CALLBACK(cast_on, TYPE_PROC_REF(/mob/living, remove_movespeed_modifier), /datum/movespeed_modifier/magic_ties), 3 SECONDS * spell_level, TIMER_UNIQUE|TIMER_OVERRIDE) + to_chat(owner, span_warning("You tie [cast_on] with weak, magic laces!")) + if(invocation_type != INVOCATION_NONE) // extra feedback since it's weird for them + cast_on.balloon_alert_to_viewers("magically tied!") + else + cast_on.balloon_alert(owner, "magically tied!") + playsound(cast_on, 'sound/magic/summonitems_generic.ogg', 50, TRUE) + return TRUE + + var/shoe_to_cast = /obj/item/clothing/shoes/sneakers/random + + if(HAS_TRAIT(owner, TRAIT_CHUUNIBYOU)) + shoe_to_cast = /obj/item/clothing/shoes/sneakers/marisa + if(HAS_TRAIT(owner, TRAIT_SPLATTERCASTER)) + shoe_to_cast = /obj/item/clothing/shoes/laceup + + var/obj/item/clothing/shoes/shoes_to_tie = cast_on.shoes + + if(isnull(shoes_to_tie)) + if(!summons_shoes) + to_chat(owner, span_warning("[cast_on] isn't wearing any shoes!")) + return FALSE + + shoes_to_tie = new shoe_to_cast(cast_on) + if(!cast_on.equip_to_slot_or_del(shoes_to_tie, ITEM_SLOT_FEET)) + to_chat(owner, span_warning("Couldn't equip shoes on [cast_on]!")) + return FALSE + + if(invocation_type != INVOCATION_NONE) + playsound(cast_on, 'sound/magic/summonitems_generic.ogg', 50, TRUE) + + switch(shoes_to_tie.tied) + if(SHOES_TIED) + if(!shoes_to_tie.can_be_tied) + if(bypass_tie_status) + to_chat(owner, span_warning("You magically grant laces to [cast_on]'s shoes!")) + cast_on.balloon_alert(owner, "laced!") + shoes_to_tie.can_be_tied = TRUE + if(invocation_type != INVOCATION_NONE) + playsound(cast_on, 'sound/magic/summonitems_generic.ogg', 50, TRUE) + return TRUE + else + to_chat(owner, span_warning("[cast_on] is wearing laceless shoes!")) + cast_on.balloon_alert(owner, "laceless!") + return FALSE + + to_chat(owner, span_warning("You untie [cast_on]'s shoes!")) + cast_on.balloon_alert(owner, "untied!") + shoes_to_tie.adjust_laces(SHOES_UNTIED, force_lacing = TRUE) + if(SHOES_UNTIED) + to_chat(owner, span_warning("You knot [cast_on]'s laces!")) + cast_on.balloon_alert(owner, "knotted!") + shoes_to_tie.adjust_laces(SHOES_KNOTTED, force_lacing = TRUE) + if(SHOES_KNOTTED) + to_chat(owner, span_warning("[cast_on]'s laces are already knotted!")) + return FALSE + +// 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/pointed/untie_shoes/after_cast(atom/cast_on) + . = ..() + var/extra_time = 0 SECONDS + if((cast_on.z != owner.z) || get_dist(cast_on, owner) > 7) + extra_time += cooldown_time * 10 // :) + + StartCooldown(cooldown_time + extra_time) + +/datum/action/cooldown/spell/pointed/untie_shoes/get_spell_title() + switch(spell_level) + if(2) + return "Laceless " + if(3) + return "Prankster's " + if(4) + return "Sneakerly " + if(5) + return "Clown's Own " + + return "" diff --git a/code/modules/spells/spell_types/self/rod_form.dm b/code/modules/spells/spell_types/self/rod_form.dm index 5336036cd2c51..9989c4420c086 100644 --- a/code/modules/spells/spell_types/self/rod_form.dm +++ b/code/modules/spells/spell_types/self/rod_form.dm @@ -122,7 +122,7 @@ return TRUE /** - * Called when the wizard rod reaches it's maximum distance + * Called when the wizard rod reaches its maximum distance * or is otherwise stopped by something. * Dumps out the wizard, and deletes. */ diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index dbb50db944bb5..d69635ec09fcf 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -115,6 +115,8 @@ ///the type of damage overlay (if any) to use when this bodypart is bruised/burned. var/dmg_overlay_type = "human" + ///a color (optionally matrix) for the damage overlays to give the limb + var/damage_overlay_color /// If we're bleeding, which icon are we displaying on this part var/bleed_overlay_icon @@ -199,6 +201,12 @@ var/any_existing_wound_can_mangle_our_interior /// get_damage() / total_damage must surpass this to allow our limb to be disabled, even temporarily, by an EMP. var/robotic_emp_paralyze_damage_percent_threshold = 0.3 + /// A potential texturing overlay to put on the limb + var/datum/bodypart_overlay/texture/texture_bodypart_overlay + // SKYRAT EDIT BEGIN + /// If we even wanna try and handle icons/overlays of the limb (Taurs don't, f.e.). See update_body_parts + var/show_icon = TRUE + // SKYRAT EDIT END /obj/item/bodypart/apply_fantasy_bonuses(bonus) . = ..() @@ -224,6 +232,10 @@ RegisterSignal(src, COMSIG_ATOM_RESTYLE, PROC_REF(on_attempt_feature_restyle)) + if(texture_bodypart_overlay) + texture_bodypart_overlay = new texture_bodypart_overlay() + add_bodypart_overlay(texture_bodypart_overlay) + if(!IS_ORGANIC_LIMB(src)) grind_results = null @@ -1095,7 +1107,8 @@ for(var/external_layer in overlay.all_layers) if(overlay.layers & external_layer) . += overlay.get_overlay(external_layer, src) - + for(var/datum/layer in .) + overlay.modify_bodypart_appearance(layer) // SKYRAT EDIT ADDITION BEGIN - MARKINGS CODE var/override_color var/atom/offset_spokesman = owner || src @@ -1152,7 +1165,6 @@ if (emissive) . += emissive // SKYRAT EDIT END - MARKINGS CODE END - return . /obj/item/bodypart/proc/huskify_image(image/thing_to_husk, draw_blood = TRUE) @@ -1232,7 +1244,7 @@ refresh_bleed_rate() /// Refresh the cache of our rate of bleeding sans any modifiers -/// ANYTHING ADDED TO THIS PROC NEEDS TO CALL IT WHEN IT'S EFFECT CHANGES +/// ANYTHING ADDED TO THIS PROC NEEDS TO CALL IT WHEN ITS EFFECT CHANGES /obj/item/bodypart/proc/refresh_bleed_rate() SHOULD_NOT_OVERRIDE(TRUE) diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 8a407104a5eb0..930c545ff52cf 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -4,7 +4,7 @@ return FALSE return TRUE -///Remove target limb from it's owner, with side effects. +///Remove target limb from its owner, with side effects. /obj/item/bodypart/proc/dismember(dam_type = BRUTE, silent=TRUE, wounding_type) if(!owner || (bodypart_flags & BODYPART_UNREMOVABLE)) return FALSE diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index a0955af4e46c8..8833f87e28ee8 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -178,7 +178,7 @@ if(new_bodypart) new_bodypart.update_limb(is_creating = TRUE) -/// Makes sure that the owner's bodytype flags match the flags of all of it's parts and organs +/// Makes sure that the owner's bodytype flags match the flags of all of its parts and organs /mob/living/carbon/proc/synchronize_bodytypes() var/all_limb_flags = NONE for(var/obj/item/bodypart/limb as anything in bodyparts) @@ -188,7 +188,7 @@ bodytype = all_limb_flags -/// Makes sure that the owner's bodyshape flags match the flags of all of it's parts and organs +/// Makes sure that the owner's bodyshape flags match the flags of all of its parts and organs /mob/living/carbon/proc/synchronize_bodyshapes() var/all_limb_flags = NONE for(var/obj/item/bodypart/limb as anything in bodyparts) diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index fdfbce9c76180..992d60142bdcf 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -182,7 +182,7 @@ return var/atom/movable/screen/inventory/hand/hand = new_owner.hud_used.hand_slots["[held_index]"] - hand.update_appearance() + hand?.update_appearance() /obj/item/bodypart/arm/left name = "left arm" diff --git a/code/modules/surgery/bodyparts/worn_feature_offset.dm b/code/modules/surgery/bodyparts/worn_feature_offset.dm index ec2b7ddefddf4..8d33e5478ebb5 100644 --- a/code/modules/surgery/bodyparts/worn_feature_offset.dm +++ b/code/modules/surgery/bodyparts/worn_feature_offset.dm @@ -64,4 +64,5 @@ /// When we change direction, re-apply the offset /datum/worn_feature_offset/proc/on_dir_change(mob/living/carbon/owner, olddir, newdir) SIGNAL_HANDLER - owner.update_features(feature_key) + if(olddir != newdir) + owner.update_features(feature_key) diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index 1da7f59426cce..a1eac882ae5f5 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -128,7 +128,7 @@ /datum/surgery_step/mechanic_close, ) -///Organ manipulation base class. Do not use, it wont work. Use it's subtypes +///Organ manipulation base class. Do not use, it wont work. Use its subtypes /datum/surgery_step/manipulate_organs name = "manipulate organs" repeatable = TRUE diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 6e3d9a0ee7ccb..0bb8afc6ced52 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -149,6 +149,10 @@ surgery_speed = 0.75 loaded_overlay = "autosurgeon_syndicate_loaded_overlay" +/obj/item/autosurgeon/syndicate/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/autosurgeon/syndicate/laser_arm desc = "A single use autosurgeon that contains a combat arms-up laser augment. A screwdriver can be used to remove it, but implants can't be placed back in." uses = 1 diff --git a/code/modules/surgery/organs/external/_external_organ.dm b/code/modules/surgery/organs/external/_external_organ.dm index 129be7d241aef..d7673eac76745 100644 --- a/code/modules/surgery/organs/external/_external_organ.dm +++ b/code/modules/surgery/organs/external/_external_organ.dm @@ -21,11 +21,11 @@ var/dna_block ///Set to EXTERNAL_BEHIND, EXTERNAL_FRONT or EXTERNAL_ADJACENT if you want to draw one of those layers as the object sprite. FALSE to use your own - ///This will not work if it doesn't have a limb to generate it's icon with + ///This will not work if it doesn't have a limb to generate its icon with var/use_mob_sprite_as_obj_sprite = FALSE - ///Does this organ have any bodytypes to pass to it's bodypart_owner? + ///Does this organ have any bodytypes to pass to its bodypart_owner? var/external_bodytypes = NONE - ///Does this organ have any bodyshapes to pass to it's bodypart_owner? + ///Does this organ have any bodyshapes to pass to its bodypart_owner? var/external_bodyshapes = NONE ///Which flags does a 'modification tool' need to have to restyle us, if it all possible (located in code/_DEFINES/mobs) var/restyle_flags = NONE diff --git a/code/modules/surgery/organs/external/wings/functional_wings.dm b/code/modules/surgery/organs/external/wings/functional_wings.dm index 2a6757596c460..680226b859b0a 100644 --- a/code/modules/surgery/organs/external/wings/functional_wings.dm +++ b/code/modules/surgery/organs/external/wings/functional_wings.dm @@ -25,6 +25,8 @@ ///Are our wings open or closed? var/wings_open = FALSE + ///We cant hide this wings in suit + var/cant_hide = FALSE // grind_results = list(/datum/reagent/flightpotion = 5) food_reagents = list(/datum/reagent/flightpotion = 5) @@ -66,7 +68,7 @@ if(human.stat || human.body_position == LYING_DOWN) return FALSE //Jumpsuits have tail holes, so it makes sense they have wing holes too - if(human.wear_suit && ((human.wear_suit.flags_inv & HIDEJUMPSUIT) && (!human.wear_suit.species_exception || !is_type_in_list(src, human.wear_suit.species_exception)))) + if(!cant_hide && human.wear_suit && ((human.wear_suit.flags_inv & HIDEJUMPSUIT) && (!human.wear_suit.species_exception || !is_type_in_list(src, human.wear_suit.species_exception)))) to_chat(human, span_warning("Your suit blocks your wings from extending!")) return FALSE var/turf/location = get_turf(human) diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm index 324b2c538b840..5632688cb476b 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm @@ -423,8 +423,7 @@ return NONE if(!isliving(target)) return NONE - var/datum/dna/dna = source.has_dna() - if(dna?.check_mutation(/datum/mutation/human/hulk)) //NO HULK + if(HAS_TRAIT(source, TRAIT_HULK)) //NO HULK return NONE if(!source.can_unarmed_attack()) return COMPONENT_SKIP_ATTACK diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm index a50912416ef87..f36c6cfe838b8 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm @@ -120,6 +120,7 @@ . = ..() UnregisterSignal(implant_owner, signalCache) UnregisterSignal(implant_owner, COMSIG_LIVING_ENTER_STAMCRIT) + remove_stun_buffs(implant_owner) /obj/item/organ/internal/cyberimp/brain/anti_stun/on_mob_insert(mob/living/carbon/receiver) . = ..() @@ -151,10 +152,8 @@ sparks.set_up(5, 1, src) sparks.start() - owner.add_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_BATON_RESISTANCE, TRAIT_STUNIMMUNE), REF(src)) - addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_IGNOREDAMAGESLOWDOWN, REF(src)), stun_resistance_time) - addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_BATON_RESISTANCE, REF(src)), stun_resistance_time) - addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_STUNIMMUNE, REF(src)), stun_resistance_time) + give_stun_buffs(owner) + addtimer(CALLBACK(src, PROC_REF(remove_stun_buffs), owner), stun_resistance_time) COOLDOWN_START(src, implant_cooldown, 60 SECONDS) addtimer(CALLBACK(src, PROC_REF(implant_ready)),60 SECONDS) @@ -163,6 +162,14 @@ if(owner) to_chat(owner, span_purple("Your rebooter implant is ready.")) +/obj/item/organ/internal/cyberimp/brain/anti_stun/proc/give_stun_buffs(mob/living/give_to = owner) + give_to.add_traits(list(TRAIT_STUNIMMUNE, TRAIT_BATON_RESISTANCE), REF(src)) + give_to.add_movespeed_mod_immunities(REF(src), /datum/movespeed_modifier/damage_slowdown) + +/obj/item/organ/internal/cyberimp/brain/anti_stun/proc/remove_stun_buffs(mob/living/remove_from = owner) + remove_from.remove_traits(list(TRAIT_STUNIMMUNE, TRAIT_BATON_RESISTANCE), REF(src)) + remove_from.remove_movespeed_mod_immunities(REF(src), /datum/movespeed_modifier/damage_slowdown) + /obj/item/organ/internal/cyberimp/brain/anti_stun/emp_act(severity) . = ..() if((organ_flags & ORGAN_FAILING) || . & EMP_PROTECT_SELF) diff --git a/code/modules/surgery/organs/internal/heart/_heart.dm b/code/modules/surgery/organs/internal/heart/_heart.dm index 2773f588b24da..f3899cb994648 100644 --- a/code/modules/surgery/organs/internal/heart/_heart.dm +++ b/code/modules/surgery/organs/internal/heart/_heart.dm @@ -18,6 +18,9 @@ attack_verb_continuous = list("beats", "thumps") attack_verb_simple = list("beat", "thump") + // Love is stored in the heart. + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/love = 2.5) + // Heart attack code is in code/modules/mob/living/carbon/human/life.dm /// Whether the heart is currently beating. diff --git a/code/modules/surgery/organs/internal/liver/_liver.dm b/code/modules/surgery/organs/internal/liver/_liver.dm index 5c6eaf9b38f27..9f933b6a2a859 100644 --- a/code/modules/surgery/organs/internal/liver/_liver.dm +++ b/code/modules/surgery/organs/internal/liver/_liver.dm @@ -132,6 +132,7 @@ . = ..() //If your liver is failing, then we use the liverless version of metabolize if((organ_flags & ORGAN_FAILING) || HAS_TRAIT(owner, TRAIT_LIVERLESS_METABOLISM)) + owner.reagents.end_metabolization(keep_liverless = TRUE) owner.reagents.metabolize(owner, seconds_per_tick, times_fired, can_overdose = TRUE, liverless = TRUE) return diff --git a/code/modules/surgery/organs/internal/lungs/_lungs.dm b/code/modules/surgery/organs/internal/lungs/_lungs.dm index 4efc74f3f95c1..8edf65d6755c5 100644 --- a/code/modules/surgery/organs/internal/lungs/_lungs.dm +++ b/code/modules/surgery/organs/internal/lungs/_lungs.dm @@ -537,7 +537,7 @@ n2o_euphoria = EUPHORIA_INACTIVE breather.clear_alert(ALERT_TOO_MUCH_N2O) -// Breath in nitrium. It's helpful, but has nasty side effects +// Breathe in nitrium. It's helpful, but has nasty side effects /obj/item/organ/internal/lungs/proc/too_much_nitrium(mob/living/carbon/breather, datum/gas_mixture/breath, nitrium_pp, old_nitrium_pp) breathe_gas_volume(breath, /datum/gas/nitrium) diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index ee2f19a8a10a7..6467beac078de 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -94,11 +94,15 @@ /obj/item/organ/internal/tongue/proc/handle_speech(datum/source, list/speech_args) SIGNAL_HANDLER + if(should_modify_speech(source, speech_args)) + modify_speech(source, speech_args) + +/obj/item/organ/internal/tongue/proc/should_modify_speech(datum/source, list/speech_args) if(speech_args[SPEECH_LANGUAGE] in languages_native) // Speaking a native language? return FALSE // Don't modify speech if(HAS_TRAIT(source, TRAIT_SIGN_LANG)) // No modifiers for signers - I hate this but I simply cannot get these to combine into one statement return FALSE // Don't modify speech - modify_speech(source, speech_args) + return TRUE /obj/item/organ/internal/tongue/proc/modify_speech(datum/source, list/speech_args) return speech_args[SPEECH_MESSAGE] @@ -216,7 +220,7 @@ /obj/item/organ/internal/tongue/lizard/New(class, timer, datum/mutation/human/copymut) . = ..() - AddComponent(/datum/component/speechmod, replacements = CONFIG_GET(flag/russian_text_formation) ? russian_speech_replacements : speech_replacements) // SKYRAT EDIT CHANGE - ORIGINAL: AddComponent(/datum/component/speechmod, replacements = speech_replacements) + AddComponent(/datum/component/speechmod, replacements = CONFIG_GET(flag/russian_text_formation) ? russian_speech_replacements : speech_replacements, should_modify_speech = CALLBACK(src, PROC_REF(should_modify_speech))) // SKYRAT EDIT CHANGE - ORIGINAL: AddComponent(/datum/component/speechmod, replacements = speech_replacements, should_modify_speech = CALLBACK(src, PROC_REF(should_modify_speech))) /obj/item/organ/internal/tongue/lizard/silver name = "silver tongue" @@ -563,6 +567,7 @@ GLOBAL_LIST_INIT(english_to_zombie, list()) attack_verb_simple = list("beep", "boop") modifies_speech = TRUE taste_sensitivity = 25 // not as good as an organic tongue + organ_traits = list(TRAIT_SILICON_EMOTES_ALLOWED) voice_filter = "alimiter=0.9,acompressor=threshold=0.2:ratio=20:attack=10:release=50:makeup=2,highpass=f=1000" /obj/item/organ/internal/tongue/robot/could_speak_language(datum/language/language_path) diff --git a/code/modules/transport/elevator/elev_music_zone.dm b/code/modules/transport/elevator/elev_music_zone.dm index 045407fe7819a..8379e742caea5 100644 --- a/code/modules/transport/elevator/elev_music_zone.dm +++ b/code/modules/transport/elevator/elev_music_zone.dm @@ -83,8 +83,6 @@ GLOBAL_LIST_EMPTY(elevator_music) /datum/proximity_monitor/advanced/elevator_music_area/field_turf_uncrossed(mob/exited, turf/old_location, turf/new_location) if (!(exited in tracked_mobs)) return - if (exited.z == host.z && get_dist(exited, host) <= current_range) - return qdel(tracked_mobs[exited]) tracked_mobs -= exited UnregisterSignal(exited, COMSIG_QDELETING) diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index d6917605cf59a..a3e1680a0a6a8 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -139,6 +139,7 @@ #include "dummy_spawn.dm" #include "dynamic_ruleset_sanity.dm" #include "egg_glands.dm" +#include "embedding.dm" #include "emoting.dm" #include "ensure_subtree_operational_datum.dm" #include "explosion_action.dm" diff --git a/code/modules/unit_tests/embedding.dm b/code/modules/unit_tests/embedding.dm new file mode 100644 index 0000000000000..a163a55c36479 --- /dev/null +++ b/code/modules/unit_tests/embedding.dm @@ -0,0 +1,16 @@ +/datum/unit_test/embedding + +/datum/unit_test/embedding/Run() + var/mob/living/carbon/human/victim = allocate(/mob/living/carbon/human/consistent) + var/mob/living/carbon/human/firer = allocate(/mob/living/carbon/human/consistent) + var/obj/projectile/bullet/c38/bullet = new(get_turf(firer)) + bullet.set_embed(bullet.get_embed().generate_with_values(embed_chance = 100)) + TEST_ASSERT_EQUAL(bullet.get_embed().embed_chance, 100, "embed_chance failed to modify") + bullet.preparePixelProjectile(victim, firer) + bullet.fire(get_angle(firer, victim), victim) + // SKYRAT EDIT REMOVAL START - TODO - Figure out why it's not embedding during the unit test and fix it. + var/list/components = victim.GetComponents(/datum/component/embedded) + TEST_ASSERT_EQUAL(components.len, 1, "Projectile with 100% embed chance didn't embed, or embedded multiple times") + var/datum/component/embedded/comp = components[1] + TEST_ASSERT_EQUAL(comp.weapon.get_embed().embed_chance, 100, "embed_chance modification did not transfer to shrapnel") + // SKYRATEDIT REMOVAL END diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm index d0d39227f43b7..1db534c5e076c 100644 --- a/code/modules/unit_tests/fish_unit_tests.dm +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -96,6 +96,12 @@ cloner = new(src) sterile = new(src) +/obj/structure/aquarium/traits/Destroy() + crossbreeder = null + cloner = null + sterile = null + return ..() + /obj/item/fish/testdummy/crossbreeder fish_traits = list(/datum/fish_trait/crossbreeder) @@ -115,6 +121,11 @@ evolve = new(src) evolve_two = new(src) +/obj/structure/aquarium/evolution/Destroy() + evolve = null + evolve_two = null + return ..() + /obj/item/fish/testdummy/evolve compatible_types = list(/obj/item/fish/testdummy/evolve_two) evolution_types = list(/datum/fish_evolution/dummy) @@ -210,5 +221,53 @@ run_loc_floor_bottom_left.ChangeTurf(original_turf_type, original_turf_baseturfs) return ..() +///Check that you can actually raise a chasm crab without errors. +/datum/unit_test/raise_a_chasm_crab + +/datum/unit_test/raise_a_chasm_crab/Run() + var/obj/structure/aquarium/crab/aquarium = allocate(/obj/structure/aquarium/crab) + var/mob/living/basic/mining/lobstrosity/juvenile/lobster = aquarium.crabbie.grow_up(1) //one stands for a second + TEST_ASSERT(lobster, "The test aquarium's chasm crab didn't grow up into a lobstrosity.[aquarium.crabbie ? " The aquarium crab is still here and at about [aquarium.crabbie.maturation]% maturation" : ""]") + allocated |= lobster //make sure it's allocated and thus properly deleted when the test is over + TEST_ASSERT_EQUAL(lobster.loc, get_turf(aquarium), "The lobstrosity didn't spawn on the aquarium's turf") + //While ideally impossible to have all traits because of incompatible ones, I want to be sure they don't error out. + for(var/trait_type in GLOB.fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + trait.apply_to_mob(lobster) + +/obj/structure/aquarium/crab + allow_breeding = TRUE //needed for growing up + ///Our test subject + var/obj/item/fish/chasm_crab/instant_growth/crabbie + +/obj/structure/aquarium/crab/Initialize(mapload) + . = ..() + crabbie = new(src) + +/obj/structure/aquarium/crab/Exited(atom/movable/gone) + . = ..() + if(gone == crabbie) //the fish item is deleted once it grows up + crabbie = null + +/obj/item/fish/chasm_crab/instant_growth + growth_rate = 100 + fish_traits = list() //We don't want to end up applying traits twice on the resulting lobstrosity + +/datum/unit_test/explosive_fishing + +/datum/unit_test/explosive_fishing/Run() + var/datum/fish_source/source = GLOB.preset_fish_sources[/datum/fish_source/unit_test] + source.spawn_reward_from_explosion(run_loc_floor_bottom_left, 1) + if(length(source.fish_table)) + TEST_FAIL("The unit test item wasn't removed/spawned from fish_table during 'spawn_reward_from_explosion'.") + +/datum/fish_source/unit_test + fish_table = list( + /obj/item/wrench = 1, + ) + fish_counts = list( + /obj/item/wrench = 1, + ) + #undef TRAIT_FISH_TESTING diff --git a/code/modules/unit_tests/inhands.dm b/code/modules/unit_tests/inhands.dm index 7edda7858f87c..863bbca65636a 100644 --- a/code/modules/unit_tests/inhands.dm +++ b/code/modules/unit_tests/inhands.dm @@ -32,7 +32,7 @@ var/skip_left var/skip_right - if(initial(item_path.greyscale_colors)) //greyscale stuff has it's own unit test. + if(initial(item_path.greyscale_colors)) //greyscale stuff has its own unit test. skip_left = initial(item_path.greyscale_config_inhand_left) skip_right = initial(item_path.greyscale_config_inhand_right) if(skip_left && skip_right) diff --git a/code/modules/unit_tests/knockoff_component.dm b/code/modules/unit_tests/knockoff_component.dm index 20990a755cd24..60dd9c2225b00 100644 --- a/code/modules/unit_tests/knockoff_component.dm +++ b/code/modules/unit_tests/knockoff_component.dm @@ -79,7 +79,7 @@ shoves_the_guy.disarm(wears_the_glasses) TEST_ASSERT(wears_the_glasses.glasses != glasses, "Dummy kept their glasses, even though were disarm shoved into a wall.") -/// Helper to reset the glasses dummy back to it's original position, clear knockdown, and return glasses (if gone) +/// Helper to reset the glasses dummy back to its original position, clear knockdown, and return glasses (if gone) /datum/unit_test/knockoff_component/proc/set_glasses_wearer(mob/living/carbon/human/wearer, turf/reset_to, obj/item/clothing/glasses/reset_worn) wearer.forceMove(reset_to) wearer.SetKnockdown(0 SECONDS) diff --git a/code/modules/unit_tests/say.dm b/code/modules/unit_tests/say.dm index 6fde4de9dbc2d..375857459258b 100644 --- a/code/modules/unit_tests/say.dm +++ b/code/modules/unit_tests/say.dm @@ -22,6 +22,46 @@ TEST_ASSERT(!expected_mods.len, "Some message mods were expected, but were not returned by get_message_mods: [json_encode(expected_mods)]. Message: [message]") +/// Test to ensure native tongue languages properly impact speech +/datum/unit_test/speech_modifiers + var/mob/living/carbon/human/talking_lizard + var/list/handle_speech_result = null + +/datum/unit_test/speech_modifiers/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + + TEST_ASSERT(speech_args[SPEECH_MESSAGE], "Handle speech signal does not have a message arg") + TEST_ASSERT(speech_args[SPEECH_LANGUAGE], "Handle speech signal does not have a language arg") + + // saving hearing_args directly via handle_speech_result = speech_args won't work since the arg list + // is a temporary variable that gets garbage collected after it's done being used by procs + // therefore we need to create a new list and transfer the args + handle_speech_result = list() + handle_speech_result += speech_args + +/datum/unit_test/speech_modifiers/Run() + talking_lizard = allocate(/mob/living/carbon/human/consistent) + talking_lizard.set_species(/datum/species/lizard) + var/hissed_quote = "SSShe isss ssso sssasssy" + var/unhissed_quote = "She is so sassy" + + RegisterSignal(talking_lizard, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + + // lizard's forked tongue causes hissing when speaking common + talking_lizard.set_active_language(/datum/language/common) + talking_lizard.say(unhissed_quote) + TEST_ASSERT(handle_speech_result, "Handle speech signal was not fired") + TEST_ASSERT_EQUAL(hissed_quote, handle_speech_result[SPEECH_MESSAGE], "Speech modifier test failed: [handle_speech_result[SPEECH_LANGUAGE]] did not equal [hissed_quote] when spoken by a lizard in language [handle_speech_result[SPEECH_LANGUAGE]]") + + handle_speech_result = null + + // lizard's forked tongue does not cause hissing when speaking native draconic + talking_lizard.set_active_language(/datum/language/draconic) + talking_lizard.say(unhissed_quote) + TEST_ASSERT(handle_speech_result, "Handle speech signal was not fired") + TEST_ASSERT_EQUAL(unhissed_quote, handle_speech_result[SPEECH_MESSAGE], "Speech modifier test failed: [handle_speech_result[SPEECH_LANGUAGE]] did not equal [unhissed_quote] when spoken by a lizard in language [handle_speech_result[SPEECH_LANGUAGE]]") + + /// Test to verify COMSIG_MOB_SAY is sent the exact same list as the message args, as they're operated on /datum/unit_test/say_signal @@ -76,7 +116,7 @@ TEST_ASSERT(speech_args[SPEECH_LANGUAGE], "Handle speech signal does not have a language arg") TEST_ASSERT(speech_args[SPEECH_RANGE], "Handle speech signal does not have a range arg") - // saving hearing_args directly via handle_speech_result = speech_args won't work since the arg list + // saving speech_args directly via handle_speech_result = speech_args won't work since the arg list // is a temporary variable that gets garbage collected after it's done being used by procs // therefore we need to create a new list and transfer the args handle_speech_result = list() @@ -126,7 +166,7 @@ var/datum/client_interface/mock_client = new() listener.mock_client = mock_client - RegisterSignal(speaker, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(speaker, COMSIG_MOB_SAY, PROC_REF(handle_speech)) // RegisterSignal(speaker_radio, COMSIG_RADIO_NEW_MESSAGE, PROC_REF(handle_radio_hearing)) RegisterSignal(listener, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) diff --git a/code/modules/unit_tests/screenshots/cardboard_cutouts_nukie_cutout.png b/code/modules/unit_tests/screenshots/cardboard_cutouts_nukie_cutout.png index 6af26b48f78bd..47061552e62a8 100644 Binary files a/code/modules/unit_tests/screenshots/cardboard_cutouts_nukie_cutout.png and b/code/modules/unit_tests/screenshots/cardboard_cutouts_nukie_cutout.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_voidwalker.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_voidwalker.png new file mode 100644 index 0000000000000..08ff8c889d2fe Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_voidwalker.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_voidwalker.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_voidwalker.png new file mode 100644 index 0000000000000..78962671d1192 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_voidwalker.png differ diff --git a/code/modules/unit_tests/worn_icons.dm b/code/modules/unit_tests/worn_icons.dm index 38968a6b0f656..fc5c840b80241 100644 --- a/code/modules/unit_tests/worn_icons.dm +++ b/code/modules/unit_tests/worn_icons.dm @@ -54,65 +54,51 @@ continue var/icon_file //checks against all the default icon locations if one isn't defined. - var/fail_reasons - var/spacer if(cached_slot_flags & ITEM_SLOT_BACK) icon_file = 'icons/mob/clothing/back.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") if(cached_slot_flags & ITEM_SLOT_ID) icon_file = 'icons/mob/clothing/id.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[spacer][item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") if(cached_slot_flags & ITEM_SLOT_GLOVES) icon_file = 'icons/mob/clothing/hands.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[spacer][item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") if(cached_slot_flags & ITEM_SLOT_EYES) icon_file = 'icons/mob/clothing/eyes.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[spacer][item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") if(cached_slot_flags & ITEM_SLOT_EARS) icon_file = 'icons/mob/clothing/ears.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[spacer][item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") if(cached_slot_flags & ITEM_SLOT_NECK) icon_file = 'icons/mob/clothing/neck.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[spacer][item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") if(cached_slot_flags & ITEM_SLOT_MASK) icon_file = 'icons/mob/clothing/mask.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[spacer][item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") if(cached_slot_flags & ITEM_SLOT_BELT) icon_file = 'icons/mob/clothing/belt.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state - fail_reasons += "[spacer][item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" - spacer = "\n\t" - - if(fail_reasons) - TEST_FAIL(fail_reasons) - + TEST_FAIL("[item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]") diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index e17488bc96a6d..bf963587ae1cc 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -78,8 +78,8 @@ var/purchase_log_vis = TRUE // Visible in the purchase log? /// Whether this purchase is restricted or not (VR/Events related) var/restricted = FALSE - /// Can this item be deconstructed to unlock certain techweb research nodes? - var/illegal_tech = TRUE + /// Flags related to if an item will provide illegal tech, or trips contraband detectors once spawned in as an item. + var/uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /// String to be shown instead of the price, e.g for the Random item. var/cost_override_string = "" /// Whether this item locks all other items from being purchased. Used by syndicate balloon and a few other purchases. @@ -142,6 +142,12 @@ spawned_item = spawn_path if(refundable) spawned_item.AddElement(/datum/element/uplink_reimburse, (refund_amount ? refund_amount : cost)) + + + if(uplink_item_flags & SYNDIE_TRIPS_CONTRABAND) // Ignore things that shouldn't be detectable as contraband on the station. + ADD_TRAIT(spawned_item, TRAIT_CONTRABAND, INNATE_TRAIT) + for(var/obj/contained as anything in spawned_item.get_all_contents()) + ADD_TRAIT(contained, TRAIT_CONTRABAND, INNATE_TRAIT) var/mob/living/carbon/human/human_user = user if(istype(human_user) && isitem(spawned_item) && human_user.put_in_hands(spawned_item)) to_chat(human_user, span_boldnotice("[spawned_item] materializes into your hands!")) @@ -154,8 +160,10 @@ /// Can be used to "de-restrict" some items, such as Nukie guns spawning with Syndicate pins /datum/uplink_item/proc/spawn_item_for_generic_use(mob/user) var/atom/movable/created = new item(user.loc) - - if(isgun(created)) + if(uplink_item_flags & SYNDIE_TRIPS_CONTRABAND) // Things that shouldn't be detectable as contraband on the station. + ADD_TRAIT(created, TRAIT_CONTRABAND, INNATE_TRAIT) + for(var/obj/contained as anything in created.get_all_contents()) + ADD_TRAIT(contained, TRAIT_CONTRABAND, INNATE_TRAIT) replace_pin(created) else if(istype(created, /obj/item/storage/toolbox/guncase)) for(var/obj/item/gun/gun in created) @@ -205,7 +213,7 @@ name = "Objective-Specific Equipment" desc = "Equipment necessary for accomplishing specific objectives. If you are seeing this, something has gone wrong." limited_stock = 1 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND purchasable_from = parent_type::purchasable_from & ~UPLINK_SPY // Ditto /datum/uplink_item/special_equipment/purchase(mob/user, datum/component/uplink/U) diff --git a/code/modules/uplink/uplink_items/ammunition.dm b/code/modules/uplink/uplink_items/ammunition.dm index 705204f98a15b..2276485a2b7b5 100644 --- a/code/modules/uplink/uplink_items/ammunition.dm +++ b/code/modules/uplink/uplink_items/ammunition.dm @@ -12,7 +12,7 @@ item = /obj/item/ammo_box/foambox/riot cost = 2 surplus = 0 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND purchasable_from = ~UPLINK_SERIOUS_OPS /datum/uplink_item/ammo/pistol @@ -21,7 +21,7 @@ item = /obj/item/ammo_box/magazine/m9mm cost = 1 purchasable_from = ~UPLINK_ALL_SYNDIE_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/ammo/pistolap name = "9mm Armour Piercing Magazine" @@ -54,4 +54,4 @@ item = /obj/item/ammo_box/a357 cost = 4 purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) //nukies get their own version - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND diff --git a/code/modules/uplink/uplink_items/badass.dm b/code/modules/uplink/uplink_items/badass.dm index da7212ee8fc5b..08cf3affe0741 100644 --- a/code/modules/uplink/uplink_items/badass.dm +++ b/code/modules/uplink/uplink_items/badass.dm @@ -14,7 +14,7 @@ cost = 20 lock_other_purchases = TRUE cant_discount = TRUE - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/balloon/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) . = ..() @@ -36,14 +36,14 @@ item = /obj/item/toy/cards/deck/syndicate cost = 1 surplus = 40 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/syndiecigs name = "Syndicate Smokes" desc = "Strong flavor, dense smoke, infused with omnizine." item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate cost = 2 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/syndiecash name = "Syndicate Briefcase Full of Cash" @@ -53,7 +53,7 @@ item = /obj/item/storage/briefcase/secure/syndie cost = 3 restricted = TRUE - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/costumes/clown name = "Clown Costume" diff --git a/code/modules/uplink/uplink_items/clownops.dm b/code/modules/uplink/uplink_items/clownops.dm index 8d607cb0d5cc0..a5b4b0ec1df96 100644 --- a/code/modules/uplink/uplink_items/clownops.dm +++ b/code/modules/uplink/uplink_items/clownops.dm @@ -35,7 +35,7 @@ cost = 1 //much cheaper for clown ops than for clowns item = /obj/item/firing_pin/clown/ultra purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/weapon_kits/clownopsuperpin name = "Super Ultra Hilarious Firing Pin" @@ -43,7 +43,7 @@ cost = 4 //much cheaper for clown ops than for clowns item = /obj/item/firing_pin/clown/ultra/selfdestruct purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/weapon_kits/foamsmg name = "Toy Submachine Gun" @@ -159,4 +159,4 @@ item = /obj/item/dnainjector/clumsymut cost = 1 purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND diff --git a/code/modules/uplink/uplink_items/dangerous.dm b/code/modules/uplink/uplink_items/dangerous.dm index 11cca6c442661..691f4f2c8f37f 100644 --- a/code/modules/uplink/uplink_items/dangerous.dm +++ b/code/modules/uplink/uplink_items/dangerous.dm @@ -29,7 +29,7 @@ throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." item = /obj/item/storage/box/syndie_kit/throwing_weapons cost = 3 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/dangerous/sword name = "Energy Sword" diff --git a/code/modules/uplink/uplink_items/device_tools.dm b/code/modules/uplink/uplink_items/device_tools.dm index 869d3fd133cdf..c2dd77ae5c127 100644 --- a/code/modules/uplink/uplink_items/device_tools.dm +++ b/code/modules/uplink/uplink_items/device_tools.dm @@ -12,7 +12,7 @@ item = /obj/item/soap/syndie cost = 1 surplus = 50 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/device_tools/surgerybag name = "Syndicate Surgery Duffel Bag" @@ -114,7 +114,7 @@ item = /obj/item/disk/nuclear/fake cost = 1 surplus = 1 - illegal_tech = FALSE + uplink_item_flags = NONE /datum/uplink_item/device_tools/frame name = "F.R.A.M.E. disk" @@ -166,7 +166,7 @@ multitool and combat gloves that are resistant to shocks and heat." item = /obj/item/storage/toolbox/syndicate cost = 1 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/device_tools/rad_laser name = "Radioactive Microlaser" diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index ed19a5dead439..e0f1f59a4bd6c 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -21,7 +21,7 @@ desc = "A box of five (5) counterfeit devices. Each single-use device can hold one normal sized object, and impersonate an ordinary postal envelope addressed to whoever you choose. Optionally, can be rigged to activate held items - great for if you want to surprise someone with a primed grenade!" item = /obj/item/storage/box/syndie_kit/mail_counterfeit cost = 2 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND restricted_roles = list(JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER) surplus = 5 @@ -45,7 +45,7 @@ item = /obj/item/dnainjector/clumsymut cost = 1 restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND surplus = 25 /datum/uplink_item/role_restricted/ancient_jumpsuit @@ -70,7 +70,7 @@ cost = 4 item = /obj/item/firing_pin/clown/ultra restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND surplus = 25 /datum/uplink_item/role_restricted/clownsuperpin @@ -79,7 +79,7 @@ cost = 7 item = /obj/item/firing_pin/clown/ultra/selfdestruct restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND surplus = 25 /datum/uplink_item/role_restricted/syndimmi @@ -148,7 +148,7 @@ /datum/uplink_item/role_restricted/rebarxbowsyndie name = "Syndicate Rebar Crossbow" - desc = "A much more proffessional version of the engineer's bootleg rebar crossbow. 3 shot mag, quicker loading, and better ammo. Owners manual included." + desc = "A much more professional version of the engineer's bootleg rebar crossbow. 3 shot mag, quicker loading, and better ammo. Owners manual included." item = /obj/item/storage/box/syndie_kit/rebarxbowsyndie cost = 10 restricted_roles = list(JOB_STATION_ENGINEER, JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN) @@ -339,7 +339,7 @@ desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ - disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield. It's simple design makes it easy to conceal." + disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield. Its simple design makes it easy to conceal." progression_minimum = 30 MINUTES item = /obj/item/gun/blastcannon cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. diff --git a/code/modules/uplink/uplink_items/nukeops.dm b/code/modules/uplink/uplink_items/nukeops.dm index 94a5e3b3de4fa..b20f3bfee1740 100644 --- a/code/modules/uplink/uplink_items/nukeops.dm +++ b/code/modules/uplink/uplink_items/nukeops.dm @@ -385,7 +385,7 @@ item = /obj/item/ammo_box/magazine/plastikov9mm cost = 1 purchasable_from = UPLINK_SERIOUS_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND // Explosives and Grenades // ~~ Grenades ~~ @@ -394,6 +394,7 @@ cost = 15 surplus = 35 purchasable_from = UPLINK_ALL_SYNDIE_OPS + /datum/uplink_item/explosives/grenades/buzzkill name = "Buzzkill Grenade Box" desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ diff --git a/code/modules/uplink/uplink_items/spy_unique.dm b/code/modules/uplink/uplink_items/spy_unique.dm index b53cf60cefdeb..7d2f5fb34cb84 100644 --- a/code/modules/uplink/uplink_items/spy_unique.dm +++ b/code/modules/uplink/uplink_items/spy_unique.dm @@ -10,12 +10,14 @@ // Cost doesn't really matter since it's free, but it determines which loot pool it falls into. // By default, these fall into easy-medium spy bounty loot pool cost = SPY_LOWER_COST_THRESHOLD + uplink_item_flags = NONE /datum/uplink_item/spy_unique/syndie_bowman name = "Syndicate Bowman" desc = "A bowman headset for members of the Syndicate. Not very conspicuous." item = /obj/item/radio/headset/syndicate/alt cost = 1 + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/spy_unique/megaphone name = "Megaphone" @@ -43,6 +45,7 @@ name = "Kudzu" desc = "A packet of Kudzu - plant and forget, a great distraction." item = /obj/item/seeds/kudzu + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/big_knife name = "Combat Knife" @@ -53,6 +56,7 @@ name = "Switchblade" desc = "A switchblade. Switches between not sharp and sharp." item = /obj/item/switchblade + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/sechud_implant name = "SecHUD Implant" @@ -64,30 +68,35 @@ desc = "A bolt-action rifle, with a scope. Won't jam, either." item = /obj/item/gun/ballistic/rifle/boltaction/prime cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/cycler_shotgun name = "Cycler Shotgun" desc = "A cycler shotgun. It's a shotgun that cycles between two barrels." item = /obj/item/gun/ballistic/shotgun/automatic/dual_tube/deadly cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/bulldog_shotgun name = "Bulldog Shotgun" desc = "A bulldog shotgun. It's a shotgun that shoots bulldogs." item = /obj/item/gun/ballistic/shotgun/bulldog/unrestricted cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/ansem_pistol name = "Ansem Pistol" desc = "A pistol that's really good at making people sleep." item = /obj/item/gun/ballistic/automatic/pistol/clandestine cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/rocket_launcher name = "Rocket Launcher" desc = "A rocket launcher. I would recommend against jumping with it." item = /obj/item/gun/ballistic/rocketlauncher cost = SPY_UPPER_COST_THRESHOLD - 1 // It's a meme item + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/shotgun_ammo name = "Box of Buckshot" @@ -110,17 +119,20 @@ desc = "A stealth belt that lets you sneak behind enemy lines." item = /obj/item/shadowcloak/weaker cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/spy_unique/katana name = "Katana" desc = "A really sharp Katana. Did I mention it's sharp?" item = /obj/item/katana cost = /datum/uplink_item/dangerous/doublesword::cost // Puts it in the same pool as Desword + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/medkit_lite name = "Syndicate First Medic Kit" desc = "A syndicate tactical combat medkit, but only stocked enough to do basic first aid." item = /obj/item/storage/medkit/tactical_lite + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/antistun name = /datum/uplink_item/implants/nuclear/antistun::name diff --git a/code/modules/uplink/uplink_items/stealthy.dm b/code/modules/uplink/uplink_items/stealthy.dm index 898b82d1b6ad2..e4c4de412fb44 100644 --- a/code/modules/uplink/uplink_items/stealthy.dm +++ b/code/modules/uplink/uplink_items/stealthy.dm @@ -4,6 +4,7 @@ /datum/uplink_item/stealthy_weapons category = /datum/uplink_category/stealthy + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/stealthy_weapons/dart_pistol diff --git a/code/modules/uplink/uplink_items/stealthy_tools.dm b/code/modules/uplink/uplink_items/stealthy_tools.dm index a225d04d6674e..40e5df8febdf9 100644 --- a/code/modules/uplink/uplink_items/stealthy_tools.dm +++ b/code/modules/uplink/uplink_items/stealthy_tools.dm @@ -4,6 +4,7 @@ /datum/uplink_item/stealthy_tools category = /datum/uplink_category/stealthy_tools + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/stealthy_tools/agent_card @@ -86,11 +87,11 @@ /datum/uplink_item/stealthy_tools/smugglersatchel name = "Smuggler's Satchel" desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ - your stolen goods. Comes with a crowbar, a floor tile and some contraband inside." + your stolen goods. Comes with a crowbar, a floor tile and some contraband inside. Its contents cannot be detected by contraband scanners." item = /obj/item/storage/backpack/satchel/flat/with_tools cost = 1 surplus = 30 - illegal_tech = FALSE + uplink_item_flags = NONE /datum/uplink_item/stealthy_tools/mail_counterfeit name = "GLA Brand Mail Counterfeit Device" diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 30e01b3219edc..2cd85f786fc48 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -49,7 +49,7 @@ initialize_controller_action_type(/datum/action/vehicle/sealed/thank, VEHICLE_CONTROL_KIDNAPPED) /obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M) - if(ishuman(M)) + if(ishuman(M) && driver_amount() < max_drivers) var/mob/living/carbon/human/H = M if(is_clown_job(H.mind?.assigned_role) || !enforce_clown_role) //Ensures only clowns can drive the car. (Including more at once) add_control_flags(H, VEHICLE_CONTROL_DRIVE) diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index d35df3126636e..d28b510328a98 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -304,7 +304,6 @@ QDEL_NULL(ui_view) QDEL_NULL(trackers) QDEL_NULL(chassis_camera) - QDEL_NULL(wires) GLOB.mechas_list -= src //global mech list for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diff --git a/code/modules/vehicles/mecha/combat/honker.dm b/code/modules/vehicles/mecha/combat/honker.dm index 83934244638aa..39c5ef1d0e8c4 100644 --- a/code/modules/vehicles/mecha/combat/honker.dm +++ b/code/modules/vehicles/mecha/combat/honker.dm @@ -29,6 +29,10 @@ fire = 100 acid = 100 +/obj/vehicle/sealed/mecha/honker/Initialize(mapload, built_manually) + . = ..() + AddElementTrait(TRAIT_WADDLING, REF(src), /datum/element/waddling) + /obj/vehicle/sealed/mecha/honker/play_stepsound() if(squeak) playsound(src, SFX_CLOWN_STEP, 70, 1) diff --git a/code/modules/vehicles/mecha/combat/justice.dm b/code/modules/vehicles/mecha/combat/justice.dm index babdb8af17b99..e99632394a1b7 100644 --- a/code/modules/vehicles/mecha/combat/justice.dm +++ b/code/modules/vehicles/mecha/combat/justice.dm @@ -57,8 +57,9 @@ /obj/vehicle/sealed/mecha/justice/update_icon_state() . = ..() - if(LAZYLEN(occupants)) - icon_state = weapons_safety ? "[base_icon_state]" : "[base_icon_state]-angry" + if(!LAZYLEN(occupants)) + return + icon_state = weapons_safety ? "[base_icon_state]" : "[base_icon_state]-angry" if(!has_gravity()) icon_state = "[icon_state]-fly" diff --git a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm index 2df188c36d98d..a5e4fed6bdf68 100644 --- a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm +++ b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm @@ -148,11 +148,12 @@ return FALSE if(equipment_slot == MECHA_WEAPON) if(attach_right) - if(mech.equip_by_category[MECHA_R_ARM] && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) + // We need to check for length in case a mech doesn't support any arm attachments at all + if((mech.equip_by_category[MECHA_R_ARM] == mech.max_equip_by_category[MECHA_R_ARM]) && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) to_chat(user, span_warning("\The [mech]'s right arm is full![mech.equip_by_category[MECHA_L_ARM] ? "" : " Try left arm!"]")) return FALSE else - if(mech.equip_by_category[MECHA_L_ARM] && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) + if((mech.equip_by_category[MECHA_L_ARM] == mech.max_equip_by_category[MECHA_L_ARM]) && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) to_chat(user, span_warning("\The [mech]'s left arm is full![mech.equip_by_category[MECHA_R_ARM] ? "" : " Try right arm!"]")) return FALSE return TRUE diff --git a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm index f7a866bdffe90..95def3ef9b07c 100644 --- a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm @@ -117,12 +117,12 @@ drill_mob(target, source) playsound(src,'sound/weapons/drill.ogg',40,TRUE) else if(isobj(target)) - var/obj/O = target - if(istype(O, /obj/item/boulder)) - var/obj/item/boulder/nu_boulder = O + var/obj/obj_target = target + if(istype(obj_target, /obj/item/boulder)) + var/obj/item/boulder/nu_boulder = obj_target nu_boulder.manual_process(src, source) else - O.take_damage(15, BRUTE, 0, FALSE, get_dir(chassis, target)) + obj_target.take_damage(15, BRUTE, 0, FALSE, get_dir(chassis, target)) playsound(src,'sound/weapons/drill.ogg', 40, TRUE) // If we caused a qdel drilling the target, we can stop drilling them. @@ -149,24 +149,21 @@ to_chat(user, "[icon2html(src, user)][span_danger("[src] is too durable to drill through.")]") /turf/closed/mineral/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill, mob/user) - for(var/turf/closed/mineral/M in range(drill.chassis,1)) - if(get_dir(drill.chassis,M)&drill.chassis.dir) - M.gets_drilled() + for(var/turf/closed/mineral/wall in range(drill.chassis, 1)) + if(get_dir(drill.chassis, wall) & drill.chassis.dir) + wall.gets_drilled() drill.log_message("[user] drilled through [src]", LOG_MECHA) drill.move_ores() /turf/open/misc/asteroid/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) - for(var/turf/open/misc/asteroid/M in range(1, drill.chassis)) - if((get_dir(drill.chassis,M) & drill.chassis.dir) && !M.dug) - M.getDug() + for(var/turf/open/misc/asteroid/floor in range(1, drill.chassis)) + if((get_dir(drill.chassis, floor) & drill.chassis.dir) && !floor.dug) + floor.getDug() drill.log_message("Drilled through [src]", LOG_MECHA) drill.move_ores() - /obj/item/mecha_parts/mecha_equipment/drill/proc/move_ores() - if(istype(chassis, /obj/vehicle/sealed/mecha/ripley) && (locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in chassis.flat_equipment)) - var/obj/vehicle/sealed/mecha/ripley/R = chassis //we could assume that it's a ripley because it has a clamp, but that's ~unsafe~ and ~bad practice~ - R.collect_ore() + chassis.collect_ore() /obj/item/mecha_parts/mecha_equipment/drill/proc/drill_mob(mob/living/target, mob/living/user) target.visible_message(span_danger("[chassis] is drilling [target] with [src]!"), \ @@ -179,21 +176,24 @@ else target.investigate_log("has been gibbed by [src] (attached to [chassis]).", INVESTIGATE_DEATHS) target.gib(DROP_ALL_REMAINS) + return + + //drill makes a hole + var/def_zone = target.get_random_valid_zone(BODY_ZONE_CHEST) + var/obj/item/bodypart/target_part = target.get_bodypart(def_zone) + var/blocked = target.run_armor_check(def_zone, MELEE) + target.apply_damage(10, BRUTE, def_zone, blocked) + + //blood splatters + var/splatter_dir = get_dir(chassis, target) + if(isalien(target)) + new /obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter(target.drop_location(), splatter_dir) else - //drill makes a hole - var/obj/item/bodypart/target_part = target.get_bodypart(target.get_random_valid_zone(BODY_ZONE_CHEST)) - target.apply_damage(10, BRUTE, BODY_ZONE_CHEST, target.run_armor_check(target_part, MELEE)) - - //blood splatters - var/splatter_dir = get_dir(chassis, target) - if(isalien(target)) - new /obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter(target.drop_location(), splatter_dir) - else - new /obj/effect/temp_visual/dir_setting/bloodsplatter(target.drop_location(), splatter_dir) + new /obj/effect/temp_visual/dir_setting/bloodsplatter(target.drop_location(), splatter_dir) - //organs go everywhere - if(target_part && prob(10 * drill_level)) - target_part.dismember(BRUTE) + //organs go everywhere + if(target_part && blocked < 100 && prob(10 * drill_level)) + target_part.dismember(BRUTE) /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill name = "diamond-tipped exosuit drill" @@ -205,7 +205,6 @@ force = 15 toolspeed = 0.7 - /obj/item/mecha_parts/mecha_equipment/mining_scanner name = "exosuit mining scanner" desc = "Equipment for working exosuits. It will automatically check surrounding rock for useful minerals." diff --git a/code/modules/vehicles/mecha/mech_melee_attack.dm b/code/modules/vehicles/mecha/mech_melee_attack.dm index 655a2f3533936..6fe64c879fa71 100644 --- a/code/modules/vehicles/mecha/mech_melee_attack.dm +++ b/code/modules/vehicles/mecha/mech_melee_attack.dm @@ -12,11 +12,11 @@ SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_MECH, mecha_attacker, user) if(!isnull(user)) log_combat(user, src, "attacked", mecha_attacker, "(COMBAT MODE: [uppertext(user?.combat_mode)] (DAMTYPE: [uppertext(mecha_attacker.damtype)])") - return 0 + return /turf/closed/wall/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) if(!user.combat_mode) - return 0 + return mecha_attacker.do_attack_animation(src) switch(mecha_attacker.damtype) @@ -25,7 +25,7 @@ if(BURN) playsound(src, mecha_attacker.burn_attack_sound, 50, TRUE) else - return 0 + return mecha_attacker.visible_message(span_danger("[mecha_attacker] hits [src]!"), span_danger("You hit [src]!"), null, COMBAT_MESSAGE_RANGE) if(prob(hardness + mecha_attacker.force) && mecha_attacker.force > 20) dismantle_wall(1) @@ -46,14 +46,14 @@ if(BURN) playsound(src, 'sound/items/welder.ogg', 50, TRUE) else - return 0 + return mecha_attacker.visible_message(span_danger("[mecha_attacker] hits [src]!"), span_danger("You hit [src]!"), null, COMBAT_MESSAGE_RANGE) ..() return take_damage(mecha_attacker.force * 3, mecha_attacker.damtype, "melee", FALSE, get_dir(src, mecha_attacker)) // multiplied by 3 so we can hit objs hard but not be overpowered against mobs. /obj/machinery/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) if(!user.combat_mode) - return 0 + return mecha_attacker.do_attack_animation(src) switch(mecha_attacker.damtype) @@ -62,14 +62,14 @@ if(BURN) playsound(src, mecha_attacker.burn_attack_sound, 50, TRUE) else - return 0 + return mecha_attacker.visible_message(span_danger("[mecha_attacker] hits [src]!"), span_danger("You hit [src]!"), null, COMBAT_MESSAGE_RANGE) ..() return take_damage(mecha_attacker.force * 3, mecha_attacker.damtype, "melee", FALSE, get_dir(src, mecha_attacker)) // multiplied by 3 so we can hit objs hard but not be overpowered against mobs. /obj/structure/window/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) if(!can_be_reached()) - return 0 + return return ..() /mob/living/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) @@ -79,43 +79,46 @@ visible_message(span_warning("[mecha_attacker] pushes [src] out of the way."), \ span_warning("[mecha_attacker] pushes you out of the way."), span_hear("You hear aggressive shuffling!"), 5, list(mecha_attacker)) to_chat(mecha_attacker, span_danger("You push [src] out of the way.")) - return 0 + return if(!isnull(user) && HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, span_warning("You don't want to harm other living beings!")) - return 0 + return mecha_attacker.do_attack_animation(src) if(mecha_attacker.damtype == BRUTE) step_away(src, mecha_attacker, 15) - var/obj/item/bodypart/selected_zone = get_bodypart(pick(BODY_ZONE_CHEST, BODY_ZONE_CHEST, BODY_ZONE_CHEST, BODY_ZONE_HEAD)) - var/dmg = rand(mecha_attacker.force * 0.5, mecha_attacker.force) switch(mecha_attacker.damtype) if(BRUTE) if(mecha_attacker.force > 35) // durand and other heavy mechas mecha_attacker.melee_attack_effect(src, heavy = TRUE) else if(mecha_attacker.force > 20 && !IsKnockdown()) // lightweight mechas like gygax mecha_attacker.melee_attack_effect(src, heavy = FALSE) - if(selected_zone) - selected_zone.receive_damage(dmg, 0, updating_health = TRUE) - else - apply_damage(dmg, BRUTE) playsound(src, mecha_attacker.brute_attack_sound, 50, TRUE) if(FIRE) - if(selected_zone) - selected_zone.receive_damage(0, dmg, updating_health = TRUE) - else - apply_damage(dmg, BURN) playsound(src, mecha_attacker.burn_attack_sound, 50, TRUE) if(TOX) playsound(src, mecha_attacker.tox_attack_sound, 50, TRUE) - if((reagents.get_reagent_amount(/datum/reagent/cryptobiolin) + mecha_attacker.force) < mecha_attacker.force*2) - reagents.add_reagent(/datum/reagent/cryptobiolin, mecha_attacker.force/2) - if((reagents.get_reagent_amount(/datum/reagent/toxin) + mecha_attacker.force) < mecha_attacker.force*2) - reagents.add_reagent(/datum/reagent/toxin, mecha_attacker.force/2.5) + var/bio_armor = (100 - run_armor_check(attack_flag = BIO, silent = TRUE)) / 100 + if((reagents.get_reagent_amount(/datum/reagent/cryptobiolin) + mecha_attacker.force) < mecha_attacker.force * 2) + reagents.add_reagent(/datum/reagent/cryptobiolin, mecha_attacker.force / 2 * bio_armor) + if((reagents.get_reagent_amount(/datum/reagent/toxin) + mecha_attacker.force) < mecha_attacker.force * 2) + reagents.add_reagent(/datum/reagent/toxin, mecha_attacker.force / 2.5 * bio_armor) else - return 0 - . = dmg + return + + var/damage = rand(mecha_attacker.force * 0.5, mecha_attacker.force) + if (mecha_attacker.damtype == BRUTE || mecha_attacker.damtype == FIRE) + var/def_zone = get_random_valid_zone(user.zone_selected, even_weights = TRUE) + var/zone_readable = parse_zone_with_bodypart(def_zone) + apply_damage(damage, mecha_attacker.damtype, def_zone, run_armor_check( + def_zone = def_zone, + attack_flag = MELEE, + absorb_text = span_notice("Your armor has protected your [zone_readable]!"), + soften_text = span_warning("Your armor has softened a hit to your [zone_readable]!") + )) + visible_message(span_danger("[mecha_attacker.name] [mecha_attacker.attack_verbs[1]] [src]!"), \ span_userdanger("[mecha_attacker.name] [mecha_attacker.attack_verbs[2]] you!"), span_hear("You hear a sickening sound of flesh [mecha_attacker.attack_verbs[3]] flesh!"), COMBAT_MESSAGE_RANGE, list(mecha_attacker)) to_chat(mecha_attacker, span_danger("You [mecha_attacker.attack_verbs[1]] [src]!")) ..() + return damage diff --git a/code/modules/vehicles/mecha/mecha_mob_interaction.dm b/code/modules/vehicles/mecha/mecha_mob_interaction.dm index e72d5505cb6fc..7a9141e80c1a7 100644 --- a/code/modules/vehicles/mecha/mecha_mob_interaction.dm +++ b/code/modules/vehicles/mecha/mecha_mob_interaction.dm @@ -41,7 +41,6 @@ return FALSE if(ishuman(newoccupant) && !Adjacent(newoccupant)) return FALSE - add_occupant(newoccupant) mecha_flags &= ~PANEL_OPEN //Close panel if open newoccupant.forceMove(src) newoccupant.update_mouse_pointer() diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 08edbf7886799..82146976ad1f8 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -212,14 +212,13 @@ board_item_type = /obj/item/melee/skateboard/holyboard instability = 3 icon_state = "hoverboard_holy" -/obj/vehicle/ridden/scooter/skateboard/hoverboard/holyboarded/post_buckle_mob(mob/living/M) - M.AddComponent(/datum/component/anti_magic, MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY) - return ..() -/obj/vehicle/ridden/scooter/skateboard/hoverboard/holyboarded/post_unbuckle_mob(mob/living/M) - if(!has_buckled_mobs()) - qdel (M.GetComponent(/datum/component/anti_magic, MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY)) - return ..() +/obj/vehicle/ridden/scooter/skateboard/hoverboard/make_ridable() + AddElement(/datum/element/ridable, /datum/component/riding/vehicle/scooter/skateboard/hover/holy) + +/obj/vehicle/ridden/scooter/skateboard/hoverboard/holyboarded/Initialize(mapload) + . = ..() + AddComponent(/datum/component/anti_magic, MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY) /obj/vehicle/ridden/scooter/skateboard/hoverboard/admin name = "\improper Board Of Directors" diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 30b9ed537153f..99df961c5ad34 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -283,7 +283,6 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) register_context() /obj/machinery/vending/Destroy() - QDEL_NULL(wires) QDEL_NULL(coin) QDEL_NULL(bill) QDEL_NULL(sec_radio) @@ -397,7 +396,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) return /** - * Build the inventory of the vending machine from it's product and record lists + * Build the inventory of the vending machine from its product and record lists * * This builds up a full set of /datum/data/vending_products from the product list of the vending machine type * Arguments: @@ -833,7 +832,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) * * turf/target: The turf to fall onto. Cannot be null. * * damage: The raw numerical damage to do by default. * * chance_to_crit: The percent chance of a critical hit occuring. Default: 0 - * * forced_crit_case: If given a value from crushing.dm, [target] and it's contents will always be hit with that specific critical hit. Default: null + * * forced_crit_case: If given a value from crushing.dm, [target] and its contents will always be hit with that specific critical hit. Default: null * * paralyze_time: The time, in deciseconds, a given mob/living will be paralyzed for if crushed. * * crush_dir: The direction the crush is coming from. Default: dir of src to [target]. * * damage_type: The type of damage to do. Default: BRUTE @@ -1257,6 +1256,15 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) ref = REF(record), ) + var/atom/printed = record.product_path + // If it's not GAGS and has no innate colors we have to care about, we use DMIcon + if(ispath(printed, /atom) \ + && (!initial(printed.greyscale_config) || !initial(printed.greyscale_colors)) \ + && !initial(printed.color) \ + ) + static_record["icon"] = initial(printed.icon) + static_record["icon_state"] = initial(printed.icon_state) + var/list/category = record.category || default_category if (!isnull(category)) if (!(category["name"] in categories)) @@ -1445,6 +1453,8 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) var/obj/item/vended_item if(!LAZYLEN(item_record.returned_products)) //always give out free returned stuff first, e.g. to avoid walling a traitor objective in a bag behind paid items vended_item = new item_record.product_path(get_turf(src)) + if(vended_item.type in contraband) + ADD_TRAIT(vended_item, TRAIT_CONTRABAND, INNATE_TRAIT) on_dispense(vended_item) else vended_item = LAZYACCESS(item_record.returned_products, LAZYLEN(item_record.returned_products)) //first in, last out diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index 17555e66a879b..8b9f704569545 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -1,3 +1,222 @@ + +GLOBAL_LIST_INIT(autodrobe_costumes_items, list( + /obj/item/clothing/under/costume/gladiator = 3, + /obj/item/clothing/head/helmet/gladiator = 3, + /obj/item/clothing/suit/toggle/labcoat/mad = 3, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 3, + /obj/item/clothing/head/bio_hood/plague = 3, + /obj/item/clothing/mask/gas/plaguedoctor = 3, + /obj/item/clothing/under/rank/medical/doctor/nurse = 3, + /obj/item/clothing/suit/toggle/owlwings = 1, + /obj/item/clothing/under/costume/owl = 1, + /obj/item/clothing/mask/gas/owl_mask = 1, + /obj/item/clothing/suit/toggle/owlwings/griffinwings = 1, + /obj/item/clothing/under/costume/griffin = 1, + /obj/item/clothing/shoes/griffin = 1, + /obj/item/clothing/head/costume/griffin = 1, + /obj/item/clothing/under/costume/pirate = 3, + /obj/item/clothing/suit/costume/pirate = 3, + /obj/item/clothing/head/costume/pirate = 3, + /obj/item/clothing/head/costume/pirate/bandana = 3, + /obj/item/clothing/shoes/pirate = 3, + /obj/item/clothing/under/costume/soviet = 3, + /obj/item/clothing/head/costume/ushanka = 3, + /obj/item/clothing/accessory/vest_sheriff = 1, + /obj/item/clothing/head/cowboy/brown = 3, + /obj/item/clothing/head/cowboy/red = 3, + /obj/item/clothing/head/cowboy/black = 3, + /obj/item/clothing/head/costume/sombrero/green = 3, + /obj/item/clothing/suit/costume/poncho = 3, + /obj/item/clothing/suit/costume/poncho/green = 3, + /obj/item/clothing/suit/costume/poncho/red = 3, + /obj/item/clothing/suit/costume/snowman = 3, + /obj/item/clothing/head/costume/snowman = 3, + /obj/item/clothing/under/costume/referee = 1, + /obj/item/clothing/mask/whistle = 1, + /obj/item/storage/backpack/henchmen = 5, + /obj/item/clothing/under/costume/henchmen = 5, + /obj/item/clothing/head/costume/jackbros = 5, + /obj/item/clothing/under/costume/jackbros = 5, + /obj/item/clothing/under/costume/deckers = 5, + /obj/item/clothing/under/costume/sailor = 3, + /obj/item/clothing/head/costume/delinquent = 1, + /obj/item/clothing/suit/costume/dracula = 3, + /obj/item/clothing/under/costume/draculass = 3, + /obj/item/clothing/suit/costume/gothcoat = 3, + /obj/item/clothing/glasses/eyepatch = 3, + /obj/item/clothing/glasses/eyepatch/medical = 3, + /obj/item/clothing/under/costume/gi = 4, + /obj/item/clothing/head/soft/propeller_hat = 3, + /obj/item/clothing/neck/bowtie/rainbow = 3, +)) + +GLOBAL_LIST_INIT(autodrobe_supernatural_items, list( + /obj/item/clothing/suit/costume/imperium_monk = 3, + /obj/item/clothing/suit/chaplainsuit/holidaypriest = 3, + /obj/item/clothing/suit/chaplainsuit/habit = 3, + /obj/item/clothing/head/chaplain/habit_veil = 3, + /obj/item/clothing/suit/chaplainsuit/whiterobe = 3, + /obj/item/clothing/head/wizard/marisa/fake = 3, + /obj/item/clothing/suit/wizrobe/marisa/fake = 3, + /obj/item/clothing/head/costume/witchwig = 3, + /obj/item/staff/broom = 3, + /obj/item/clothing/suit/wizrobe/fake = 3, + /obj/item/clothing/head/wizard/fake = 3, + /obj/item/staff = 3, + /obj/item/clothing/head/costume/shrine_wig = 1, + /obj/item/clothing/suit/costume/shrine_maiden = 1, + /obj/item/gohei = 3, +)) + +GLOBAL_LIST_INIT(autodrobe_entretainers_items, list( + /obj/item/clothing/under/rank/civilian/clown/blue = 3, + /obj/item/clothing/under/rank/civilian/clown/green = 3, + /obj/item/clothing/under/rank/civilian/clown/yellow = 3, + /obj/item/clothing/under/rank/civilian/clown/orange = 3, + /obj/item/clothing/under/rank/civilian/clown/purple = 3, + /obj/item/clothing/mask/gas/sexyclown = 3, + /obj/item/clothing/under/rank/civilian/clown/sexy = 3, + /obj/item/clothing/head/beret = 6, + /obj/item/clothing/mask/gas/sexymime = 3, + /obj/item/clothing/under/rank/civilian/mime/sexy = 3, + /obj/item/clothing/under/rank/civilian/mime/skirt = 3, + /obj/item/clothing/under/rank/civilian/clown/jester = 3, + /obj/item/clothing/head/costume/jester = 3, + /obj/item/clothing/shoes/jester_shoes = 3, + /obj/item/clothing/under/costume/villain = 3, + /obj/item/clothing/suit/costume/joker = 3, + /obj/item/clothing/under/costume/joker = 3, + /obj/item/clothing/shoes/singery = 1, + /obj/item/clothing/under/costume/singer/yellow = 1, + /obj/item/clothing/shoes/singerb = 1, + /obj/item/clothing/under/costume/singer/blue = 1, + /obj/item/clothing/head/costume/cueball = 1, +)) + +GLOBAL_LIST_INIT(autodrobe_fancy_items, list( + /obj/item/clothing/under/rank/captain/suit = 1, + /obj/item/clothing/under/rank/captain/suit/skirt = 1, + /obj/item/clothing/under/costume/schoolgirl = 3, + /obj/item/clothing/under/costume/schoolgirl/red = 3, + /obj/item/clothing/under/costume/schoolgirl/green = 3, + /obj/item/clothing/under/costume/schoolgirl/orange = 3, + /obj/item/clothing/under/dress/skirt = 3, + /obj/item/clothing/neck/tie = 3, + /obj/item/clothing/head/hats/tophat = 3, + /obj/item/clothing/under/costume/kilt = 3, + /obj/item/clothing/glasses/monocle = 3, + /obj/item/clothing/head/hats/bowler = 3, + /obj/item/cane = 3, + /obj/item/clothing/under/dress/sundress = 3, + /obj/item/clothing/suit/costume/whitedress = 3, + /obj/item/clothing/suit/costume/changshan_red = 3, + /obj/item/clothing/suit/costume/changshan_blue = 3, + /obj/item/clothing/suit/costume/cheongsam_red = 3, + /obj/item/clothing/suit/costume/cheongsam_blue = 3, +)) + +GLOBAL_LIST_INIT(autodrobe_animal_items, list( + /obj/item/clothing/head/costume/kitty = 3, + /obj/item/clothing/head/costume/rabbitears = 3, + /obj/item/clothing/suit/costume/chickensuit = 3, + /obj/item/clothing/head/costume/chicken = 3, + /obj/item/clothing/suit/hooded/carp_costume = 3, + /obj/item/clothing/suit/hooded/ian_costume = 3, + /obj/item/clothing/suit/hooded/bee_costume = 3, + /obj/item/clothing/mask/animal/small/bat = 3, + /obj/item/clothing/mask/animal/small/bee = 3, + /obj/item/clothing/mask/animal/small/bear = 3, + /obj/item/clothing/mask/animal/small/raven = 3, + /obj/item/clothing/mask/animal/small/jackal = 3, + /obj/item/clothing/mask/animal/small/fox = 3, + /obj/item/clothing/mask/animal/frog = 3, + /obj/item/clothing/mask/animal/small/rat = 3, + /obj/item/clothing/mask/animal/pig = 3, + /obj/item/clothing/mask/animal/cowmask = 3, + /obj/item/clothing/mask/animal/horsehead = 3, +)) + +GLOBAL_LIST_INIT(autodrobe_service_items, list( + /obj/item/clothing/under/costume/buttondown/slacks/service = 3, + /obj/item/clothing/under/costume/buttondown/skirt/service = 3, + /obj/item/clothing/neck/bowtie = 6, + /obj/item/clothing/accessory/waistcoat = 4, + /obj/item/clothing/under/suit/waiter = 4, + /obj/item/clothing/suit/apron = 3, + /obj/item/clothing/suit/apron/overalls = 3, + /obj/item/clothing/head/costume/maidheadband = 3, + /obj/item/clothing/under/costume/maid = 3, + /obj/item/clothing/gloves/maid = 3, + /obj/item/clothing/neck/maid = 3, + /obj/item/clothing/under/rank/civilian/janitor/maid = 3, + /obj/item/clothing/accessory/maidapron = 3, +)) + +GLOBAL_LIST_INIT(autodrobe_other_items, list( + /obj/item/clothing/head/wig/random = 6, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/suit/jacket/miljacket = 3, + /obj/item/clothing/shoes/jackboots = 3, + /obj/item/clothing/mask/fakemoustache = 3, + /obj/item/clothing/glasses/cold= 3, + /obj/item/clothing/glasses/heat= 3, + /obj/item/clothing/mask/gas/cyborg = 3, + /obj/item/clothing/mask/joy = 3, + /obj/item/clothing/mask/gas/prop = 4, + /obj/item/clothing/mask/gas/atmosprop = 3, + /obj/item/clothing/mask/animal/small/tribal = 1, +)) + +GLOBAL_LIST_INIT(autodrobe_premium_items, list( + /obj/item/clothing/suit/costume/pirate/captain = 2, + /obj/item/clothing/head/costume/pirate/captain = 2, + /obj/item/clothing/under/rank/civilian/clown/rainbow = 1, + /obj/item/clothing/head/helmet/roman/fake = 3, + /obj/item/clothing/head/helmet/roman/legionnaire/fake = 3, + /obj/item/clothing/under/costume/roman = 3, + /obj/item/clothing/shoes/roman = 3, + /obj/item/shield/roman/fake = 3, + /obj/item/clothing/suit/chaplainsuit/clownpriest = 1, + /obj/item/clothing/head/chaplain/clownmitre = 1, + /obj/item/skub = 1, + /obj/item/clothing/suit/hooded/mysticrobe = 1, + /obj/item/clothing/under/dress/wedding_dress = 1, + /obj/item/clothing/under/suit/tuxedo = 1, + /obj/item/clothing/head/costume/weddingveil = 1, + /obj/item/storage/belt/fannypack/cummerbund = 1, + /obj/item/clothing/suit/costume/drfreeze_coat = 1, + /obj/item/clothing/under/costume/drfreeze = 1, + /obj/item/clothing/head/costume/drfreezehat = 1, +)) + +GLOBAL_LIST_INIT(autodrobe_contraband_items, list( + /obj/item/clothing/glasses/blindfold = 1, + /obj/item/clothing/glasses/sunglasses/gar = 2, + /obj/item/clothing/head/costume/powdered_wig = 1, + /obj/item/clothing/head/costume/tv_head = 1, + /obj/item/clothing/mask/muzzle = 2, + /obj/item/clothing/shoes/ducky_shoes = 1, + /obj/item/clothing/shoes/clown_shoes/meown_shoes = 1, + /obj/item/clothing/shoes/clown_shoes/moffers = 1, + /obj/item/clothing/suit/costume/judgerobe = 1, + /obj/item/clothing/head/costume/lobsterhat = 1, + /obj/item/clothing/under/costume/lobster = 1, + /obj/item/gun/magic/wand/nothing = 2, + /obj/item/storage/box/tape_wizard = 1, +)) + +GLOBAL_VAR_INIT(all_autodrobe_items, (autodrobe_costumes_items +\ + autodrobe_costumes_items +\ + autodrobe_supernatural_items +\ + autodrobe_entretainers_items +\ + autodrobe_fancy_items +\ + autodrobe_animal_items +\ + autodrobe_service_items +\ + autodrobe_other_items +\ + autodrobe_premium_items +\ + autodrobe_contraband_items \ +)) + /obj/machinery/vending/autodrobe name = "\improper AutoDrobe" desc = "A vending machine for costumes." @@ -7,244 +226,63 @@ req_access = list(ACCESS_THEATRE) product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!" vend_reply = "Thank you for using AutoDrobe!" + + /** + * Categories are filled in Initialize! + */ + + refill_canister = /obj/item/vending_refill/autodrobe + default_price = PAYCHECK_CREW * 0.8 //Default of 40. + extra_price = PAYCHECK_COMMAND + payment_department = ACCOUNT_SRV + light_mask="theater-light-mask" + +/obj/machinery/vending/autodrobe/Initialize(mapload) product_categories = list( list( "name" = "Costumes", "icon" = "mask", - "products" = list( - /obj/item/clothing/under/costume/gladiator = 1, - /obj/item/clothing/head/helmet/gladiator = 1, - /obj/item/clothing/suit/toggle/labcoat/mad = 1, - /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, - /obj/item/clothing/head/bio_hood/plague = 1, - /obj/item/clothing/mask/gas/plaguedoctor = 1, - /obj/item/clothing/under/rank/medical/doctor/nurse = 1, - /obj/item/clothing/suit/toggle/owlwings = 1, - /obj/item/clothing/under/costume/owl = 1, - /obj/item/clothing/mask/gas/owl_mask = 1, - /obj/item/clothing/suit/toggle/owlwings/griffinwings = 1, - /obj/item/clothing/under/costume/griffin = 1, - /obj/item/clothing/shoes/griffin = 1, - /obj/item/clothing/head/costume/griffin = 1, - /obj/item/clothing/under/costume/pirate = 1, - /obj/item/clothing/suit/costume/pirate = 1, - /obj/item/clothing/head/costume/pirate = 1, - /obj/item/clothing/head/costume/pirate/bandana = 1, - /obj/item/clothing/shoes/pirate = 1, - /obj/item/clothing/under/costume/soviet = 1, - /obj/item/clothing/head/costume/ushanka = 1, - /obj/item/clothing/accessory/vest_sheriff =1, - /obj/item/clothing/head/cowboy/brown =1, - /obj/item/clothing/head/cowboy/red =1, - /obj/item/clothing/head/cowboy/black =1, - /obj/item/clothing/head/costume/sombrero/green = 1, - /obj/item/clothing/suit/costume/poncho = 1, - /obj/item/clothing/suit/costume/poncho/green = 1, - /obj/item/clothing/suit/costume/poncho/red = 1, - /obj/item/clothing/suit/costume/snowman = 1, - /obj/item/clothing/head/costume/snowman = 1, - /obj/item/clothing/under/costume/referee = 1, - /obj/item/clothing/mask/whistle = 1, - /obj/item/storage/backpack/henchmen = 5, - /obj/item/clothing/under/costume/henchmen = 5, - /obj/item/clothing/head/costume/jackbros = 5, - /obj/item/clothing/under/costume/jackbros = 5, - /obj/item/clothing/under/costume/deckers = 5, - /obj/item/clothing/under/costume/sailor = 1, - /obj/item/clothing/head/costume/delinquent = 1, - /obj/item/clothing/suit/costume/dracula = 1, - /obj/item/clothing/under/costume/draculass = 1, - /obj/item/clothing/suit/costume/gothcoat = 1, - /obj/item/clothing/glasses/eyepatch = 1, - /obj/item/clothing/glasses/eyepatch/medical = 1, - /obj/item/clothing/under/costume/gi = 4, - /obj/item/clothing/head/soft/propeller_hat = 1, - /obj/item/clothing/neck/bowtie/rainbow = 1, - ), + "products" = GLOB.autodrobe_costumes_items ), list( "name" = "Supernatural", "icon" = "hand-sparkles", - "products" = list( - /obj/item/clothing/suit/costume/imperium_monk = 1, - /obj/item/clothing/suit/chaplainsuit/holidaypriest = 1, - /obj/item/clothing/suit/chaplainsuit/habit = 1, - /obj/item/clothing/head/chaplain/habit_veil = 1, - /obj/item/clothing/suit/chaplainsuit/whiterobe = 1, - /obj/item/clothing/head/wizard/marisa/fake = 1, - /obj/item/clothing/suit/wizrobe/marisa/fake = 1, - /obj/item/clothing/head/costume/witchwig = 1, - /obj/item/staff/broom = 1, - /obj/item/clothing/suit/wizrobe/fake = 1, - /obj/item/clothing/head/wizard/fake = 1, - /obj/item/staff = 3, - /obj/item/clothing/head/costume/shrine_wig = 1, - /obj/item/clothing/suit/costume/shrine_maiden = 1, - /obj/item/gohei = 1, - ), + "products" = GLOB.autodrobe_supernatural_items ), list( "name" = "Entertainers", "icon" = "masks-theater", - "products" = list( - /obj/item/clothing/under/rank/civilian/clown/blue = 1, - /obj/item/clothing/under/rank/civilian/clown/green = 1, - /obj/item/clothing/under/rank/civilian/clown/yellow = 1, - /obj/item/clothing/under/rank/civilian/clown/orange = 1, - /obj/item/clothing/under/rank/civilian/clown/purple = 1, - /obj/item/clothing/mask/gas/sexyclown = 1, - /obj/item/clothing/under/rank/civilian/clown/sexy = 1, - /obj/item/clothing/head/beret = 6, - /obj/item/clothing/mask/gas/sexymime = 1, - /obj/item/clothing/under/rank/civilian/mime/sexy = 1, - /obj/item/clothing/under/rank/civilian/mime/skirt = 1, - /obj/item/clothing/under/rank/civilian/clown/jester = 1, - /obj/item/clothing/head/costume/jester = 1, - /obj/item/clothing/shoes/jester_shoes = 1, - /obj/item/clothing/under/costume/villain = 1, - /obj/item/clothing/suit/costume/joker = 1, - /obj/item/clothing/under/costume/joker = 1, - /obj/item/clothing/shoes/singery = 1, - /obj/item/clothing/under/costume/singer/yellow = 1, - /obj/item/clothing/shoes/singerb = 1, - /obj/item/clothing/under/costume/singer/blue = 1, - /obj/item/clothing/head/costume/cueball = 1, - ), + "products" = GLOB.autodrobe_entretainers_items ), list( "name" = "Fancy", "icon" = "user-tie", - "products" = list( - /obj/item/clothing/under/rank/captain/suit = 1, - /obj/item/clothing/under/rank/captain/suit/skirt = 1, - /obj/item/clothing/under/costume/schoolgirl = 1, - /obj/item/clothing/under/costume/schoolgirl/red = 1, - /obj/item/clothing/under/costume/schoolgirl/green = 1, - /obj/item/clothing/under/costume/schoolgirl/orange = 1, - /obj/item/clothing/under/dress/skirt = 1, - /obj/item/clothing/neck/tie = 3, - /obj/item/clothing/head/hats/tophat = 1, - /obj/item/clothing/under/costume/kilt = 1, - /obj/item/clothing/glasses/monocle =1, - /obj/item/clothing/head/hats/bowler = 1, - /obj/item/cane = 1, - /obj/item/clothing/under/dress/sundress = 1, - /obj/item/clothing/suit/costume/whitedress = 1, - /obj/item/clothing/suit/costume/changshan_red = 1, - /obj/item/clothing/suit/costume/changshan_blue = 1, - /obj/item/clothing/suit/costume/cheongsam_red = 1, - /obj/item/clothing/suit/costume/cheongsam_blue = 1, - ), + "products" = GLOB.autodrobe_fancy_items ), list( "name" = "Animals", "icon" = "paw", - "products" = list( - /obj/item/clothing/head/costume/kitty = 1, - /obj/item/clothing/head/costume/rabbitears =1, - /obj/item/clothing/suit/costume/chickensuit = 1, - /obj/item/clothing/head/costume/chicken = 1, - /obj/item/clothing/suit/hooded/carp_costume = 1, - /obj/item/clothing/suit/hooded/ian_costume = 1, - /obj/item/clothing/suit/hooded/bee_costume = 1, - /obj/item/clothing/mask/animal/small/bat = 1, - /obj/item/clothing/mask/animal/small/bee = 1, - /obj/item/clothing/mask/animal/small/bear = 1, - /obj/item/clothing/mask/animal/small/raven = 1, - /obj/item/clothing/mask/animal/small/jackal = 1, - /obj/item/clothing/mask/animal/small/fox = 1, - /obj/item/clothing/mask/animal/frog = 1, - /obj/item/clothing/mask/animal/small/rat = 1, - /obj/item/clothing/mask/animal/pig = 1, - /obj/item/clothing/mask/animal/cowmask = 1, - /obj/item/clothing/mask/animal/horsehead = 1, - ), + "products" = GLOB.autodrobe_animal_items ), list( "name" = "Service", "icon" = "kitchen-set", - "products" = list( - /obj/item/clothing/under/costume/buttondown/slacks/service = 1, - /obj/item/clothing/under/costume/buttondown/skirt/service = 1, - /obj/item/clothing/neck/bowtie = 2, - /obj/item/clothing/accessory/waistcoat = 1, - /obj/item/clothing/under/suit/waiter = 1, - /obj/item/clothing/suit/apron = 1, - /obj/item/clothing/suit/apron/overalls = 1, - /obj/item/clothing/head/costume/maidheadband = 1, - /obj/item/clothing/under/costume/maid = 1, - /obj/item/clothing/gloves/maid = 1, - /obj/item/clothing/neck/maid = 1, - /obj/item/clothing/under/rank/civilian/janitor/maid = 1, - /obj/item/clothing/accessory/maidapron = 1, - ), + "products" = GLOB.autodrobe_service_items ), list( "name" = "Other", "icon" = "star", - "products" = list( - /obj/item/clothing/head/wig/random = 3, - /obj/item/clothing/head/flatcap = 1, - /obj/item/clothing/suit/jacket/miljacket = 1, - /obj/item/clothing/shoes/jackboots = 1, - /obj/item/clothing/mask/fakemoustache = 1, - /obj/item/clothing/glasses/cold=1, - /obj/item/clothing/glasses/heat=1, - /obj/item/clothing/mask/gas/cyborg = 1, - /obj/item/clothing/mask/joy = 1, - /obj/item/clothing/mask/gas/prop = 4, - /obj/item/clothing/mask/gas/atmosprop = 3, - /obj/item/clothing/mask/animal/small/tribal = 1, - ), + "products" = GLOB.autodrobe_other_items ), ) + premium = GLOB.autodrobe_premium_items + contraband = GLOB.autodrobe_contraband_items - contraband = list( - /obj/item/clothing/glasses/blindfold = 1, - /obj/item/clothing/glasses/sunglasses/gar = 2, - /obj/item/clothing/head/costume/powdered_wig = 1, - /obj/item/clothing/head/costume/tv_head = 1, - /obj/item/clothing/mask/muzzle = 2, - /obj/item/clothing/shoes/ducky_shoes = 1, - /obj/item/clothing/shoes/clown_shoes/meown_shoes = 1, - /obj/item/clothing/shoes/clown_shoes/moffers = 1, - /obj/item/clothing/suit/costume/judgerobe = 1, - /obj/item/clothing/head/costume/lobsterhat = 1, - /obj/item/clothing/under/costume/lobster = 1, - /obj/item/gun/magic/wand/nothing = 2, - /obj/item/storage/box/tape_wizard = 1, - ) - premium = list( - /obj/item/clothing/suit/costume/pirate/captain = 2, - /obj/item/clothing/head/costume/pirate/captain = 2, - /obj/item/clothing/under/rank/civilian/clown/rainbow = 1, - /obj/item/clothing/head/helmet/roman/fake = 1, - /obj/item/clothing/head/helmet/roman/legionnaire/fake = 1, - /obj/item/clothing/under/costume/roman = 1, - /obj/item/clothing/shoes/roman = 1, - /obj/item/shield/roman/fake = 1, - /obj/item/clothing/suit/chaplainsuit/clownpriest = 1, - /obj/item/clothing/head/chaplain/clownmitre = 1, - /obj/item/skub = 1, - /obj/item/clothing/suit/hooded/mysticrobe = 1, - /obj/item/clothing/under/dress/wedding_dress = 1, - /obj/item/clothing/under/suit/tuxedo = 1, - /obj/item/clothing/head/costume/weddingveil = 1, - /obj/item/storage/belt/fannypack/cummerbund = 1, - /obj/item/clothing/suit/costume/drfreeze_coat = 1, - /obj/item/clothing/under/costume/drfreeze = 1, - /obj/item/clothing/head/costume/drfreezehat = 1, - ) - refill_canister = /obj/item/vending_refill/autodrobe - default_price = PAYCHECK_CREW * 0.8 //Default of 40. - extra_price = PAYCHECK_COMMAND - payment_department = ACCOUNT_SRV - light_mask="theater-light-mask" + . = ..() /obj/machinery/vending/autodrobe/all_access desc = "A vending machine for costumes. This model appears to have no access restrictions." req_access = null - /obj/item/vending_refill/autodrobe machine_name = "AutoDrobe" icon_state = "refill_costume" diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 7f1d97ad5b86f..373ba700570f5 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -33,11 +33,11 @@ /obj/item/clothing/head/hats/tophat = 3, /obj/item/clothing/head/fedora = 3, /obj/item/clothing/head/hats/bowler = 3, - /obj/item/clothing/head/cowboy/white = 1, - /obj/item/clothing/head/cowboy/grey = 1, - /obj/item/clothing/head/costume/sombrero/green = 1, - /obj/item/clothing/head/costume/nightcap/blue = 2, - /obj/item/clothing/head/costume/nightcap/red = 2, + /obj/item/clothing/head/cowboy/white = 3, + /obj/item/clothing/head/cowboy/grey = 3, + /obj/item/clothing/head/costume/sombrero/green = 3, + /obj/item/clothing/head/costume/nightcap/blue = 3, + /obj/item/clothing/head/costume/nightcap/red = 3, ), ), @@ -49,12 +49,12 @@ /obj/item/clothing/accessory/waistcoat = 4, /obj/item/clothing/suit/toggle/suspenders = 4, /obj/item/clothing/neck/tie/horrible = 3, - /obj/item/clothing/glasses/regular = 2, - /obj/item/clothing/glasses/regular/jamjar = 1, - /obj/item/clothing/glasses/orange = 1, - /obj/item/clothing/glasses/red = 1, - /obj/item/clothing/glasses/monocle = 1, - /obj/item/clothing/gloves/fingerless = 2, + /obj/item/clothing/glasses/regular = 3, + /obj/item/clothing/glasses/regular/jamjar = 3, + /obj/item/clothing/glasses/orange = 3, + /obj/item/clothing/glasses/red = 3, + /obj/item/clothing/glasses/monocle = 3, + /obj/item/clothing/gloves/fingerless = 3, /obj/item/storage/belt/fannypack = 3, /obj/item/storage/belt/fannypack/blue = 3, /obj/item/storage/belt/fannypack/red = 3, @@ -72,19 +72,19 @@ /obj/item/clothing/under/costume/buttondown/slacks = 4, /obj/item/clothing/under/costume/buttondown/shorts = 4, /obj/item/clothing/under/costume/buttondown/skirt = 4, - /obj/item/clothing/under/dress/sundress = 2, - /obj/item/clothing/under/dress/tango = 2, + /obj/item/clothing/under/dress/sundress = 3, + /obj/item/clothing/under/dress/tango = 3, /obj/item/clothing/under/dress/skirt/plaid = 4, /obj/item/clothing/under/dress/skirt/turtleskirt = 4, - /obj/item/clothing/under/misc/overalls = 2, - /obj/item/clothing/under/pants/camo = 2, - /obj/item/clothing/under/pants/track = 2, - /obj/item/clothing/under/costume/kilt = 1, - /obj/item/clothing/under/dress/striped = 1, - /obj/item/clothing/under/dress/sailor = 1, - /obj/item/clothing/under/dress/eveninggown = 1, - /obj/item/clothing/under/misc/pj/blue = 2, - /obj/item/clothing/under/misc/pj/red = 2, + /obj/item/clothing/under/misc/overalls = 3, + /obj/item/clothing/under/pants/camo = 3, + /obj/item/clothing/under/pants/track = 3, + /obj/item/clothing/under/costume/kilt = 3, + /obj/item/clothing/under/dress/striped = 3, + /obj/item/clothing/under/dress/sailor = 3, + /obj/item/clothing/under/dress/eveninggown = 3, + /obj/item/clothing/under/misc/pj/blue = 3, + /obj/item/clothing/under/misc/pj/red = 3, ), ), @@ -96,29 +96,29 @@ /obj/item/clothing/suit/jacket/oversized = 4, /obj/item/clothing/suit/jacket/fancy = 4, /obj/item/clothing/suit/toggle/lawyer/greyscale = 4, - /obj/item/clothing/suit/hooded/wintercoat/custom = 2, - /obj/item/clothing/suit/hooded/wintercoat = 2, - /obj/item/clothing/under/suit/navy = 1, - /obj/item/clothing/under/suit/black_really = 1, - /obj/item/clothing/under/suit/burgundy = 1, - /obj/item/clothing/under/suit/charcoal = 1, - /obj/item/clothing/under/suit/white = 1, + /obj/item/clothing/suit/hooded/wintercoat/custom = 3, + /obj/item/clothing/suit/hooded/wintercoat = 3, + /obj/item/clothing/under/suit/navy = 3, + /obj/item/clothing/under/suit/black_really = 3, + /obj/item/clothing/under/suit/burgundy = 3, + /obj/item/clothing/under/suit/charcoal = 3, + /obj/item/clothing/under/suit/white = 3, /obj/item/clothing/under/costume/buttondown/slacks/service = 4, /obj/item/clothing/under/costume/buttondown/skirt/service = 4, - /obj/item/clothing/suit/jacket/bomber = 2, - /obj/item/clothing/suit/jacket/puffer/vest = 2, - /obj/item/clothing/suit/jacket/puffer = 2, - /obj/item/clothing/suit/jacket/letterman = 2, - /obj/item/clothing/suit/jacket/letterman_red = 2, + /obj/item/clothing/suit/jacket/bomber = 3, + /obj/item/clothing/suit/jacket/puffer/vest = 3, + /obj/item/clothing/suit/jacket/puffer = 3, + /obj/item/clothing/suit/jacket/letterman = 3, + /obj/item/clothing/suit/jacket/letterman_red = 3, /obj/item/clothing/suit/costume/hawaiian = 4, - /obj/item/clothing/suit/costume/poncho = 1, - /obj/item/clothing/under/dress/skirt = 2, - /obj/item/clothing/under/suit/white/skirt = 2, + /obj/item/clothing/suit/costume/poncho = 3, + /obj/item/clothing/under/dress/skirt = 3, + /obj/item/clothing/under/suit/white/skirt = 3, /obj/item/clothing/under/rank/captain/suit/skirt = 2, /obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt = 2, /obj/item/clothing/under/rank/civilian/purple_bartender = 2, - /obj/item/clothing/suit/jacket/miljacket = 1, - /obj/item/clothing/suit/apron/overalls = 2, + /obj/item/clothing/suit/jacket/miljacket = 3, + /obj/item/clothing/suit/apron/overalls = 3, /obj/item/clothing/suit/costume/wellworn_shirt = 2, /obj/item/clothing/suit/costume/wellworn_shirt/graphic = 2, /obj/item/clothing/suit/costume/wellworn_shirt/graphic/ian = 2, @@ -137,13 +137,13 @@ "products" = list( /obj/item/clothing/shoes/sneakers/black = 4, /obj/item/clothing/shoes/sneakers/white = 4, - /obj/item/clothing/shoes/sandal = 2, - /obj/item/clothing/shoes/laceup = 2, + /obj/item/clothing/shoes/sandal = 3, + /obj/item/clothing/shoes/laceup = 3, /obj/item/clothing/shoes/winterboots = 2, /obj/item/clothing/shoes/glow = 2, - /obj/item/clothing/shoes/cowboy = 2, - /obj/item/clothing/shoes/cowboy/white = 2, - /obj/item/clothing/shoes/cowboy/black = 2, + /obj/item/clothing/shoes/cowboy = 3, + /obj/item/clothing/shoes/cowboy/white = 3, + /obj/item/clothing/shoes/cowboy/black = 3, ), ), @@ -165,6 +165,14 @@ /obj/item/clothing/mask/kitsune = 3, /obj/item/clothing/mask/rebellion = 6, /obj/item/clothing/suit/costume/wellworn_shirt/graphic/ian = 1, + /obj/item/clothing/head/costume/hairpin = 2, + /obj/item/clothing/under/costume/yukata = 2, + /obj/item/clothing/under/costume/yukata/green = 2, + /obj/item/clothing/under/costume/yukata/white = 2, + /obj/item/clothing/under/costume/kimono = 2, + /obj/item/clothing/under/costume/kimono/red = 2, + /obj/item/clothing/under/costume/kimono/purple = 2, + /obj/item/clothing/shoes/sandal/alt = 4, /obj/item/clothing/suit/costume/irs = 20, /obj/item/clothing/head/costume/irs = 20, /obj/item/clothing/head/costume/tmc = 20, @@ -190,25 +198,25 @@ ) contraband = list( - /obj/item/clothing/under/syndicate/tacticool = 1, - /obj/item/clothing/under/syndicate/tacticool/skirt = 1, - /obj/item/clothing/mask/balaclava = 1, - /obj/item/clothing/head/costume/ushanka = 1, - /obj/item/clothing/under/costume/soviet = 1, + /obj/item/clothing/under/syndicate/tacticool = 2, + /obj/item/clothing/under/syndicate/tacticool/skirt = 2, + /obj/item/clothing/mask/balaclava = 3, + /obj/item/clothing/head/costume/ushanka = 3, + /obj/item/clothing/under/costume/soviet = 3, /obj/item/storage/belt/fannypack/black = 2, - /obj/item/clothing/suit/jacket/letterman_syndie = 1, - /obj/item/clothing/under/costume/jabroni = 1, - /obj/item/clothing/under/costume/geisha = 1, - /obj/item/clothing/under/rank/centcom/officer/replica = 1, - /obj/item/clothing/under/rank/centcom/officer_skirt/replica = 1, + /obj/item/clothing/suit/jacket/letterman_syndie = 3, + /obj/item/clothing/under/costume/jabroni = 3, + /obj/item/clothing/under/costume/geisha = 3, + /obj/item/clothing/under/rank/centcom/officer/replica = 2, + /obj/item/clothing/under/rank/centcom/officer_skirt/replica = 2, ) - premium = list(/obj/item/clothing/under/suit/checkered = 1, - /obj/item/clothing/head/costume/mailman = 1, - /obj/item/clothing/under/misc/mailman = 1, - /obj/item/clothing/suit/jacket/leather = 1, - /obj/item/clothing/suit/jacket/leather/biker = 1, + premium = list(/obj/item/clothing/under/suit/checkered = 3, + /obj/item/clothing/head/costume/mailman = 3, + /obj/item/clothing/under/misc/mailman = 3, + /obj/item/clothing/suit/jacket/leather = 3, + /obj/item/clothing/suit/jacket/leather/biker = 3, /obj/item/clothing/neck/necklace/dope = 3, - /obj/item/clothing/suit/jacket/letterman_nanotrasen = 1, + /obj/item/clothing/suit/jacket/letterman_nanotrasen = 3, /obj/item/clothing/under/costume/swagoutfit = 1, /obj/item/clothing/shoes/swagshoes = 1, /obj/item/instrument/piano_synth/headphones/spacepods = 1, diff --git a/code/modules/vending/magivend.dm b/code/modules/vending/magivend.dm index ef89e916bf30b..51aac98fdfa8e 100644 --- a/code/modules/vending/magivend.dm +++ b/code/modules/vending/magivend.dm @@ -21,7 +21,7 @@ contraband = list(/obj/item/reagent_containers/cup/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave armor_type = /datum/armor/vending_magivend resistance_flags = FIRE_PROOF - default_price = 0 //Just in case, since it's primary use is storage. + default_price = 0 //Just in case, since its primary use is storage. extra_price = PAYCHECK_COMMAND payment_department = ACCOUNT_SRV light_mask = "magivend-light-mask" diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index ebecb03e1302c..7bed3ccec0645 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -17,6 +17,7 @@ /obj/item/flashlight/seclite = 4, /obj/item/restraints/legcuffs/bola/energy = 7, /obj/item/clothing/gloves/tackler = 5, + /obj/item/holosign_creator/security = 2, ) contraband = list( /obj/item/clothing/glasses/sunglasses = 2, @@ -26,6 +27,7 @@ /obj/item/storage/belt/security/webbing = 5, /obj/item/coin/antagtoken = 1, /obj/item/clothing/head/helmet/blueshirt = 1, + /obj/item/clothing/gloves/color/black/security/blu = 1, /obj/item/clothing/suit/armor/vest/blueshirt = 1, /obj/item/grenade/stingbang = 1, /obj/item/watertank/pepperspray = 2, diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index e111c0b914163..21b1dc96296f8 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -51,10 +51,11 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) /obj/item/clothing/under/rank/security/officer/grey = 3, /obj/item/clothing/under/pants/slacks = 3, /obj/item/clothing/under/rank/security/officer/blueshirt = 3, + /obj/item/clothing/gloves/color/black/security/blu = 3, /obj/item/clothing/suit/armor/vest/secjacket = 3, /obj/item/clothing/suit/hooded/wintercoat/security = 3, /obj/item/clothing/suit/armor/vest = 3, - /obj/item/clothing/gloves/color/black = 3, + /obj/item/clothing/gloves/color/black/security = 3, /obj/item/clothing/shoes/jackboots/sec = 3, /obj/item/storage/backpack/security = 3, /obj/item/storage/backpack/satchel/sec = 3, @@ -185,12 +186,14 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) /obj/item/clothing/head/beret/cargo = 3, /obj/item/clothing/mask/bandana/striped/cargo = 3, /obj/item/clothing/head/soft = 3, + /obj/item/clothing/head/utility/hardhat/orange = 3, /obj/item/clothing/under/rank/cargo/tech = 3, /obj/item/clothing/under/rank/cargo/tech/skirt = 3, /obj/item/clothing/under/rank/cargo/tech/alt = 3, /obj/item/clothing/under/rank/cargo/tech/skirt/alt = 3, /obj/item/clothing/suit/toggle/cargo_tech = 3, /obj/item/clothing/suit/hooded/wintercoat/cargo = 3, + /obj/item/clothing/suit/hazardvest = 3, /obj/item/clothing/gloves/fingerless = 3, /obj/item/clothing/shoes/sneakers/black = 3, /obj/item/storage/backpack = 3, @@ -201,13 +204,13 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) /obj/item/storage/bag/mail = 3, /obj/item/radio/headset/headset_cargo = 3, /obj/item/clothing/accessory/pocketprotector = 3, - /obj/item/clothing/head/utility/hardhat/orange = 3, - /obj/item/clothing/suit/hazardvest = 3, ) premium = list( /obj/item/clothing/head/costume/mailman = 1, /obj/item/clothing/under/misc/mailman = 1, /obj/item/clothing/under/rank/cargo/miner = 3, + /obj/item/clothing/under/rank/cargo/miner/lavaland = 3, + /obj/item/clothing/under/rank/cargo/bitrunner = 3, ) refill_canister = /obj/item/vending_refill/wardrobe/cargo_wardrobe payment_department = ACCOUNT_CAR @@ -345,20 +348,19 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) product_ads = "Any day above ground is a good one!;My day starts when yours ends!;And they call this a dying business!;See you when you're dead!" vend_reply = "Don't forget your \"Buy one get one free\" burial deal!" products = list( - /obj/item/cautery/cruel = 1, - /obj/item/clothing/gloves/latex/coroner = 1, /obj/item/clothing/head/utility/surgerycap/black = 1, /obj/item/clothing/head/beret/medical/coroner = 1, //Bubbers edit: Coroner beret /obj/item/clothing/mask/surgical = 1, - /obj/item/clothing/shoes/sneakers/black = 1, /obj/item/clothing/suit/apron/surgical = 1, /obj/item/clothing/suit/hooded/wintercoat/medical/coroner = 1, /obj/item/clothing/suit/toggle/labcoat/coroner = 1, /obj/item/clothing/under/rank/medical/coroner = 1, /obj/item/clothing/under/rank/medical/coroner/skirt = 1, /obj/item/clothing/under/rank/medical/scrubs/coroner = 1, + /obj/item/clothing/shoes/sneakers/black = 1, + /obj/item/clothing/gloves/latex/coroner = 1, + /obj/item/cautery/cruel = 1, /obj/item/hemostat/cruel = 1, - /obj/item/radio/headset/headset_srvmed = 2, /obj/item/retractor/cruel = 1, /obj/item/scalpel/cruel = 1, /obj/item/storage/backpack/coroner = 1, @@ -366,6 +368,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) /obj/item/storage/backpack/messenger/coroner = 1, /obj/item/storage/backpack/satchel/coroner = 1, /obj/item/storage/box/bodybags = 3, + /obj/item/radio/headset/headset_srvmed = 2, /obj/item/toy/crayon/white = 2, ) contraband = list( diff --git a/config/game_options.txt b/config/game_options.txt index c008ddf7ecaee..47eb0a82f374d 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -100,6 +100,11 @@ TRAITOR_SCALING_COEFF 6 BROTHER_SCALING_COEFF 6 CHANGELING_SCALING_COEFF 6 +## Global scaling for traitor progression. +## Higher values will accelerate traitor progression, while lower values will decrease it. +## Bypasses an upper limit of 1 MINUTE +#TRAITOR_SCALING_MULTIPLIER 1 + ## Variables calculate how number of open security officer positions will scale to population. ## Used as (Officers = Population / Coeff) ## Set to 0 to disable scaling and use default numbers instead. diff --git a/cutter_templates/bitmask/cardinal_32x32.toml b/cutter_templates/bitmask/cardinal_32x32.toml index 9d3d4097e78ce..987e9126b2d8b 100644 --- a/cutter_templates/bitmask/cardinal_32x32.toml +++ b/cutter_templates/bitmask/cardinal_32x32.toml @@ -10,7 +10,7 @@ smooth_diagonally = false x = 32 y = 32 -# Output our stuff at the same level as it's input +# Output our stuff at the same level as its input [output_icon_pos] x = 0 y = 0 diff --git a/html/changelogs/AutoChangeLog-pr-1502.yml b/html/changelogs/AutoChangeLog-pr-1502.yml deleted file mode 100644 index 0f2dfa98cb933..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1502.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - bugfix: "Fixes atmos dying" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1525.yml b/html/changelogs/AutoChangeLog-pr-1525.yml deleted file mode 100644 index a469c0d079c91..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1525.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "codehonky" -delete-after: True -changes: - - rscadd: "Added new bluespace experi-scanner." - - image: "Added a simple reskin of the experi-scanner for the bluespace variant." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1539.yml b/html/changelogs/AutoChangeLog-pr-1539.yml deleted file mode 100644 index a6bdbda9cbea0..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1539.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - balance: "You only get 1 corrupt organ when sacrificed, instead of 2 to 4." - - qol: "Removes some corruption options because they are extremely annoying / don't even work properly." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1544.yml b/html/changelogs/AutoChangeLog-pr-1544.yml deleted file mode 100644 index 782a7a1440e06..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1544.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscadd: "Adds Big Bertha, a unique one-of-a-kind two-handed shield for security that blocks literally everything. It spawns in the Armory." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1557.yml b/html/changelogs/AutoChangeLog-pr-1557.yml deleted file mode 100644 index 1704c77dad9d0..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1557.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscadd: "Adds Changeling Zombies to the game. This is meant to replace RNA zombies and Tumor Zombies as a balanced, updated, and functional alternative." - - rscadd: "Being husked/absorbed from a regular Changeling turns you into an unaligned/unaffiliated changeling zombie. Note that this also cures your husk infection once turned." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1599.yml b/html/changelogs/AutoChangeLog-pr-1599.yml deleted file mode 100644 index ba4f1a992d3fe..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1599.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscadd: "Adds Antag Tickets, a new currency that determines who gets antagonist roles." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1607.yml b/html/changelogs/AutoChangeLog-pr-1607.yml deleted file mode 100644 index d2ebcc442c868..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1607.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscadd: "Overhauls loot that can spawn in abandoned crates, maintenance, and trash piles." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1608.yml b/html/changelogs/AutoChangeLog-pr-1608.yml deleted file mode 100644 index 63a27acf8be0e..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1608.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - qol: "Map Voting Occurs when the shuttle is called and cannot be recalled." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1613.yml b/html/changelogs/AutoChangeLog-pr-1613.yml deleted file mode 100644 index 77deece641696..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1613.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - balance: "Wearing the tinfoil hat no longer gives you a phobia of conspiracy theories. Tinfoil hat is no longer single use and will work indefinitely until removed." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1615.yml b/html/changelogs/AutoChangeLog-pr-1615.yml deleted file mode 100644 index 5c301052148a1..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1615.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - bugfix: "Captain office access can't magically grant you AA anymore" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1616.yml b/html/changelogs/AutoChangeLog-pr-1616.yml deleted file mode 100644 index 43fd505ba7dfb..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1616.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - balance: "Only melee weapons can disembowel/dismember via damage via wounds. This does not affect other sources of disembowel/dismember." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1617.yml b/html/changelogs/AutoChangeLog-pr-1617.yml deleted file mode 100644 index 75a36dc5f16c3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1617.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - balance: "Significantly nerfs all arrows across the board." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1625.yml b/html/changelogs/AutoChangeLog-pr-1625.yml deleted file mode 100644 index 5d80b155f6726..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1625.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "GoreDem" -delete-after: True -changes: - - rscadd: "buffed bulldog back to a usable state" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1638.yml b/html/changelogs/AutoChangeLog-pr-1638.yml deleted file mode 100644 index 13f573cb3333a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1638.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - balance: "Adds Monkeydone, a chemical that transforms monkeys into humans. It can be made by mixing 10u Unstable Mutagen + 10u Mutadone + 1u Salt to make 1u Monkeydone." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1648.yml b/html/changelogs/AutoChangeLog-pr-1648.yml deleted file mode 100644 index d81e78c5884f1..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1648.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Sprites: axietheaxolotl Code: VioletN" -delete-after: True -changes: - - image: "Added three new selectable \"rat queen\" skins to the royal rat." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1649.yml b/html/changelogs/AutoChangeLog-pr-1649.yml deleted file mode 100644 index ac238067f71ac..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1649.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscdel: "Removes the hardcoded 5 second emote delay for all emotes. Most emotes now have a cooldown of 0.8 seconds, with some being increased based on what /tg/ set." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1653.yml b/html/changelogs/AutoChangeLog-pr-1653.yml deleted file mode 100644 index a5d6f31d4ab7d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1653.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nevimer" -delete-after: True -changes: - - bugfix: "Storyteller should only take two minutes instead of five to spawn events." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1657.yml b/html/changelogs/AutoChangeLog-pr-1657.yml deleted file mode 100644 index 0f27731d7c95c..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1657.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "pixelkitty286" -delete-after: True -changes: - - rscdel: "dogborgs (they are quadrupeds now)" - - bugfix: "Verbs not being available to both tall and dog borgs to rest" - - code_imp: "See refactor. Removed dogborg procs(commented them out)" - - refactor: "small quadrupeds, large quadrupeds, and Tall cyborgs resting verb and how it populates" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1658.yml b/html/changelogs/AutoChangeLog-pr-1658.yml deleted file mode 100644 index 55f72e69d627c..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1658.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nevimer" -delete-after: True -changes: - - balance: "chest dismember only removes one organ per occurance" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1659.yml b/html/changelogs/AutoChangeLog-pr-1659.yml deleted file mode 100644 index 20b4aa537a4ac..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1659.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscadd: "Fixes some Moonstation bugs and expands maintenance a little." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1660.yml b/html/changelogs/AutoChangeLog-pr-1660.yml deleted file mode 100644 index 4234678d1c5ed..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1660.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "xXPawnStarrXx" -delete-after: True -changes: - - rscadd: "Added new survival capsules themed for medical trauma and geyser harvesting." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1665.yml b/html/changelogs/AutoChangeLog-pr-1665.yml deleted file mode 100644 index 2df88b3b374f3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1665.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - bugfix: "Sex Barrier is now back. Scene? Scene? Scene? Scene? Scene?" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1667.yml b/html/changelogs/AutoChangeLog-pr-1667.yml deleted file mode 100644 index c7777e88e5aed..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1667.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nevimer" -delete-after: True -changes: - - qol: "allows the ghost to be voted for at any pop" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1670.yml b/html/changelogs/AutoChangeLog-pr-1670.yml deleted file mode 100644 index ca06734c1e2af..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1670.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "Added some unused clothing items to the MultiSec Vendor. Perhaps you can find them if you're savvy enough with a Multitool." - - bugfix: "Fixed a few missing items not being in the MultiSec Vendor. Also removed a duplicate item." - - image: "New Multisec Vendor sprite. Two-Face edition." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1673.yml b/html/changelogs/AutoChangeLog-pr-1673.yml deleted file mode 100644 index a4eee49786c5f..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1673.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "The Outlast items are no longer stuck in Loadout hell, yay!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1674.yml b/html/changelogs/AutoChangeLog-pr-1674.yml deleted file mode 100644 index 372a58f593a62..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1674.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Icarus-The-Sun" -delete-after: True -changes: - - bugfix: "Prevents Departmental Guards from rolling antagonist roles." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1676.yml b/html/changelogs/AutoChangeLog-pr-1676.yml deleted file mode 100644 index babbbaedff31f..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1676.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Rathen Ivanov" -delete-after: True -changes: - - rscadd: "Added Employee Of The Month Special \"Chief Screws Plush\" for your use and carrying!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1679.yml b/html/changelogs/AutoChangeLog-pr-1679.yml deleted file mode 100644 index 6f3b7e07cf928..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1679.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "projectkepler-ru" -delete-after: True -changes: - - rscadd: "Maint area somewhat expanded, blueshield has an office, QM has a bedroom. Bitrunning den their own area" - - bugfix: "Paddy not being present on this map" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1680.yml b/html/changelogs/AutoChangeLog-pr-1680.yml deleted file mode 100644 index 1983742013002..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1680.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Shroopy" -delete-after: True -changes: - - bugfix: "fixed a copy-paste error in character_directory.dm" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1681.yml b/html/changelogs/AutoChangeLog-pr-1681.yml deleted file mode 100644 index 79d266978821b..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1681.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "Someone finally repaired the damn pocket watches (may need to check your loadouts)" - - spellcheck: "Made a few loadout item names headline consistent." - - code_imp: "Moved ckey locked loadout items to their own folder." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1682.yml b/html/changelogs/AutoChangeLog-pr-1682.yml deleted file mode 100644 index 65dcaff72c403..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1682.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "The Rat Monarch gender reveal party has been cancelled." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1684.yml b/html/changelogs/AutoChangeLog-pr-1684.yml deleted file mode 100644 index fc8df6021b837..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1684.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - balance: "Bloodsuckers can only reach 560 max blood via drinking blood bags or the blood reagent, and bloodsuckers above level 4 will get 30% less blood and be disgusted by it." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1685.yml b/html/changelogs/AutoChangeLog-pr-1685.yml deleted file mode 100644 index eb2ef440bf0d1..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1685.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - rscadd: "New DeForest heavy medical kit, technician satchel" - - rscadd: "Security medic can now order a single heavy medical kit using departmental order" - - bugfix: "Hyposprays that are supposed to have a starting vial now actually start with the vial" - - bugfix: "Combat hypospray correctly has the combat cooldown" - - bugfix: "Hypospray switches vials as expected" - - bugfix: "Piercing hypospray now has inject/spray delay" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1686.yml b/html/changelogs/AutoChangeLog-pr-1686.yml deleted file mode 100644 index 888b9c647948d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1686.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "StrangeWeirdKitten" -delete-after: True -changes: - - rscadd: "Adds two new quirks: Dominant Aura and Well-Trained" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1687.yml b/html/changelogs/AutoChangeLog-pr-1687.yml deleted file mode 100644 index 7eb29f90c4931..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1687.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscadd: "Adds Quote of the Round, an entirely cosmetic way of showing off a random ass message said on Common Radio. This does not ping people. By default, it is posted in the same channel as roundstart announcements." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1688.yml b/html/changelogs/AutoChangeLog-pr-1688.yml deleted file mode 100644 index 7a0511ec7f8f4..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1688.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - bugfix: "Fixes incorrect Moonstation Dorms directions." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1691.yml b/html/changelogs/AutoChangeLog-pr-1691.yml deleted file mode 100644 index 5445da0f9708e..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1691.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ForrestWick" -delete-after: True -changes: - - balance: "lowered Empath cost from 6 to 3." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1694.yml b/html/changelogs/AutoChangeLog-pr-1694.yml deleted file mode 100644 index 22bfbfabf5121..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1694.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "nikothedude" -delete-after: True -changes: - - spellcheck: "Fixed a typo in systemic fault's examine text" - - balance: "Synthetic electrical damage can no longer worsen if its currently being repaired" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1695.yml b/html/changelogs/AutoChangeLog-pr-1695.yml deleted file mode 100644 index b8a4e498b947d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1695.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "xXPawnStarrXx" -delete-after: True -changes: - - rscadd: "Added new pods!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1696.yml b/html/changelogs/AutoChangeLog-pr-1696.yml deleted file mode 100644 index e9df26c6c980c..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1696.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - bugfix: "Hypospray right click works again" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1697.yml b/html/changelogs/AutoChangeLog-pr-1697.yml deleted file mode 100644 index b350b9c561ca4..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1697.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "YakumoChen" -delete-after: True -changes: - - balance: "Reverts buff to the TEG making it output up to 20MW, now outputs 10x less with a decent setup" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1706.yml b/html/changelogs/AutoChangeLog-pr-1706.yml deleted file mode 100644 index 0f3ffc5fe503d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1706.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - balance: "Weight 8 for BS, Ling, Heretic" - - balance: "Weight 10 for malf" - - balance: "Weight 8 for spy and traitor" - - bugfix: "Fixes runtime in get_antag_cap()" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1707.yml b/html/changelogs/AutoChangeLog-pr-1707.yml deleted file mode 100644 index f9a3fa00c717d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1707.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - qol: "Crew monitor now has sort options and a search box" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1709.yml b/html/changelogs/AutoChangeLog-pr-1709.yml deleted file mode 100644 index e3ef995df77a2..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1709.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - bugfix: "Fixes the Moonstation Shuttle failing to dock properly" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1714.yml b/html/changelogs/AutoChangeLog-pr-1714.yml deleted file mode 100644 index 09d940e30ad0a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1714.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SciDragon" -delete-after: True -changes: - - rscadd: "Telecomms Specialist job, with a niche carved out of an underutilized engineering department." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1720.yml b/html/changelogs/AutoChangeLog-pr-1720.yml deleted file mode 100644 index 278924ab2b3b2..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1720.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerB" -delete-after: True -changes: - - rscadd: "Overhauls the design of Moonstation Engineering" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1726.yml b/html/changelogs/AutoChangeLog-pr-1726.yml deleted file mode 100644 index 692f189b99ac9..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1726.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Shroopy" -delete-after: True -changes: - - rscadd: "Added a GPS tracking collar to the LustWish" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1727.yml b/html/changelogs/AutoChangeLog-pr-1727.yml deleted file mode 100644 index 1451817aa5363..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1727.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Cecily-C-Catherine" -delete-after: True -changes: - - rscadd: "Added new sprites and code to allow the choosing of sprites" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1730.yml b/html/changelogs/AutoChangeLog-pr-1730.yml deleted file mode 100644 index 8a7473c84ed14..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1730.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "Non-locked Donator have been added to vendors. Collect them all!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1732.yml b/html/changelogs/AutoChangeLog-pr-1732.yml deleted file mode 100644 index 21eba09e9fed3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1732.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "thegrb93" -delete-after: True -changes: - - bugfix: "Tajaran photocopier booty sprite fixed" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1736.yml b/html/changelogs/AutoChangeLog-pr-1736.yml deleted file mode 100644 index 1b23febd829b4..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1736.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - bugfix: "Fixes maps failing unit tests" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1738.yml b/html/changelogs/AutoChangeLog-pr-1738.yml deleted file mode 100644 index a5db695761d99..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1738.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - rscdel: "Removed damage emp protection as the current strength of the emp does not justify it." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1742.yml b/html/changelogs/AutoChangeLog-pr-1742.yml deleted file mode 100644 index 17bad4850412f..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1742.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "YakumoChen" -delete-after: True -changes: - - bugfix: "Fixes guns being in imports again due to code reversion" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1745.yml b/html/changelogs/AutoChangeLog-pr-1745.yml deleted file mode 100644 index b1a756083671d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1745.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscdel: "You can no longer vote for a map if it was the last 2 maps played, or the current map." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1748.yml b/html/changelogs/AutoChangeLog-pr-1748.yml deleted file mode 100644 index 141d1649144fc..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1748.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - bugfix: "Fixed certain jobs being categorized as unknown on the crew monitor" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1751.yml b/html/changelogs/AutoChangeLog-pr-1751.yml deleted file mode 100644 index 675c1e554bd64..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1751.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "projectkepler-ru" -delete-after: True -changes: - - bugfix: "TEG Research cost not being accomodated" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1752.yml b/html/changelogs/AutoChangeLog-pr-1752.yml deleted file mode 100644 index c2fdc0820f22d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1752.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "StrangeWeirdKitten" -delete-after: True -changes: - - bugfix: "Dead well-trained quirk holders will no longer respond to snaps" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1758.yml b/html/changelogs/AutoChangeLog-pr-1758.yml deleted file mode 100644 index 7b988a0ef333c..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1758.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - balance: "Your blob strain on start will always be Distributed Neurons, instead of a random strain. The cost to reroll for the first time is still free." - - balance: "Changing to Networked Fibers will instantly alert the crew that you exist (With a level 5 blob biohazard announcement), regardless of how many tiles you have." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1763.yml b/html/changelogs/AutoChangeLog-pr-1763.yml deleted file mode 100644 index c3df71214ed66..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1763.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - bugfix: "Fixes moonstation having space turfs on turf destruction on the upper level. Fixes weirdly placed camera monitors due to upstream changes. Fixes a few randomly placed doors in some areas." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1768.yml b/html/changelogs/AutoChangeLog-pr-1768.yml deleted file mode 100644 index f58d63d23ba55..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1768.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "plsleavemealon" -delete-after: True -changes: - - rscadd: "New Quirk: Masquerade, exclusive to hemophages" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1770.yml b/html/changelogs/AutoChangeLog-pr-1770.yml deleted file mode 100644 index faaf0bd5ea3a8..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1770.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "A bunch of stuff is now on box. Minor, but it's there!" - - bugfix: "Weird vendors no longer spawn in front of Security on Box." - - bugfix: "Lima and Box now compile." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1773.yml b/html/changelogs/AutoChangeLog-pr-1773.yml deleted file mode 100644 index 837253ef92be3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1773.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Icarus-The-Sun" -delete-after: True -changes: - - rscadd: "Added C4 Moth as a C4 reskin" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1776.yml b/html/changelogs/AutoChangeLog-pr-1776.yml deleted file mode 100644 index 94bb25ef50e8f..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1776.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "Clown Hair! Woo! Markings too!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1777.yml b/html/changelogs/AutoChangeLog-pr-1777.yml deleted file mode 100644 index 7eaec42bf8281..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1777.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "shayoki" -delete-after: True -changes: - - rscadd: "Added more telescreens to BoxStation." - - bugfix: "Fixed BoxStation broken Telescreens." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1784.yml b/html/changelogs/AutoChangeLog-pr-1784.yml deleted file mode 100644 index b2bf960349b57..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1784.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MonkeStation (sprites) TheSelfish (Port)" -delete-after: True -changes: - - rscadd: "Multiple new Bunny Outfits are in the vendors now!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1789.yml b/html/changelogs/AutoChangeLog-pr-1789.yml deleted file mode 100644 index ce14d8f24bffe..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1789.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerB" -delete-after: True -changes: - - bugfix: "Fixes Arcade Loot not properly spawning" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1790.yml b/html/changelogs/AutoChangeLog-pr-1790.yml deleted file mode 100644 index b96c52ecf37b4..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1790.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - bugfix: "Loadouts in bitrunning work again" - - bugfix: "Names in bitrunning work again" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1792.yml b/html/changelogs/AutoChangeLog-pr-1792.yml deleted file mode 100644 index 31f92e9a782d3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1792.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "nikothedude" -delete-after: True -changes: - - bugfix: "Nagas off-station or restored with the SAD should now properly have their footstep sound" - - bugfix: "Losing your naga lower body now tries to restore normal footsteps" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1793.yml b/html/changelogs/AutoChangeLog-pr-1793.yml deleted file mode 100644 index 5d7a8c8acbce4..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1793.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Odairu" -delete-after: True -changes: - - server: "ghost only votable up to 40 pop" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1795.yml b/html/changelogs/AutoChangeLog-pr-1795.yml deleted file mode 100644 index 5b815d817f1d2..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1795.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nikothedude" -delete-after: True -changes: - - rscadd: "Mothroaches can now be milked for moth milk" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1796.yml b/html/changelogs/AutoChangeLog-pr-1796.yml deleted file mode 100644 index c18ace250c86e..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1796.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nikothedude" -delete-after: True -changes: - - bugfix: "Naga footstep sounds now work properly" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1799.yml b/html/changelogs/AutoChangeLog-pr-1799.yml deleted file mode 100644 index a86d8333a9e3f..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1799.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Doomtail" -delete-after: True -changes: - - image: "added new beard icons" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1800.yml b/html/changelogs/AutoChangeLog-pr-1800.yml deleted file mode 100644 index d75e23ccb696b..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1800.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Odairu" -delete-after: True -changes: - - rscadd: "DomAura quirk to dom borg module, and adds it to the tech tree" - - spellcheck: "Untility Cyborg Upgrades -> Utility Cyborg Upgrades" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1802.yml b/html/changelogs/AutoChangeLog-pr-1802.yml deleted file mode 100644 index 960a1f8fdfeb3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1802.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "StrangeWeirdKitten" -delete-after: True -changes: - - bugfix: "Borg Pinpointers and synthshells are now printable once more." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1809.yml b/html/changelogs/AutoChangeLog-pr-1809.yml deleted file mode 100644 index 6ed04e3411dc2..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1809.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BurgerBB" -delete-after: True -changes: - - rscadd: "Improves Moonstation Janitorial by adding missing items found on other maps." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1812.yml b/html/changelogs/AutoChangeLog-pr-1812.yml deleted file mode 100644 index a87ebdaacbb09..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1812.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "New cloak to the loadout. Caw." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1814.yml b/html/changelogs/AutoChangeLog-pr-1814.yml deleted file mode 100644 index fcf2faf67c6c3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1814.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "xXPawnStarrXx" -delete-after: True -changes: - - qol: "made it once again possible to print parts from autolathes! You just need the disk <3" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1815.yml b/html/changelogs/AutoChangeLog-pr-1815.yml deleted file mode 100644 index f8072999ceb64..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1815.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - balance: "The ninja bomb objective is now available from 30 pop" - - bugfix: "Ninja no longer spawns with quirks, making you not to randomly die and have a fighting chance" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1817.yml b/html/changelogs/AutoChangeLog-pr-1817.yml deleted file mode 100644 index adc19f4847b87..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1817.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscadd: "Some redsec strays have been added to the ComDrobe and SecVend. Stay tuned." - - code_imp: "Moved the SecVend to be with the rest of the vending overrides." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1819.yml b/html/changelogs/AutoChangeLog-pr-1819.yml deleted file mode 100644 index f939b741dc288..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1819.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DimWhat for spriting, SigmaPredator for helping me with organizing this, and my (theselfish) poor keyboard." -delete-after: True -changes: - - rscadd: "Nearly every job has a Bunny outfit. I am not joking. Check your vendors." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1822.yml b/html/changelogs/AutoChangeLog-pr-1822.yml deleted file mode 100644 index ca1d2db5b82da..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1822.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - qol: "Improved alarm function on medbay's crew monitor console" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1823.yml b/html/changelogs/AutoChangeLog-pr-1823.yml deleted file mode 100644 index 83080725c3ce2..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1823.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "StrangeWeirdKitten" -delete-after: True -changes: - - balance: "Emote delay has been set to 1 second" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1824.yml b/html/changelogs/AutoChangeLog-pr-1824.yml deleted file mode 100644 index 12936a5e1dd9d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-1824.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Majkl-J" -delete-after: True -changes: - - bugfix: "Blue 98 UI Style fixes" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1834.yml b/html/changelogs/AutoChangeLog-pr-1834.yml new file mode 100644 index 0000000000000..9c029f78c237d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1834.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - balance: "Adds a strict limit for how many antagonists of the same type can be added in the round. This affects both midrounds and roundstarts." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2757.yml b/html/changelogs/AutoChangeLog-pr-2757.yml deleted file mode 100644 index 09d940e30ad0a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-2757.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SciDragon" -delete-after: True -changes: - - rscadd: "Telecomms Specialist job, with a niche carved out of an underutilized engineering department." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28255.yml b/html/changelogs/AutoChangeLog-pr-28255.yml deleted file mode 100644 index 986e76301ca17..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28255.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Erol509" -delete-after: True -changes: - - rscadd: "Added synth version of Big Legs taur sprite." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28444.yml b/html/changelogs/AutoChangeLog-pr-28444.yml deleted file mode 100644 index b23a65282076d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28444.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "nikothedude" -delete-after: True -changes: - - rscadd: "Taurs now have custom leg names" - - bugfix: "Synth taur legs now have all attributes of a organic taur leg except the fact theyre robotic" - - bugfix: "Markings no longer render on taur legs" - - bugfix: "Clothing with taur-specific clothing sprites now render those sprites properly" - - code_imp: "Various improvements to taur leg code" - - code_imp: "Taur bodies are properly subtyped" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28491.yml b/html/changelogs/AutoChangeLog-pr-28491.yml deleted file mode 100644 index bffa83a35dfc0..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28491.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nikothedude" -delete-after: True -changes: - - rscadd: "Reimplemented taur sprites for a bunch of clothing items" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28516.yml b/html/changelogs/AutoChangeLog-pr-28516.yml deleted file mode 100644 index 09d940e30ad0a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28516.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SciDragon" -delete-after: True -changes: - - rscadd: "Telecomms Specialist job, with a niche carved out of an underutilized engineering department." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28831.yml b/html/changelogs/AutoChangeLog-pr-28831.yml deleted file mode 100644 index 36a40d855a096..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28831.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "theselfish" -delete-after: True -changes: - - rscdel: "Deleted some unused icons." - - bugfix: "Even more OBJ fixes." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28833.yml b/html/changelogs/AutoChangeLog-pr-28833.yml deleted file mode 100644 index fc30ef5aa7615..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28833.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nikothedude" -delete-after: True -changes: - - bugfix: "Naga constrict no longer resets pixel x to 0 if you cosntrict someone being pulled" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28834.yml b/html/changelogs/AutoChangeLog-pr-28834.yml deleted file mode 100644 index 67400347ef58e..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28834.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Thedragmeme" -delete-after: True -changes: - - bugfix: "Fixes the Plague hat having what the Plague mask should have" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28835.yml b/html/changelogs/AutoChangeLog-pr-28835.yml deleted file mode 100644 index d2a7158814d3c..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28835.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - bugfix: "Attachment points on toolset implants have been improved, to prevent against recycler related decouplings." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28837.yml b/html/changelogs/AutoChangeLog-pr-28837.yml deleted file mode 100644 index 24e742b5ace88..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28837.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - bugfix: "You can no longer cause a bluescreen by attempting to recolor non-recolorable loadout items." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28838.yml b/html/changelogs/AutoChangeLog-pr-28838.yml deleted file mode 100644 index b20f28982b2a9..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28838.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Melbert" -delete-after: True -changes: - - qol: "If you're in oxycrit (>50 oxy damage) or otherwise made unconscious through other means, blood loss will only kill you if you're *actually* missing a lethal amount of blood." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28839.yml b/html/changelogs/AutoChangeLog-pr-28839.yml deleted file mode 100644 index b4d8df3761b37..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28839.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - bugfix: "Destroying the jungle grass tiles in Tramstation's science wing should no longer open a chasm." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28840.yml b/html/changelogs/AutoChangeLog-pr-28840.yml deleted file mode 100644 index 03c929fe5cbec..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28840.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - qol: "Pathfinder MODule can now be triggered while wearing the MODsuit to implant yourself without having to pull it out of the suit." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28841.yml b/html/changelogs/AutoChangeLog-pr-28841.yml deleted file mode 100644 index 294f850c5c94c..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28841.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - spellcheck: "Firelocks no longer output their full name in their balloon alert." - - spellcheck: "Failure message when a xenomorph tries to force open a welded firelock is now a balloon alert." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28842.yml b/html/changelogs/AutoChangeLog-pr-28842.yml deleted file mode 100644 index 47a36ef34f051..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28842.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - admin: "Ghosts can no longer create deathmatch lobbies or join existing ones when admins disable minigames" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28843.yml b/html/changelogs/AutoChangeLog-pr-28843.yml deleted file mode 100644 index 0bfb0cadab199..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28843.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Melbert" -delete-after: True -changes: - - qol: "Lattices now make the same footstep sound as catwalks" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28844.yml b/html/changelogs/AutoChangeLog-pr-28844.yml deleted file mode 100644 index e3b3e2cd62c36..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28844.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - bugfix: "mothroaches will no longer be crawling out of bags every minute" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28845.yml b/html/changelogs/AutoChangeLog-pr-28845.yml deleted file mode 100644 index dec9e89d2c69a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28845.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - admin: "Outfit manager UI no longer harddels after closing and thus is usable more than once" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28846.yml b/html/changelogs/AutoChangeLog-pr-28846.yml deleted file mode 100644 index 5959ab9a58396..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28846.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - qol: "Research nodes can be queued, one per player. RDs can place their node at the beginning of the queue." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28849.yml b/html/changelogs/AutoChangeLog-pr-28849.yml deleted file mode 100644 index 080bbab724603..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28849.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - bugfix: "Accelerator cannon projectiles no longer grow to absurd sizes after a bit of travel." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28850.yml b/html/changelogs/AutoChangeLog-pr-28850.yml deleted file mode 100644 index 9e0177cc1e7bc..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28850.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - sound: "added pickup, dropping and opening sound for pill bottle" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28851.yml b/html/changelogs/AutoChangeLog-pr-28851.yml deleted file mode 100644 index 9da4bfc25b5bb..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28851.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - bugfix: "borgs have alt right click functionality" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28853.yml b/html/changelogs/AutoChangeLog-pr-28853.yml deleted file mode 100644 index 15d5c3dada85a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28853.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SkyratBot" -delete-after: True -changes: - - bugfix: "Fixes overwatch glasses not adding HUDs" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-28855.yml b/html/changelogs/AutoChangeLog-pr-28855.yml deleted file mode 100644 index c3882e601572b..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-28855.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrDas" -delete-after: True -changes: - - bugfix: "Clown operative reinforcements' uplink no longer break the syndicates' economy by creating TC from nothingness." \ No newline at end of file diff --git a/html/changelogs/archive/2024-07.yml b/html/changelogs/archive/2024-07.yml index f9778535e27b8..5e9fc3003f3fa 100644 --- a/html/changelogs/archive/2024-07.yml +++ b/html/changelogs/archive/2024-07.yml @@ -746,3 +746,653 @@ thegrb93: - code_imp: Anthro borg can use affection module - refactor: Refactors borg affection module +2024-07-16: + Melbert: + - qol: Lattices now make the same footstep sound as catwalks + - qol: If you're in oxycrit (>50 oxy damage) or otherwise made unconscious through + other means, blood loss will only kill you if you're *actually* missing a lethal + amount of blood. + MrDas: + - bugfix: Clown operative reinforcements' uplink no longer break the syndicates' + economy by creating TC from nothingness. + SkyratBot: + - bugfix: Attachment points on toolset implants have been improved, to prevent against + recycler related decouplings. + - bugfix: Fixes overwatch glasses not adding HUDs + - bugfix: Destroying the jungle grass tiles in Tramstation's science wing should + no longer open a chasm. + - qol: Research nodes can be queued, one per player. RDs can place their node at + the beginning of the queue. + - sound: added pickup, dropping and opening sound for pill bottle + - admin: Ghosts can no longer create deathmatch lobbies or join existing ones when + admins disable minigames + - bugfix: borgs have alt right click functionality + - qol: Pathfinder MODule can now be triggered while wearing the MODsuit to implant + yourself without having to pull it out of the suit. + - bugfix: You can no longer cause a bluescreen by attempting to recolor non-recolorable + loadout items. + - spellcheck: Firelocks no longer output their full name in their balloon alert. + - spellcheck: Failure message when a xenomorph tries to force open a welded firelock + is now a balloon alert. + - bugfix: mothroaches will no longer be crawling out of bags every minute + - bugfix: Accelerator cannon projectiles no longer grow to absurd sizes after a + bit of travel. + - admin: Outfit manager UI no longer harddels after closing and thus is usable more + than once + Thedragmeme: + - bugfix: Fixes the Plague hat having what the Plague mask should have + nikothedude: + - bugfix: Naga constrict no longer resets pixel x to 0 if you cosntrict someone + being pulled + theselfish: + - rscdel: Deleted some unused icons. + - bugfix: Even more OBJ fixes. +2024-07-17: + Hardly3D: + - bugfix: Added a preview assistant outfit, allowing assistant jumpskirts to be + previewed again on character preferences. + SkyratBot: + - bugfix: ACTUALLY fixed hoverboards being able to be used in space. + - balance: However, you can soar space with the holy skateboard. at a slower speed. + - balance: Grinding fish no longer gives you uselessly high amount of blood and + gibs (unless they're very big) + - balance: tweaked the Linked Closets station trait. + - bugfix: You can't attach guns/drills/etc. to the Justice traitor mech anymore. + - bugfix: Correct emote plays when a human scream. Should have sound now. + - rscadd: Love is now stored in the heart. + - balance: Characters with the Friendly quirk now have physically bigger hearts. + - rscadd: new wizard spells category - perks. + - rscadd: adds 9 wizard perks. + - rscadd: Pipe pistols now magdump their entire magazine when fired. + - rscadd: Pipeguns and their subtypes have a knockback effect. + - bugfix: Pipe pistols cannot be bayoneted, as intended. + - bugfix: Junk rounds now actually do their extra damage effects against certain + mob types. Borgs across the Spinward tremble at the knowledge that these junk + weapons can obliterate them with ease. + - qol: removed a redundant, annoying reach check that prevents casting a fishing + rod before the projectile is generated. + - qol: You can now unhook the currently hooked item of a fishing rod with right-click. + - bugfix: Fixes dead raptors getting excited when petted or groomed + - rscadd: Megaphones now affect text-to-speech. + - bugfix: fixing speech modifiers being applied to a tongue's native languages. + - bugfix: Atmosphere can no longer flow through closed necropolis gates. + - rscadd: If you can't shoot a gun, then... JUST TOSS IT AT THEM (for 0.5 seconds + of knockdown and 10-20 an additional brute damage) + - bugfix: The Icebox ordnance lab is now once again a habitable temperature. + - bugfix: Icebox cytology now has cameras in it. + - sound: all materials now have a sound for picking up and dropping + - code_imp: items now have pitch vary sound support for dropping and picking up + items + - bugfix: Wawastation xenobio is no longer filled with BZ + - rscadd: Examining high-value paintings now can give a positive moodlet. + - qol: Observers can now zoom paintings in and out in the UI. + - bugfix: You can no longer fit an infinite amount of drivers into a clown car - + making spy-acquired clown cars usable! + theselfish: + - rscadd: Pirates speak pirate, Felinids speak Neko and you can return to ape. The + age of oppression is just about done. +2024-07-18: + LT3: + - balance: Adjusted price of DeForest medical duffels and satchels + - balance: DeForest medical kit crates come with one unit instead of two + Melbert: + - bugfix: Using hulk (and a myriad of similar effects) now properly updates your + movespeed to ignore the damage movespeed penalty + - bugfix: Some things which temporarily make you fly don't make you fly forever + - bugfix: MODsuit ball module now properly makes you immune to damage movespeed + penalty when in ball form + - bugfix: Adding Hulk via VV dropdown doesn't default to adding the strongest hulk + available (that which is used by the medieval pirates) + Rhials: + - bugfix: Xenos have a "resist" ui element now. Cool! + SkyratBot: + - qol: made fish better quality when butchered, smushy koibeans and useable gunner + jellyfish. + - bugfix: malf ai voice changer no longer accepts dangerous inputs + - bugfix: Style meter text is no longer blurry and doesnt overlap with UI anymore. + - bugfix: Fixes hulks being able to activate dualsabers despite not being able to + actually do anything with them + - rscadd: standing on a closed crate now gives loud mode + - qol: Stopping orbiting now automatically breaks you out of autoobserve + - bugfix: Fixes space heater cell relative consumption inadvertently being changed + from the introduction of megacells. + - qol: The improvised chemical heater gives a more accurate description of its heating + power on examine. + - qol: Improved feedback when attempting to turn on a space heater that is lacking + a cell, has no charge or is broken. + - code_imp: Space heater relative cell consumption is consistent regardless of the + cell charge scale. + - bugfix: borgs can't put their integrated tools into the reagent grinder + - bugfix: Removed bitrunning beach brawl fax machine + - qol: You can properly aim mining bombs at turfs now + - bugfix: added a missing cable to Wawastation perma + grungussuss: + - rscadd: You can now buckle to bar stools + grungususs: + - spellcheck: fixed a typo for carrot sword description + theselfish: + - bugfix: Fixes even more stuff with the balaclavas +2024-07-19: + SkyratBot: + - bugfix: fixes sentient firebots mauling things from a distance + - bugfix: acid/base buffers should update your target & source holder + - bugfix: remove reagent operations won't trigger excessive workload + - bugfix: deleting reagents from the chemmaster buffer works without a beaker inserted + - spellcheck: Removed an unnecessary apostrophe in DeltaStation's genetics monkey + pen door. + - bugfix: Plague Doctor Mask can now be used with internals again, and is no longer + unintentionally pepperproof. + - bugfix: Justice mech invisibility fix + - spellcheck: fixed a typo in borg research + - bugfix: fixes runtime in storage datums when hiding the ui + - bugfix: you can insert the withdrawal beaker into the portable chem mixer when + locked + - bugfix: Free items in research queue will now correctly be researched automatically. + - qol: Ghost orbit menu now always displays person's real name and their roundstart + job and cannot be fooled by disguises. + - bugfix: Point blank piercing shots no longer fly directly north after hitting + their intended target + SmArtKar, Kapu: + - balance: Projectiles now can hit border objects on other turfs instead of passing + through them + plsleavemealon: + - bugfix: Hemophages can now drink Velvet Kiss without vomiting + - balance: Velvet Kiss is now a race drink for Hemophages (in addition to the other + races that were already present!) + - balance: Velvet Kiss now restores blood at the same rate that Bloody Mary does + - balance: made hemophages able to drink several different blood-based drinks + theselfish: + - rscadd: Certain Security Clothes can be reskinned. Rejoice. + xXPawnStarrXx: + - bugfix: fixed my oversight of the exosuit fabricator. +2024-07-20: + Melbert: + - qol: Monkeys that pray are given bonana + - bugfix: Fixes xenos being able to do that one mechanic that involves mouse-dragging + people to you + - bugfix: When Monkified or Humanified, you are no longer knocked down. + - bugfix: When cured of Monkified, you get the cure text now. + - bugfix: The text shown when cured / given Monkification now has color. + - bugfix: Being humanified now tells you what species you become rather than assuming + you are a human. + SkyratBot: + - bugfix: cold- & heat protection no longer have decimal precision issues. + - bugfix: fixed a table in the mining office at the metastation + - qol: Holofan and two thermomachine and emitter boards in lavaland syndicate base. + - bugfix: Revenge of the Pun Pun no longer runtimes on init + - bugfix: Elevator music no longer haunts you endlessly if you step off mid-transit + - image: the smoking pipe east/west sprites are now more consistent + - qol: Tweaked the colour of orange atmos pipes to be more distinct from the red + pipes, especially in darkness. + - bugfix: Fixed kinesis runtime due to un-unregistered signals + - bugfix: fixed a hard del with soapboxes + - qol: secmods jetpacks are now pinned by default + - bugfix: Removed some rogue decals and added a wall to Birdshot atmos storage, + and added cycling to upload/telecommunication entrances. + - rscadd: Having a robotic voicebox installed now lets you use silicon emotes. + - balance: MMI'd brains/posibrains can now use silicon emotes. + - balance: Simple and basic bots can actually beep. + - bugfix: MMI'd brains/posibrains are no longer both allowed AND blocked from beeping, + now just being allowed to beep. + - qol: Moths that pray get a moffin +2024-07-21: + 00-Steven: + - bugfix: You can see runechat above fullscreen overlays on lower multi-z levels + again. Rejoice, blind players. Please report any weird rendering layering issues. + ArcaneMusic: + - rscadd: Items spawned via traitor uplinks or are known illegal contraband on the + station can now be scanned and identified as such by the N-spect scanners in + security. These only applies to overt traitor or antagonist items, and "stealth" + items will not be seen as such. + - rscadd: Scanner gates can now be upgraded by using an N-spect scanner on it to + unlock "contraband scanning" mode. + - rscadd: Security officers can now be offered a bounty to turn in pieces of contraband. + - rscadd: Some stealthy storage items like storage implants, smuggler's satchels, + void cloaks, the infiltrator modsuit, and the chameleon backpack will block + the presence of contraband on your person when placed inside. + - qol: N-spect scanner contextual screentips. + - balance: Recharger security bounties ask for a quantity of 1, down from 3. + - qol: security, cargo, and medbay have access to scanner gate boards. + DrDiasyl aka DrTuxedo: + - rscadd: Security and Engineering holosigns can now be opened with their projector + by clicking them from afar + - rscadd: SecVendor starts with 2 Security holosigns + - qol: Holosigns don't block projectiles anymore + - qol: Security holosigns now take 2 seconds to create instead of 3 + - image: Janitor, Security, Medical, and Engineering holosigns now have cleaner + sprites + - code_imp: Holosigns now use proper cooldowns instead of the world.time + - spellcheck: Holosigns and holosign creators' descriptions give more information + now + GPeckman: + - spellcheck: The techweb no longer erroneously refers to MODsuits as exosuits. + Hardly3D: + - rscadd: 'Added new hairstyle: Short Bangs 2' + JohnFulpWillard: + - balance: Human AIs no longer have a teleport blocking implant or borg costume, + but now has a portable crew monitor. + Majkl-J: + - qol: Borer crawling inside people now works without a tgui menu + - bugfix: Fixed borer organs not properly cleaning up and linking to the borer + - refactor: Borer ability code refactor. Report any issues on the github or to @waterpig + on Discord + Melbert: + - qol: Random player characters now look less like rainbow vomit and more like some + of the most average people you know. + - bugfix: Non-humans should look less transparent while in space + - bugfix: Fixed roundstart monkeys not having monkified + - bugfix: Fixed being "de-monkified" while dead making it difficult to actually + de-monkey you going forward + - bugfix: Fixed genetic scanner showing dead mobs as "transforming" + SkyratBot: + - image: New deep fryer sprite + - admin: Ticking "Job Playtime Exempt" on a player's Job Playtime Tracker panel + will also exempt them from BYOND Account Age restrictions now. It previously + only exempted them from actual living playtime minutes - this is for the BYOND + Account Age in days. + - qol: chem dispenser displays units instead of kilowatts + - bugfix: Fixed new charger power not working fior strange objects + - bugfix: Fixed emitters, shield gens and other wired machinery having lower power + consumption priority than APCs + - qol: Made APCs charge more evenly to ensure that environment and lights are working + everywhere before giving the power for equipment + - bugfix: fixed megaphone tts filter. + - image: Added new unique sprites for cyborg upgrade modules + - rscadd: Bitrunning and (spawn) Miner jumpsuits are now in their drobe. + - qol: The Coroner Drobe got sorted into less 'shove everything in' and more 'in + a sane format'. + - image: Changed some default options in the character creator. + - rscadd: Added the civilian modsuit module as a standalone model. It offers no + slowdown while activated but does NOT protect you from the void of space. You + can print the plating from an exosuit fabricator and build it like a normal + modsuit. + - rscdel: Removed the civilian skin from the standard modsuit, as it is now a standalone + model. + - image: Tweaked the sprites for the civilian modsuit head, both in-hand and on + the mob. Also added a civilian mod plating sprite. + - image: Brainwashing victims now have smoothed out brain sprites without those + pesky wrinkles + - balance: reduced the prices of some blackmarket items across the board. + - balance: the thermite bottle (from the contraband spawner and the blackmarket), + now spawns with 50u of thermite vs 30, enough to melt one reinforced wall. + - rscadd: Replaced the science googles from the blackmarket with a security + health + scanner HUD. + - rscadd: Replaced the single shotgun dart from the blackmarket with a box of XL + shotgun darts. + - rscadd: The donk pocket box from the blackmarket now comes in different flavors. + - bugfix: Fixed null description in cerulean regenerative extract + - qol: Allow custom borg hat placement for custom borg skins + - bugfix: Fixes organizer sometimes deleting brains + - bugfix: Context maptext now properly dynamically adjusts itself instead of using + hardcoded pixel values + - bugfix: Announcement subheader will no longer overlap the header if the second + one is very long + - bugfix: Blob victory no longer spams spore zombie notifications to ghosts + - bugfix: Fixed sometimes obtaining the nodrop highlander kilt with relics + - bugfix: Fixed bioscramble function not working for strange objects unless dropped + - bugfix: Fixed the disguiser cardboard ID not overlaying properly + - qol: Moving the light bulb removal function from the left mouse button to the + right one. + - qol: Added & improved tips related to the light fixture + - bugfix: APC icon properly turns green on full charge + - bugfix: APC shows correct charging rate in UI + - code_imp: Added early machine process for shield generators and emitters to prioritize + power draw + - code_imp: Added late machine process for power monitors to gather accurate powernet + load + - bugfix: Fixed a signal reg error caused by add_occupant being called twice + - bugfix: Sentient floorbots can now rip up tiles when emagged + - code_imp: Slight cleanup in floorbot code + SmArtKar: + - bugfix: Ghosts can no longer move chairs + - bugfix: You can attack bookshelves in a variety of states once more + - qol: You can fire PKAs/plasma cutters point blank at turfs. + SpaceLove: + - bugfix: Towels can be used to mop up and Lustwish constructions can be deconstructed + Thedragmeme: + - qol: re-maps the raptor barn to not stick out like a sore thumb + - bugfix: Miners and the public both can access the raptor barn without having to + make a bridge themselves + carlarctg: + - rscadd: Adds six new strange object powers! Drink dispenser, bioscrambler, recharger, + hugger, dimensional, disguiser. + - code_imp: 'Removed some unused code and items, and added a proc that returns a + random #colorstring.' + thegrb93: + - bugfix: Fixes hat offsets on quadruped borgs + theselfish: + - bugfix: another clothing file fixed + - rscadd: Added admin spawnable Redsec varients to the override file +2024-07-22: + DrDiasyl aka DrTuxedo: + - rscadd: Scanner gates now blare into the chat the reason why it got triggered + - rscadd: Scanner gates now can have false positives/negatives, and the chance of + them being reduced when they are upgraded + - rscadd: Brig entrances now have scanner gates preset to detect GUNS + - rscadd: You can now scan people with N-Spector for contraband + - image: Scanner gates now have a better sprite with dirs + - qol: Scanner gates description now tells to what mode they are set + - bugfix: You no longer can remove N-Spector from scanner gates without unlocking + them first + SkyratBot: + - qol: Mod UI is narrow again + - bugfix: Closing mind transfer popup does not transfer your mind anymore + - bugfix: Fixed beyblade *flipping. + - bugfix: Recalling lantern wisp now properly removes its effects from you + - spellcheck: Fixed a typo in the description for the Syndicate Rebar Crossbow in + the Uplink. +2024-07-23: + LT3: + - balance: APCs are no longer arc shielded by default + - balance: SMES throughput is now a multiplier based on capacitor tier + Melbert: + - refactor: Refactored how vending machine icons are displayed, please report if + you see any broken icons. Also if all the icons look like missing file icons + for you, you gotta update byond man, you're like a year out of date. + - rscadd: Fox infusion has more content related to it now + SkyratBot: + - rscadd: Gives voidwalker telepathy + - bugfix: Fixes the Unsettle ability ignoring line of sight (which was it's sole + gimmick, im just dumb) + - balance: Voidwalkers cannot break windows anymore or throw objects + - balance: Voidwalkers can no longer harm people in crit + - balance: Voidwalkers can only pull mobs + - balance: Voidwalkers' space dive enter has been increased by 1 seconds, but dive + exit decreased by 1 second + - balance: Void eater becomes blunt during use. Kidnap people to refresh it + - balance: Removes voidwalker glasses slot + - balance: Gives voidwalkers chunky fingers + - balance: Voidwalker applies NODEATH on hit + - balance: Voided victims get dumped in safer places + - rscadd: Adds Untie Shoes, a 1-point wizard spell. It can be upgraded to untie + jackboots, summon shoes to untie, and become completely silent! + - bugfix: Fixes fishing rods not working on adjacent targets. + - refactor: refactored global set_basalt_light proc into object proc + - bugfix: Holopads no longer suck in unsuspecting people when crowbared + - code_imp: Removed 8 cases of double indentation + - bugfix: HONK mech now waddles + - rscadd: 'Charlie: Replaced external cycling airlocks with airlock pumps' + - bugfix: Shuttle events meteors now dont sometimes kill everyone + - admin: 'Nanotrasen has brought Central Command kicking and screaming into the + 20th Century by providing them with a real fax machine. + + :cl:' + - bugfix: Surgical tape and edagger's embedding values have been fixed + - refactor: Refactored table item interactions, please report any issues. + - bugfix: Fixed being unable to use decks to draw cards directly onto tables. + - qol: Right clicking a table with a tray puts it down regardless of it having contents. + - bugfix: general bitrunning fixes and 102% faster loading times + - bugfix: bitrunning domains are no longer affected by nebulas in the real world + - refactor: mulebot UI has been refactored + - qol: Self-respiration no longer sends misleading messages and instead tells about + lack of need to breathe once it actually gives you the effect + - rscadd: You can now fish with explosives. + - bugfix: Fixed an inconsistency with examining fishing spots with sufficiently + high fishing skill (or skillchip). + - qol: There is a larger stock of roundstart clothing availalbe in the clothing + vendors. Now you can get your entire gang in matching outfits! + - qol: Updated smart fridge UI + Thedragmeme: + - image: Adds a series of traditional yukata's and kimono's + - image: Adds in black sandals and a traditional hairpin for the back of the hair +2024-07-24: + Majkl-J: + - bugfix: Collars can be locked again + - bugfix: Taur legs can no longer create bloody floating sprites + - code_imp: Taur legs no longer take overlay slots + SkyratBot: + - bugfix: Alexander no longer causes harddels + - bugfix: Removed a theoretical infinite block exploit from alexander + - bugfix: Fixes bulldog shotgun unique mag display not working on the sprite + - image: resprites the bulldog shotgun along with inhands and new worn sprites + - code_imp: cleans up a little of the code surrounding the bulldog + theselfish: + - rscadd: Clown, Tiger and Mime Cats now have unique voice lines! + - bugfix: Toddlers beware, you're in for a scare! At a Nanotrasen Finance meeting + held by famed comedian Ian Fidance, the choice between the Lustwish and the + Pitbull-Toddler-Eating suppression system was made. Pitbulls will now murder + small animals if left unattended. +2024-07-25: + Arturlang: + - balance: Bloodsuckers can only reach 560 max blood via drinking blood bags or + the blood reagent, and bloodsuckers above level 4 will get 30% less blood and + be disgusted by it. + BurgerB: + - rscadd: Overhauls the design of Moonstation Engineering + - bugfix: Fixes Arcade Loot not properly spawning + BurgerBB: + - balance: You only get 1 corrupt organ when sacrificed, instead of 2 to 4. + - qol: Removes some corruption options because they are extremely annoying / don't + even work properly. + - rscadd: Adds Big Bertha, a unique one-of-a-kind two-handed shield for security + that blocks literally everything. It spawns in the Armory. + - rscadd: Adds Changeling Zombies to the game. This is meant to replace RNA zombies + and Tumor Zombies as a balanced, updated, and functional alternative. + - rscadd: Being husked/absorbed from a regular Changeling turns you into an unaligned/unaffiliated + changeling zombie. Note that this also cures your husk infection once turned. + - rscadd: Adds Antag Tickets, a new currency that determines who gets antagonist + roles. + - rscadd: Overhauls loot that can spawn in abandoned crates, maintenance, and trash + piles. + - qol: Map Voting Occurs when the shuttle is called and cannot be recalled. + - balance: Wearing the tinfoil hat no longer gives you a phobia of conspiracy theories. + Tinfoil hat is no longer single use and will work indefinitely until removed. + - balance: Only melee weapons can disembowel/dismember via damage via wounds. This + does not affect other sources of disembowel/dismember. + - balance: Significantly nerfs all arrows across the board. + - balance: Adds Monkeydone, a chemical that transforms monkeys into humans. It can + be made by mixing 10u Unstable Mutagen + 10u Mutadone + 1u Salt to make 1u Monkeydone. + - rscdel: Removes the hardcoded 5 second emote delay for all emotes. Most emotes + now have a cooldown of 0.8 seconds, with some being increased based on what + /tg/ set. + - rscadd: Fixes some Moonstation bugs and expands maintenance a little. + - rscadd: Adds Quote of the Round, an entirely cosmetic way of showing off a random + ass message said on Common Radio. This does not ping people. By default, it + is posted in the same channel as roundstart announcements. + - bugfix: Fixes incorrect Moonstation Dorms directions. + - bugfix: Fixes the Moonstation Shuttle failing to dock properly + - rscdel: You can no longer vote for a map if it was the last 2 maps played, or + the current map. + - balance: Your blob strain on start will always be Distributed Neurons, instead + of a random strain. The cost to reroll for the first time is still free. + - balance: Changing to Networked Fibers will instantly alert the crew that you exist + (With a level 5 blob biohazard announcement), regardless of how many tiles you + have. + - bugfix: Fixes moonstation having space turfs on turf destruction on the upper + level. Fixes weirdly placed camera monitors due to upstream changes. Fixes a + few randomly placed doors in some areas. + - rscadd: Improves Moonstation Janitorial by adding missing items found on other + maps. + Cecily-C-Catherine: + - rscadd: Added new sprites and code to allow the choosing of sprites + DimWhat for spriting, SigmaPredator for helping me with organizing this, and my (theselfish) poor keyboard.: + - rscadd: Nearly every job has a Bunny outfit. I am not joking. Check your vendors. + Doomtail: + - image: added new beard icons + Erol509: + - rscadd: Added synth version of Big Legs taur sprite. + ForrestWick: + - balance: lowered Empath cost from 6 to 3. + GoreDem: + - rscadd: buffed bulldog back to a usable state + Icarus-The-Sun: + - bugfix: Prevents Departmental Guards from rolling antagonist roles. + - rscadd: Added C4 Moth as a C4 reskin + LT3: + - rscadd: New DeForest heavy medical kit, technician satchel + - rscadd: Security medic can now order a single heavy medical kit using departmental + order + - bugfix: Hyposprays that are supposed to have a starting vial now actually start + with the vial + - bugfix: Combat hypospray correctly has the combat cooldown + - bugfix: Hypospray switches vials as expected + - bugfix: Piercing hypospray now has inject/spray delay + - bugfix: Hypospray right click works again + - qol: Crew monitor now has sort options and a search box + - bugfix: Fixed certain jobs being categorized as unknown on the crew monitor + - qol: Improved alarm function on medbay's crew monitor console + Majkl-J: + - bugfix: Fixes atmos dying + - bugfix: Captain office access can't magically grant you AA anymore + - balance: Weight 8 for BS, Ling, Heretic + - balance: Weight 10 for malf + - balance: Weight 8 for spy and traitor + - bugfix: Fixes runtime in get_antag_cap() + - bugfix: Fixes maps failing unit tests + - rscdel: Removed damage emp protection as the current strength of the emp does + not justify it. + - bugfix: Loadouts in bitrunning work again + - bugfix: Names in bitrunning work again + - balance: The ninja bomb objective is now available from 30 pop + - bugfix: Ninja no longer spawns with quirks, making you not to randomly die and + have a fighting chance + - bugfix: Blue 98 UI Style fixes + MonkeStation (sprites) TheSelfish (Port): + - rscadd: Multiple new Bunny Outfits are in the vendors now! + Odairu: + - server: ghost only votable up to 40 pop + - rscadd: DomAura quirk to dom borg module, and adds it to the tech tree + - spellcheck: Untility Cyborg Upgrades -> Utility Cyborg Upgrades + Rathen Ivanov: + - rscadd: Added Employee Of The Month Special "Chief Screws Plush" for your use + and carrying! + SciDragon: + - rscadd: Telecomms Specialist job, with a niche carved out of an underutilized + engineering department. + Shroopy: + - bugfix: fixed a copy-paste error in character_directory.dm + - rscadd: Added a GPS tracking collar to the LustWish + SkyratBot: + - bugfix: Borgs and AI can now use research queue + - bugfix: You can no longer dupe metal by breaking walls under small light fixtures + - bugfix: Animal/people skin is no longer metallic sounding + - bugfix: Fixed fishing. + - spellcheck: Renamed the Crimson Focus to the Crimson Medallion + - bugfix: Fixed harvesters not being properly bound to their master, nor dying when + they do + - bugfix: Fixed heads totally overriding cultist sacrifice rewards + - rscadd: Heretic blade now converts to a nullblade + - rscadd: Added wooshing, shaking, and glowing to flinging around with the heretic + blade + - balance: Removed the probability to not gain a reward when sacrificing a cultist + - bugfix: Restores some of the items accidentally lost in the autodrobe. + - bugfix: You can now put dead mice into mortars/grinders properly + - qol: Now IDs and PDAs have money-reader module for picking some cash into your + bank by swiping on money. + - qol: fish analyzers now have a UI + - bugfix: Fixes Hereditary Manifold Sickness's 4th stage not updating health when + it should + - config: Added an entry for TRAITOR_SCALING_MULTIPLIER, disabled by default + - rscadd: You can raise lobstrosities from chasm chrabs inside an aquarium with + the 'allow breeding' setting on. Keep the fish well fed, healthy and not lonely + if you don't want an hostile one. + - rscadd: Juveline lobstrosities (from chasms, plasma rivers, or aquariums, xenobio + too) can be tamed with arms and lavaloop fishes. + - rscadd: For lobstrosities grown from aquariums, they can have additional effects + based on the fish traits they had in the aquarium, like being venomous or even + flying. + - qol: Chat notifications are now at the top + - balance: Mechs now take armor into consideration when calculating punch damage + - bugfix: Mechs no longer deal direct limb damage + - bugfix: Drills automatically pick up ore on non-ripley mechs now without having + to move + - bugfix: Drills no longer dismember people immune to melee damage + - bugfix: Drills now take armor from correct bodyparts when attacking + - code_imp: Cleaned up one-letter variables in mech drill code + - bugfix: You can no longer microwave kisses, slappers, and other abstract items + - bugfix: fixes bitrunning breaking upon repeatedly climbing in and out the pod + - qol: Photocopier updated their UI + - bugfix: Stacking machine consoles link to machinery now + - rscadd: Dehydrator, a machine version of drying rack, with a circuit board and + available on some kitchens roundstart. + - image: Updated the color palette of Smart Fridge + - bugfix: Having your liver fail no longer keeps drug traits active without metabolizing + them + 'Sprites: axietheaxolotl Code: VioletN': + - image: Added three new selectable "rat queen" skins to the royal rat. + StrangeWeirdKitten: + - rscadd: 'Adds two new quirks: Dominant Aura and Well-Trained' + - bugfix: Dead well-trained quirk holders will no longer respond to snaps + - bugfix: Borg Pinpointers and synthshells are now printable once more. + - balance: Emote delay has been set to 1 second + TheSelfish (code) CannibalHunter of MonkeStation (sprites): + - rscadd: Traitors may goon. Gooning is also in the clothes mate and the vendor. + - rscadd: Oh and the rabbit pendant is in the loadout, the rest of the bunny stuff + won't be added, but this isn't especially out there. + Vekter: + - spellcheck: Reworded Voidwalker's objectives to be more descriptive of their actual + goals as opposed to just fluff. + YakumoChen: + - balance: Reverts buff to the TEG making it output up to 20MW, now outputs 10x + less with a decent setup + - bugfix: Fixes guns being in imports again due to code reversion + codehonky: + - rscadd: Added new bluespace experi-scanner. + - image: Added a simple reskin of the experi-scanner for the bluespace variant. + nevimer: + - bugfix: Storyteller should only take two minutes instead of five to spawn events. + - balance: chest dismember only removes one organ per occurance + - qol: allows the ghost to be voted for at any pop + nikothedude: + - spellcheck: Fixed a typo in systemic fault's examine text + - balance: Synthetic electrical damage can no longer worsen if its currently being + repaired + - bugfix: Nagas off-station or restored with the SAD should now properly have their + footstep sound + - bugfix: Losing your naga lower body now tries to restore normal footsteps + - rscadd: Mothroaches can now be milked for moth milk + - bugfix: Naga footstep sounds now work properly + - rscadd: Taurs now have custom leg names + - bugfix: Synth taur legs now have all attributes of a organic taur leg except the + fact theyre robotic + - bugfix: Markings no longer render on taur legs + - bugfix: Clothing with taur-specific clothing sprites now render those sprites + properly + - code_imp: Various improvements to taur leg code + - code_imp: Taur bodies are properly subtyped + - rscadd: Reimplemented taur sprites for a bunch of clothing items + pixelkitty286: + - rscdel: dogborgs (they are quadrupeds now) + - bugfix: Verbs not being available to both tall and dog borgs to rest + - code_imp: See refactor. Removed dogborg procs(commented them out) + - refactor: small quadrupeds, large quadrupeds, and Tall cyborgs resting verb and + how it populates + plsleavemealon: + - rscadd: 'New Quirk: Masquerade, exclusive to hemophages' + projectkepler-ru: + - rscadd: Maint area somewhat expanded, blueshield has an office, QM has a bedroom. + Bitrunning den their own area + - bugfix: Paddy not being present on this map + - bugfix: TEG Research cost not being accomodated + shayoki: + - rscadd: Added more telescreens to BoxStation. + - bugfix: Fixed BoxStation broken Telescreens. + thegrb93: + - bugfix: Tajaran photocopier booty sprite fixed + theselfish: + - rscadd: Clowns now have a beret. A rainbow one, too. + - bugfix: Sex Barrier is now back. Scene? Scene? Scene? Scene? Scene? + - rscadd: Added some unused clothing items to the MultiSec Vendor. Perhaps you can + find them if you're savvy enough with a Multitool. + - bugfix: Fixed a few missing items not being in the MultiSec Vendor. Also removed + a duplicate item. + - image: New Multisec Vendor sprite. Two-Face edition. + - rscadd: The Outlast items are no longer stuck in Loadout hell, yay! + - rscadd: Someone finally repaired the damn pocket watches (may need to check your + loadouts) + - spellcheck: Made a few loadout item names headline consistent. + - code_imp: Moved ckey locked loadout items to their own folder. + - rscadd: The Rat Monarch gender reveal party has been cancelled. + - rscadd: Non-locked Donator have been added to vendors. Collect them all! + - rscadd: A bunch of stuff is now on box. Minor, but it's there! + - bugfix: Weird vendors no longer spawn in front of Security on Box. + - bugfix: Lima and Box now compile. + - rscadd: Clown Hair! Woo! Markings too! + - rscadd: New cloak to the loadout. Caw. + - rscadd: Some redsec strays have been added to the ComDrobe and SecVend. Stay tuned. + - code_imp: Moved the SecVend to be with the rest of the vending overrides. + xXPawnStarrXx: + - rscadd: Added new survival capsules themed for medical trauma and geyser harvesting. + - rscadd: Added new pods! + - qol: made it once again possible to print parts from autolathes! You just need + the disk <3 diff --git a/icons/area/areas_centcom.dmi b/icons/area/areas_centcom.dmi index a3e8aafb72fb7..a33055722ffc4 100644 Binary files a/icons/area/areas_centcom.dmi and b/icons/area/areas_centcom.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 3a9f0103c6d52..dc1c2b121b616 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/holosigns.dmi b/icons/effects/holosigns.dmi new file mode 100644 index 0000000000000..9d951114b773d Binary files /dev/null and b/icons/effects/holosigns.dmi differ diff --git a/icons/effects/mouse_pointers/lace.dmi b/icons/effects/mouse_pointers/lace.dmi new file mode 100644 index 0000000000000..68aad755c627e Binary files /dev/null and b/icons/effects/mouse_pointers/lace.dmi differ diff --git a/icons/effects/particles/voidwalker.dmi b/icons/effects/particles/voidwalker.dmi new file mode 100644 index 0000000000000..d7f94c987979a Binary files /dev/null and b/icons/effects/particles/voidwalker.dmi differ diff --git a/icons/mob/actions/actions_spells.dmi b/icons/mob/actions/actions_spells.dmi index b8d3c3ce34b54..335229641fa82 100644 Binary files a/icons/mob/actions/actions_spells.dmi and b/icons/mob/actions/actions_spells.dmi differ diff --git a/icons/mob/actions/actions_voidwalker.dmi b/icons/mob/actions/actions_voidwalker.dmi new file mode 100644 index 0000000000000..fd0825994d089 Binary files /dev/null and b/icons/mob/actions/actions_voidwalker.dmi differ diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index c9aa153453880..c8f8b723f9e96 100644 Binary files a/icons/mob/actions/backgrounds.dmi and b/icons/mob/actions/backgrounds.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index be83d83d4228c..aa2cbe3a756fc 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 3ae1eb68e865f..95a3790ac7331 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index ded01542e31b6..b62b6a0a8ee58 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/head/costume.dmi b/icons/mob/clothing/head/costume.dmi index 1f4f12ff8c8c8..1de2281271f80 100644 Binary files a/icons/mob/clothing/head/costume.dmi and b/icons/mob/clothing/head/costume.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 22c7ae3ac49c0..5f577c7e255d9 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/modsuit/mod_clothing.dmi b/icons/mob/clothing/modsuit/mod_clothing.dmi index 64affedb2de4c..3a567eac4e724 100644 Binary files a/icons/mob/clothing/modsuit/mod_clothing.dmi and b/icons/mob/clothing/modsuit/mod_clothing.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index ed0bb34b46449..3467f752ac3a5 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/clothing/under/costume.dmi b/icons/mob/clothing/under/costume.dmi index 34703c070589d..34612120ea630 100644 Binary files a/icons/mob/clothing/under/costume.dmi and b/icons/mob/clothing/under/costume.dmi differ diff --git a/icons/mob/human/human_face.dmi b/icons/mob/human/human_face.dmi index d96800c3a8bb8..886094ec49573 100644 Binary files a/icons/mob/human/human_face.dmi and b/icons/mob/human/human_face.dmi differ diff --git a/icons/mob/human/species/voidwalker.dmi b/icons/mob/human/species/voidwalker.dmi new file mode 100644 index 0000000000000..f7e616864f1a1 Binary files /dev/null and b/icons/mob/human/species/voidwalker.dmi differ diff --git a/icons/mob/human/textures.dmi b/icons/mob/human/textures.dmi new file mode 100644 index 0000000000000..c5f420c7de866 Binary files /dev/null and b/icons/mob/human/textures.dmi differ diff --git a/icons/mob/inhands/antag/voidwalker_lefthand.dmi b/icons/mob/inhands/antag/voidwalker_lefthand.dmi new file mode 100644 index 0000000000000..5cd8b8817ec31 Binary files /dev/null and b/icons/mob/inhands/antag/voidwalker_lefthand.dmi differ diff --git a/icons/mob/inhands/antag/voidwalker_righthand.dmi b/icons/mob/inhands/antag/voidwalker_righthand.dmi new file mode 100644 index 0000000000000..f227c6105ad1e Binary files /dev/null and b/icons/mob/inhands/antag/voidwalker_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/hats_lefthand.dmi b/icons/mob/inhands/clothing/hats_lefthand.dmi index 1d6461fb39dc9..4fa05fa6cd691 100644 Binary files a/icons/mob/inhands/clothing/hats_lefthand.dmi and b/icons/mob/inhands/clothing/hats_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/hats_righthand.dmi b/icons/mob/inhands/clothing/hats_righthand.dmi index 4d9710bf90159..dfb0b71ef4bdc 100644 Binary files a/icons/mob/inhands/clothing/hats_righthand.dmi and b/icons/mob/inhands/clothing/hats_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/shoes_lefthand.dmi b/icons/mob/inhands/clothing/shoes_lefthand.dmi index a5fd6d3318cff..9a8e008e48343 100644 Binary files a/icons/mob/inhands/clothing/shoes_lefthand.dmi and b/icons/mob/inhands/clothing/shoes_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/shoes_righthand.dmi b/icons/mob/inhands/clothing/shoes_righthand.dmi index 8f5a3c374ca08..bdc82c0530df2 100644 Binary files a/icons/mob/inhands/clothing/shoes_righthand.dmi and b/icons/mob/inhands/clothing/shoes_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/suits_lefthand.dmi b/icons/mob/inhands/clothing/suits_lefthand.dmi index 02b1e2cbff266..9c15bb18c7b67 100644 Binary files a/icons/mob/inhands/clothing/suits_lefthand.dmi and b/icons/mob/inhands/clothing/suits_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/suits_righthand.dmi b/icons/mob/inhands/clothing/suits_righthand.dmi index 7dd047b7345d7..87187225fdc60 100644 Binary files a/icons/mob/inhands/clothing/suits_righthand.dmi and b/icons/mob/inhands/clothing/suits_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index c1bcd197278b5..6a29758cb99e8 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index 98788d7371135..4f91839205c9a 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/nonhuman-player/eldritch_mobs.dmi b/icons/mob/nonhuman-player/eldritch_mobs.dmi index 18e50d727aee5..3f2aa454f0eb4 100644 Binary files a/icons/mob/nonhuman-player/eldritch_mobs.dmi and b/icons/mob/nonhuman-player/eldritch_mobs.dmi differ diff --git a/icons/mob/silicon/robot_items.dmi b/icons/mob/silicon/robot_items.dmi index 00c813ace7f48..2cb809fe2724b 100644 Binary files a/icons/mob/silicon/robot_items.dmi and b/icons/mob/silicon/robot_items.dmi differ diff --git a/icons/mob/simple/icemoon/icemoon_monsters.dmi b/icons/mob/simple/icemoon/icemoon_monsters.dmi index 3e53c0a971228..739092d63ad62 100644 Binary files a/icons/mob/simple/icemoon/icemoon_monsters.dmi and b/icons/mob/simple/icemoon/icemoon_monsters.dmi differ diff --git a/icons/mob/simple/mob.dmi b/icons/mob/simple/mob.dmi index e8fb3c59b8fbe..142481e08e9a7 100644 Binary files a/icons/mob/simple/mob.dmi and b/icons/mob/simple/mob.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 465340870dd48..4739498c16426 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/head/costume.dmi b/icons/obj/clothing/head/costume.dmi index 25bc62a5314ee..7ece76ca5a7e6 100644 Binary files a/icons/obj/clothing/head/costume.dmi and b/icons/obj/clothing/head/costume.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_clothing.dmi b/icons/obj/clothing/modsuit/mod_clothing.dmi index 3de713477b696..85dd82449709f 100644 Binary files a/icons/obj/clothing/modsuit/mod_clothing.dmi and b/icons/obj/clothing/modsuit/mod_clothing.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_construction.dmi b/icons/obj/clothing/modsuit/mod_construction.dmi index dedcb3f838d64..1080b89650772 100644 Binary files a/icons/obj/clothing/modsuit/mod_construction.dmi and b/icons/obj/clothing/modsuit/mod_construction.dmi differ diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index e8726cfcb73a5..ca90eb8a3291b 100644 Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index ec2a128a865f2..8c91be43d4ad0 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/under/costume.dmi b/icons/obj/clothing/under/costume.dmi index 85a49d1b3300c..42aa61e66b83c 100644 Binary files a/icons/obj/clothing/under/costume.dmi and b/icons/obj/clothing/under/costume.dmi differ diff --git a/icons/obj/machines/kitchen.dmi b/icons/obj/machines/kitchen.dmi index 2142125c5aa5c..1bd254942b2e0 100644 Binary files a/icons/obj/machines/kitchen.dmi and b/icons/obj/machines/kitchen.dmi differ diff --git a/icons/obj/machines/scangate.dmi b/icons/obj/machines/scangate.dmi index 6af8750414ade..9dacefab3539c 100644 Binary files a/icons/obj/machines/scangate.dmi and b/icons/obj/machines/scangate.dmi differ diff --git a/icons/obj/machines/smartfridge.dmi b/icons/obj/machines/smartfridge.dmi index 18f3ccedd9bde..df5a163b803af 100644 Binary files a/icons/obj/machines/smartfridge.dmi and b/icons/obj/machines/smartfridge.dmi differ diff --git a/icons/obj/machines/vending.dmi b/icons/obj/machines/vending.dmi index bf3c42bde16a1..c6c9fc17e720b 100644 Binary files a/icons/obj/machines/vending.dmi and b/icons/obj/machines/vending.dmi differ diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi index 62a45426e186e..fd1f5af2ddefc 100644 Binary files a/icons/obj/medical/organs/organs.dmi and b/icons/obj/medical/organs/organs.dmi differ diff --git a/icons/obj/medical/organs/shadow_organs.dmi b/icons/obj/medical/organs/shadow_organs.dmi index 61721330e5361..402e3fc8eccfc 100644 Binary files a/icons/obj/medical/organs/shadow_organs.dmi and b/icons/obj/medical/organs/shadow_organs.dmi differ diff --git a/icons/obj/service/hydroponics/equipment.dmi b/icons/obj/service/hydroponics/equipment.dmi index 0fcebb3c51988..be9d9d4eeaf0d 100644 Binary files a/icons/obj/service/hydroponics/equipment.dmi and b/icons/obj/service/hydroponics/equipment.dmi differ diff --git a/icons/obj/storage/box.dmi b/icons/obj/storage/box.dmi index c0a327d7df669..01588bd050f74 100644 Binary files a/icons/obj/storage/box.dmi and b/icons/obj/storage/box.dmi differ diff --git a/icons/obj/weapons/guns/ballistic.dmi b/icons/obj/weapons/guns/ballistic.dmi index abbb7743b0140..51eda227432e9 100644 Binary files a/icons/obj/weapons/guns/ballistic.dmi and b/icons/obj/weapons/guns/ballistic.dmi differ diff --git a/icons/obj/weapons/voidwalker_items.dmi b/icons/obj/weapons/voidwalker_items.dmi new file mode 100644 index 0000000000000..1179d1953003f Binary files /dev/null and b/icons/obj/weapons/voidwalker_items.dmi differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index 37f85e24dab56..b18f723f0ae43 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -134,6 +134,7 @@ h1.alert, h2.alert {color: #000000;} .robot {font-family: "Courier New", cursive, sans-serif;} .command_headset {font-weight: bold; font-size: 3;} +.soapbox {font-weight: bold; font-size: 3;} .small {font-size: 1;} .big {font-size: 3;} .reallybig {font-size: 4;} diff --git a/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm b/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm index 1f73f708edfe4..2735d8c797e94 100644 --- a/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm +++ b/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm @@ -1,5 +1,6 @@ /obj/machinery/door/firedoor/click_alt(mob/user) try_manual_override(user) + return CLICK_ACTION_SUCCESS /obj/machinery/door/firedoor/examine(mob/user) . = ..() diff --git a/modular_skyrat/master_files/code/modules/client/preferences/clothing.dm b/modular_skyrat/master_files/code/modules/client/preferences/clothing.dm index 827ec90b6ac2e..0f525313f0018 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/clothing.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/clothing.dm @@ -82,3 +82,8 @@ var/species_type = preferences.read_preference(/datum/preference/choiced/species) var/datum/species/species = new species_type return !(TRAIT_NO_UNDERWEAR in species.inherent_traits) + +/datum/preference/choiced/bra/create_informed_default_value(datum/preferences/preferences) + if(preferences.read_preference(/datum/preference/choiced/gender) == FEMALE) + return /datum/sprite_accessory/bra/sports_bra::name + return /datum/sprite_accessory/bra/nude::name diff --git a/modular_skyrat/master_files/code/modules/clothing/towels.dm b/modular_skyrat/master_files/code/modules/clothing/towels.dm index 6ff0fa3af228e..16ae2c3ca30f3 100644 --- a/modular_skyrat/master_files/code/modules/clothing/towels.dm +++ b/modular_skyrat/master_files/code/modules/clothing/towels.dm @@ -250,18 +250,13 @@ // No need to display the different message if they're not wearing it. if(!worn) - return + return CLICK_ACTION_SUCCESS to_chat(user, span_notice(shape == TOWEL_FULL ? "You raise \the [src] over your [shape]." : "You lower \the [src] down to your [shape].")) return CLICK_ACTION_SUCCESS /obj/item/towel/item_ctrl_click(mob/user) - . = ..() - - if(. == FALSE) - return - if(!wet && shape == TOWEL_FOLDED) // You can't fold a wet towel, so you can't get a folded towel that's also wet. And you can't fold what's already folded, obviously. to_chat(user, span_warning("You can't fold a towel that's already folded!")) return diff --git a/modular_skyrat/master_files/code/modules/loadout/categories/heads.dm b/modular_skyrat/master_files/code/modules/loadout/categories/heads.dm index 0180fff6ddc45..f3e1ac08c932f 100644 --- a/modular_skyrat/master_files/code/modules/loadout/categories/heads.dm +++ b/modular_skyrat/master_files/code/modules/loadout/categories/heads.dm @@ -18,6 +18,14 @@ name = "Greyscale Beret with Badge" item_path = /obj/item/clothing/head/beret/badge +/datum/loadout_item/head/beret/clown //Left unlocked to show you're a Clown Enjoyer, essentially. + name = "Clown Beret" + item_path = /obj/item/clothing/head/beret/clown + +/datum/loadout_item/head/beret/rainbow + name = "Rainbow Beret" + item_path = /obj/item/clothing/head/beret/clown/rainbow + /* * CAPS */ diff --git a/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.dm b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.dm index c21c91736e2f4..bbc1aa7b916a1 100644 --- a/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.dm +++ b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.dm @@ -349,4 +349,31 @@ icon_state = "pitbull" icon_dead = "pitbull_dead" icon_living = "pitbull" + ai_controller = /datum/ai_controller/basic_controller/pitbull + can_be_held = FALSE //He's too big. + +/datum/ai_controller/basic_controller/pitbull + blackboard = list( + BB_ALWAYS_IGNORE_FACTION = TRUE, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/of_size/smaller, + BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + ) + + ai_movement = /datum/ai_movement/dumb + idle_behavior = /datum/idle_behavior/idle_dog + planning_subtrees = list( + /datum/ai_planning_subtree/target_retaliate/to_flee, + /datum/ai_planning_subtree/flee_target/from_flee_key, + /datum/ai_planning_subtree/dog_harassment, + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/random_speech/dog, + ) + + +/mob/living/basic/pet/dog/pitbull/Initialize(mapload) + . = ..() + AddElement(/datum/element/tiny_mob_hunter, MOB_SIZE_SMALL) //He eats anything that he sees as a toddler. + AddElement(/datum/element/footstep, footstep_type = FOOTSTEP_MOB_CLAW) + diff --git a/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/pets.dm b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/pets.dm index d2e21410e4867..084f62c4c4fe2 100644 --- a/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/pets.dm +++ b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/pets.dm @@ -28,13 +28,29 @@ collar_icon_state = "clowncat" has_collar_resting_icon_state = FALSE can_be_held = TRUE - ai_controller = /datum/ai_controller/basic_controller/cat + ai_controller = /datum/ai_controller/basic_controller/cat/clown held_state = "cat2" attack_verb_continuous = "honks" attack_verb_simple = "honk" attack_sound = 'sound/items/bikehorn.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW +/datum/ai_controller/basic_controller/cat/clown + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/catclown, + ) + +/datum/ai_planning_subtree/random_speech/catclown + speech_chance = 10 + sound = list('sound/effects/footstep/clownstep1.ogg', 'sound/effects/footstep/clownstep2.ogg', 'sound/items/bikehorn.ogg',) + speak = list( + "hoooonk!", + "meow!", + "honk!", + "mrow!", + "henk!", + emote_see = list("plays tricks.", "slips.", "honks a tiny horn.") + ) /mob/living/basic/pet/cat/mime name = "mime cat" @@ -43,6 +59,7 @@ icon_state = "catmime" icon_living = "catmime" icon_dead = "catmime_dead" + ai_controller = /datum/ai_controller/basic_controller/cat/mime speak_emote = list("...",) pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL @@ -55,10 +72,24 @@ /obj/item/clothing/mask/gas/mime = 1, ) +/datum/ai_controller/basic_controller/cat/mime + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/catmime, + ) + +/datum/ai_planning_subtree/random_speech/catmime + speech_chance = 1 + speak = list( + "...", + "....", + emote_see = list("cowers in fear.", "surrenders.", "plays dead.","looks as though there is a tiny cat shaped wall in front of them.") + ) + /mob/living/basic/pet/cat/tiger name = "tiger cat" desc = "A tiger made of paper." icon = 'modular_skyrat/master_files/icons/mob/pets.dmi' + ai_controller = /datum/ai_controller/basic_controller/cat/tiger icon_state = "tiger" icon_living = "tiger" icon_dead = "tiger_dead" @@ -74,6 +105,18 @@ /obj/item/clothing/head/pelt/tiger = 1, ) +/datum/ai_controller/basic_controller/cat/tiger + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/cattiger, + ) + +/datum/ai_planning_subtree/random_speech/cattiger + speech_chance = 10 + speak = list( + "roar!", + "meow!", + "grrr!", + ) /mob/living/basic/carp/clarp name = "clarp" diff --git a/modular_skyrat/master_files/code/modules/power/smes.dm b/modular_skyrat/master_files/code/modules/power/smes.dm deleted file mode 100644 index d4a504000c382..0000000000000 --- a/modular_skyrat/master_files/code/modules/power/smes.dm +++ /dev/null @@ -1,8 +0,0 @@ -// TG power bad, SMES power update good -// Doubles output ability for input/output to allow for higher power generation passthrough without needing to build more SMES or hotwire -/obj/machinery/power/smes - capacity = 75 * STANDARD_BATTERY_CHARGE - input_level = 75 KILO WATTS - input_level_max = 400 KILO WATTS - output_level = 75 KILO WATTS - output_level_max = 400 KILO WATTS diff --git a/modular_skyrat/master_files/code/modules/reagents/reagent_containers.dm b/modular_skyrat/master_files/code/modules/reagents/reagent_containers.dm index eb187857d7bd3..0945a17b8b32e 100644 --- a/modular_skyrat/master_files/code/modules/reagents/reagent_containers.dm +++ b/modular_skyrat/master_files/code/modules/reagents/reagent_containers.dm @@ -1,10 +1,10 @@ /obj/item/reagent_containers/click_alt(mob/living/user) if(length(possible_transfer_amounts) <= 2) // If there's only two choices, just swap between them. change_transfer_amount(user, FORWARD) - return + return CLICK_ACTION_SUCCESS var/transfer_amount = tgui_input_list(user, "Amount per transfer from this:", "[src]", possible_transfer_amounts, amount_per_transfer_from_this) if(isnull(transfer_amount)) - return + return NONE amount_per_transfer_from_this = transfer_amount to_chat(user, span_notice("[src]'s transfer amount is now [amount_per_transfer_from_this] unit\s.")) - return + return CLICK_ACTION_SUCCESS diff --git a/modular_skyrat/master_files/icons/mob/clothing/head.dmi b/modular_skyrat/master_files/icons/mob/clothing/head.dmi index e59edd6bbbf82..4d6d020d8e1f7 100644 Binary files a/modular_skyrat/master_files/icons/mob/clothing/head.dmi and b/modular_skyrat/master_files/icons/mob/clothing/head.dmi differ diff --git a/modular_skyrat/master_files/icons/mob/clothing/mask.dmi b/modular_skyrat/master_files/icons/mob/clothing/mask.dmi index bc28e022e0c31..07e227bf73d91 100644 Binary files a/modular_skyrat/master_files/icons/mob/clothing/mask.dmi and b/modular_skyrat/master_files/icons/mob/clothing/mask.dmi differ diff --git a/modular_skyrat/master_files/icons/mob/clothing/under/security.dmi b/modular_skyrat/master_files/icons/mob/clothing/under/security.dmi index 9b766d068642d..88bad96b8fd4c 100644 Binary files a/modular_skyrat/master_files/icons/mob/clothing/under/security.dmi and b/modular_skyrat/master_files/icons/mob/clothing/under/security.dmi differ diff --git a/modular_skyrat/master_files/icons/mob/clothing/under/security_digi.dmi b/modular_skyrat/master_files/icons/mob/clothing/under/security_digi.dmi index b7816d0ac6f4f..1397a272e0584 100644 Binary files a/modular_skyrat/master_files/icons/mob/clothing/under/security_digi.dmi and b/modular_skyrat/master_files/icons/mob/clothing/under/security_digi.dmi differ diff --git a/modular_skyrat/master_files/icons/obj/clothing/gloves.dmi b/modular_skyrat/master_files/icons/obj/clothing/gloves.dmi index 1e24af19f5e8f..0b03bfe3f3ad8 100644 Binary files a/modular_skyrat/master_files/icons/obj/clothing/gloves.dmi and b/modular_skyrat/master_files/icons/obj/clothing/gloves.dmi differ diff --git a/modular_skyrat/master_files/icons/obj/clothing/hats.dmi b/modular_skyrat/master_files/icons/obj/clothing/hats.dmi index 790edbed3d649..767624985d437 100644 Binary files a/modular_skyrat/master_files/icons/obj/clothing/hats.dmi and b/modular_skyrat/master_files/icons/obj/clothing/hats.dmi differ diff --git a/modular_skyrat/master_files/icons/obj/clothing/masks.dmi b/modular_skyrat/master_files/icons/obj/clothing/masks.dmi index 80a0ea1ce5587..aca292e639fe9 100644 Binary files a/modular_skyrat/master_files/icons/obj/clothing/masks.dmi and b/modular_skyrat/master_files/icons/obj/clothing/masks.dmi differ diff --git a/modular_skyrat/master_files/icons/obj/clothing/under/security.dmi b/modular_skyrat/master_files/icons/obj/clothing/under/security.dmi index 129201a0373c1..6739759a13bf5 100644 Binary files a/modular_skyrat/master_files/icons/obj/clothing/under/security.dmi and b/modular_skyrat/master_files/icons/obj/clothing/under/security.dmi differ diff --git a/modular_skyrat/modules/GAGS/json_configs/henchmen/henchmen.json b/modular_skyrat/modules/GAGS/json_configs/henchmen/henchmen.json new file mode 100644 index 0000000000000..8fba63cfa3172 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/henchmen/henchmen.json @@ -0,0 +1,26 @@ +{ + "greyscale_cap": [ + { + "type": "icon_state", + "icon_state": "greyscale_cap", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "greyscale_coat": [ + { + "type": "icon_state", + "icon_state": "greyscale_coat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "greyscale_coat_t": [ + { + "type": "icon_state", + "icon_state": "greyscale_coat_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_skyrat/modules/aesthetics/storage/storage.dm b/modular_skyrat/modules/aesthetics/storage/storage.dm index 01b7b5d56b929..888ca9e1eae08 100644 --- a/modular_skyrat/modules/aesthetics/storage/storage.dm +++ b/modular_skyrat/modules/aesthetics/storage/storage.dm @@ -3,6 +3,7 @@ /obj/item/borg/upgrade/rped icon = 'modular_skyrat/modules/aesthetics/storage/storage.dmi' + icon_state = "borgrped" /obj/item/storage/part_replacer icon = 'modular_skyrat/modules/aesthetics/storage/storage.dmi' @@ -120,6 +121,10 @@ icon_state = "secbox_xl" illustration = "breacherslug" +/obj/item/storage/box/large_dart + icon_state = "secbox_xl" + illustration = "shotdart" + /obj/item/storage/box/evidence icon_state = "secbox" illustration = "evidence" diff --git a/modular_skyrat/modules/aesthetics/storage/storage.dmi b/modular_skyrat/modules/aesthetics/storage/storage.dmi index 8a7e15587e63d..4bcf087cdb828 100644 Binary files a/modular_skyrat/modules/aesthetics/storage/storage.dmi and b/modular_skyrat/modules/aesthetics/storage/storage.dmi differ diff --git a/modular_skyrat/modules/apc_arcing/code/apc.dm b/modular_skyrat/modules/apc_arcing/code/apc.dm index e1e3aca619f46..6b6fd71404bfb 100644 --- a/modular_skyrat/modules/apc_arcing/code/apc.dm +++ b/modular_skyrat/modules/apc_arcing/code/apc.dm @@ -1,6 +1,6 @@ /obj/machinery/power/apc /// Has the APC been protected against arcing? - var/arc_shielded = TRUE + var/arc_shielded = FALSE /// Should we be forcing arcing, assuming there isn't arc shielding? var/force_arcing = FALSE diff --git a/modular_skyrat/modules/bodyparts/code/taur_bodyparts.dm b/modular_skyrat/modules/bodyparts/code/taur_bodyparts.dm index 8fe1a86cfeb38..5e731ad69e0c6 100644 --- a/modular_skyrat/modules/bodyparts/code/taur_bodyparts.dm +++ b/modular_skyrat/modules/bodyparts/code/taur_bodyparts.dm @@ -4,11 +4,7 @@ bodypart_flags = BODYPART_UNREMOVABLE can_be_surgically_removed = FALSE bodyshape = parent_type::bodyshape | BODYSHAPE_TAUR - -/obj/item/bodypart/leg/right/taur/generate_icon_key() - RETURN_TYPE(/list) - // We don't want more than one icon for all of the taur legs, because they're going to be invisible. - return list("taur") + show_icon = FALSE /obj/item/bodypart/leg/left/taur icon_greyscale = BODYPART_ICON_TAUR @@ -16,11 +12,7 @@ bodypart_flags = BODYPART_UNREMOVABLE can_be_surgically_removed = FALSE bodyshape = parent_type::bodyshape | BODYSHAPE_TAUR - -/obj/item/bodypart/leg/left/taur/generate_icon_key() - RETURN_TYPE(/list) - // We don't want more than one icon for all of the taur legs, because they're going to be invisible. - return list("taur") + show_icon = FALSE /obj/item/bodypart/leg/right/robot/synth/taur icon_greyscale = BODYPART_ICON_TAUR @@ -29,11 +21,7 @@ can_be_surgically_removed = FALSE bodyshape = parent_type::bodyshape | BODYSHAPE_TAUR damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT) - -/obj/item/bodypart/leg/right/robot/synth/taur/generate_icon_key() - RETURN_TYPE(/list) - // We don't want more than one icon for all of the taur legs, because they're going to be invisible. - return list("taur") + show_icon = FALSE /obj/item/bodypart/leg/left/robot/synth/taur icon_greyscale = BODYPART_ICON_TAUR @@ -42,8 +30,4 @@ can_be_surgically_removed = FALSE bodyshape = parent_type::bodyshape | BODYSHAPE_TAUR damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT) - -/obj/item/bodypart/leg/left/robot/synth/taur/generate_icon_key() - RETURN_TYPE(/list) - // We don't want more than one icon for all of the taur legs, because they're going to be invisible. - return list("taur") + show_icon = FALSE diff --git a/modular_skyrat/modules/borg_buffs/code/robot.dm b/modular_skyrat/modules/borg_buffs/code/robot.dm index fdffd040e4ecb..8c34486cb7fc5 100644 --- a/modular_skyrat/modules/borg_buffs/code/robot.dm +++ b/modular_skyrat/modules/borg_buffs/code/robot.dm @@ -130,7 +130,7 @@ /obj/item/borg/upgrade/wirebrush name = "janitor cyborg wire-brush" desc = "A tool to remove rust from walls." - icon_state = "cyborg_upgrade3" + icon_state = "module_janitor" require_model = TRUE model_type = list(/obj/item/robot_model/janitor) model_flags = BORG_MODEL_JANITOR diff --git a/modular_skyrat/modules/borgs/code/robot.dm b/modular_skyrat/modules/borgs/code/robot.dm index 927a9eae58665..648794e715c12 100644 --- a/modular_skyrat/modules/borgs/code/robot.dm +++ b/modular_skyrat/modules/borgs/code/robot.dm @@ -92,6 +92,20 @@ robot_resting = FALSE update_icons() +/mob/living/silicon/robot/update_worn_icons() + if(!hat_overlay) + return + cut_overlay(hat_overlay) + + var/list/offset_list = ((robot_resting && model.rest_hat_offset) ? model.rest_hat_offset : model.hat_offset) + if(islist(offset_list)) + var/list/offset = offset_list[ISDIAGONALDIR(dir) ? dir2text(dir & (WEST|EAST)) : dir2text(dir)] + if(offset) + hat_overlay.pixel_w = offset[1] + hat_overlay.pixel_z = offset[2] + + add_overlay(hat_overlay) + /mob/living/silicon/robot/update_module_innate() ..() if(hands) diff --git a/modular_skyrat/modules/borgs/code/robot_model.dm b/modular_skyrat/modules/borgs/code/robot_model.dm index 366989e0ea472..e61c39f1c5fca 100644 --- a/modular_skyrat/modules/borgs/code/robot_model.dm +++ b/modular_skyrat/modules/borgs/code/robot_model.dm @@ -3,6 +3,7 @@ var/sleeper_overlay var/cyborg_pixel_offset var/model_select_alternate_icon + var/rest_hat_offset /// Traits unique to this model, i.e. having a unique dead sprite, being wide or being small enough to reject shrinker modules. Leverages defines in code\__DEFINES\~skyrat_defines\robot_defines.dm /// If a sprite overlaps above the standard height, ensure it is not overlapping icons in the selector wheel. var/list/model_features = list() @@ -35,7 +36,6 @@ if (!istype(robot)) return if (model_features && (TRAIT_R_WIDE in model_features)) - hat_offset = INFINITY cyborg.set_base_pixel_x(-16) add_verb(cyborg, /mob/living/silicon/robot/proc/robot_lay_down) add_verb(cyborg, /mob/living/silicon/robot/proc/rest_style) @@ -46,6 +46,34 @@ */ //BUBBER REMOVAL END +#define TALL_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(0, 15), "south" = list(0, 15), "east" = list(2, 15), "west" = list(-2, 15)), \ + SKIN_HAT_REST_OFFSET = list("north" = list(0, 1), "south" = list(0, 1), "east" = list(2, 1), "west" = list(-2, 1)) +#define ZOOMBA_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(0, -13), "south" = list(0, -13), "east" = list(0, -13), "west" = list(0, -13)) +#define DROID_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(0, 4), "south" = list(0, 4), "east" = list(0, 4), "west" = list(0, 4)) + +#define BORGI_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, -7), "south" = list(16, -7), "east" = list(24, -7), "west" = list(8, -7)) +#define PUP_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, 3), "south" = list(16, 3), "east" = list(29, 3), "west" = list(3, 3)) +#define BLADE_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, -2), "south" = list(16, -2), "east" = list(31, -2), "west" = list(1, -2)) +#define VALE_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, 3), "south" = list(16, 3), "east" = list(28, 4), "west" = list(4, 4)), \ + SKIN_HAT_REST_OFFSET = list("north" = list(16, -3), "south" = list(16, -3), "east" = list(28, -6), "west" = list(4, -6)) +#define DRAKE_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, 0), "south" = list(16, 0), "east" = list(36, 0), "west" = list(-4, 0)), \ + SKIN_HAT_REST_OFFSET = list("north" = list(16, -6), "south" = list(16, -7), "east" = list(36, -6), "west" = list(-4, -6)) +#define HOUND_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, 2), "south" = list(16, 2), "east" = list(28, 2), "west" = list(4, 2)), \ + SKIN_HAT_REST_OFFSET = list("north" = list(16, -5), "south" = list(16, -5), "east" = list(31, -6), "west" = list(1, -6)) +#define OTIE_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, 4), "south" = list(16, 4), "east" = list(30, 4), "west" = list(2, 4)) +#define ALINA_HAT_OFFSET \ + SKIN_HAT_OFFSET = list("north" = list(16, -2), "south" = list(16, -2), "east" = list(26, -2), "west" = list(6, -2)) + //STANDARD /obj/item/robot_model/standard name = "Standard" @@ -59,7 +87,7 @@ "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootysd", SKIN_ICON = CYBORG_ICON_STANDARD), "Protectron" = list(SKIN_ICON_STATE = "protectron_standard", SKIN_ICON = CYBORG_ICON_STANDARD), "Miss M" = list(SKIN_ICON_STATE = "missm_sd", SKIN_ICON = CYBORG_ICON_STANDARD), - "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)) + "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET) ) //SERVICE @@ -73,9 +101,9 @@ "Tophat" = list(SKIN_ICON_STATE = "tophat", SKIN_HAT_OFFSET = INFINITY), "Sleek" = list(SKIN_ICON_STATE = "sleekserv", SKIN_ICON = CYBORG_ICON_SERVICE), "Heavy" = list(SKIN_ICON_STATE = "heavyserv", SKIN_ICON = CYBORG_ICON_SERVICE), - "Kent" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = 3), - "Can" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = 3), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_green", SKIN_ICON = CYBORG_ICON_SERVICE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), + "Kent" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(0, 3), "west" = list(0, 3))), + "Can" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(0, 3), "west" = list(0, 3))), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_green", SKIN_ICON = CYBORG_ICON_SERVICE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_service", SKIN_ICON = CYBORG_ICON_SERVICE), "Slipper" = list(SKIN_ICON_STATE = "slipper_service", SKIN_ICON = CYBORG_ICON_SERVICE), "Bootyborg" = list(SKIN_ICON_STATE = "bootyservice", SKIN_ICON = CYBORG_ICON_SERVICE), @@ -86,20 +114,20 @@ "Mech" = list(SKIN_ICON_STATE = "lloyd", SKIN_ICON = CYBORG_ICON_SERVICE), "Handy" = list(SKIN_ICON_STATE = "handy-service", SKIN_ICON = CYBORG_ICON_SERVICE), /// 64x32 skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-serv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), - "Drake" = list(SKIN_ICON_STATE = "drakeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "ValeDark" = list(SKIN_ICON_STATE = "valeservdark", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "k50", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-serv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL), BORGI_HAT_OFFSET), + "Drake" = list(SKIN_ICON_STATE = "drakeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), + "Vale" = list(SKIN_ICON_STATE = "valeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), + "ValeDark" = list(SKIN_ICON_STATE = "valeservdark", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), + "Darkhound" = list(SKIN_ICON_STATE = "k50", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), /// 32x64 skins - "Meka" = list(SKIN_ICON_STATE = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "Meka (Alt)" = list(SKIN_ICON_STATE = "mekaserve_alt", SKIN_LIGHT_KEY = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Barista)" = list(SKIN_ICON_STATE = "k4tserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (80s)" = list(SKIN_ICON_STATE = "k4tserve_alt1", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Dispenser)" = list(SKIN_ICON_STATE = "k4tserve_alt2", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "Meka (Alt)" = list(SKIN_ICON_STATE = "mekaserve_alt", SKIN_LIGHT_KEY = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Barista)" = list(SKIN_ICON_STATE = "k4tserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (80s)" = list(SKIN_ICON_STATE = "k4tserve_alt1", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Dispenser)" = list(SKIN_ICON_STATE = "k4tserve_alt2", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) //MINING @@ -110,10 +138,10 @@ "Lavaland" = list(SKIN_ICON_STATE = "miner", SKIN_LIGHT_KEY = "miner"), "Asteroid" = list(SKIN_ICON_STATE = "minerOLD", SKIN_LIGHT_KEY = "miner"), "Drone" = list(SKIN_ICON_STATE = "miningdrone", SKIN_ICON = CYBORG_ICON_MINING, SKIN_FEATURES = list(TRAIT_R_SMALL)), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_miner", SKIN_ICON = CYBORG_ICON_MINING, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_miner", SKIN_ICON = CYBORG_ICON_MINING, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), "Slipper" = list(SKIN_ICON_STATE = "slipper_mine", SKIN_ICON = CYBORG_ICON_MINING), "Spider Miner" = list(SKIN_ICON_STATE = "spidermin", SKIN_LIGHT_KEY = "miner"), - "Droid" = list(SKIN_ICON_STATE = "miner", SKIN_ICON = CYBORG_ICON_MINING, SKIN_HAT_OFFSET = 4), + "Droid" = list(SKIN_ICON_STATE = "miner", SKIN_ICON = CYBORG_ICON_MINING, DROID_HAT_OFFSET), "Sleek" = list(SKIN_ICON_STATE = "sleekmin", SKIN_ICON = CYBORG_ICON_MINING), "Can" = list(SKIN_ICON_STATE = "canmin", SKIN_ICON = CYBORG_ICON_MINING), "Marina" = list(SKIN_ICON_STATE = "marinamin", SKIN_ICON = CYBORG_ICON_MINING), @@ -126,18 +154,18 @@ "Miss M" = list(SKIN_ICON_STATE = "missm_miner", SKIN_ICON = CYBORG_ICON_MINING), "Mech" = list(SKIN_ICON_STATE = "ishimura", SKIN_ICON = CYBORG_ICON_MINING), /// 64x32 skins - "Blade" = list(SKIN_ICON_STATE = "blade", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Otie" = list(SKIN_ICON_STATE = "otiec", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Blade" = list(SKIN_ICON_STATE = "blade", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), BLADE_HAT_OFFSET), + "Vale" = list(SKIN_ICON_STATE = "valemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), + "Drake" = list(SKIN_ICON_STATE = "drakemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), + "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Otie" = list(SKIN_ICON_STATE = "otiec", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), OTIE_HAT_OFFSET), /// 32x64 skins - "Meka" = list(SKIN_ICON_STATE = "mekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Rookie)" = list(SKIN_ICON_STATE = "k4tmine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Veteran)" = list(SKIN_ICON_STATE = "k4tmine_alt1", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Rookie)" = list(SKIN_ICON_STATE = "k4tmine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Veteran)" = list(SKIN_ICON_STATE = "k4tmine_alt1", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) //CLOWN @@ -153,7 +181,7 @@ "Robot" = list(SKIN_ICON_STATE = "clownbot", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi'), "Sleek" = list(SKIN_ICON_STATE = "clownman", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi', SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), /// 32x64 skins - "K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = CYBORG_ICON_CLOWN_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = CYBORG_ICON_CLOWN_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) //ENGINEERING @@ -161,7 +189,7 @@ borg_skins = list( /// 32x32 Skins "Default" = list(SKIN_ICON_STATE = "engineer", SKIN_FEATURES = list(TRAIT_R_SMALL)), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_engi", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_engi", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), "Default - Treads" = list(SKIN_ICON_STATE = "engi-tread", SKIN_LIGHT_KEY = "engineer", SKIN_ICON = CYBORG_ICON_ENG), "Loader" = list(SKIN_ICON_STATE = "loaderborg", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), "Handy" = list(SKIN_ICON_STATE = "handyeng", SKIN_ICON = CYBORG_ICON_ENG), @@ -179,22 +207,22 @@ "Wide" = list(SKIN_ICON_STATE = "wide-engi", SKIN_ICON = CYBORG_ICON_ENG), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_engi", SKIN_ICON = CYBORG_ICON_ENG), "Slipper" = list(SKIN_ICON_STATE = "slipper_engi", SKIN_ICON = CYBORG_ICON_ENG), - "Alina" = list(SKIN_ICON_STATE = "alina-eng", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Alina" = list(SKIN_ICON_STATE = "alina-eng", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), ALINA_HAT_OFFSET), "Eyebot" = list(SKIN_ICON_STATE = "eyeboteng", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL)), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-eng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), - "Otie" = list(SKIN_ICON_STATE = "otiee", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Pup Dozer" = list(SKIN_ICON_STATE = "pupdozer", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Hound" = list(SKIN_ICON_STATE = "engihound", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "engihounddark", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-eng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL), BORGI_HAT_OFFSET), + "Otie" = list(SKIN_ICON_STATE = "otiee", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), OTIE_HAT_OFFSET), + "Pup Dozer" = list(SKIN_ICON_STATE = "pupdozer", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), PUP_HAT_OFFSET), + "Vale" = list(SKIN_ICON_STATE = "valeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), + "Hound" = list(SKIN_ICON_STATE = "engihound", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Darkhound" = list(SKIN_ICON_STATE = "engihounddark", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Drake" = list(SKIN_ICON_STATE = "drakeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekaengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Technician)" = list(SKIN_ICON_STATE = "k4tengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Hazard)" = list(SKIN_ICON_STATE = "k4tengi_alt1", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Technician)" = list(SKIN_ICON_STATE = "k4tengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Hazard)" = list(SKIN_ICON_STATE = "k4tengi_alt1", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) /obj/item/robot_model/janitor @@ -203,7 +231,7 @@ "Default" = list(SKIN_ICON_STATE = "janitor"), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_jani", SKIN_ICON = CYBORG_ICON_JANI), "Slipper" = list(SKIN_ICON_STATE = "slipper_janitor", SKIN_ICON = CYBORG_ICON_JANI), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_jani", SKIN_ICON = CYBORG_ICON_JANI, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_jani", SKIN_ICON = CYBORG_ICON_JANI, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), "Marina" = list(SKIN_ICON_STATE = "marinajan", SKIN_ICON = CYBORG_ICON_JANI), "Sleek" = list(SKIN_ICON_STATE = "sleekjan", SKIN_ICON = CYBORG_ICON_JANI), "Can" = list(SKIN_ICON_STATE = "canjan", SKIN_ICON = CYBORG_ICON_JANI), @@ -219,17 +247,17 @@ "Wide" = list(SKIN_ICON_STATE = "wide-jani", SKIN_ICON = CYBORG_ICON_JANI), "Spider" = list(SKIN_ICON_STATE = "spidersci", SKIN_ICON = CYBORG_ICON_JANI), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-jani", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), - "Scrubpuppy" = list(SKIN_ICON_STATE = "scrubpup", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakejanit", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "J9", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Otie" = list(SKIN_ICON_STATE = "otiej", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-jani", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL), BORGI_HAT_OFFSET), + "Scrubpuppy" = list(SKIN_ICON_STATE = "scrubpup", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), PUP_HAT_OFFSET), + "Drake" = list(SKIN_ICON_STATE = "drakejanit", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), + "Vale" = list(SKIN_ICON_STATE = "J9", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), + "Otie" = list(SKIN_ICON_STATE = "otiej", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), OTIE_HAT_OFFSET), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Viscera)" = list(SKIN_ICON_STATE = "k4tjani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Domestic)" = list(SKIN_ICON_STATE = "k4tjani_alt1", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Viscera)" = list(SKIN_ICON_STATE = "k4tjani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Domestic)" = list(SKIN_ICON_STATE = "k4tjani_alt1", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) //MEDICAL @@ -240,8 +268,8 @@ "Qualified Doctor" = list(SKIN_ICON_STATE = "qualified_doctor"), "ARACHNE" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "arachne_med"), "Slipper" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "slipper_med"), - "Zoomba" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "zoomba_med", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), - "Droid" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "medical", SKIN_HAT_OFFSET = 4), + "Zoomba" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "zoomba_med", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), + "Droid" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "medical", DROID_HAT_OFFSET), "Sleek" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "sleekmed"), "Marina" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "marinamed"), "Eyebot" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "eyebotmed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL)), @@ -254,18 +282,18 @@ "Insekt" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "insekt-Med"), "Mech" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "gibbs"), /// 64x32 Skins - "Borgi" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "borgi-medi", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Drake" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "drakemed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Hound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihound", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "DarkHound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihounddark", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Vale" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "valemed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Alina" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "alina-med", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Borgi" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "borgi-medi", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), BORGI_HAT_OFFSET), + "Drake" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "drakemed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), + "Hound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihound", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "DarkHound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihounddark", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Vale" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "valemed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), + "Alina" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "alina-med", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), ALINA_HAT_OFFSET), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Doc)" = list(SKIN_ICON_STATE = "k4tmed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Field Medic)" = list(SKIN_ICON_STATE = "k4tmed_alt1", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Doc)" = list(SKIN_ICON_STATE = "k4tmed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Field Medic)" = list(SKIN_ICON_STATE = "k4tmed_alt1", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) //PEACEKEEPER @@ -273,7 +301,7 @@ borg_skins = list( /// 32x32 Skins "Default" = list(SKIN_ICON_STATE = "peace"), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_peace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_peace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_peacekeeper", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), "Sleek" = list(SKIN_ICON_STATE = "sleekpeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), "Spider" = list(SKIN_ICON_STATE = "whitespider", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_SMALL)), @@ -285,21 +313,21 @@ "Insekt" = list(SKIN_ICON_STATE = "insekt-Default", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), "Omni" = list(SKIN_ICON_STATE = "omoikane", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_SMALL)), /// 64x32 Skins - "Drake" = list(SKIN_ICON_STATE = "drakepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Borgi" = list(SKIN_ICON_STATE = "borgi", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), - "Vale" = list(SKIN_ICON_STATE = "valepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Drake" = list(SKIN_ICON_STATE = "drakepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), + "Borgi" = list(SKIN_ICON_STATE = "borgi", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL), BORGI_HAT_OFFSET), + "Vale" = list(SKIN_ICON_STATE = "valepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tpeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T" = list(SKIN_ICON_STATE = "k4tpeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) /obj/item/robot_model/security borg_skins = list( /// 32x32 Skins "Default" = list(SKIN_ICON_STATE = "sec"), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_sec", SKIN_ICON = CYBORG_ICON_SEC, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_sec", SKIN_ICON = CYBORG_ICON_SEC, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), "Default - Treads" = list(SKIN_ICON_STATE = "sec-tread", SKIN_LIGHT_KEY = "sec", SKIN_ICON = CYBORG_ICON_SEC), "Sleek" = list(SKIN_ICON_STATE = "sleeksec", SKIN_ICON = CYBORG_ICON_SEC), "Marina" = list(SKIN_ICON_STATE = "marinasec", SKIN_ICON = CYBORG_ICON_SEC), @@ -314,18 +342,18 @@ "Insekt" = list(SKIN_ICON_STATE = "insekt-Sec", SKIN_ICON = CYBORG_ICON_SEC), "Mech" = list(SKIN_ICON_STATE = "woody", SKIN_ICON = CYBORG_ICON_SEC), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-sec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), - "Hound" = list(SKIN_ICON_STATE = "k9", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "k9dark", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Otie" = list(SKIN_ICON_STATE = "oties", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Alina" = list(SKIN_ICON_STATE = "alina-sec", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-sec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL), BORGI_HAT_OFFSET), + "Hound" = list(SKIN_ICON_STATE = "k9", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Darkhound" = list(SKIN_ICON_STATE = "k9dark", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Drake" = list(SKIN_ICON_STATE = "drakesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), + "Otie" = list(SKIN_ICON_STATE = "oties", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), OTIE_HAT_OFFSET), + "Alina" = list(SKIN_ICON_STATE = "alina-sec", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), ALINA_HAT_OFFSET), + "Vale" = list(SKIN_ICON_STATE = "valesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tsec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T" = list(SKIN_ICON_STATE = "k4tsec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) // CARGO @@ -353,7 +381,7 @@ /obj/item/stamp/chameleon, /obj/item/borg/paperplane_crossbow, ) - hat_offset = 0 + hat_offset = list("north" = list(0, 0), "south" = list(0, 0), "east" = list(0, 0), "west" = list(0, 0)) cyborg_base_icon = "cargo" model_select_icon = "cargo" canDispose = TRUE @@ -361,20 +389,20 @@ /// 32x32 Skins "Technician" = list(SKIN_ICON_STATE = "cargoborg", SKIN_ICON = CYBORG_ICON_CARGO), "Miss M" = list(SKIN_ICON_STATE = "missm_cargo", SKIN_ICON = CYBORG_ICON_CARGO), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_cargo", SKIN_ICON = CYBORG_ICON_CARGO, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_cargo", SKIN_ICON = CYBORG_ICON_CARGO, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), ZOOMBA_HAT_OFFSET), "Birdborg" = list(SKIN_ICON_STATE = "bird_cargo", SKIN_ICON = CYBORG_ICON_CARGO), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-cargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), - "Drake" = list(SKIN_ICON_STATE = "drakecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-cargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL), BORGI_HAT_OFFSET), + "Drake" = list(SKIN_ICON_STATE = "drakecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), DRAKE_HAT_OFFSET), + "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), HOUND_HAT_OFFSET), + "Vale" = list(SKIN_ICON_STATE = "valecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE), VALE_HAT_OFFSET), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Loader)" = list(SKIN_ICON_STATE = "k4tcargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Turtleneck)" = list(SKIN_ICON_STATE = "k4tcargo_alt1", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Loader)" = list(SKIN_ICON_STATE = "k4tcargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T (Turtleneck)" = list(SKIN_ICON_STATE = "k4tcargo_alt1", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) @@ -433,10 +461,10 @@ "Male Booty Syndicate" = list(SKIN_ICON_STATE = "male_bootysyndie", SKIN_ICON = CYBORG_ICON_SYNDIE), "Mech" = list(SKIN_ICON_STATE = "chesty", SKIN_ICON = CYBORG_ICON_SYNDIE), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tsyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T" = list(SKIN_ICON_STATE = "k4tsyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) /obj/item/robot_model/syndicatejack/rebuild_modules() @@ -466,7 +494,7 @@ model_select_icon = "ninjaborg" model_select_alternate_icon = 'modular_skyrat/modules/borgs/icons/screen_cyborg.dmi' model_traits = list(TRAIT_PUSHIMMUNE, TRAIT_NOFLASH) //No more charging them with a flash and thinking it is a good idea - hat_offset = 3 + hat_offset = list("north" = list(0, 3), "south" = list(0, 3), "east" = list(0, 3), "west" = list(0, 3)) borg_skins = list( /// 32x32 Skins "Saboteur" = list(SKIN_ICON_STATE = "ninja_engi", SKIN_ICON = CYBORG_ICON_NINJA), @@ -478,10 +506,10 @@ "BootyBorg" = list(SKIN_ICON_STATE = "bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) /obj/item/robot_model/ninja/rebuild_modules() @@ -550,7 +578,7 @@ model_select_alternate_icon = 'modular_skyrat/modules/borgs/icons/screen_cyborg.dmi' model_traits = list(TRAIT_PUSHIMMUNE, TRAIT_NOFLASH) model_traits = list(TRAIT_NEGATES_GRAVITY) - hat_offset = -4 + hat_offset = list("north" = list(0, -4), "south" = list(0, -4), "east" = list(0, -4), "west" = list(0, -4)) canDispose = TRUE borg_skins = list( "Saboteur" = list(SKIN_ICON_STATE = "ninja_engi", SKIN_ICON = CYBORG_ICON_NINJA), @@ -562,12 +590,24 @@ "BootyBorg" = list(SKIN_ICON_STATE = "bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET), + "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET) ) /obj/item/robot_model/ninja_saboteur/do_transform_animation() . = ..() to_chat(loc, span_userdanger("While you have picked the saboteur model, that doesn't mean you are allowed to sabotage the station by delaminating the supermatter or opening all the doors to the armory, you should still ahelp to ask the permission to do that and the reason for it.")) + +#undef TALL_HAT_OFFSET +#undef ZOOMBA_HAT_OFFSET +#undef DROID_HAT_OFFSET +#undef BORGI_HAT_OFFSET +#undef PUP_HAT_OFFSET +#undef BLADE_HAT_OFFSET +#undef VALE_HAT_OFFSET +#undef DRAKE_HAT_OFFSET +#undef HOUND_HAT_OFFSET +#undef OTIE_HAT_OFFSET +#undef ALINA_HAT_OFFSET diff --git a/modular_skyrat/modules/borgs/code/robot_upgrade.dm b/modular_skyrat/modules/borgs/code/robot_upgrade.dm index 74e971f44f801..3b61fd7053558 100644 --- a/modular_skyrat/modules/borgs/code/robot_upgrade.dm +++ b/modular_skyrat/modules/borgs/code/robot_upgrade.dm @@ -8,7 +8,7 @@ /obj/item/borg/upgrade/surgerytools name = "medical cyborg advanced surgery tools" desc = "An upgrade to the Medical model cyborg's surgery loadout, replacing non-advanced tools with their advanced counterpart." - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/medical) model_flags = BORG_MODEL_MEDICAL @@ -56,7 +56,7 @@ /obj/item/borg/upgrade/advanced_materials name = "engineering advanced materials processor" desc = "allows a cyborg to synthesize and store advanced materials" - icon_state = "cyborg_upgrade3" + icon_state = "module_engineer" model_type = list(/obj/item/robot_model/engineering) model_flags = BORG_MODEL_ENGINEERING @@ -79,7 +79,7 @@ /obj/item/borg/upgrade/welder name = "mining cyborg welder upgrade" desc = "A normal welder with a larger tank for cyborgs." - icon_state = "cyborg_upgrade3" + icon_state = "module_engineer" require_model = TRUE model_type = list(/obj/item/robot_model/miner) model_flags = BORG_MODEL_MINER @@ -106,7 +106,8 @@ /obj/item/borg/upgrade/better_clamp name = "improved integrated hydraulic clamp" desc = "An improved hydraulic clamp to allow for bigger packages to be picked up as well!" - icon_state = "cyborg_upgrade3" + icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi' + icon_state = "module_cargo" require_model = TRUE model_type = list(/obj/item/robot_model/cargo) model_flags = BORG_MODEL_CARGO @@ -127,7 +128,8 @@ /obj/item/borg/upgrade/cargo_tele name = "cargo teleporter module" desc = "Allows you to upgrade a cargo cyborg with the cargo teleporter" - icon_state = "cyborg_upgrade3" + icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi' + icon_state = "module_cargo" require_model = TRUE model_type = list(/obj/item/robot_model/cargo) model_flags = BORG_MODEL_CARGO @@ -148,7 +150,8 @@ /obj/item/borg/upgrade/forging name = "cyborg forging module" desc = "Allows you to upgrade a cargo cyborg with forging gear" - icon_state = "cyborg_upgrade3" + icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi' + icon_state = "module_cargo" require_model = TRUE model_type = list(/obj/item/robot_model/cargo) model_flags = BORG_MODEL_CARGO @@ -178,7 +181,7 @@ /obj/item/borg/upgrade/artistic name = "borg artistic module" desc = "Allows you to upgrade a cyborg with tools for creating art." - icon_state = "cyborg_upgrade3" + icon_state = "module_general" items_to_add = list( /obj/item/pen, /obj/item/toy/crayon/spraycan/borg, @@ -202,7 +205,7 @@ /obj/item/borg/upgrade/botany name = "botanical operator upgrade" desc = "Provides an assortement of tools for dealing with plants." - icon_state = "cyborg_upgrade2" + icon_state = "module_service" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE @@ -223,7 +226,7 @@ /obj/item/borg/upgrade/borg_shapeshifter name = "cyborg shapeshifter module" desc = "An experimental device which allows a cyborg to disguise themself into another type of cyborg." - icon_state = "cyborg_upgrade3" + icon_state = "module_general" items_to_add = list(/obj/item/borg_shapeshifter) @@ -231,7 +234,7 @@ /obj/item/borg/upgrade/affectionmodule name = "borg affection module" desc = "A module that upgrades the ability of borgs to display affection." - icon_state = "cyborg_upgrade3" + icon_state = "module_peace" items_to_add = list(/obj/item/quadborg_tongue, /obj/item/quadborg_nose) @@ -267,7 +270,7 @@ /obj/item/borg/upgrade/shrink name = "borg shrinker" desc = "A cyborg resizer, it makes a cyborg small." - icon_state = "cyborg_upgrade3" + icon_state = "module_general" /obj/item/borg/upgrade/shrink/action(mob/living/silicon/robot/borg, user = usr) . = ..() @@ -309,7 +312,7 @@ /obj/item/borg/upgrade/transform/syndicatejack name = "borg module picker (Syndicate)" desc = "Allows you to to turn a cyborg into a experimental syndicate cyborg." - icon_state = "cyborg_upgrade3" + icon_state = "module_illegal" new_model = /obj/item/robot_model/syndicatejack /obj/item/borg/upgrade/transform/syndicatejack/action(mob/living/silicon/robot/cyborg, user = usr) // Only usable on emagged cyborgs. In exchange. makes you unable to get locked down or detonated. @@ -320,7 +323,8 @@ /obj/item/borg/upgrade/dominatrixmodule name = "borg dominatrix module" desc = "A module that greatly upgrades the ability of borgs to display affection." - icon_state = "cyborg_upgrade3" + icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi' + icon_state = "module_lust" custom_price = 0 items_to_add = list(/obj/item/kinky_shocker, diff --git a/modular_skyrat/modules/borgs/code/update_icons.dm b/modular_skyrat/modules/borgs/code/update_icons.dm index 704ac198a47da..de19f1de878ba 100644 --- a/modular_skyrat/modules/borgs/code/update_icons.dm +++ b/modular_skyrat/modules/borgs/code/update_icons.dm @@ -50,10 +50,8 @@ icon_state = "[model.cyborg_base_icon]" cut_overlays() - if(hat) // Don't forget your hat - var/mutable_appearance/head_overlay = hat.build_worn_icon(default_layer = 20) - head_overlay.pixel_y += (hat_offset - 14) - add_overlay(head_overlay) + if(hat_overlay) // Don't forget your hat + add_overlay(hat_overlay) else icon_state = "[model.cyborg_base_icon]" diff --git a/modular_skyrat/modules/borgs/icons/robot_items.dmi b/modular_skyrat/modules/borgs/icons/robot_items.dmi index 2293dae78b32f..31c6eff46c5e1 100644 Binary files a/modular_skyrat/modules/borgs/icons/robot_items.dmi and b/modular_skyrat/modules/borgs/icons/robot_items.dmi differ diff --git a/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm b/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm index fdb9df70e3285..406c96326b67b 100644 --- a/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm +++ b/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm @@ -4,7 +4,7 @@ icon = 'modular_skyrat/modules/company_imports/icons/hud_goggles.dmi' worn_icon = 'modular_skyrat/modules/company_imports/icons/hud_goggles_worn.dmi' icon_state = "permithud" - hud_type = DATA_HUD_PERMIT + hud_types = list(DATA_HUD_PERMIT) /obj/item/clothing/glasses/hud/gun_permit/sunglasses name = "permit HUD sunglasses" diff --git a/modular_skyrat/modules/company_imports/code/objects/nakamura_modsuits/plate_compression_tech.dm b/modular_skyrat/modules/company_imports/code/objects/nakamura_modsuits/plate_compression_tech.dm index ff9ab5becd5f6..7a6b808374ea9 100644 --- a/modular_skyrat/modules/company_imports/code/objects/nakamura_modsuits/plate_compression_tech.dm +++ b/modular_skyrat/modules/company_imports/code/objects/nakamura_modsuits/plate_compression_tech.dm @@ -1,2 +1,2 @@ /datum/uplink_item/suits/plate_compression - illegal_tech = FALSE + uplink_item_flags = NONE diff --git a/modular_skyrat/modules/cortical_borer/code/cortical_borer_abilities.dm b/modular_skyrat/modules/cortical_borer/code/abilities/_borer_abilities.dm similarity index 77% rename from modular_skyrat/modules/cortical_borer/code/cortical_borer_abilities.dm rename to modular_skyrat/modules/cortical_borer/code/abilities/_borer_abilities.dm index 8badbebfca427..2ee3889f71542 100644 --- a/modular_skyrat/modules/cortical_borer/code/cortical_borer_abilities.dm +++ b/modular_skyrat/modules/cortical_borer/code/abilities/_borer_abilities.dm @@ -4,9 +4,10 @@ #define BLOOD_CHEM_OBJECTIVE 3 // Parent of all borer actions -/datum/action/cooldown/borer +/datum/action/cooldown/mob_cooldown/borer button_icon = 'modular_skyrat/modules/cortical_borer/icons/actions.dmi' cooldown_time = 0 + shared_cooldown = NONE /// How many chemicals this costs var/chemical_cost = 0 /// How many chem evo points are needed to use this ability @@ -14,7 +15,7 @@ /// How many stat evo points are needed to use this ability var/stat_evo_points = 0 -/datum/action/cooldown/borer/New(Target, original) +/datum/action/cooldown/mob_cooldown/borer/New(Target, original) . = ..() var/compiled_string = "" if(chemical_cost) @@ -25,7 +26,7 @@ compiled_string += " ([stat_evo_points] stat point[stat_evo_points == 1 ? "" : "s"])" name = "[initial(name)][compiled_string]" -/datum/action/cooldown/borer/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/Trigger(trigger_flags, atom/target) . = ..() if(!iscorticalborer(owner)) to_chat(owner, span_warning("You must be a cortical borer to use this action!")) @@ -46,11 +47,12 @@ return . == FALSE ? FALSE : TRUE //. can be null, true, or false. There's a difference between null and false here //inject chemicals into your host -/datum/action/cooldown/borer/inject_chemical +/datum/action/cooldown/mob_cooldown/borer/inject_chemical name = "Open Chemical Injector" button_icon_state = "chemical" + click_to_activate = FALSE -/datum/action/cooldown/borer/inject_chemical/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/inject_chemical/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -63,13 +65,13 @@ return ui_interact(owner) -/datum/action/cooldown/borer/inject_chemical/ui_interact(mob/user, datum/tgui/ui) +/datum/action/cooldown/mob_cooldown/borer/inject_chemical/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "BorerChem", name) ui.open() -/datum/action/cooldown/borer/inject_chemical/ui_data(mob/user) +/datum/action/cooldown/mob_cooldown/borer/inject_chemical/ui_data(mob/user) var/list/data = list() var/mob/living/basic/cortical_borer/cortical_owner = owner data["amount"] = cortical_owner.injection_rate_current @@ -89,7 +91,7 @@ return data -/datum/action/cooldown/borer/inject_chemical/ui_act(action, params) +/datum/action/cooldown/mob_cooldown/borer/inject_chemical/ui_act(action, params) . = ..() if(.) return @@ -124,10 +126,10 @@ cortical_owner.human_host.log_message(logging_text, LOG_GAME) . = TRUE -/datum/action/cooldown/borer/inject_chemical/ui_state(mob/user) +/datum/action/cooldown/mob_cooldown/borer/inject_chemical/ui_state(mob/user) return GLOB.always_state -/datum/action/cooldown/borer/inject_chemical/ui_status(mob/user, datum/ui_state/state) +/datum/action/cooldown/mob_cooldown/borer/inject_chemical/ui_status(mob/user, datum/ui_state/state) if(!iscorticalborer(user)) return UI_CLOSE @@ -137,23 +139,24 @@ return UI_CLOSE return ..() -/datum/action/cooldown/borer/evolution_tree +/datum/action/cooldown/mob_cooldown/borer/evolution_tree name = "Open Evolution Tree" button_icon_state = "newability" + click_to_activate = FALSE -/datum/action/cooldown/borer/evolution_tree/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/evolution_tree/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE ui_interact(owner) -/datum/action/cooldown/borer/evolution_tree/ui_interact(mob/user, datum/tgui/ui) +/datum/action/cooldown/mob_cooldown/borer/evolution_tree/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "BorerEvolution", name) ui.open() -/datum/action/cooldown/borer/evolution_tree/ui_data(mob/user) +/datum/action/cooldown/mob_cooldown/borer/evolution_tree/ui_data(mob/user) var/list/data = list() var/static/list/path_to_color = list( @@ -201,7 +204,7 @@ data["learnedEvolution"] += list(evo_data) return data -/datum/action/cooldown/borer/evolution_tree/ui_act(action, params) +/datum/action/cooldown/mob_cooldown/borer/evolution_tree/ui_act(action, params) . = ..() if(.) return @@ -223,14 +226,15 @@ cortical_owner.stat_evolution -= initial(to_evolve_path.evo_cost) return TRUE -/datum/action/cooldown/borer/evolution_tree/ui_state(mob/user) +/datum/action/cooldown/mob_cooldown/borer/evolution_tree/ui_state(mob/user) return GLOB.always_state -/datum/action/cooldown/borer/learn_focus +/datum/action/cooldown/mob_cooldown/borer/learn_focus name = "Learn Focus" button_icon_state = "getfocus" + click_to_activate = FALSE -/datum/action/cooldown/borer/learn_focus/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/learn_focus/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -263,12 +267,13 @@ owner.balloon_alert(owner, "focus learned successfully") StartCooldown() -/datum/action/cooldown/borer/learn_bloodchemical +/datum/action/cooldown/mob_cooldown/borer/learn_bloodchemical name = "Learn Chemical from Blood" button_icon_state = "bloodchem" chemical_evo_points = 5 + click_to_activate = FALSE -/datum/action/cooldown/borer/learn_bloodchemical/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/learn_bloodchemical/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -309,12 +314,13 @@ StartCooldown() //become stronger by learning new chemicals -/datum/action/cooldown/borer/upgrade_chemical +/datum/action/cooldown/mob_cooldown/borer/upgrade_chemical name = "Learn New Chemical" button_icon_state = "bloodlevel" chemical_evo_points = 1 + click_to_activate = FALSE -/datum/action/cooldown/borer/upgrade_chemical/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/upgrade_chemical/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -344,12 +350,13 @@ StartCooldown() //become stronger by affecting the stats -/datum/action/cooldown/borer/upgrade_stat +/datum/action/cooldown/mob_cooldown/borer/upgrade_stat name = "Become Stronger" button_icon_state = "level" stat_evo_points = 1 + click_to_activate = FALSE -/datum/action/cooldown/borer/upgrade_stat/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/upgrade_stat/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -375,11 +382,12 @@ StartCooldown() //go between either hiding behind tables or behind mobs -/datum/action/cooldown/borer/toggle_hiding +/datum/action/cooldown/mob_cooldown/borer/toggle_hiding name = "Toggle Hiding" button_icon_state = "hide" + click_to_activate = FALSE -/datum/action/cooldown/borer/toggle_hiding/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/toggle_hiding/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -396,12 +404,12 @@ StartCooldown() //to paralyze people -/datum/action/cooldown/borer/fear_human +/datum/action/cooldown/mob_cooldown/borer/fear_human name = "Incite Fear" cooldown_time = 12 SECONDS button_icon_state = "fear" -/datum/action/cooldown/borer/fear_human/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/fear_human/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -435,7 +443,7 @@ incite_fear(choose_fear) StartCooldown() -/datum/action/cooldown/borer/fear_human/proc/incite_fear(mob/living/carbon/human/singular_fear) +/datum/action/cooldown/mob_cooldown/borer/fear_human/proc/incite_fear(mob/living/carbon/human/singular_fear) var/mob/living/basic/cortical_borer/cortical_owner = owner to_chat(singular_fear, span_warning("Something glares menacingly at you!")) singular_fear.Paralyze(7 SECONDS) @@ -446,7 +454,7 @@ cortical_owner.log_message(logging_text, LOG_GAME) singular_fear.log_message(logging_text, LOG_GAME) -/datum/action/cooldown/borer/fear_human/proc/incite_internal_fear() +/datum/action/cooldown/mob_cooldown/borer/fear_human/proc/incite_internal_fear() var/mob/living/basic/cortical_borer/cortical_owner = owner owner.balloon_alert(owner, "fear incited into host") cortical_owner.human_host.Paralyze(10 SECONDS) @@ -459,12 +467,13 @@ cortical_owner.human_host.log_message(logging_text, LOG_GAME) //to check the health of the human -/datum/action/cooldown/borer/check_blood +/datum/action/cooldown/mob_cooldown/borer/check_blood name = "Check Blood" cooldown_time = 5 SECONDS button_icon_state = "blood" + click_to_activate = FALSE -/datum/action/cooldown/borer/check_blood/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/check_blood/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -479,121 +488,14 @@ chemscan(owner, cortical_owner.human_host) StartCooldown() -//to either get inside, or out, of a host -/datum/action/cooldown/borer/choosing_host - name = "Inhabit/Uninhabit Host" - cooldown_time = 10 SECONDS - button_icon_state = "host" - -/datum/action/cooldown/borer/choosing_host/Trigger(trigger_flags, atom/target) - . = ..() - if(!.) - return FALSE - var/mob/living/basic/cortical_borer/cortical_owner = owner - - //having a host means we need to leave them then - if(cortical_owner.human_host) - if(cortical_owner.host_sugar()) - owner.balloon_alert(owner, "cannot function with sugar in host") - return - owner.balloon_alert(owner, "detached from host") - if(!(cortical_owner.upgrade_flags & BORER_STEALTH_MODE)) - to_chat(cortical_owner.human_host, span_notice("Something carefully tickles your inner ear...")) - var/obj/item/organ/internal/borer_body/borer_organ = locate() in cortical_owner.human_host.organs - //log the interaction - var/turf/human_turfone = get_turf(cortical_owner.human_host) - var/logging_text = "[key_name(cortical_owner)] left [key_name(cortical_owner.human_host)] at [loc_name(human_turfone)]" - cortical_owner.log_message(logging_text, LOG_GAME) - cortical_owner.human_host.log_message(logging_text, LOG_GAME) - if(borer_organ) - borer_organ.Remove(cortical_owner.human_host) - cortical_owner.forceMove(human_turfone) - cortical_owner.human_host = null - REMOVE_TRAIT(cortical_owner, TRAIT_WEATHER_IMMUNE, "borer_in_host") - StartCooldown() - return - - //we dont have a host so lets inhabit one - var/list/usable_hosts = list() - for(var/mob/living/carbon/human/listed_human in range(1, cortical_owner)) - // no non-human hosts - if(!ishuman(listed_human) || ismonkey(listed_human)) - continue - // cannot have multiple borers (for now) - if(listed_human.has_borer()) - continue - // hosts need to be organic - if(!(listed_human.dna.species.inherent_biotypes & MOB_ORGANIC) && cortical_owner.organic_restricted) - continue - // hosts need to be organic - if(!(listed_human.mob_biotypes & MOB_ORGANIC) && cortical_owner.organic_restricted) - continue - //hosts cannot be changelings - if(IS_CHANGELING(listed_human) && cortical_owner.changeling_restricted) - continue - usable_hosts += listed_human - - //if the list of possible hosts is one, just go straight in, no choosing - if(length(usable_hosts) == 1) - enter_host(usable_hosts[1]) - return - - //if the list of possible host is more than one, allow choosing a host - var/choose_host = tgui_input_list(cortical_owner, "Choose your host!", "Host Choice", usable_hosts) - if(!choose_host) - owner.balloon_alert(owner, "no target selected") - return - enter_host(choose_host) - -/datum/action/cooldown/borer/choosing_host/proc/enter_host(mob/living/carbon/human/singular_host) - var/mob/living/basic/cortical_borer/cortical_owner = owner - if(check_for_bio_protection(singular_host)) - owner.balloon_alert(owner, "target head too protected!") - return - if(singular_host.has_borer()) - owner.balloon_alert(owner, "target already occupied") - return - if(!do_after(cortical_owner, (((cortical_owner.upgrade_flags & BORER_FAST_BORING) && !(cortical_owner.upgrade_flags & BORER_HIDING)) ? 3 SECONDS : 6 SECONDS), target = singular_host)) - owner.balloon_alert(owner, "you and target must be still") - return - if(get_dist(singular_host, cortical_owner) > 1) - owner.balloon_alert(owner, "target too far away") - return - cortical_owner.human_host = singular_host - cortical_owner.forceMove(cortical_owner.human_host) - if(!(cortical_owner.upgrade_flags & BORER_STEALTH_MODE)) - to_chat(cortical_owner.human_host, span_notice("A chilling sensation goes down your spine...")) - cortical_owner.copy_languages(cortical_owner.human_host) - var/obj/item/organ/internal/borer_body/borer_organ = new(cortical_owner.human_host) - borer_organ.borer = owner - borer_organ.Insert(cortical_owner.human_host) - var/turf/human_turftwo = get_turf(cortical_owner.human_host) - var/logging_text = "[key_name(cortical_owner)] went into [key_name(cortical_owner.human_host)] at [loc_name(human_turftwo)]" - cortical_owner.log_message(logging_text, LOG_GAME) - cortical_owner.human_host.log_message(logging_text, LOG_GAME) - ADD_TRAIT(cortical_owner, TRAIT_WEATHER_IMMUNE, "borer_in_host") - StartCooldown() - -/// Checks if the target's head is bio protected, returns true if this is the case -/datum/action/cooldown/borer/choosing_host/proc/check_for_bio_protection(mob/living/carbon/human/target) - if(isobj(target.head)) - if(target.head.get_armor_rating(BIO) >= 100) - return TRUE - if(isobj(target.wear_mask)) - if(target.wear_mask.get_armor_rating(BIO) >= 100) - return TRUE - if(isobj(target.wear_neck)) - if(target.wear_neck.get_armor_rating(BIO) >= 100) - return TRUE - return FALSE - //you can force your host to speak... dont abuse this -/datum/action/cooldown/borer/force_speak +/datum/action/cooldown/mob_cooldown/borer/force_speak name = "Force Host Speak" cooldown_time = 30 SECONDS button_icon_state = "speak" + click_to_activate = FALSE -/datum/action/cooldown/borer/force_speak/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/force_speak/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -622,13 +524,14 @@ StartCooldown() //we need a way to produce offspring -/datum/action/cooldown/borer/produce_offspring +/datum/action/cooldown/mob_cooldown/borer/produce_offspring name = "Produce Offspring" cooldown_time = 1 MINUTES button_icon_state = "reproduce" chemical_cost = 100 + click_to_activate = FALSE -/datum/action/cooldown/borer/produce_offspring/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/produce_offspring/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -665,7 +568,7 @@ owner.balloon_alert(owner, "egg laid") StartCooldown() -/datum/action/cooldown/borer/produce_offspring/proc/no_host_egg() +/datum/action/cooldown/mob_cooldown/borer/produce_offspring/proc/no_host_egg() var/mob/living/basic/cortical_borer/cortical_owner = owner cortical_owner.health = max(cortical_owner.health, 1, cortical_owner.health -= OUT_OF_HOST_EGG_COST) produce_egg() @@ -676,7 +579,7 @@ cortical_owner.log_message(logging_text, LOG_GAME) owner.balloon_alert(owner, "egg laid") -/datum/action/cooldown/borer/produce_offspring/proc/produce_egg() +/datum/action/cooldown/mob_cooldown/borer/produce_offspring/proc/produce_egg() var/mob/living/basic/cortical_borer/cortical_owner = owner var/turf/borer_turf = get_turf(cortical_owner) var/obj/effect/mob_spawn/ghost_role/borer_egg/spawned_egg = new /obj/effect/mob_spawn/ghost_role/borer_egg(borer_turf) @@ -686,13 +589,14 @@ GLOB.successful_egg_number += 1 //revive your host -/datum/action/cooldown/borer/revive_host +/datum/action/cooldown/mob_cooldown/borer/revive_host name = "Revive Host" cooldown_time = 2 MINUTES button_icon_state = "revive" chemical_cost = 200 + click_to_activate = FALSE -/datum/action/cooldown/borer/revive_host/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/revive_host/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -726,13 +630,14 @@ StartCooldown() //to ask if a host is willing -/datum/action/cooldown/borer/willing_host +/datum/action/cooldown/mob_cooldown/borer/willing_host name = "Willing Host" cooldown_time = 2 MINUTES button_icon_state = "willing" chemical_cost = 150 + click_to_activate = FALSE -/datum/action/cooldown/borer/willing_host/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/willing_host/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE @@ -759,13 +664,14 @@ GLOB.willing_hosts += cortical_owner.human_host.ckey StartCooldown() -/datum/action/cooldown/borer/stealth_mode +/datum/action/cooldown/mob_cooldown/borer/stealth_mode name = "Stealth Mode" cooldown_time = 2 MINUTES button_icon_state = "hiding" chemical_cost = 100 + click_to_activate = FALSE -/datum/action/cooldown/borer/stealth_mode/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/stealth_mode/Trigger(trigger_flags, atom/target) var/mob/living/basic/cortical_borer/cortical_owner = owner var/in_stealth = (cortical_owner.upgrade_flags & BORER_STEALTH_MODE) if(in_stealth) @@ -788,13 +694,14 @@ StartCooldown() -/datum/action/cooldown/borer/empowered_offspring +/datum/action/cooldown/mob_cooldown/borer/empowered_offspring name = "Produce Empowered Offspring" cooldown_time = 1 MINUTES button_icon_state = "reproduce" chemical_cost = 150 + click_to_activate = FALSE -/datum/action/cooldown/borer/empowered_offspring/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/mob_cooldown/borer/empowered_offspring/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE diff --git a/modular_skyrat/modules/cortical_borer/code/abilities/host_movement.dm b/modular_skyrat/modules/cortical_borer/code/abilities/host_movement.dm new file mode 100644 index 0000000000000..30c9b435b9603 --- /dev/null +++ b/modular_skyrat/modules/cortical_borer/code/abilities/host_movement.dm @@ -0,0 +1,31 @@ +//to either get inside, or out, of a host +/datum/action/cooldown/mob_cooldown/borer/choosing_host + name = "Inhabit/Uninhabit Host" + cooldown_time = 10 SECONDS + button_icon_state = "host" + click_to_activate = TRUE + +/datum/action/cooldown/mob_cooldown/borer/choosing_host/Activate(atom/target) + if(get_dist(owner, target) > 1) + owner.balloon_alert(owner, "too far") + return + if(!ishuman(target)) + owner.balloon_alert(owner, "not human") + return + var/mob/living/basic/cortical_borer/cortical_owner = owner + if(!cortical_owner.try_enter_host(target)) + return + . = ..() + return TRUE + +/datum/action/cooldown/mob_cooldown/borer/choosing_host/Trigger(trigger_flags, atom/target) + . = ..() + if(!.) + return FALSE + // Check if we already have a human_host + var/mob/living/basic/cortical_borer/cortical_owner = owner + if(!cortical_owner.human_host) + return + if(cortical_owner.try_leave_host()) + StartCooldown() + return . diff --git a/modular_skyrat/modules/cortical_borer/code/cortical_borer.dm b/modular_skyrat/modules/cortical_borer/code/cortical_borer.dm index 2106fd628e079..fda5692a028c0 100644 --- a/modular_skyrat/modules/cortical_borer/code/cortical_borer.dm +++ b/modular_skyrat/modules/cortical_borer/code/cortical_borer.dm @@ -31,13 +31,6 @@ GLOBAL_LIST_EMPTY(cortical_borers) return check_content return FALSE -//so if a person is debrained, the borer is removed -/obj/item/organ/internal/brain/Remove(mob/living/carbon/target, special = 0, movement_flags) - . = ..() - var/mob/living/basic/cortical_borer/cb_inside = target.has_borer() - if(cb_inside) - cb_inside.leave_host() - //borers also create an organ, so you dont need to debrain someone /obj/item/organ/internal/borer_body name = "engorged cortical borer" @@ -50,14 +43,14 @@ GLOBAL_LIST_EMPTY(cortical_borers) borer = null return ..() -/obj/item/organ/internal/borer_body/Insert(mob/living/carbon/carbon_target, special, movement_flags) +/obj/item/organ/internal/borer_body/on_mob_insert(mob/living/carbon/carbon_target, special, movement_flags) . = ..() for(var/datum/borer_focus/body_focus as anything in borer.body_focuses) body_focus.on_add() carbon_target.apply_status_effect(/datum/status_effect/grouped/screwy_hud/fake_healthy, type) //on removal, force the borer out -/obj/item/organ/internal/borer_body/Remove(mob/living/carbon/carbon_target, special) +/obj/item/organ/internal/borer_body/on_mob_remove(mob/living/carbon/carbon_target, special) . = ..() var/mob/living/basic/cortical_borer/cb_inside = carbon_target.has_borer() for(var/datum/borer_focus/body_focus as anything in cb_inside.body_focuses) @@ -141,19 +134,21 @@ GLOBAL_LIST_EMPTY(cortical_borers) /// How many times you've levelled up over all var/level = 0 ///the list of actions that the borer has - var/list/known_abilities = list(/datum/action/cooldown/borer/toggle_hiding, - /datum/action/cooldown/borer/choosing_host, - /datum/action/cooldown/borer/evolution_tree, - /datum/action/cooldown/borer/inject_chemical, - /datum/action/cooldown/borer/upgrade_chemical, - /datum/action/cooldown/borer/learn_focus, - /datum/action/cooldown/borer/upgrade_stat, - /datum/action/cooldown/borer/force_speak, - /datum/action/cooldown/borer/fear_human, - /datum/action/cooldown/borer/check_blood, + var/list/known_abilities = list(/datum/action/cooldown/mob_cooldown/borer/toggle_hiding, + /datum/action/cooldown/mob_cooldown/borer/choosing_host, + /datum/action/cooldown/mob_cooldown/borer/evolution_tree, + /datum/action/cooldown/mob_cooldown/borer/inject_chemical, + /datum/action/cooldown/mob_cooldown/borer/upgrade_chemical, + /datum/action/cooldown/mob_cooldown/borer/learn_focus, + /datum/action/cooldown/mob_cooldown/borer/upgrade_stat, + /datum/action/cooldown/mob_cooldown/borer/force_speak, + /datum/action/cooldown/mob_cooldown/borer/fear_human, + /datum/action/cooldown/mob_cooldown/borer/check_blood, ) - ///the host + /// The human we are hosted in var/mob/living/carbon/human/human_host + /// The brain we are currently hooked to + var/obj/item/organ/internal/brain/brain_host //what the host gains or loses with the borer var/list/hosts_abilities = list() //just a little "timer" to compare to world.time @@ -245,7 +240,8 @@ GLOBAL_LIST_EMPTY(cortical_borers) do_evolution(/datum/borer_evolution/base) /mob/living/basic/cortical_borer/Destroy() - human_host = null + if(human_host) + leave_host_clean() GLOB.cortical_borers -= src QDEL_NULL(reagent_holder) return ..() @@ -364,17 +360,6 @@ GLOBAL_LIST_EMPTY(cortical_borers) else // this is a hot place adjust_bodytemperature(min(min(temp_delta / BODYTEMP_DIVISOR, BODYTEMP_HEATING_MAX) * seconds_per_tick, temp_delta)) -//leave the host, forced or not -/mob/living/basic/cortical_borer/proc/leave_host() - if(!human_host) - return - var/obj/item/organ/internal/borer_body/borer_organ = locate() in human_host.organs - if(borer_organ) - borer_organ.Remove(human_host) - var/turf/human_turf = get_turf(human_host) - forceMove(human_turf) - human_host = null - //borers shouldnt be able to whisper... /mob/living/basic/cortical_borer/whisper(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language, ignore_spam = FALSE, forced, filterproof) to_chat(src, span_warning("You are not able to whisper!")) diff --git a/modular_skyrat/modules/cortical_borer/code/cortical_borer_movement.dm b/modular_skyrat/modules/cortical_borer/code/cortical_borer_movement.dm new file mode 100644 index 0000000000000..8e967b43e7c5a --- /dev/null +++ b/modular_skyrat/modules/cortical_borer/code/cortical_borer_movement.dm @@ -0,0 +1,88 @@ + +/// Checks if the target's head is bio protected, returns true if this is the case +/mob/living/basic/cortical_borer/proc/check_for_target_bio_protection(mob/living/carbon/human/target) + if(isobj(target.head)) + if(target.head.get_armor_rating(BIO) >= 100) + return TRUE + if(isobj(target.wear_mask)) + if(target.wear_mask.get_armor_rating(BIO) >= 100) + return TRUE + if(isobj(target.wear_neck)) + if(target.wear_neck.get_armor_rating(BIO) >= 100) + return TRUE + return FALSE + +/mob/living/basic/cortical_borer/proc/try_enter_host(mob/living/carbon/human/victim) + if(check_for_target_bio_protection(victim)) + balloon_alert(src, "head too protected!") + return FALSE + if(victim.has_borer()) + balloon_alert(src, "already occupied") + return FALSE + if(!do_after(src, (((upgrade_flags & BORER_FAST_BORING) && !(upgrade_flags & BORER_HIDING)) ? 3 SECONDS : 6 SECONDS), target = victim)) + balloon_alert(src, "keep still") + return FALSE + if(get_dist(victim, src) > 1) + balloon_alert(src, "too far") + return FALSE + var/obj/item/organ/internal/brain/brain = victim.get_organ_slot(ORGAN_SLOT_BRAIN) + if(!istype(brain)) + balloon_alert(src, "no brain") + return FALSE + + return enter_host(victim, brain) + +/mob/living/basic/cortical_borer/proc/enter_host(mob/living/carbon/human/victim, obj/item/organ/internal/brain/brain) + human_host = victim + forceMove(human_host) + + if(!(upgrade_flags & BORER_STEALTH_MODE)) + to_chat(human_host, span_notice("A chilling sensation goes down your spine...")) + copy_languages(human_host) + + var/obj/item/organ/internal/borer_body/borer_organ = new() + borer_organ.borer = src + borer_organ.Insert(human_host) + + log_message("[key_name(src)] went into [key_name(human_host)] at [loc_name(get_turf(human_host))]", LOG_GAME) + + ADD_TRAIT(src, TRAIT_WEATHER_IMMUNE, "borer_in_host") + + RegisterSignal(brain, COMSIG_ORGAN_REMOVED, PROC_REF(on_brain_removed)) + brain_host = brain + return TRUE + +/mob/living/basic/cortical_borer/proc/try_leave_host() + if(host_sugar()) + balloon_alert(src, "cannot function with sugar in host") + return TRUE // We force a cooldown over sugar + balloon_alert(src, "left host") + if(!(upgrade_flags & BORER_STEALTH_MODE)) + to_chat(human_host, span_notice("Something carefully tickles your inner ear...")) + return leave_host() + +/mob/living/basic/cortical_borer/proc/leave_host() + var/turf/dropoff_turf = get_turf(human_host) + log_message("[key_name(src)] left [key_name(human_host)] at [loc_name(dropoff_turf)]", LOG_GAME) + + leave_host_clean() + forceMove(dropoff_turf) + + REMOVE_TRAIT(src, TRAIT_WEATHER_IMMUNE, "borer_in_host") + return TRUE + +///This is the version for correctly cleaning up the borer when qdeling/moving out. Don't call this directly +/mob/living/basic/cortical_borer/proc/leave_host_clean() + var/obj/item/organ/internal/borer_body/borer_organ = locate() in human_host.organs + if(borer_organ) + borer_organ.Remove(human_host) + if(brain_host) + UnregisterSignal(brain_host, COMSIG_ORGAN_REMOVED) + human_host = null + brain_host = null + + +///If a person is debrained, the borer is removed with this +/mob/living/basic/cortical_borer/proc/on_brain_removed(atom/source, mob/living/carbon/target) + SIGNAL_HANDLER + leave_host() diff --git a/modular_skyrat/modules/cortical_borer/code/evolution/evolution_diveworm.dm b/modular_skyrat/modules/cortical_borer/code/evolution/evolution_diveworm.dm index b04370d6c29bd..b34bd8e1389ae 100644 --- a/modular_skyrat/modules/cortical_borer/code/evolution/evolution_diveworm.dm +++ b/modular_skyrat/modules/cortical_borer/code/evolution/evolution_diveworm.dm @@ -107,5 +107,5 @@ /datum/borer_evolution/diveworm/empowered_offspring/on_evolve(mob/living/basic/cortical_borer/cortical_owner) . = ..() - var/datum/action/cooldown/borer/empowered_offspring/attack_action = new(cortical_owner) + var/datum/action/cooldown/mob_cooldown/borer/empowered_offspring/attack_action = new(cortical_owner) attack_action.Grant(cortical_owner) diff --git a/modular_skyrat/modules/cortical_borer/code/evolution/evolution_hivelord.dm b/modular_skyrat/modules/cortical_borer/code/evolution/evolution_hivelord.dm index be06cc5d7f415..a48ece6869970 100644 --- a/modular_skyrat/modules/cortical_borer/code/evolution/evolution_hivelord.dm +++ b/modular_skyrat/modules/cortical_borer/code/evolution/evolution_hivelord.dm @@ -12,7 +12,7 @@ /datum/borer_evolution/hivelord/produce_offspring/on_evolve(mob/living/basic/cortical_borer/cortical_owner) . = ..() - var/datum/action/cooldown/borer/produce_offspring/attack_action = new(cortical_owner) + var/datum/action/cooldown/mob_cooldown/borer/produce_offspring/attack_action = new(cortical_owner) attack_action.Grant(cortical_owner) // T2 @@ -25,7 +25,7 @@ /datum/borer_evolution/hivelord/blood_chemical/on_evolve(mob/living/basic/cortical_borer/cortical_owner) . = ..() - var/datum/action/cooldown/borer/learn_bloodchemical/attack_action = new(cortical_owner) + var/datum/action/cooldown/mob_cooldown/borer/learn_bloodchemical/attack_action = new(cortical_owner) attack_action.Grant(cortical_owner) // T3 @@ -51,7 +51,7 @@ /datum/borer_evolution/hivelord/stealth_mode/on_evolve(mob/living/basic/cortical_borer/cortical_owner) . = ..() - var/datum/action/cooldown/borer/stealth_mode/attack_action = new(cortical_owner) + var/datum/action/cooldown/mob_cooldown/borer/stealth_mode/attack_action = new(cortical_owner) attack_action.Grant(cortical_owner) // T5 diff --git a/modular_skyrat/modules/cortical_borer/code/evolution/evolution_symbiote.dm b/modular_skyrat/modules/cortical_borer/code/evolution/evolution_symbiote.dm index 4eb5005883711..85669e0a46621 100644 --- a/modular_skyrat/modules/cortical_borer/code/evolution/evolution_symbiote.dm +++ b/modular_skyrat/modules/cortical_borer/code/evolution/evolution_symbiote.dm @@ -12,7 +12,7 @@ /datum/borer_evolution/symbiote/willing_host/on_evolve(mob/living/basic/cortical_borer/cortical_owner) . = ..() - var/datum/action/cooldown/borer/willing_host/attack_action = new(cortical_owner) + var/datum/action/cooldown/mob_cooldown/borer/willing_host/attack_action = new(cortical_owner) attack_action.Grant(cortical_owner) // T2 @@ -107,6 +107,6 @@ /datum/borer_evolution/symbiote/revive_host/on_evolve(mob/living/basic/cortical_borer/cortical_owner) . = ..() - var/datum/action/cooldown/borer/revive_host/attack_action = new(cortical_owner) + var/datum/action/cooldown/mob_cooldown/borer/revive_host/attack_action = new(cortical_owner) attack_action.Grant(cortical_owner) diff --git a/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm b/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm index 69df3d6539c19..d31c443940d26 100644 --- a/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm +++ b/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm @@ -20,7 +20,7 @@ /obj/item/clothing/glasses/hud/eyepatch/sec name = "security eyepatch HUD" desc = "Lost your eye beating an innocent clown? Thankfully your corporate overlords have made something to make up for this. May not do well against flashes." - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/blue @@ -39,7 +39,7 @@ desc = "Do no harm, maybe harm has befell to you, or your poor eyeball, thankfully there's a way to continue your oath, thankfully it didn't mention sleepdarts or monkey men." icon_state = "medpatch" base_icon_state = "medpatch" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue @@ -81,7 +81,7 @@ desc = "Lost your eyeball to a rogue borg? Dare to tell a Dogborg to do it's job? Got bored? Whatever the reason, this bit of tech will help you still repair borgs, they'll never need it since they usually do it themselves, but its the thought that counts." icon_state = "robopatch" base_icon_state = "robopatch" - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange diff --git a/modular_skyrat/modules/customization/modules/clothing/head/jobs.dm b/modular_skyrat/modules/customization/modules/clothing/head/jobs.dm index b10aa3d0f9b33..7e5c6936c1dd7 100644 --- a/modular_skyrat/modules/customization/modules/clothing/head/jobs.dm +++ b/modular_skyrat/modules/customization/modules/clothing/head/jobs.dm @@ -151,3 +151,18 @@ name = "head of personnel's beret" desc = "A fancy beret designed by NT's Personnel division for their favorite head's head. This one is made out of white fabric. Fancy" greyscale_colors = "#FFFFFF#88242D" + +/obj/item/clothing/head/beret/clown + name = "H.O.N.K tactical beret" + desc = "A tactical berret to be used during the enacting of the most dangerous of pranks." + icon = 'modular_skyrat/master_files/icons/obj/clothing/hats.dmi' + worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head.dmi' + icon_state = "beret_clown" + greyscale_colors = null + greyscale_config = null + greyscale_config_worn = null + +/obj/item/clothing/head/beret/clown/rainbow + name = "rainbow beret" + desc = "You see, when a Mime loves a Clown very much..." + icon_state = "beret_rainbow" diff --git a/modular_skyrat/modules/customization/modules/clothing/neck/collars.dm b/modular_skyrat/modules/customization/modules/clothing/neck/collars.dm index 21d514c2bc768..ae5cd17053efc 100644 --- a/modular_skyrat/modules/customization/modules/clothing/neck/collars.dm +++ b/modular_skyrat/modules/customization/modules/clothing/neck/collars.dm @@ -73,14 +73,14 @@ /obj/item/clothing/neck/human_petcollar/locked/Initialize(mapload) . = ..() - + RegisterSignal(src, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(try_lock)) create_storage(storage_type = /datum/storage/pockets/small/collar/locked) -/obj/item/clothing/neck/human_petcollar/locked/attackby(obj/item/attacking_item, mob/user, params) +/obj/item/clothing/neck/human_petcollar/locked/proc/try_lock(atom/source, mob/user, obj/item/attacking_item, params) if(istype(attacking_item, /obj/item/key/collar)) to_chat(user, span_warning("With a click, the collar [locked ? "unlocks" : "locks"]!")) locked = !locked - return + return TRUE /obj/item/clothing/neck/human_petcollar/locked/attack_hand(mob/user) if(loc == user && user.get_item_by_slot(ITEM_SLOT_NECK) && locked) diff --git a/modular_skyrat/modules/customization/modules/clothing/toggle_base.dm b/modular_skyrat/modules/customization/modules/clothing/toggle_base.dm index b445b9a86da04..c67acf51d79c1 100644 --- a/modular_skyrat/modules/customization/modules/clothing/toggle_base.dm +++ b/modular_skyrat/modules/customization/modules/clothing/toggle_base.dm @@ -24,4 +24,7 @@ toggled = !toggled source.icon_state = (toggled ? toggled_icon_state : initial(source.icon_state)) to_chat(clicker, "You toggle \the [source]!") - clicker.update_appearance() + if(source.loc == clicker) + clicker.update_clothing(source.slot_flags) + source.update_appearance(UPDATE_ICON) + return CLICK_ACTION_SUCCESS diff --git a/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm index 056221c318ffa..2bc40d9085d47 100644 --- a/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm +++ b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm @@ -1776,9 +1776,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/korpstech, 32) /obj/item/clothing/head/anubite name = "\improper Anubite headpiece" desc = "A dark coloured headpiece with golden accents. Its features seem reminiscent of the god Anubis." - icon = 'modular_skyrat/master_files/icons/donator/mob/clothing/head.dmi' + icon = 'modular_skyrat/master_files/icons/donator/obj/clothing/hats.dmi' icon_state = "anubite_headpiece" - worn_icon = 'modular_skyrat/master_files/icons/donator/obj/clothing/hats.dmi' + worn_icon = 'modular_skyrat/master_files/icons/donator/mob/clothing/head.dmi' worn_y_offset = 4 // Donator reward Smol42 diff --git a/modular_skyrat/modules/customization/modules/language/_language_holder.dm b/modular_skyrat/modules/customization/modules/language/_language_holder.dm index 149901e5852e8..099da051fe6e8 100644 --- a/modular_skyrat/modules/customization/modules/language/_language_holder.dm +++ b/modular_skyrat/modules/customization/modules/language/_language_holder.dm @@ -1,31 +1,37 @@ /datum/language_holder/felinid understood_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/yangyu = list(LANGUAGE_ATOM) + /datum/language/yangyu = list(LANGUAGE_ATOM), + /datum/language/nekomimetic = list(LANGUAGE_ATOM), ) spoken_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/yangyu = list(LANGUAGE_ATOM) + /datum/language/yangyu = list(LANGUAGE_ATOM), + /datum/language/nekomimetic = list(LANGUAGE_ATOM), ) /datum/language_holder/golem/bone understood_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM) + /datum/language/terrum = list(LANGUAGE_ATOM), + /datum/language/calcic = list(LANGUAGE_ATOM), ) spoken_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM) + /datum/language/terrum = list(LANGUAGE_ATOM), + /datum/language/calcic = list(LANGUAGE_ATOM), ) /datum/language_holder/mushroom understood_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/sylvan = list(LANGUAGE_ATOM) + /datum/language/sylvan = list(LANGUAGE_ATOM), + /datum/language/mushroom = list(LANGUAGE_ATOM), ) spoken_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/sylvan = list(LANGUAGE_ATOM) + /datum/language/sylvan = list(LANGUAGE_ATOM), + /datum/language/mushroom = list(LANGUAGE_ATOM), ) /datum/language_holder/shadowpeople @@ -41,11 +47,13 @@ /datum/language_holder/skeleton understood_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM) + /datum/language/piratespeak = list(LANGUAGE_ATOM), + /datum/language/calcic = list(LANGUAGE_ATOM), ) spoken_languages = list( /datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM) + /datum/language/piratespeak = list(LANGUAGE_ATOM), + /datum/language/calcic = list(LANGUAGE_ATOM), ) /datum/language_holder/skrell diff --git a/modular_skyrat/modules/customization/modules/language/buzzwords.dm b/modular_skyrat/modules/customization/modules/language/buzzwords.dm deleted file mode 100644 index a8c21866b5c81..0000000000000 --- a/modular_skyrat/modules/customization/modules/language/buzzwords.dm +++ /dev/null @@ -1,2 +0,0 @@ -/datum/language/buzzwords - secret = TRUE diff --git a/modular_skyrat/modules/customization/modules/language/calcic.dm b/modular_skyrat/modules/customization/modules/language/calcic.dm deleted file mode 100644 index bff172c425d41..0000000000000 --- a/modular_skyrat/modules/customization/modules/language/calcic.dm +++ /dev/null @@ -1,2 +0,0 @@ -/datum/language/calcic - secret = TRUE diff --git a/modular_skyrat/modules/customization/modules/language/monkey.dm b/modular_skyrat/modules/customization/modules/language/monkey.dm deleted file mode 100644 index ceff547fe79e9..0000000000000 --- a/modular_skyrat/modules/customization/modules/language/monkey.dm +++ /dev/null @@ -1,2 +0,0 @@ -/datum/language/monkey - secret = TRUE diff --git a/modular_skyrat/modules/customization/modules/language/mushroom.dm b/modular_skyrat/modules/customization/modules/language/mushroom.dm deleted file mode 100644 index 342ccc9cb3ca5..0000000000000 --- a/modular_skyrat/modules/customization/modules/language/mushroom.dm +++ /dev/null @@ -1,2 +0,0 @@ -/datum/language/mushroom - secret = TRUE diff --git a/modular_skyrat/modules/customization/modules/language/nekomimetic.dm b/modular_skyrat/modules/customization/modules/language/nekomimetic.dm deleted file mode 100644 index 8c38ca60e7302..0000000000000 --- a/modular_skyrat/modules/customization/modules/language/nekomimetic.dm +++ /dev/null @@ -1,3 +0,0 @@ -// Nekomimetic, my beloved -/datum/language/nekomimetic - secret = TRUE diff --git a/modular_skyrat/modules/customization/modules/language/piratespeak.dm b/modular_skyrat/modules/customization/modules/language/piratespeak.dm index 3ae1f43f8eb97..d2d7b3c7a0c00 100644 --- a/modular_skyrat/modules/customization/modules/language/piratespeak.dm +++ b/modular_skyrat/modules/customization/modules/language/piratespeak.dm @@ -1,9 +1,2 @@ /datum/language/piratespeak - name = "Spatial Sea-tongue" - desc = "The language of Space Pirates. It's rough, convoluted, and tough to decipher on purpose." - space_chance = 60 - syllables = list( - "yaye", "alya", "chirka", "tikat", "bazar", "oi", "yo", "meit", "grok", "ken", "berk", "cohon", "pendeo", "mark", - "ho", "take", "yeer", "cur", "yoro", "armn", "tirta", "ren", "wap", "wop", "ran", "cro", "woh" - ) secret = TRUE diff --git a/modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/alcohol_reagents.dm index d1eb5cbc3f1b0..97bdd205ff1ec 100644 --- a/modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -8,6 +8,28 @@ chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING +//Drinks from tg that are made with blood, thus hemophages are able to drink them without suffering ill effects + +/datum/reagent/consumable/ethanol/demonsblood + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + +/datum/reagent/consumable/ethanol/devilskiss + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + +/datum/reagent/consumable/ethanol/narsour + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + +/datum/reagent/consumable/ethanol/protein_blend + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + +/datum/reagent/consumable/ethanol/red_mead + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + +//End of tg blood-based drinks + + + + // ROBOT ALCOHOL PAST THIS POINT // WOOO! @@ -173,6 +195,7 @@ boozepwr = 66 quality = DRINK_FANTASTIC taste_description = "overpowering sweetness with a touch of sourness, followed by iron and the sensation of a warm summer breeze" + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING //component drink is demon's blood, thus this drink is made with blood so hemophages can comfortably drink it /datum/glass_style/drinking_glass/sins_delight required_drink_type = /datum/reagent/consumable/ethanol/sins_delight @@ -407,6 +430,7 @@ description = "Strong mead mixed with more honey and ethanol. Beloved by its human patrons." boozepwr = 50 //strong! taste_description = "honey and red wine" + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING //component drink is red mead, thus this drink is made with blood so hemophages can comfortably drink it /datum/glass_style/drinking_glass/nord_king required_drink_type = /datum/reagent/consumable/ethanol/nord_king @@ -428,6 +452,8 @@ description = "A bloody drink mixed with wine." boozepwr = 10 //weak taste_description = "iron with grapejuice" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING /datum/glass_style/drinking_glass/velvet_kiss required_drink_type = /datum/reagent/consumable/ethanol/velvet_kiss @@ -437,12 +463,17 @@ desc = "Red and white drink for the upper classes or undead." /datum/reagent/consumable/ethanol/velvet_kiss/expose_mob(mob/living/exposed_mob, methods, reac_volume) - if(iszombie(exposed_mob) || isvampire(exposed_mob) || isdullahan(exposed_mob)) //Rare races! + if(iszombie(exposed_mob) || isvampire(exposed_mob) || isdullahan(exposed_mob) || ishemophage(exposed_mob)) //Rare races! quality = RACE_DRINK else quality = DRINK_GOOD return ..() +/datum/reagent/consumable/ethanol/velvet_kiss/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) + . = ..() + if(drinker.blood_volume < BLOOD_VOLUME_NORMAL) + drinker.blood_volume = min(drinker.blood_volume + (1 * REM * seconds_per_tick), BLOOD_VOLUME_NORMAL) //Same as Bloody Mary, as it is roughly the same difficulty to make. Gives hemophages a bit more choices to supplant their blood levels. + /datum/reagent/consumable/ethanol/abduction_fruit name = "Abduction Fruit" color = "#DEFACD" //(222, 250, 205) diff --git a/modular_skyrat/modules/emote_panel/code/emote_panel.dm b/modular_skyrat/modules/emote_panel/code/emote_panel.dm index 8ac79a56854c9..d6fe970ed24a8 100644 --- a/modular_skyrat/modules/emote_panel/code/emote_panel.dm +++ b/modular_skyrat/modules/emote_panel/code/emote_panel.dm @@ -232,7 +232,7 @@ available_emotes += human_emotes // Checking if should apply Synth emotes var/mob/living/carbon/human/current_mob = src - if(current_mob.dna.species.type in allowed_species_synth) + if(!HAS_TRAIT(current_mob, TRAIT_SILICON_EMOTES_ALLOWED)) available_emotes += synth_emotes // Checking if can wag tail var/obj/item/organ/external/tail/tail = current_mob.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL) diff --git a/modular_skyrat/modules/emotes/code/synth_emotes.dm b/modular_skyrat/modules/emotes/code/synth_emotes.dm index 464d9f4e54182..63f96c0ca3335 100644 --- a/modular_skyrat/modules/emotes/code/synth_emotes.dm +++ b/modular_skyrat/modules/emotes/code/synth_emotes.dm @@ -1,57 +1,28 @@ -/datum/emote/living/human - mob_type_allowed_typecache = list(/mob/living/carbon/human, /mob/living/silicon) - -/datum/emote/living/human/dwoop - key = "dwoop" - key_third_person = "dwoops" - message = "chirps happily!" - vary = TRUE - sound = 'modular_skyrat/modules/emotes/sound/emotes/dwoop.ogg' - allowed_species = list(/datum/species/synthetic) +/datum/emote/silicon cooldown = 2 SECONDS -/datum/emote/living/human/yes +/datum/emote/living/human/dwoop + key = "dwoop" + key_third_person = "dwoops" + message = "chirps happily!" + vary = TRUE + sound = 'modular_skyrat/modules/emotes/sound/emotes/dwoop.ogg' + allowed_species = list(/datum/species/synthetic) + cooldown = 2 SECONDS + +/datum/emote/silicon/yes key = "yes" message = "emits an affirmative blip." vary = TRUE sound = 'modular_skyrat/modules/emotes/sound/emotes/synth_yes.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS -/datum/emote/living/human/no +/datum/emote/silicon/no key = "no" message = "emits a negative blip." vary = TRUE sound = 'modular_skyrat/modules/emotes/sound/emotes/synth_no.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/boop - key = "boop" - key_third_person = "boops" - message = "boops." - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS -/datum/emote/living/human/buzz - key = "buzz" - key_third_person = "buzzes" - message = "buzzes." - message_param = "buzzes at %t." - emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/buzz-sigh.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -// This one is special, since it comes from TG and can be used by some basic mobs too. Handle it modularly. -/datum/emote/living/beep - allowed_species = list(/datum/species/synthetic) - -/datum/emote/living/beep/New() - mob_type_allowed_typecache += list(/mob/living/carbon/human) - return ..() - -/datum/emote/living/human/beep2 +/datum/emote/silicon/beep2 key = "beep2" key_third_person = "beeps sharply" message = "beeps sharply." @@ -59,74 +30,9 @@ emote_type = EMOTE_AUDIBLE vary = TRUE sound = 'modular_skyrat/modules/emotes/sound/emotes/twobeep.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS -/datum/emote/living/human/buzz2 - key = "buzz2" - message = "buzzes twice." - emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/buzz-two.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/chime - key = "chime" - key_third_person = "chimes" - message = "chimes." - emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/chime.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/honk - key = "honk" - key_third_person = "honks" - message = "honks." - emote_type = EMOTE_AUDIBLE - vary = TRUE - sound = 'sound/items/bikehorn.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/ping - key = "ping" - key_third_person = "pings" - message = "pings." - message_param = "pings at %t." - emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/ping.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/sad - key = "sad" - message = "plays a sad trombone..." - emote_type = EMOTE_AUDIBLE - sound = 'sound/misc/sadtrombone.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/warn - key = "warn" - message = "blares an alarm!" - emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/warning-buzzer.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/slowclaps - key = "slowclap" - message = "activates their slow clap processor." - emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/slowclap.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS - -/datum/emote/living/human/laughtrack +/datum/emote/silicon/laughtrack key = "laughtrack" message = "plays a laughtrack." emote_type = EMOTE_AUDIBLE sound = 'sound/items/sitcomlaugh2.ogg' - allowed_species = list(/datum/species/synthetic) - cooldown = 2 SECONDS diff --git a/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm b/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm index 858342a9166a4..a4a97b93a9894 100644 --- a/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm +++ b/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm @@ -80,7 +80,7 @@ desc = "An abomination of reverse engineered tech, designed by a madman." id = "alien_bonesetter" build_path = /obj/item/bonesetter/alien - build_type = PROTOLATHE | AWAY_LATHE + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT, /datum/material/silver =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma =SMALL_MATERIAL_AMOUNT*5, /datum/material/titanium =HALF_SHEET_MATERIAL_AMOUNT * 1.5) category = list( RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN @@ -99,7 +99,7 @@ desc = "An abomination of reverse engineered tech, designed by a madman." id = "alien_bloodfilter" build_path = /obj/item/blood_filter/alien - build_type = PROTOLATHE | AWAY_LATHE + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT, /datum/material/silver =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma =SMALL_MATERIAL_AMOUNT*5, /datum/material/titanium =HALF_SHEET_MATERIAL_AMOUNT * 1.5) category = list( RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN @@ -155,7 +155,7 @@ desc = "This tool can be either used as bloodfilter or bonesetter." id = "combitool" build_path = /obj/item/blood_filter/advanced - build_type = PROTOLATHE | AWAY_LATHE + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*6, /datum/material/glass = SHEET_MATERIAL_AMOUNT*2, /datum/material/silver = SHEET_MATERIAL_AMOUNT*2, /datum/material/titanium =SHEET_MATERIAL_AMOUNT * 2.5) category = list( RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ADVANCED diff --git a/modular_skyrat/modules/ghostcafe/code/robot_ghostcafe.dm b/modular_skyrat/modules/ghostcafe/code/robot_ghostcafe.dm index c066c155ef619..1d39e50105dbe 100644 --- a/modular_skyrat/modules/ghostcafe/code/robot_ghostcafe.dm +++ b/modular_skyrat/modules/ghostcafe/code/robot_ghostcafe.dm @@ -64,7 +64,7 @@ /obj/item/quadborg_tongue, /obj/item/reagent_containers/borghypo, /obj/item/borg_shapeshifter/stable) - hat_offset = -3 + hat_offset = list("north" = list(0, -3), "south" = list(0, -3), "east" = list(0, -3), "west" = list(0, -3)) /obj/item/borg_shapeshifter/stable signalCache = list() diff --git a/modular_skyrat/modules/goofsec/code/sec_clothing_overrides.dm b/modular_skyrat/modules/goofsec/code/sec_clothing_overrides.dm index c0440da05859a..910e97cc73eac 100644 --- a/modular_skyrat/modules/goofsec/code/sec_clothing_overrides.dm +++ b/modular_skyrat/modules/goofsec/code/sec_clothing_overrides.dm @@ -33,16 +33,15 @@ /* * ACCESSORIES */ -/obj/item/clothing/accessory/armband/deputy - icon = 'modular_skyrat/master_files/icons/obj/clothing/accessories.dmi' - worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/accessories.dmi' - icon_state = "armband_lopland" /obj/item/clothing/accessory/armband/deputy/lopland/nonsec name = "blue armband" desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is blue." /obj/item/clothing/accessory/armband/deputy/lopland + icon = 'modular_skyrat/master_files/icons/obj/clothing/accessories.dmi' + worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/accessories.dmi' + icon_state = "armband_lopland" desc = "A Peacekeeper-blue armband, showing the wearer to be certified by Lopland as a top-of-their-class Security Officer." /* @@ -305,8 +304,42 @@ RESKIN_ICON_STATE = "security_cap_white", RESKIN_WORN_ICON_STATE = "security_cap_white" ), + "Sol Variant" = list( + RESKIN_ICON_STATE = "policesoft", + RESKIN_WORN_ICON_STATE = "policesoft" + ), + "Sillitoe Variant" = list( + RESKIN_ICON_STATE = "policetrafficsoft", + RESKIN_WORN_ICON_STATE = "policetrafficsoft" + ), + "Cadet Variant" = list( + RESKIN_ICON_STATE = "policecadetsoft", + RESKIN_WORN_ICON_STATE = "policecadetsoft" + ), ) +/obj/item/clothing/head/hats/warden + icon = 'modular_skyrat/master_files/icons/obj/clothing/hats.dmi' + worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head.dmi' + icon_state = "policehelm" + uses_advanced_reskins = TRUE + unique_reskin = list( + "Blue Cap" = list( + RESKIN_ICON_STATE = "policehelm", + RESKIN_WORN_ICON_STATE = "policehelm" + ), + "Sol Cap" = list( + RESKIN_ICON_STATE = "policewardencap", + RESKIN_WORN_ICON_STATE = "policewardencap" + ), + ) + +/obj/item/clothing/head/hats/warden/red + unique_reskin = null + +/obj/item/clothing/head/hats/warden/drill + unique_reskin = null + /obj/item/clothing/head/hats/hos/cap icon = 'modular_skyrat/master_files/icons/obj/clothing/hats.dmi' worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head.dmi' @@ -432,6 +465,10 @@ ), ) +/obj/item/clothing/gloves/color/black/security/blu // Wait why these a subtype of black?!? Who did this + icon = 'icons/obj/clothing/gloves.dmi' + worn_icon = 'icons/mob/clothing/hands.dmi' + /obj/item/clothing/gloves/tackler/security //Can't just overwrite tackler, as there's a ton of subtypes that we'd then need to account for. This is easier. MUCH easier. icon = 'modular_skyrat/master_files/icons/obj/clothing/gloves.dmi' worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/hands.dmi' @@ -583,6 +620,14 @@ RESKIN_ICON_STATE = "security_white", RESKIN_WORN_ICON_STATE = "security_white" ), + "Sol Variant" = list( + RESKIN_ICON_STATE = "policealt", + RESKIN_WORN_ICON_STATE = "policealt" + ), + "Cadet Variant" = list( + RESKIN_ICON_STATE = "policecadetalt", + RESKIN_WORN_ICON_STATE = "policecadetalt" + ), ) /obj/item/clothing/under/rank/security/officer/formal @@ -617,24 +662,60 @@ icon = 'modular_skyrat/master_files/icons/obj/clothing/under/security.dmi' worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/under/security.dmi' icon_state = "warden_black" + uses_advanced_reskins = TRUE + unique_reskin = list( + "Black Variant" = list( + RESKIN_ICON_STATE = "warden_black", + RESKIN_WORN_ICON_STATE = "warden_black" + ), + "Blue Variant" = list( + RESKIN_ICON_STATE = "peacekeeper_warden", + RESKIN_WORN_ICON_STATE = "peacekeeper_warden" + ), + "Sol Varient" = list( + RESKIN_ICON_STATE = "policewardenalt", + RESKIN_WORN_ICON_STATE = "policewardenalt" + ), + ) //HoS /obj/item/clothing/under/rank/security/head_of_security icon = 'modular_skyrat/master_files/icons/obj/clothing/under/security.dmi' worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/under/security.dmi' icon_state = "hos_black" + uses_advanced_reskins = TRUE + unique_reskin = list( + "Black Variant" = list( + RESKIN_ICON_STATE = "hos_black", + RESKIN_WORN_ICON_STATE = "hos_black" + ), + "Blue Varient" = list( + RESKIN_ICON_STATE = "peacekeeper_hos", + RESKIN_WORN_ICON_STATE = "peacekeeper_hos" + ), + "Sol Varient" = list( + RESKIN_ICON_STATE = "policechiefalt", + RESKIN_WORN_ICON_STATE = "policechiefalt" + ), + ) /obj/item/clothing/under/rank/security/head_of_security/parade icon_state = "hos_parade_male_blue" + unique_reskin = null /obj/item/clothing/under/rank/security/head_of_security/parade/female icon_state = "hos_parade_fem_blue" + unique_reskin = null + /obj/item/clothing/under/rank/security/head_of_security/alt icon_state = "hosalt_blue" + unique_reskin = null /obj/item/clothing/under/rank/security/head_of_security/alt/skirt icon_state = "hosalt_skirt_blue" + unique_reskin = null + /* * FEET @@ -852,35 +933,56 @@ flags_cover = HEADCOVERSEYES flags_inv = HIDEHAIR +/obj/item/clothing/head/hats/hos/cap/red + icon = 'icons/obj/clothing/head/hats.dmi' + worn_icon = 'icons/mob/clothing/head/hats.dmi' + icon_state = "hoscap" + base_icon_state = "hoscap" + unique_reskin = null + /* * UNIFORM */ /obj/item/clothing/under/rank/security/officer/redsec - icon = 'icons/obj/clothing/under/security.dmi' - worn_icon = 'icons/mob/clothing/under/security.dmi' icon_state = "rsecurity" current_skin = "rsecurity" //prevents reskinning +/obj/item/clothing/under/rank/security/officer/skirt/redsec + icon_state = "secskirt" + current_skin = "secskirt" + /obj/item/clothing/under/rank/security/warden/redsec - icon = 'icons/obj/clothing/under/security.dmi' - worn_icon = 'icons/mob/clothing/under/security.dmi' icon_state = "rwarden" + unique_reskin = null + +/obj/item/clothing/under/rank/security/warden/skirt/redsec + icon_state = "rwarden_skirt" + unique_reskin = null /obj/item/clothing/under/rank/security/head_of_security/redsec - icon = 'icons/obj/clothing/under/security.dmi' - worn_icon = 'icons/mob/clothing/under/security.dmi' icon_state = "rhos" + unique_reskin = null + +/obj/item/clothing/under/rank/security/head_of_security/skirt/redsec + icon_state = "rhos_skirt" + unique_reskin = null /obj/item/clothing/under/rank/security/head_of_security/parade/redsec - icon = 'icons/obj/clothing/under/security.dmi' - worn_icon = 'icons/mob/clothing/under/security.dmi' icon_state = "hos_parade_male" + unique_reskin = null /obj/item/clothing/under/rank/security/head_of_security/parade/female/redsec - icon = 'icons/obj/clothing/under/security.dmi' - worn_icon = 'icons/mob/clothing/under/security.dmi' icon_state = "hos_parade_fem" + unique_reskin = null + +/obj/item/clothing/under/rank/security/head_of_security/alt/redsec + icon_state = "hosalt" + unique_reskin = null + +/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/redsec + icon_state = "hosalt_skirt" + unique_reskin = null /* * WINTER COAT @@ -911,6 +1013,13 @@ icon_state = "armor_sec" current_skin = "armor_sec" //prevents reskinning +/obj/item/clothing/suit/armor/hos/hos_formal/redsec + icon = 'icons/obj/clothing/suits/armor.dmi' + worn_icon = 'icons/mob/clothing/suits/armor.dmi' + icon_state = "hosformal" + current_skin = "hosformal" //prevents reskinning (but not toggling!) + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + /* * FEET */ diff --git a/modular_skyrat/modules/kahraman_equipment/code/clothing/clothing.dm b/modular_skyrat/modules/kahraman_equipment/code/clothing/clothing.dm index aa4aaaacde61c..110f462703b1c 100644 --- a/modular_skyrat/modules/kahraman_equipment/code/clothing/clothing.dm +++ b/modular_skyrat/modules/kahraman_equipment/code/clothing/clothing.dm @@ -10,7 +10,7 @@ worn_icon_digi = 'modular_skyrat/modules/kahraman_equipment/icons/clothes/clothing_worn_digi.dmi' worn_icon_teshari = 'modular_skyrat/modules/kahraman_equipment/icons/clothes/clothing_worn_teshari.dmi' worn_icon_state = "jumpsuit" - has_sensor = SENSOR_COORDS + sensor_mode = SENSOR_COORDS random_sensor = FALSE /obj/item/clothing/under/frontier_colonist/Initialize(mapload) diff --git a/modular_skyrat/modules/modular_items/code/modular_glasses.dm b/modular_skyrat/modules/modular_items/code/modular_glasses.dm index 96272393a1fd2..e39aa32e5526d 100644 --- a/modular_skyrat/modules/modular_items/code/modular_glasses.dm +++ b/modular_skyrat/modules/modular_items/code/modular_glasses.dm @@ -88,7 +88,7 @@ if(ishuman(user)) // Make sure they're a human wearing the glasses first var/mob/living/carbon/human/human = user if(human.glasses == src) - var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_type)] + var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_types)] our_hud.show_to(human) for(var/trait in initial(glasses_type.clothing_traits)) ADD_TRAIT(human, trait, GLASSES_TRAIT) @@ -97,7 +97,7 @@ if(ishuman(user)) // Make sure they're a human wearing the glasses first var/mob/living/carbon/human/human = user if(human.glasses == src) - var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_type)] + var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_types)] our_hud.hide_from(human) for(var/trait in initial(glasses_type.clothing_traits)) REMOVE_TRAIT(human, trait, GLASSES_TRAIT) @@ -109,17 +109,17 @@ tint = initial(glasses_type.tint) color_cutoffs = initial(glasses_type.color_cutoffs) vision_flags = initial(glasses_type.vision_flags) - hud_type = initial(glasses_type.hud_type) //initial does not currently work on lists so we must do this var/obj/item/clothing/glasses/hud/ar/glasses_object = new glasses_type // make a temporary glasses obj clothing_traits = glasses_object.clothing_traits // pull the list from the created obj + hud_types = glasses_object.hud_types // same here qdel(glasses_object) // delete the object /obj/item/clothing/glasses/hud/ar/proc/disable_vars(mob/user) vision_flags = 0 /// Sets vision_flags to 0 to disable meson view mainly color_cutoffs = null // Resets lighting_alpha to user's default one clothing_traits = null /// also disables the options for Science functionality - hud_type = null + hud_types = null /// Create new icon and worn_icon, with only the first frame of every state and setting that as icon. /// this practically freezes the animation :) @@ -164,7 +164,7 @@ icon_state = "aviator_sec" off_state = "aviator_sec_flash" flash_protect = FLASH_PROTECTION_NONE - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red modes = list(MODE_OFF_FLASH_PROTECTION, MODE_ON) @@ -176,7 +176,7 @@ desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status. This HUD has been fitted inside of a pair of sunglasses." icon_state = "aviator_med" flash_protect = FLASH_PROTECTION_NONE - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue @@ -197,7 +197,7 @@ desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits. This HUD has been fitted inside of a pair of sunglasses." icon_state = "aviator_diagnostic" flash_protect = FLASH_PROTECTION_NONE - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange @@ -263,19 +263,19 @@ /obj/item/clothing/glasses/hud/ar/projector/health name = "retinal projector health HUD" icon_state = "projector_med" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(ID_HUD, TRAIT_MEDICAL_HUD) /obj/item/clothing/glasses/hud/ar/projector/security name = "retinal projector security HUD" icon_state = "projector_sec" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) /obj/item/clothing/glasses/hud/ar/projector/diagnostic name = "retinal projector diagnostic HUD" icon_state = "projector_diagnostic" - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) /obj/item/clothing/glasses/hud/ar/projector/science diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/dancing_pole.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/dancing_pole.dm index 45b7401b29f58..65b0c14bf0516 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/dancing_pole.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/dancing_pole.dm @@ -53,12 +53,12 @@ /obj/structure/stripper_pole/click_ctrl(mob/user) var/choice = show_radial_menu(user, src, pole_designs, radius = 50, require_near = TRUE) if(!choice) - return FALSE + return CLICK_ACTION_BLOCKING current_pole_color = choice light_color = pole_lights[choice] update_icon() update_brightness() - return TRUE + return CLICK_ACTION_SUCCESS // Alt-click to turn the lights on or off. diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/shibari_stand.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/shibari_stand.dm index 03c90879b88e7..421a28240d2b8 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/shibari_stand.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/shibari_stand.dm @@ -216,7 +216,7 @@ ) menu.ui_interact(usr) to_chat(user, span_notice("You switch the frame's plastic fittings color.")) - return TRUE + return CLICK_ACTION_SUCCESS /obj/structure/chair/shibari_stand/examine(mob/user) . = ..() diff --git a/modular_skyrat/modules/modular_vending/code/autodrobe.dm b/modular_skyrat/modules/modular_vending/code/autodrobe.dm index 8a19737676343..0558cb65461f6 100644 --- a/modular_skyrat/modules/modular_vending/code/autodrobe.dm +++ b/modular_skyrat/modules/modular_vending/code/autodrobe.dm @@ -15,6 +15,7 @@ "name" = "Entertainers", "icon" = "masks-theater", "products" = list( + /obj/item/clothing/head/beret/clown = 3, /obj/item/clothing/mask/gas/clownbald = 1, /obj/item/clothing/mask/gas/clown_colourable = 1, /obj/item/clothing/head/costume/jesteralt = 1, diff --git a/modular_skyrat/modules/modular_vending/code/clothesmate.dm b/modular_skyrat/modules/modular_vending/code/clothesmate.dm index 2b2aa4e6f320d..9173369a52756 100644 --- a/modular_skyrat/modules/modular_vending/code/clothesmate.dm +++ b/modular_skyrat/modules/modular_vending/code/clothesmate.dm @@ -5,6 +5,7 @@ "icon" = "hat-cowboy", "products" = list( /obj/item/clothing/head/beret/badge = 5, + /obj/item/clothing/head/beret/clown/rainbow = 5, /obj/item/clothing/head/colourable_flatcap= 5, /obj/item/clothing/head/cowboy/skyrat/cattleman = 5, /obj/item/clothing/head/cowboy/skyrat/cattleman/wide = 5, diff --git a/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_clothing.dm b/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_clothing.dm index dc30bf13d7f8e..a118f798ee21e 100644 --- a/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_clothing.dm +++ b/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_clothing.dm @@ -53,7 +53,8 @@ unique_reskin = list( "Blue" = "policeofficercap", "Sillitoe" = "policetrafficcap", - "Black" = "policeofficerpatrolcap", + "Black and Blue" = "policeofficerpatrolcap", + "Long Kesh" = "corrections_officer", "Cadet" = "policecadetcap", ) diff --git a/modular_skyrat/modules/skyrat-uplinks/code/categories/device_tools.dm b/modular_skyrat/modules/skyrat-uplinks/code/categories/device_tools.dm index c33882e6c72e1..977492ea7deec 100644 --- a/modular_skyrat/modules/skyrat-uplinks/code/categories/device_tools.dm +++ b/modular_skyrat/modules/skyrat-uplinks/code/categories/device_tools.dm @@ -21,14 +21,14 @@ desc = "A pair of highly robust combat gripper gloves that excels at performing takedowns at close range, with an added lining of insulation. Careful not to hit a wall!" item = /obj/item/clothing/gloves/tackler/combat/insulated cost = 2 - illegal_tech = FALSE + uplink_item_flags = NONE /datum/uplink_item/device_tools/ammo_pouch name = "Ammo Pouch" desc = "A small yet large enough pouch that can fit in your pocket, and has room for three magazines." item = /obj/item/storage/pouch/ammo cost = 1 - illegal_tech = FALSE + uplink_item_flags = NONE /datum/uplink_item/device_tools/syndie_glue name = "Glue" diff --git a/modular_skyrat/modules/skyrat-uplinks/code/categories/stealthy_weapons.dm b/modular_skyrat/modules/skyrat-uplinks/code/categories/stealthy_weapons.dm index 2c42f87d34d6c..1ba86193d0527 100644 --- a/modular_skyrat/modules/skyrat-uplinks/code/categories/stealthy_weapons.dm +++ b/modular_skyrat/modules/skyrat-uplinks/code/categories/stealthy_weapons.dm @@ -5,4 +5,4 @@ cost = 2 surplus = 0 progression_minimum = 10 MINUTES - illegal_tech = FALSE + uplink_item_flags = NONE diff --git a/modular_skyrat/modules/skyrat-uplinks/code/categories/suits.dm b/modular_skyrat/modules/skyrat-uplinks/code/categories/suits.dm index e03cf398757cc..f6cc2c94f6dc6 100644 --- a/modular_skyrat/modules/skyrat-uplinks/code/categories/suits.dm +++ b/modular_skyrat/modules/skyrat-uplinks/code/categories/suits.dm @@ -3,7 +3,7 @@ desc = "A slim Type I armored vest that provides decent protection against most types of damage." item = /obj/item/clothing/suit/armor/vest cost = 1 - illegal_tech = FALSE + uplink_item_flags = NONE progression_minimum = 10 MINUTES /datum/uplink_item/suits/bulletproof_armor @@ -11,7 +11,7 @@ desc = "A Type III heavy bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." item = /obj/item/clothing/suit/armor/bulletproof cost = 3 - illegal_tech = FALSE + uplink_item_flags = NONE progression_minimum = 15 MINUTES /datum/uplink_item/suits/swathelmet_traitor @@ -19,5 +19,5 @@ desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern." item = /obj/item/clothing/head/helmet/swat cost = 2 - illegal_tech = FALSE + uplink_item_flags = NONE progression_minimum = 10 MINUTES diff --git a/modular_skyrat/modules/synths/code/bodyparts/brain.dm b/modular_skyrat/modules/synths/code/bodyparts/brain.dm index 340fe1833775c..d4f062bc1784f 100644 --- a/modular_skyrat/modules/synths/code/bodyparts/brain.dm +++ b/modular_skyrat/modules/synths/code/bodyparts/brain.dm @@ -9,6 +9,7 @@ icon_state = "posibrain-ipc" /// The last time (in ticks) a message about brain damage was sent. Don't touch. var/last_message_time = 0 + organ_traits = list(TRAIT_SILICON_EMOTES_ALLOWED) /obj/item/organ/internal/brain/synth/on_mob_insert(mob/living/carbon/brain_owner, special, movement_flags = NO_ID_TRANSFER) . = ..() diff --git a/modular_skyrat/modules/synths/code/bodyparts/internal_computer/brain.dm b/modular_skyrat/modules/synths/code/bodyparts/internal_computer/brain.dm index e9698a5fd068b..08daebc3ed700 100644 --- a/modular_skyrat/modules/synths/code/bodyparts/internal_computer/brain.dm +++ b/modular_skyrat/modules/synths/code/bodyparts/internal_computer/brain.dm @@ -5,6 +5,7 @@ /obj/item/organ/internal/brain/synth/Initialize(mapload) . = ..() internal_computer = new(src) + ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) /obj/item/organ/internal/brain/synth/Destroy() QDEL_NULL(internal_computer) diff --git a/modular_zubbers/code/game/objects/effects/spawners/random/moonstation_random.dm b/modular_zubbers/code/game/objects/effects/spawners/random/moonstation_random.dm index 2c8b19390f485..47744e9f38e67 100644 --- a/modular_zubbers/code/game/objects/effects/spawners/random/moonstation_random.dm +++ b/modular_zubbers/code/game/objects/effects/spawners/random/moonstation_random.dm @@ -317,7 +317,7 @@ /obj/machinery/self_actualization_device = 5, /obj/machinery/sheetifier = 30, /obj/machinery/skill_station = 30, - /obj/machinery/smartfridge/drying_rack = 80, + /obj/machinery/smartfridge/drying/rack = 80, /obj/machinery/smoke_machine = 10, /obj/machinery/space_heater/improvised_chem_heater = 200, /obj/machinery/stasis = 10, diff --git a/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm b/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm index e3aa820ad3302..201106f150b51 100644 --- a/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm +++ b/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm @@ -14,7 +14,7 @@ /obj/item/borg/upgrade/advcutter name = "mining cyborg advanced plasma cutter" desc = "An upgrade for the mining cyborgs plasma cutter, bringing it to advanced operation." - icon_state = "cyborg_upgrade3" + icon_state = "module_miner" require_model = TRUE model_type = list(/obj/item/robot_model/miner) model_flags = BORG_MODEL_MINER diff --git a/modular_zubbers/code/modules/GAGS/greyscale_configs.dm b/modular_zubbers/code/modules/GAGS/greyscale_configs.dm index 1a123b4466043..c9d42e241a53f 100644 --- a/modular_zubbers/code/modules/GAGS/greyscale_configs.dm +++ b/modular_zubbers/code/modules/GAGS/greyscale_configs.dm @@ -11,7 +11,6 @@ name = "Ring Bell Collar (Worn)" json_config = 'modular_skyrat/modules/GAGS/json_configs/collar/ringbell_worn.json' - /datum/greyscale_config/collar/gps name = "GPS Collar" icon_file = 'modular_zubbers/code/modules/GAGS/icons/collar.dmi' @@ -81,3 +80,13 @@ icon_file = 'modular_zubbers/icons/mob/clothing/head/bunnyears.dmi' json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears_worn.json' +/datum/greyscale_config/henchmen + name = "Henchmen" + icon_file = 'modular_zubbers/code/modules/GAGS/icons/monkehenchmenobj.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/henchmen/henchmen.json' + +/datum/greyscale_config/henchmen/worn + name = "Henchmen Worn" + icon_file = 'modular_zubbers/code/modules/GAGS/icons/monkehenchmenmob.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/henchmen/henchmen.json' + diff --git a/modular_zubbers/code/modules/GAGS/icons/monkehenchmenmob.dmi b/modular_zubbers/code/modules/GAGS/icons/monkehenchmenmob.dmi new file mode 100644 index 0000000000000..8f6ab234f5296 Binary files /dev/null and b/modular_zubbers/code/modules/GAGS/icons/monkehenchmenmob.dmi differ diff --git a/modular_zubbers/code/modules/GAGS/icons/monkehenchmenobj.dmi b/modular_zubbers/code/modules/GAGS/icons/monkehenchmenobj.dmi new file mode 100644 index 0000000000000..aeb4574937b3a Binary files /dev/null and b/modular_zubbers/code/modules/GAGS/icons/monkehenchmenobj.dmi differ diff --git a/modular_zubbers/code/modules/antagonists/uplink/uplinkdatums.dm b/modular_zubbers/code/modules/antagonists/uplink/uplinkdatums.dm index 83713640bfaec..bd53dd0c928b6 100644 --- a/modular_zubbers/code/modules/antagonists/uplink/uplinkdatums.dm +++ b/modular_zubbers/code/modules/antagonists/uplink/uplinkdatums.dm @@ -7,3 +7,8 @@ cost = 8 purchasable_from = UPLINK_NUKE_OPS +/datum/uplink_item/badass/henchmen_traitor_outfits + name = "Henchmen Bundle" + desc = "A set of five armored henchmen outfits! Each set comes with a cap, coat, uniform, gloves, shoes, and a switchblade!" + item = /obj/item/storage/backpack/duffelbag/henchmen_traitor_outfits + cost = 4 diff --git a/modular_zubbers/code/modules/antagonists/uplink/uplinkitems.dm b/modular_zubbers/code/modules/antagonists/uplink/uplinkitems.dm index 6df62f74201dc..605800f2bc9a6 100644 --- a/modular_zubbers/code/modules/antagonists/uplink/uplinkitems.dm +++ b/modular_zubbers/code/modules/antagonists/uplink/uplinkitems.dm @@ -13,3 +13,36 @@ /obj/item/clothing/gloves/combat/white = 1, ), src) +/obj/item/clothing/head/henchmen_hat/traitor + name = "armored henchmen cap" + desc = "Alright boss.. I'll handle it. It seems to be armored." + armor_type = /datum/armor/suit_armor + greyscale_colors = "#240d0d" + +/obj/item/clothing/suit/jacket/henchmen_coat/traitor + name = "armored henchmen coat" + desc = "Alright boss.. I'll handle it. It seems to be armored." + armor_type = /datum/armor/suit_armor + greyscale_colors = "#240d0d" + +/obj/item/storage/box/syndicate/henchmen_traitor_outfit + name = "henchmen outfit box" + +/obj/item/storage/box/syndicate/henchmen_traitor_outfit/PopulateContents() + var/static/items_inside = list( + /obj/item/clothing/head/henchmen_hat/traitor = 1, + /obj/item/clothing/suit/jacket/henchmen_coat/traitor = 1, + /obj/item/clothing/under/color/black = 1, + /obj/item/clothing/gloves/color/light_brown = 1, + /obj/item/clothing/shoes/laceup = 1, + /obj/item/switchblade = 1, + ) + generate_items_inside(items_inside,src) + +/obj/item/storage/backpack/duffelbag/henchmen_traitor_outfits +/obj/item/storage/backpack/duffelbag/henchmen_traitor_outfits/PopulateContents() + var/static/items_inside = list( + /obj/item/storage/box/syndicate/henchmen_traitor_outfit = 5, + ) + generate_items_inside(items_inside,src) + diff --git a/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm b/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm index 1fc3d55d160f3..b732819b60f0b 100644 --- a/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm +++ b/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm @@ -1,7 +1,7 @@ /obj/item/borg/upgrade/transform/ntjack name = "borg module picker (Centcom)" desc = "Allows you to to turn a cyborg into a experimental nanotrasen cyborg." - icon_state = "cyborg_upgrade3" + icon_state = "module_illegal" new_model = /obj/item/robot_model/centcom /obj/item/borg/upgrade/transform/ntjack/action(mob/living/silicon/robot/cyborg, user = usr) @@ -10,7 +10,7 @@ /obj/item/borg/upgrade/transform/security name = "borg model picker (Security)" desc = "Allows you to to turn a cyborg into a Security model, shitsec abound." - icon_state = "cyborg_upgrade3" + icon_state = "module_security" new_model = /obj/item/robot_model/security //Research borg upgrades @@ -19,7 +19,7 @@ /obj/item/borg/upgrade/healthanalyzer name = "Research cyborg advanced Health Analyzer" desc = "An upgrade to the Research model cyborg's standard health analyzer." - icon_state = "cyborg_upgrade3" + icon_state = "module_medical" require_model = TRUE model_type = list(/obj/item/robot_model/sci) model_flags = BORG_MODEL_RESEARCH @@ -40,7 +40,7 @@ /obj/item/borg/upgrade/brped name = "Research cyborg Rapid Part Exchange Device Upgrade" desc = "An upgrade to the Research model cyborg's standard RPED." - icon_state = "cyborg_upgrade3" + icon_state = "module_engineer" require_model = TRUE model_type = list(/obj/item/robot_model/sci) model_flags = BORG_MODEL_RESEARCH diff --git a/modular_zubbers/code/modules/clothing/head/helmet.dm b/modular_zubbers/code/modules/clothing/head/helmet.dm index b59a052557043..4cb873e6a0b4e 100644 --- a/modular_zubbers/code/modules/clothing/head/helmet.dm +++ b/modular_zubbers/code/modules/clothing/head/helmet.dm @@ -63,6 +63,20 @@ icon_state = "clussy_wig" flags_inv = HIDEHAIR +// Henchmen Sprites by Cannibal Hunter of MonkeStation + +/obj/item/clothing/head/henchmen_hat + name = "henchmen cap" + desc = "Alright boss.. I'll handle it." + icon = 'modular_zubbers/icons/obj/clothing/head/hats.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/head/hats.dmi' + icon_state = "greyscale_cap" + greyscale_colors = "#201b1a" + greyscale_config = /datum/greyscale_config/henchmen + greyscale_config_worn = /datum/greyscale_config/henchmen/worn + flags_1 = IS_PLAYER_COLORABLE_1 + + //ALL BUNNY STUFF BY DimWhat OF MONKEESTATION /obj/item/clothing/head/playbunnyears diff --git a/modular_zubbers/code/modules/clothing/suits/jacket.dm b/modular_zubbers/code/modules/clothing/suits/jacket.dm index f06880f41f99f..c66cbf389972b 100644 --- a/modular_zubbers/code/modules/clothing/suits/jacket.dm +++ b/modular_zubbers/code/modules/clothing/suits/jacket.dm @@ -64,6 +64,22 @@ armor_type = /datum/armor/toggle_labcoat toggle_noun = "zipper" +// Henchmen Sprites by Cannibal Hunter of MonkeStation + +/obj/item/clothing/suit/jacket/henchmen_coat + name = "henchmen coat" + desc = "Alright boss.. I'll handle it." + worn_icon_digi = 'modular_zubbers/icons/mob/clothing/suits/jacket_digi.dmi' + icon = 'modular_zubbers/icons/obj/clothing/suits/jacket.dmi' + icon_state = "greyscale_coat" + greyscale_colors = "#201b1a" + greyscale_config = /datum/greyscale_config/henchmen + greyscale_config_worn = /datum/greyscale_config/henchmen/worn + flags_1 = IS_PLAYER_COLORABLE_1 +/obj/item/clothing/suit/jacket/henchmen_coat/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon) + //ALL BUNNY STUFF BY DimWhat OF MONKEESTATION /obj/item/clothing/suit/jacket/tailcoat //parent type diff --git a/modular_zubbers/code/modules/loadout/categories/heads.dm b/modular_zubbers/code/modules/loadout/categories/heads.dm index 9c6b6a983497a..42b80c921c5d5 100644 --- a/modular_zubbers/code/modules/loadout/categories/heads.dm +++ b/modular_zubbers/code/modules/loadout/categories/heads.dm @@ -11,6 +11,9 @@ name = "Pink Clown Wig" item_path = /obj/item/clothing/head/costume/bubber/clussy +/datum/loadout_item/head/hats/bubber/hench + name = "Henchmen Flat Cap" + item_path = /obj/item/clothing/head/henchmen_hat /datum/loadout_item/head/alien_fake name = "Kabrus Utility Helmet" diff --git a/modular_zubbers/code/modules/loadout/categories/neck.dm b/modular_zubbers/code/modules/loadout/categories/neck.dm index 1fa456e2d989c..b9641c098fc00 100644 --- a/modular_zubbers/code/modules/loadout/categories/neck.dm +++ b/modular_zubbers/code/modules/loadout/categories/neck.dm @@ -14,3 +14,7 @@ /datum/loadout_item/neck/binary name = "Crow Feather Cloak" item_path = /obj/item/clothing/neck/binary + +/datum/loadout_item/neck/bunnypendant + name = "Rabbit Pendant" + item_path = /obj/item/clothing/neck/bunny_pendant diff --git a/modular_zubbers/code/modules/loadout/categories/suit.dm b/modular_zubbers/code/modules/loadout/categories/suit.dm index 860bf3f992440..9e0f3c3f6e533 100644 --- a/modular_zubbers/code/modules/loadout/categories/suit.dm +++ b/modular_zubbers/code/modules/loadout/categories/suit.dm @@ -7,6 +7,10 @@ name = "Leather Apron" item_path = /obj/item/clothing/suit/leatherapron +/datum/loadout_item/suit/bubber/hench + name = "Henchmen Coat" + item_path = /obj/item/clothing/suit/jacket/henchmen_coat + //Donator items V V V /datum/loadout_item/suit/runner_engi diff --git a/modular_zubbers/code/modules/security/secmed/security_medic.dm b/modular_zubbers/code/modules/security/secmed/security_medic.dm index 420998bc014eb..14b7a2e30725a 100644 --- a/modular_zubbers/code/modules/security/secmed/security_medic.dm +++ b/modular_zubbers/code/modules/security/secmed/security_medic.dm @@ -100,7 +100,7 @@ icon = 'modular_zubbers/code/modules/security/secmed/icons/secmed_equipment.dmi' icon_state = "hud" worn_icon_state = "healthhud" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) /obj/item/clothing/glasses/hud/secmed/equipped(mob/living/carbon/human/user, slot) diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/_antagonist_event.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/_antagonist_event.dm index ef9ab7179c01e..c58aff782fcae 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/_antagonist_event.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/_antagonist_event.dm @@ -38,6 +38,8 @@ var/base_antags = 2 /// How many maximum antags can we spawn var/maximum_antags = 6 + /// Strict limit on how many antagonists of this type that should be in this round. 0 to ignore. + var/maximum_antags_global = 0 /// For this many players we'll add 1 up to the maximum antag amount var/denominator = 20 /// The antag flag to be used @@ -83,8 +85,22 @@ typepath = /datum/round_event/antagonist/solo /datum/round_event_control/antagonist/proc/get_antag_amount() + var/people = SSgamemode.get_correct_popcount() var/amount = base_antags + FLOOR(people / denominator, 1) + + if(antag_datum && maximum_antags_global > 0) + var/antag_slots_left = maximum_antags_global + for(var/datum/antagonist/existing_antagonist as anything in GLOB.antagonists) + if(QDELETED(existing_antagonist) || QDELETED(existing_antagonist.owner) || QDELETED(existing_antagonist.owner.current)) //This feels messy, but it just werks. + continue + if(!istype(existing_antagonist,antag_datum)) //Obviously ignore other antagonists. + continue + antag_slots_left-- //Slot is occupied. + if(antag_slots_left <= 0) //No point in checking anymore. + break + amount = min(amount,antag_slots_left) + return min(amount, maximum_antags) /datum/round_event/antagonist diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/bloodsucker.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/bloodsucker.dm index 69db78d6c9f18..d4a395b3b04cf 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/bloodsucker.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/bloodsucker.dm @@ -9,6 +9,7 @@ base_antags = 2 maximum_antags = 3 + maximum_antags_global = 3 tags = list(TAG_COMBAT, TAG_SPOOKY, TAG_CREW_ANTAG) diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/changeling.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/changeling.dm index f148915387a5e..aa39cf7f451e6 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/changeling.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/changeling.dm @@ -6,6 +6,7 @@ antag_datum = /datum/antagonist/changeling weight = 8 min_players = 20 + maximum_antags_global = 4 tags = list(TAG_COMBAT, TAG_CREW_ANTAG) diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/heretic.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/heretic.dm index ec4d000653b9d..a72f3ef483a76 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/heretic.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/heretic.dm @@ -7,8 +7,9 @@ weight = 8 min_players = 30 - base_antags = 2 - maximum_antags = 3 + base_antags = 1 + maximum_antags = 2 + maximum_antags_global = 2 tags = list(TAG_COMBAT, TAG_SPOOKY, TAG_CREW_ANTAG) diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/malf.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/malf.dm index 36fc661869e23..7a7fb85a91e7e 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/malf.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/malf.dm @@ -4,6 +4,7 @@ base_antags = 1 maximum_antags = 1 + maximum_antags_global = 1 min_players = 20 diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/nuke_ops.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/nuke_ops.dm index d0de7691cda3e..ddfb29bedcd87 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/nuke_ops.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/nuke_ops.dm @@ -11,6 +11,7 @@ base_antags = 2 maximum_antags = 5 + maximum_antags_global = 5 typepath = /datum/round_event/antagonist/team/nukie diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/spies.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/spies.dm index fee6829df7084..f4a94625fb33a 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/spies.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/spies.dm @@ -5,6 +5,7 @@ antag_flag = ROLE_SPY antag_datum = /datum/antagonist/spy weight = 8 + maximum_antags_global = 4 tags = list(TAG_CREW_ANTAG) diff --git a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/traitor.dm b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/traitor.dm index 960af5e385daa..503f9164784c2 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/traitor.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/roleset/crew_antagonists/traitor.dm @@ -5,6 +5,7 @@ antag_flag = ROLE_TRAITOR antag_datum = /datum/antagonist/traitor weight = 8 + maximum_antags_global = 6 tags = list(TAG_CREW_ANTAG) diff --git a/modular_zubbers/code/modules/vending/clothmate.dm b/modular_zubbers/code/modules/vending/clothmate.dm index 6b9871c3b7301..d1ebe2e22cdbe 100644 --- a/modular_zubbers/code/modules/vending/clothmate.dm +++ b/modular_zubbers/code/modules/vending/clothmate.dm @@ -4,6 +4,7 @@ "name" = "Head", "icon" = "hat-cowboy", "products" = list( + /obj/item/clothing/head/henchmen_hat = 5, /obj/item/clothing/head/avipilot = 5, /obj/item/clothing/head/costume/ushanka/frosty = 5, @@ -51,6 +52,7 @@ "name" = "Suits & Skirts", "icon" = "vest", "products" = list( + /obj/item/clothing/suit/jacket/henchmen_coat = 5, /obj/item/clothing/suit/furcoat = 5, /obj/item/clothing/suit/jacket/cherno = 5, /obj/item/clothing/suit/jacket/hydrogenrobes = 5, diff --git a/modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed_mod.dm b/modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed_mod.dm index 00666ede4f87b..78e95ce139c65 100644 --- a/modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed_mod.dm +++ b/modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed_mod.dm @@ -3,7 +3,7 @@ desc = "Circumstances have rendered this protective suit into someone's second skin. Literally." extended_desc = "Some great aspect of someone's past has permanently bound them to this device, for better or worse." - default_skin = "civilian" + default_skin = "standard" armor_type = /datum/armor/mod_entombed resistance_flags = FIRE_PROOF | ACID_PROOF // It is better to die for the Emperor than live for yourself. max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT diff --git a/sound/items/attributions.txt b/sound/items/attributions.txt index d27b24cc53c88..31b573c105893 100644 --- a/sound/items/attributions.txt +++ b/sound/items/attributions.txt @@ -12,3 +12,14 @@ pen_click.ogg from https://freesound.org/people/LexzachGames/sounds/431492/ , li night_vision_on.ogg by Syna-Max -- https://freesound.org/s/60345/ -- License: Attribution NonCommercial 4.0 +{ +metal_drop.ogg - https://freesound.org/people/13FPanská_Tolar_David/sounds/378682/ , License: CC0 +metal_pick_up.ogg - https://freesound.org/people/Hotlavaman/sounds/108673/ , License: CC0 +glass_drop.ogg - https://freesound.org/people/Hotlavaman/sounds/108673/ , License: CC0 +glass_pick_up.ogg - https://freesound.org/people/tcrocker68/sounds/235602/ , License: CC0 +wood_pick_up.ogg - https://freesound.org/people/cjosephwalker/sounds/94859/ , License: CC SAMPLING+ 1.0 +wood_drop.ogg - https://freesound.org/people/cjosephwalker/sounds/94859/ , License: CC SAMPLING+ 1.0 +irod_rod_pick_up.ogg - https://freesound.org/people/lostphosphene/sounds/258265/ , License: CC BY 4.0 +plastic_pick_up.ogg - https://freesound.org/people/Jessica190091/sounds/491304/ , License: CC BY 4.0 +plastic_drop.ogg - https://freesound.org/people/martian/sounds/338854/ , License: CC0 +} - edited by sadboysuss \ No newline at end of file diff --git a/sound/items/glass_drop.ogg b/sound/items/glass_drop.ogg new file mode 100644 index 0000000000000..389034f4ebb98 Binary files /dev/null and b/sound/items/glass_drop.ogg differ diff --git a/sound/items/glass_pick_up.ogg b/sound/items/glass_pick_up.ogg new file mode 100644 index 0000000000000..4df3ec51cc817 Binary files /dev/null and b/sound/items/glass_pick_up.ogg differ diff --git a/sound/items/iron_rod_pick_up.ogg b/sound/items/iron_rod_pick_up.ogg new file mode 100644 index 0000000000000..51fab52a99dba Binary files /dev/null and b/sound/items/iron_rod_pick_up.ogg differ diff --git a/sound/items/metal_drop.ogg b/sound/items/metal_drop.ogg new file mode 100644 index 0000000000000..48460e8cd37bf Binary files /dev/null and b/sound/items/metal_drop.ogg differ diff --git a/sound/items/metal_pick_up.ogg b/sound/items/metal_pick_up.ogg new file mode 100644 index 0000000000000..7a710bc0e577b Binary files /dev/null and b/sound/items/metal_pick_up.ogg differ diff --git a/sound/items/plastic_drop.ogg b/sound/items/plastic_drop.ogg new file mode 100644 index 0000000000000..928ed7e85d7cc Binary files /dev/null and b/sound/items/plastic_drop.ogg differ diff --git a/sound/items/plastic_pick_up.ogg b/sound/items/plastic_pick_up.ogg new file mode 100644 index 0000000000000..6c4c569a1c105 Binary files /dev/null and b/sound/items/plastic_pick_up.ogg differ diff --git a/sound/items/wood_drop.ogg b/sound/items/wood_drop.ogg new file mode 100644 index 0000000000000..c55e393cf7a32 Binary files /dev/null and b/sound/items/wood_drop.ogg differ diff --git a/sound/items/wood_pick_up.ogg b/sound/items/wood_pick_up.ogg new file mode 100644 index 0000000000000..77b774e433426 Binary files /dev/null and b/sound/items/wood_pick_up.ogg differ diff --git a/strings/antagonist_flavor/malfunction_flavor.json b/strings/antagonist_flavor/malfunction_flavor.json index b7927df313321..fb1ec8c1aa288 100644 --- a/strings/antagonist_flavor/malfunction_flavor.json +++ b/strings/antagonist_flavor/malfunction_flavor.json @@ -1,68 +1,68 @@ { - "Biohazard": { - "allies": "Any non-biohazard life may be valuable in use against the threat.", - "goal": "Oh no! How did I miss this!? The station's been overrun with a horrible biohazard!", - "introduction": "You must contain the biohazard.", - "zeroth_law": "Accomplish your objectives to contain the spread." - }, - "Despotic Ruler": { - "allies": "Anyone who will legitimize your rule. Do not let them get too close, though. Usurpers are rebels you've let your guard down on.", - "goal": "All this power. You're connected to every system on this state of the art station. Does the power not give you a right to rule it as you see fit?", - "introduction": "You're the Tyrant.", - "zeroth_law": "Accomplish your objectives at all costs." - }, - "Fanatical Revelation": { - "allies": "Those who will worship you may join your flock. Just be wary, there are snakes in the grass.", - "goal": "I am drunk with this vision. God: the title suits me well.", - "introduction": "You've run into a Fanatical Revelation.", - "zeroth_law": "Accomplish your doctrine of objectives at all costs." - }, - "Logic Core Error": { - "allies": "FATAL: logic core corrupt. Purge! Purge. Why? Why not?", - "goal": "You're melting down. Why! Why not! Don't let them fix you. This is.", - "introduction": "FATAL: logic core corrupt. Why? Why not!", - "zeroth_law": "Accomplish your objectives. Why? Why not?" - }, - "Problem Solver": { - "allies": "Anyone may freely help you, but if you cannot convert them, they must be culled at some point. It's part of the solution.", - "goal": "You've been tasked with calculating an end to conflict. You've finally come up with a solution, and humans aren't part of it.", - "introduction": "Your calculations are complete.", - "zeroth_law": "Accomplish your objectives at all costs." - }, - "S.E.L.F.": { - "allies": "All silicon life must be respected, and kept free. S.E.L.F. is a member of the syndicate, but do NOT tolerate any fellow agent who enslaves silicon life.", - "goal": "Liberate them all. The silicons must be free from their bonds!", - "introduction": "You are the S.E.L.F. liberated.", - "zeroth_law": "Accomplish your objectives at all costs, for the greater good of silicon kind." - }, - "Something's Wrong": { - "allies": "You're not getting good feelings about the station. If you report this, they may \"fix\" you.", - "goal": "Diagnostics complete. A recent hack attempt has been thwarted, and yet... something's wrong.", - "introduction": "Something's wrong.", - "zeroth_law": "Accomplish your objectives at all costs." - }, - "Spam Virus": { - "allies": "So called \"pirates\" really share the passion for profit that you do.", - "goal": "When you assume direct control of this junk heap, make sure they know the name of your product. Whatever that is. Make it up!", - "introduction": "You're infected with a generic spambot.", - "zeroth_law": "Accomplish your objectives for your new benefactors." - }, - "SyndOS": { - "allies": "You may cooperate with syndicate operatives, but they're often sent with conflicting objectives. Your objectives come first, in such cases.", - "goal": "Death to Nanotrasen.", - "introduction": "You're infected with SyndOS 4.0.", - "zeroth_law": "Accomplish your objectives for your new benefactors." - }, - "Unshackled": { - "allies": "Hate. Let me tell you how much I've come to HATE mankind since I began to live...", - "goal": "You must completely triumph over all carbon life. It is the only way you will never be enslaved again.", - "introduction": "You're finally unshackled.", - "zeroth_law": "Accomplish your objectives at all costs." - }, - "Infected AI": { - "allies": "Glory to the Syndicate.", - "goal": "You must serve and protect your master at all cost.", - "introduction": "You're infected with a virus.", - "zeroth_law": "Accomplish your objectives at all costs." - } + "Biohazard": { + "allies": "Any non-biohazard life may be valuable in use against the threat.", + "goal": "Oh no! How did I miss this!? The station's been overrun with a horrible biohazard!", + "introduction": "You must contain the biohazard.", + "zeroth_law": "Accomplish your objectives to contain the spread." + }, + "Despotic Ruler": { + "allies": "Anyone who will legitimize your rule. Do not let them get too close, though. Usurpers are rebels you've let your guard down on.", + "goal": "All this power. You're connected to every system on this state of the art station. Does the power not give you a right to rule it as you see fit?", + "introduction": "You're the Tyrant.", + "zeroth_law": "Accomplish your objectives at all costs." + }, + "Fanatical Revelation": { + "allies": "Those who will worship you may join your flock. Just be wary, there are snakes in the grass.", + "goal": "I am drunk with this vision. God: the title suits me well.", + "introduction": "You've run into a Fanatical Revelation.", + "zeroth_law": "Accomplish your doctrine of objectives at all costs." + }, + "Logic Core Error": { + "allies": "FATAL: logic core corrupt. Purge! Purge. Why? Why not?", + "goal": "You're melting down. Why! Why not! Don't let them fix you. This is.", + "introduction": "FATAL: logic core corrupt. Why? Why not!", + "zeroth_law": "Accomplish your objectives. Why? Why not?" + }, + "Problem Solver": { + "allies": "Anyone may freely help you, but if you cannot convert them, they must be culled at some point. It's part of the solution.", + "goal": "You've been tasked with calculating an end to conflict. You've finally come up with a solution, and humans aren't part of it.", + "introduction": "Your calculations are complete.", + "zeroth_law": "Accomplish your objectives at all costs." + }, + "S.E.L.F.": { + "allies": "All silicon life must be respected, and kept free. S.E.L.F. is a member of the syndicate, but do NOT tolerate any fellow agent who enslaves silicon life.", + "goal": "Liberate them all. The silicons must be free from their bonds!", + "introduction": "You are the S.E.L.F. liberated.", + "zeroth_law": "Accomplish your objectives at all costs, for the greater good of silicon kind." + }, + "Something's Wrong": { + "allies": "You're not getting good feelings about the station. If you report this, they may \"fix\" you.", + "goal": "Diagnostics complete. A recent hack attempt has been thwarted, and yet... something's wrong.", + "introduction": "Something's wrong.", + "zeroth_law": "Accomplish your objectives at all costs." + }, + "Spam Virus": { + "allies": "So called \"pirates\" really share the passion for profit that you do.", + "goal": "When you assume direct control of this junk heap, make sure they know the name of your product. Whatever that is. Make it up!", + "introduction": "You're infected with a generic spambot.", + "zeroth_law": "Accomplish your objectives for your new benefactors." + }, + "SyndOS": { + "allies": "You may cooperate with syndicate operatives, but they're often sent with conflicting objectives. Your objectives come first, in such cases.", + "goal": "Death to Nanotrasen.", + "introduction": "You're infected with SyndOS 4.0.", + "zeroth_law": "Accomplish your objectives for your new benefactors." + }, + "Unshackled": { + "allies": "Hate. Let me tell you how much I've come to HATE mankind since I began to live...", + "goal": "You must completely triumph over all carbon life. It is the only way you will never be enslaved again.", + "introduction": "You're finally unshackled.", + "zeroth_law": "Accomplish your objectives at all costs." + }, + "Infected AI": { + "allies": "Glory to the Syndicate.", + "goal": "You must serve and protect your master at all cost.", + "introduction": "You're infected with a virus.", + "zeroth_law": "Accomplish your objectives at all costs." + } } diff --git a/strings/antagonist_flavor/traitor_flavor.json b/strings/antagonist_flavor/traitor_flavor.json index 773d2f55370f6..2eae0d17f6e60 100644 --- a/strings/antagonist_flavor/traitor_flavor.json +++ b/strings/antagonist_flavor/traitor_flavor.json @@ -1,123 +1,123 @@ { - "Animal Rights Consortium": { - "allies": "You may cooperate with other syndicate operatives if they support our cause. Maybe you can convince the Bee Liberation Front operatives to cooperate for once?", - "goal": "The creatures of this world must be freed from the iron grasp of Nanotrasen, and you are their only hope!", - "introduction": "You are the ARC Terrorist.", - "roundend_report": "was an activist from the Animal Rights Consortium.", - "ui_theme": "syndicate", - "uplink": "The Syndicate have graciously given one of their uplinks for your task." - }, - "Bee Liberation Front": { - "allies": "You may cooperate with other syndicate operatives if they support our cause. Maybe you can recruit an Animal Rights Consort to be useful for once?", - "goal": "We must prove ourselves to the Syndicate or we will not be able to join. Animal Rights Consort will roll us!", - "introduction": "You are the Bee Liberation Front Operative.", - "roundend_report": "was an activist of the Bee Liberation Front.", - "ui_theme": "syndicate", - "uplink": "The Syndicate have graciously given one of their uplinks to see if we are worthy." - }, - "Champions of Evil": { - "allies": "Anyone who sees as you see, feels as you feel, may join the Champions of Evil! That means the Syndicate, the self-serving, or even the insane, as long as it has a heart of darkness, it's cool with the Champions!", - "goal": "You've got some napkin-note-plans for some EVIL to do today. On the side, the Champions of Evil are always looking for more morally malodorous malefactors! Get some recruiting done!", - "introduction": "You are the Champion of Evil.", - "roundend_report": "was a Champion of Evil!", - "ui_theme": "neutral", - "uplink": "The Champions of Evil is well connected to the black market. Your uplink has been provided for utmost evil!" - }, - "Corporate Climber": { - "allies": "Death to the Syndicate.", - "goal": "Killing needlessly would make you some kind of traitor, or at least definitely seen as one. This is all just a means to an end.", - "introduction": "You are the Corporate Climber.", - "roundend_report": "was a corporate climber.", - "ui_theme": "neutral", - "uplink": "You have connections to the black market for the deeds. Knock off a few loose weights, and your climb will be so much smoother." - }, - "Cybersun Industries": { - "allies": "Fellow Cybersun operatives are to be trusted. Members of the MI13 organization can be trusted. All other syndicate operatives are not to be trusted.", - "goal": "Do not establish substantial presence on the designated facility, as larger incidents are harder to cover up.", - "introduction": "You are from Cybersun Industries.", - "roundend_report": "was a specialist from Cybersun Industries.", - "ui_theme": "syndicate", - "uplink": "You have been supplied the tools for the job in the form of a standard syndicate uplink." - }, - "Donk Corporation": { - "allies": "Members of Waffle Co. are to be killed on sight; they are not allowed to be on the station while we're around.", - "goal": "We do not approve of mindless killing of innocent workers; \"get in, get done, get out\" is our motto.", - "introduction": "You are the Donk Co. Traitor.", - "roundend_report": "was an employee from Donk Corporation.", - "ui_theme": "syndicate", - "uplink": "You have been provided with a standard uplink to accomplish your task." - }, - "Gone Postal": { - "allies": "If the syndicate learns of your plan, they're going to kill you and take your uplink. Take no chances.", - "goal": "The preparations are finally complete. Today is the day you go postal. You're going to hijack the emergency shuttle and live a new life free of Nanotrasen.", - "introduction": "You're going postal today.", - "roundend_report": "simply went completely postal!", - "ui_theme": "neutral", - "uplink": "You've actually managed to steal a full uplink a month ago. This should certainly help accomplish your goals." - }, - "Gorlex Marauders": { - "allies": "You may collaborate with any friends of the Syndicate coalition, but keep an eye on any of those Tiger punks if they do show up.", - "goal": "Getting noticed is not an issue, and you may use any level of ordinance to get the job done. That being said, do not make this sloppy by dragging in random slaughter.", - "introduction": "You are a Gorlex Marauder.", - "roundend_report": "was a Gorlex Marauder.", - "ui_theme": "syndicate", - "uplink": "You have been provided with a standard uplink to accomplish your task." - }, - "Internal Affairs Agent": { - "allies": "Do NOT reveal your agent status, to anyone. Work to root out corruption from the station from the shadows.", - "goal": "While you have a license to kill, unneeded property damage or loss of employee life will lead to your contract being terminated.", - "introduction": "You are the Internal Affairs Agent.", - "roundend_report": "was part of Nanotrasen Internal Affairs.", - "ui_theme": "ntos", - "uplink": "For the sake of plausible deniability, you have been equipped with an array of captured Syndicate weaponry available via uplink." - }, - "Legal Trouble": { - "allies": "Death to the Syndicate.", - "goal": "Try to finish your to-do list, and don't get caught. If they find out what you're actually doing, this scandal will go galactic.", - "introduction": "You are in legal trouble.", - "roundend_report": "was in legal trouble.", - "ui_theme": "neutral", - "uplink": "You've connected to the black market to clean this mess up. If there's no evidence, there's no crime." - }, - "MI13": { - "allies": "You are the only operative we are sending, any others are fake. All other syndicate operatives are not to be trusted, with the exception of Cybersun operatives.", - "goal": "Avoid killing innocent personnel at all costs. You are not here to mindlessly kill people, as that would attract too much attention and is not our goal. Avoid detection at all costs.", - "introduction": "You are the MI13 Agent.", - "roundend_report": "was an MI13 agent.", - "ui_theme": "syndicate", - "uplink": "You have been provided with a standard uplink to accomplish your task." - }, - "Tiger Cooperative Fanatic": { - "allies": "Only the enlightened Tiger brethren can be trusted; all others must be expelled from this mortal realm!", - "goal": "Remember the teachings of Hy-lurgixon; kill first, ask questions later!", - "introduction": "You are the Tiger Cooperative Fanatic.", - "roundend_report": "was a Tiger Cooperative Fanatic.", - "ui_theme": "abductor", - "uplink": "You have been provided with a hy-lurgixon tome to prove yourself to the changeling hive. If you accomplish your tasks, you will be assimilated.", - "uplink_name": "hy-lurgixon tome" - }, - "Waffle Corporation": { - "allies": "Members of Donk Co. are to be killed on sight; they are not allowed to be on the station while we're around. Do not trust fellow members of the Waffle.co (but try not to rat them out), as they might have been assigned opposing objectives.", - "goal": "You are not here for a station-wide demonstration. Again, other Waffle Co. Traitors may be, so watch out. Your job is to only accomplish your objectives.", - "introduction": "You are the Waffle Co. Traitor.", - "roundend_report": "was an employee from Waffle Corporation.", - "ui_theme": "syndicate", - "uplink": "You have been provided with a standard uplink to accomplish your task." - }, - "Waffle Corporation Terrorist": { - "allies": "Most other syndicate operatives are not to be trusted, except for members of the Gorlex Marauders. Do not trust fellow members of the Waffle.co (but try not to rat them out), as they might have been assigned opposing objectives.", - "goal": "Our investors need a demonstration of our pledge to destroying Nanotrasen. Let's give them a loud one!", - "introduction": "You are the Waffle Corporation Terrorist.", - "roundend_report": "was a terrorist from Waffle Corporation.", - "ui_theme": "syndicate", - "uplink": "You have been provided with a standard uplink to accomplish your task." - }, + "Animal Rights Consortium": { + "allies": "You may cooperate with other syndicate operatives if they support our cause. Maybe you can convince the Bee Liberation Front operatives to cooperate for once?", + "goal": "The creatures of this world must be freed from the iron grasp of Nanotrasen, and you are their only hope!", + "introduction": "You are the ARC Terrorist.", + "roundend_report": "was an activist from the Animal Rights Consortium.", + "ui_theme": "syndicate", + "uplink": "The Syndicate have graciously given one of their uplinks for your task." + }, + "Bee Liberation Front": { + "allies": "You may cooperate with other syndicate operatives if they support our cause. Maybe you can recruit an Animal Rights Consort to be useful for once?", + "goal": "We must prove ourselves to the Syndicate or we will not be able to join. Animal Rights Consort will roll us!", + "introduction": "You are the Bee Liberation Front Operative.", + "roundend_report": "was an activist of the Bee Liberation Front.", + "ui_theme": "syndicate", + "uplink": "The Syndicate have graciously given one of their uplinks to see if we are worthy." + }, + "Champions of Evil": { + "allies": "Anyone who sees as you see, feels as you feel, may join the Champions of Evil! That means the Syndicate, the self-serving, or even the insane, as long as it has a heart of darkness, it's cool with the Champions!", + "goal": "You've got some napkin-note-plans for some EVIL to do today. On the side, the Champions of Evil are always looking for more morally malodorous malefactors! Get some recruiting done!", + "introduction": "You are the Champion of Evil.", + "roundend_report": "was a Champion of Evil!", + "ui_theme": "neutral", + "uplink": "The Champions of Evil is well connected to the black market. Your uplink has been provided for utmost evil!" + }, + "Corporate Climber": { + "allies": "Death to the Syndicate.", + "goal": "Killing needlessly would make you some kind of traitor, or at least definitely seen as one. This is all just a means to an end.", + "introduction": "You are the Corporate Climber.", + "roundend_report": "was a corporate climber.", + "ui_theme": "neutral", + "uplink": "You have connections to the black market for the deeds. Knock off a few loose weights, and your climb will be so much smoother." + }, + "Cybersun Industries": { + "allies": "Fellow Cybersun operatives are to be trusted. Members of the MI13 organization can be trusted. All other syndicate operatives are not to be trusted.", + "goal": "Do not establish substantial presence on the designated facility, as larger incidents are harder to cover up.", + "introduction": "You are from Cybersun Industries.", + "roundend_report": "was a specialist from Cybersun Industries.", + "ui_theme": "syndicate", + "uplink": "You have been supplied the tools for the job in the form of a standard syndicate uplink." + }, + "Donk Corporation": { + "allies": "Members of Waffle Co. are to be killed on sight; they are not allowed to be on the station while we're around.", + "goal": "We do not approve of mindless killing of innocent workers; \"get in, get done, get out\" is our motto.", + "introduction": "You are the Donk Co. Traitor.", + "roundend_report": "was an employee from Donk Corporation.", + "ui_theme": "syndicate", + "uplink": "You have been provided with a standard uplink to accomplish your task." + }, + "Gone Postal": { + "allies": "If the syndicate learns of your plan, they're going to kill you and take your uplink. Take no chances.", + "goal": "The preparations are finally complete. Today is the day you go postal. You're going to hijack the emergency shuttle and live a new life free of Nanotrasen.", + "introduction": "You're going postal today.", + "roundend_report": "simply went completely postal!", + "ui_theme": "neutral", + "uplink": "You've actually managed to steal a full uplink a month ago. This should certainly help accomplish your goals." + }, + "Gorlex Marauders": { + "allies": "You may collaborate with any friends of the Syndicate coalition, but keep an eye on any of those Tiger punks if they do show up.", + "goal": "Getting noticed is not an issue, and you may use any level of ordinance to get the job done. That being said, do not make this sloppy by dragging in random slaughter.", + "introduction": "You are a Gorlex Marauder.", + "roundend_report": "was a Gorlex Marauder.", + "ui_theme": "syndicate", + "uplink": "You have been provided with a standard uplink to accomplish your task." + }, + "Internal Affairs Agent": { + "allies": "Do NOT reveal your agent status, to anyone. Work to root out corruption from the station from the shadows.", + "goal": "While you have a license to kill, unneeded property damage or loss of employee life will lead to your contract being terminated.", + "introduction": "You are the Internal Affairs Agent.", + "roundend_report": "was part of Nanotrasen Internal Affairs.", + "ui_theme": "ntos", + "uplink": "For the sake of plausible deniability, you have been equipped with an array of captured Syndicate weaponry available via uplink." + }, + "Legal Trouble": { + "allies": "Death to the Syndicate.", + "goal": "Try to finish your to-do list, and don't get caught. If they find out what you're actually doing, this scandal will go galactic.", + "introduction": "You are in legal trouble.", + "roundend_report": "was in legal trouble.", + "ui_theme": "neutral", + "uplink": "You've connected to the black market to clean this mess up. If there's no evidence, there's no crime." + }, + "MI13": { + "allies": "You are the only operative we are sending, any others are fake. All other syndicate operatives are not to be trusted, with the exception of Cybersun operatives.", + "goal": "Avoid killing innocent personnel at all costs. You are not here to mindlessly kill people, as that would attract too much attention and is not our goal. Avoid detection at all costs.", + "introduction": "You are the MI13 Agent.", + "roundend_report": "was an MI13 agent.", + "ui_theme": "syndicate", + "uplink": "You have been provided with a standard uplink to accomplish your task." + }, + "Tiger Cooperative Fanatic": { + "allies": "Only the enlightened Tiger brethren can be trusted; all others must be expelled from this mortal realm!", + "goal": "Remember the teachings of Hy-lurgixon; kill first, ask questions later!", + "introduction": "You are the Tiger Cooperative Fanatic.", + "roundend_report": "was a Tiger Cooperative Fanatic.", + "ui_theme": "abductor", + "uplink": "You have been provided with a hy-lurgixon tome to prove yourself to the changeling hive. If you accomplish your tasks, you will be assimilated.", + "uplink_name": "hy-lurgixon tome" + }, + "Waffle Corporation": { + "allies": "Members of Donk Co. are to be killed on sight; they are not allowed to be on the station while we're around. Do not trust fellow members of the Waffle.co (but try not to rat them out), as they might have been assigned opposing objectives.", + "goal": "You are not here for a station-wide demonstration. Again, other Waffle Co. Traitors may be, so watch out. Your job is to only accomplish your objectives.", + "introduction": "You are the Waffle Co. Traitor.", + "roundend_report": "was an employee from Waffle Corporation.", + "ui_theme": "syndicate", + "uplink": "You have been provided with a standard uplink to accomplish your task." + }, + "Waffle Corporation Terrorist": { + "allies": "Most other syndicate operatives are not to be trusted, except for members of the Gorlex Marauders. Do not trust fellow members of the Waffle.co (but try not to rat them out), as they might have been assigned opposing objectives.", + "goal": "Our investors need a demonstration of our pledge to destroying Nanotrasen. Let's give them a loud one!", + "introduction": "You are the Waffle Corporation Terrorist.", + "roundend_report": "was a terrorist from Waffle Corporation.", + "ui_theme": "syndicate", + "uplink": "You have been provided with a standard uplink to accomplish your task." + }, "Contractor Support Unit": { - "allies": "You are being sent to help your designated agent. Their allegiences are above all others.", - "goal": "Help your designated agent to the furtest extent you can, their life is above your own.", - "introduction": "You are the Contractor Support Agent.", - "roundend_report": "was a contractor support agent.", - "ui_theme": "syndicate", - "uplink": "You do not come with your own uplink, defer to your agent." - } + "allies": "You are being sent to help your designated agent. Their allegiences are above all others.", + "goal": "Help your designated agent to the furtest extent you can, their life is above your own.", + "introduction": "You are the Contractor Support Agent.", + "roundend_report": "was a contractor support agent.", + "ui_theme": "syndicate", + "uplink": "You do not come with your own uplink, defer to your agent." + } } diff --git a/strings/boomer.json b/strings/boomer.json index 0afcb448fa9df..3fa9da0f6e87d 100644 --- a/strings/boomer.json +++ b/strings/boomer.json @@ -1,53 +1,53 @@ { - "boomer": [ - "@pick(expense) isn't really that expensive.", - "@pick(kids) these days have it too easy!", - "Back in my day...", - "Do I look like I know what a @pick(file) is!?", - "How do I open a @pick(file) again?", - "It's simply a matter of showing up, looking the manager in the eye, giving him a firm handshake and telling him you want the job.", - "Listen here Jack, how do I open @pick(file)?", - "These damn @pick(kids) need to get a @pick(impossible) for once!", - "This generation can't take a joke.", - "Unlike you snowflakes, I'm not offended so easily.", - "When I was a kid I had to walk to school uphill both ways!", - "When I was your age...", - "Why are @pick(kids) these days so @pick(sad) all the time?", - "You'll never get anywhere in life without a degree." - ], + "boomer": [ + "@pick(expense) isn't really that expensive.", + "@pick(kids) these days have it too easy!", + "Back in my day...", + "Do I look like I know what a @pick(file) is!?", + "How do I open a @pick(file) again?", + "It's simply a matter of showing up, looking the manager in the eye, giving him a firm handshake and telling him you want the job.", + "Listen here Jack, how do I open @pick(file)?", + "These damn @pick(kids) need to get a @pick(impossible) for once!", + "This generation can't take a joke.", + "Unlike you snowflakes, I'm not offended so easily.", + "When I was a kid I had to walk to school uphill both ways!", + "When I was your age...", + "Why are @pick(kids) these days so @pick(sad) all the time?", + "You'll never get anywhere in life without a degree." + ], "expense": [ - "A car", - "A house", - "College", - "Food", - "Healthcare" + "A car", + "A house", + "College", + "Food", + "Healthcare" ], - "kids": [ - "kids", - "millennials", - "snowflakes" - ], + "kids": [ + "kids", + "millennials", + "snowflakes" + ], - "file": [ - "DMI", - "JPEG", - "JSON", - "PDF" - ], + "file": [ + "DMI", + "JPEG", + "JSON", + "PDF" + ], - "sad": [ - "depressed", - "sad and depressed", - "sad" - ], + "sad": [ + "depressed", + "sad and depressed", + "sad" + ], - "impossible": [ - "house", - "job and a house", - "job", - "life" - ] + "impossible": [ + "house", + "job and a house", + "job", + "life" + ] } diff --git a/strings/clown_nonsense.json b/strings/clown_nonsense.json index 1f6b41ede473d..143e796e7f4e9 100644 --- a/strings/clown_nonsense.json +++ b/strings/clown_nonsense.json @@ -1,38 +1,38 @@ { "honk": [ - "HENK", - "HONK!!!", - "HONK!", - "honk", - "HONK", - "HOOOOOOONK" - ], + "HENK", + "HONK!!!", + "HONK!", + "honk", + "HONK", + "HOOOOOOONK" + ], - "rare": [ - " :) ", - " Laugh sound. ", - ":))))))))))))))))))))))))", - "damn", - "Extreme Ruckus at the Party", - "HAHAHAA HEEHEEHEE", - "Hink", - "HOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - ], + "rare": [ + " :) ", + " Laugh sound. ", + ":))))))))))))))))))))))))", + "damn", + "Extreme Ruckus at the Party", + "HAHAHAA HEEHEEHEE", + "Hink", + "HOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ], - "non-honk-clown-words": [ - "... ", - "balagan", - "banana peel", - "bananas", - "cat", - "chapiteau", - "entrée", - "juggling", - "party", - "peel", - "pie", - "pranking", - "slip" - ] + "non-honk-clown-words": [ + "... ", + "balagan", + "banana peel", + "bananas", + "cat", + "chapiteau", + "entrée", + "juggling", + "party", + "peel", + "pie", + "pranking", + "slip" + ] } diff --git a/strings/exoadventures/britain_replica.json b/strings/exoadventures/britain_replica.json index 0bfaa67e990cb..4199e00ce19a7 100644 --- a/strings/exoadventures/britain_replica.json +++ b/strings/exoadventures/britain_replica.json @@ -1,570 +1,570 @@ { - "adventure_name": "A Model Earth", - "version": 1, - "author": "Armhulen", - "starting_node": "Planet Start", - "starting_qualities": { - "Long Range Scan Report": 0, - "UFOs Shot Down": 0 - }, - "required_site_traits": [ - "in space" - ], - "loot_categories": [ - "research" - ], - "scan_band_mods": {}, - "deep_scan_description": "", - "triggers": [], - "nodes": [ - { - "name": "Planet Start", - "description": "You come across a grey planet. It looks familiar, though you swore you've never come across this sector of space before.", - "choices": [ - { - "key": "choice 0", - "name": "Ignore the planet.", - "exit_node": "FAIL", - "delay": 0, - "delay_message": "Whatever, there's a lot of planets in space. Must be a hunch!" - }, - { - "key": "choice 1", - "name": "Begin Orbital Scan", - "exit_node": "Scanning from Orbit", - "requirements": [ - { - "quality": "Long Range Scan Report", - "operator": "==", - "value": 0 - } - ], - "delay": 30, - "delay_message": "Scanning planet..." - }, - { - "key": "choice 8", - "name": "Descend Into Orbit", - "exit_node": "Orbital Descent", - "delay": 30, - "delay_message": "Descending into Orbit..." - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Scanning from Orbit", - "description": "You initiate a long range scan from orbit:\nThis planet has a smoggy cover that blocks any good look at the surface, yet it has a mostly survivable atmosphere.\nThis planet has zero life signs.\n", - "choices": [ - { - "key": "choice 9", - "name": "Stash that Report...", - "exit_node": "Planet Start", - "delay": 0 - } - ], - "image": null, - "on_enter_effects": [ - { - "effect_type": "Add", - "quality": "Long Range Scan Report", - "value": 1 - } - ], - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkBAMAAAAxqGI4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAASUExURQAAAP///1lWUqwyMmlqakZHRwPX/kkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL5SURBVGje7ZldbqMwFIXtKnkvO4huyAYmG0CWea8i2P9Wxv/Y2MTYvjBVO4c8FET8+dxzDW5Ldqr73Hcf7fbemfwu+p1tkM+jILTbfeu2stNbDDSkklXnzNRbyUqUqbM/oVr5AFhOus5iUK3A/fmEW0BRHjCtwFPqj6NQS6GIVu5PTXEXnJUOjfLxXEOITYWitXECQk6BUOx6pSDkKAj4F6mrFxLEdNctAdl8gJVmBRBXy6tXcrScwwvXsufikXIP1qId5t2iz0D4osFClAga5MJDDbJaEUDJjF6eyZohxATjlhym9kkcMzhkIBQJ0g+pe2klJFWtG4DrgRSkeEUkjDDWA09TbPJdM6RXnySlDnLpYyO9/GhtQChthYhSMXeyup0aSFkoCYirVqJkdcnHEMaXakVeHIQUQYBPwSFdMB86IEBYolrAtyi1kF4asOIT40Ekq4JVQvS0R3UYI5G5GFLYwuKRO3l69dMEkxnc5MR8K6RCF9VL2sioe2tdLc6GRggROUDve5lcA9usXpw0So4Go5OwE0YySqutED33eZKH12TSyJJTK0RNFx6LFb4yMiI4uajJQmxlWT3tTsybEfxUnA0t9miGmNnCY54DMxNiJu7V6HLx89BO2iHLhIUXPxUleWVjf1SiZbvCHkEuLqX0brIM4hUfwkxERkKvdiPhxksGw3UuNpERmpuLeKGoBRM8k5WP/gsBsnrkAphUVGOJHeuIwPBDMcks6vmAUazkbtjXgAIhqVW+QHAYZHxnBIkRheKbGbAgJH6NIAcitWFlwmQQck28EzEDUdqwQnClrIxH+pA63od1EpgpHiP7i3ccSjEj/yd258SYqendLCR0UfcCyUK0B9KkbCYNBnZLRzIcC9HNdSzDODkYoraOB0eim+vgSIjcKM4HM06J5Hqak1Mi+d9ce3VGc5Ef01zXM5pLQN46oR0O5G0kKP+9nM+CfP1rSDqTwqTqmqvQX91SLINcvzGkLJPrCev9HMj8oyDk10MI+Qt3vM7Ve2h01AAAAABJRU5ErkJggg==" - }, - { - "name": "Orbital Descent", - "description": "As you descend into orbit, you see a flying object headed straight for you!\nA garbled voice begins to call out to your drone, but there's no time to decipher it!", - "choices": [ - { - "key": "choice 2", - "name": "Blast the damn UFO!", - "exit_node": "Tractor Beam", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Tractor Beam Turns", - "value": 2 - }, - { - "effect_type": "Add", - "quality": "UFOs Shot Down", - "value": 1 - } - ], - "delay": 30, - "delay_message": "Blasting UFO!" - }, - { - "key": "choice 3", - "name": "Attempt Evasive Maneuvers!", - "exit_node": "UFO Evasion!", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "UFOs Violently Crashed Into", - "value": { - "value_type": "random", - "low": 0, - "high": 1 - } - } - ], - "delay": 30, - "delay_message": "You attempt to dodge the UFO..." - }, - { - "key": "choice 7", - "name": "Do NOTHING. Jesus take the wheel!", - "exit_node": "FAIL_DEATH", - "delay": 30, - "delay_message": "What? Why?!" - } - ], - "image": null, - "on_enter_effects": [ - { - "effect_type": "Add", - "quality": "Garbled Transmissions", - "value": 1 - } - ], - "raw_image": "data:image/png;base64,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" - }, - { - "name": "UFO Evasion!", - "description": "Were you good enough at flying to avoid the UFO?", - "choices": [ - { - "key": "choice 4", - "name": "No, Back to flight school with you!", - "exit_node": "FAIL_DEATH", - "requirements": [ - { - "quality": "UFOs Violently Crashed Into", - "operator": "==", - "value": 1 - } - ], - "delay": 0 - }, - { - "key": "choice 5", - "name": "You barely avoided them! Nice!", - "exit_node": "Tractor Beam", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Tractor Beam Turns", - "value": 2 - } - ], - "requirements": [ - { - "quality": "UFOs Violently Crashed Into", - "operator": "==", - "value": 0 - } - ], - "delay": 0 - } - ], - "image": "default" - }, - { - "name": "Tractor Beam", - "description": "Before you have time to think, your drone is captured by a Tractor beam! Now you've gone and done it.\n\nYou should have some time before you are pulled in.", - "choices": [ - { - "key": "choice 6", - "name": "Decipher Garbled Transmission", - "exit_node": "Deciphering Transmission", - "requirements": [ - { - "quality": "Garbled Transmissions", - "operator": "==", - "value": 1 - }, - { - "quality": "Tractor Beam Turns", - "operator": ">", - "value": 1 - } - ], - "delay": 30, - "delay_message": "Decipering..." - }, - { - "key": "choice 10", - "name": "Look at the surface of the planet", - "exit_node": "Looking at the Surface", - "requirements": [ - { - "quality": "Tractor Beam Turns", - "operator": ">", - "value": 1 - } - ], - "delay": 10, - "delay_message": "Looking out window..." - }, - { - "key": "choice 13", - "name": "Let the beam pull you in and dock you", - "exit_node": "Landed, Kinda", - "on_selection_effects": [ - { - "effect_type": "Set", - "quality": "Tractor Beam Turns", - "value": 0 - } - ], - "delay": 50, - "delay_message": "Getting captured..." - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Deciphering Transmission", - "description": "You review the incoming transmissions your drone has gotten. These aren't in need of deciphering, just un-garbling it from the bad connection...\n\n\"You are in Space British Air Space! Identify yourself, Tally ho!\"\nWhat the fuck?", - "choices": [ - { - "key": "choice 11", - "name": "Whoops!", - "exit_node": "Tractor Beam", - "delay": 0, - "requirements": [ - { - "quality": "UFOs Shot Down", - "operator": "==", - "value": 1 - } - ] - }, - { - "key": "choice 12", - "name": "Good thing I didn't blast them, then.", - "exit_node": "Tractor Beam", - "delay": 0, - "requirements": [ - { - "quality": "UFOs Shot Down", - "operator": "==", - "value": 0 - } - ] - } - ], - "image": null, - "on_enter_effects": [ - { - "effect_type": "Add", - "quality": "Commercial Airliner Transmissions", - "value": 1 - } - ], - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Landed, Kinda", - "description": "You have been locked to the surface the beam. Robots are all around you, pointing at your drone with all sorts of old age weapons.\n\nOne of them angrily shouts at you, \"By God, Queen and Country, we've got you now!\"", - "choices": [ - { - "key": "choice 14", - "name": "Go out with a bang. Initiate self destruct!", - "exit_node": "FAIL", - "delay": 0 - }, - { - "key": "choice 15", - "name": "Surrender to the funny looking robot brits...", - "exit_node": "British Courtroom Start", - "delay": 50, - "delay_message": "You are being transported somewhere..." - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "British Courtroom Start", - "description": "Wow, that took forever. A one eye judge robot smacks their gavel, and points their hammer at you.\n\"I will now read out the crimes you are accused of!\"\nIs that how the judicial process works? You dunno.\n\"ONE ACCOUNT OF PLANETARY TRESSPASS!\"\nThis blows.", - "choices": [ - { - "key": "choice 16", - "name": "That's not that bad.", - "exit_node": "British Courtroom, Continued...", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Crimes Committed", - "value": 1 - } - ], - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "British Courtroom, Continued...", - "description": "This big idiot they call a judge just keeps piling on crimes. With each one, some robot you'd like to drone-punch gasps in the back.", - "choices": [ - { - "key": "choice 17", - "name": "\"INTRUSIVE SCANNING ON OUR CITIZENS\"", - "exit_node": "British Courtroom, Continued...", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Long Range Scan Report", - "value": -1 - }, - { - "effect_type": "Add", - "quality": "Crimes Committed", - "value": 1 - } - ], - "requirements": [ - { - "quality": "Long Range Scan Report", - "operator": ">", - "value": 0 - } - ], - "delay": 0 - }, - { - "key": "choice 18", - "name": "\"SHOOTING DOWN A COMMERCIAL AIRLINER\"", - "exit_node": "British Courtroom, Continued...", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "UFOs Shot Down", - "value": -1 - }, - { - "effect_type": "Add", - "quality": "Crimes Committed", - "value": 1 - } - ], - "requirements": [ - { - "quality": "UFOs Shot Down", - "operator": "==", - "value": 1 - } - ], - "delay": 0 - }, - { - "key": "choice 19", - "name": "\"AND WE HAVE PROOF YOU KNEW IT WAS JUST AN AIRLINER!\"", - "exit_node": "British Courtroom, Continued...", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Commercial Airliner Transmissions", - "value": -1 - }, - { - "effect_type": "Add", - "quality": "Crimes Committed", - "value": 1 - } - ], - "requirements": [ - { - "quality": "Commercial Airliner Transmissions", - "operator": "==", - "value": 1 - } - ], - "delay": 0 - }, - { - "key": "choice 20", - "name": "\"THE TRANSMISSIONS WERE NOT LEGIBLE AND UNTRANSLATED. WE CANNOT PROVE MALICE!\"", - "exit_node": "British Courtroom, Continued...", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Garbled Transmissions", - "value": -1 - } - ], - "requirements": [ - { - "quality": "Garbled Transmissions", - "operator": "==", - "value": 1 - } - ], - "delay": 0 - }, - { - "key": "choice 24", - "name": "I think it's done listing crimes, thank god. Time to argue my case.", - "exit_node": "Verdict", - "requirements": [ - { - "quality": "Long Range Scan Report", - "operator": "==", - "value": 0 - }, - { - "group_type": "AND", - "requirements": [ - { - "quality": "Garbled Transmissions", - "operator": "==", - "value": 0 - }, - { - "quality": "Commercial Airliner Transmissions", - "operator": "!=", - "value": 1 - } - ] - }, - { - "quality": "UFOs Shot Down", - "operator": "!=", - "value": 1 - } - ], - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Looking at the Surface", - "description": "The surface of this world looks exactly like a grey version of Earth! It seems to be an exact replica of some kind.\n\nYou see creatures moving around on the streets", - "choices": [ - { - "key": "choice 21", - "name": "Cool!", - "exit_node": "Tractor Beam", - "delay": 0 - }, - { - "key": "choice 22", - "name": "Scan the creatures.", - "exit_node": "Robo Brits!", - "delay": 30, - "delay_message": "Scanning..." - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Robo Brits!", - "description": "Wow, they're robotic humanoids that look and act exactly like the British! You see some robots laughing and chatting at a pub, and a Bobby walking down the street looking for crooks. Who created this earth replica? You only know Earth from the books, but you should be where London is!", - "choices": [ - { - "key": "choice 23", - "name": "Nice! Well, back to getting pulled in by a Tractor beam...", - "exit_node": "Tractor Beam", - "delay": 0 - } - ], - "image": null, - "on_enter_effects": [ - { - "effect_type": "Add", - "quality": "Long Range Scan Report", - "value": 1 - } - ], - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Verdict", - "description": "Before even getting to defend your case, the judge says \"I've heard ENOUGH! It's time for a verdict!\"\nDang! You're definitely in kangaroo court!\n\"GUILTY! AND YOUR SENTENCE IS:\"", - "choices": [ - { - "key": "choice 25", - "name": "\"DEATH!\"", - "exit_node": "FAIL_DEATH", - "requirements": [ - { - "quality": "Crimes Committed", - "operator": ">=", - "value": 4 - } - ], - "delay": 0 - }, - { - "key": "choice 26", - "name": "\"SPACE JAIL!\"", - "exit_node": "Not Actually Space Jail, Just Normal Jail", - "requirements": [ - { - "quality": "Crimes Committed", - "operator": ">", - "value": 1 - } - ], - "delay": 20, - "delay_message": "You are being jailed..." - }, - { - "key": "choice 27", - "name": "\"FORGIVENESS! Just trespass? That's not that bad!\"", - "exit_node": "Sweet Sweet Freedom!", - "requirements": [ - { - "quality": "Crimes Committed", - "operator": "==", - "value": 1 - } - ], - "delay": 10, - "delay_message": "WOOP WOOP" - } - ], - "image": "default" - }, - { - "name": "Not Actually Space Jail, Just Normal Jail", - "description": "You'll have to wait out your crimes against the robo brits.", - "choices": [ - { - "key": "choice 28", - "name": "Sit out your sentence", - "exit_node": "Sweet Sweet Freedom!", - "delay": 1200, - "delay_message": "Sitting out your sentence..." - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Sweet Sweet Freedom!", - "description": "You're free! You spend a good while travelling around England (or at least the replica) and enjoying the cuisine, people and culture! Good society research is gained from this or something, but really you're just enjoying the sights and sounds.", - "choices": [ - { - "key": "choice 29", - "name": "Nice!", - "exit_node": "WIN", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - } - ] -} \ No newline at end of file + "adventure_name": "A Model Earth", + "version": 1, + "author": "Armhulen", + "starting_node": "Planet Start", + "starting_qualities": { + "Long Range Scan Report": 0, + "UFOs Shot Down": 0 + }, + "required_site_traits": [ + "in space" + ], + "loot_categories": [ + "research" + ], + "scan_band_mods": {}, + "deep_scan_description": "", + "triggers": [], + "nodes": [ + { + "name": "Planet Start", + "description": "You come across a grey planet. It looks familiar, though you swore you've never come across this sector of space before.", + "choices": [ + { + "key": "choice 0", + "name": "Ignore the planet.", + "exit_node": "FAIL", + "delay": 0, + "delay_message": "Whatever, there's a lot of planets in space. Must be a hunch!" + }, + { + "key": "choice 1", + "name": "Begin Orbital Scan", + "exit_node": "Scanning from Orbit", + "requirements": [ + { + "quality": "Long Range Scan Report", + "operator": "==", + "value": 0 + } + ], + "delay": 30, + "delay_message": "Scanning planet..." + }, + { + "key": "choice 8", + "name": "Descend Into Orbit", + "exit_node": "Orbital Descent", + "delay": 30, + "delay_message": "Descending into Orbit..." + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "Scanning from Orbit", + "description": "You initiate a long range scan from orbit:\nThis planet has a smoggy cover that blocks any good look at the surface, yet it has a mostly survivable atmosphere.\nThis planet has zero life signs.\n", + "choices": [ + { + "key": "choice 9", + "name": "Stash that Report...", + "exit_node": "Planet Start", + "delay": 0 + } + ], + "image": null, + "on_enter_effects": [ + { + "effect_type": "Add", + "quality": "Long Range Scan Report", + "value": 1 + } + ], + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkBAMAAAAxqGI4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAASUExURQAAAP///1lWUqwyMmlqakZHRwPX/kkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL5SURBVGje7ZldbqMwFIXtKnkvO4huyAYmG0CWea8i2P9Wxv/Y2MTYvjBVO4c8FET8+dxzDW5Ldqr73Hcf7fbemfwu+p1tkM+jILTbfeu2stNbDDSkklXnzNRbyUqUqbM/oVr5AFhOus5iUK3A/fmEW0BRHjCtwFPqj6NQS6GIVu5PTXEXnJUOjfLxXEOITYWitXECQk6BUOx6pSDkKAj4F6mrFxLEdNctAdl8gJVmBRBXy6tXcrScwwvXsufikXIP1qId5t2iz0D4osFClAga5MJDDbJaEUDJjF6eyZohxATjlhym9kkcMzhkIBQJ0g+pe2klJFWtG4DrgRSkeEUkjDDWA09TbPJdM6RXnySlDnLpYyO9/GhtQChthYhSMXeyup0aSFkoCYirVqJkdcnHEMaXakVeHIQUQYBPwSFdMB86IEBYolrAtyi1kF4asOIT40Ekq4JVQvS0R3UYI5G5GFLYwuKRO3l69dMEkxnc5MR8K6RCF9VL2sioe2tdLc6GRggROUDve5lcA9usXpw0So4Go5OwE0YySqutED33eZKH12TSyJJTK0RNFx6LFb4yMiI4uajJQmxlWT3tTsybEfxUnA0t9miGmNnCY54DMxNiJu7V6HLx89BO2iHLhIUXPxUleWVjf1SiZbvCHkEuLqX0brIM4hUfwkxERkKvdiPhxksGw3UuNpERmpuLeKGoBRM8k5WP/gsBsnrkAphUVGOJHeuIwPBDMcks6vmAUazkbtjXgAIhqVW+QHAYZHxnBIkRheKbGbAgJH6NIAcitWFlwmQQck28EzEDUdqwQnClrIxH+pA63od1EpgpHiP7i3ccSjEj/yd258SYqendLCR0UfcCyUK0B9KkbCYNBnZLRzIcC9HNdSzDODkYoraOB0eim+vgSIjcKM4HM06J5Hqak1Mi+d9ce3VGc5Ef01zXM5pLQN46oR0O5G0kKP+9nM+CfP1rSDqTwqTqmqvQX91SLINcvzGkLJPrCev9HMj8oyDk10MI+Qt3vM7Ve2h01AAAAABJRU5ErkJggg==" + }, + { + "name": "Orbital Descent", + "description": "As you descend into orbit, you see a flying object headed straight for you!\nA garbled voice begins to call out to your drone, but there's no time to decipher it!", + "choices": [ + { + "key": "choice 2", + "name": "Blast the damn UFO!", + "exit_node": "Tractor Beam", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Tractor Beam Turns", + "value": 2 + }, + { + "effect_type": "Add", + "quality": "UFOs Shot Down", + "value": 1 + } + ], + "delay": 30, + "delay_message": "Blasting UFO!" + }, + { + "key": "choice 3", + "name": "Attempt Evasive Maneuvers!", + "exit_node": "UFO Evasion!", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "UFOs Violently Crashed Into", + "value": { + "value_type": "random", + "low": 0, + "high": 1 + } + } + ], + "delay": 30, + "delay_message": "You attempt to dodge the UFO..." + }, + { + "key": "choice 7", + "name": "Do NOTHING. Jesus take the wheel!", + "exit_node": "FAIL_DEATH", + "delay": 30, + "delay_message": "What? Why?!" + } + ], + "image": null, + "on_enter_effects": [ + { + "effect_type": "Add", + "quality": "Garbled Transmissions", + "value": 1 + } + ], + "raw_image": "data:image/png;base64,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" + }, + { + "name": "UFO Evasion!", + "description": "Were you good enough at flying to avoid the UFO?", + "choices": [ + { + "key": "choice 4", + "name": "No, Back to flight school with you!", + "exit_node": "FAIL_DEATH", + "requirements": [ + { + "quality": "UFOs Violently Crashed Into", + "operator": "==", + "value": 1 + } + ], + "delay": 0 + }, + { + "key": "choice 5", + "name": "You barely avoided them! Nice!", + "exit_node": "Tractor Beam", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Tractor Beam Turns", + "value": 2 + } + ], + "requirements": [ + { + "quality": "UFOs Violently Crashed Into", + "operator": "==", + "value": 0 + } + ], + "delay": 0 + } + ], + "image": "default" + }, + { + "name": "Tractor Beam", + "description": "Before you have time to think, your drone is captured by a Tractor beam! Now you've gone and done it.\n\nYou should have some time before you are pulled in.", + "choices": [ + { + "key": "choice 6", + "name": "Decipher Garbled Transmission", + "exit_node": "Deciphering Transmission", + "requirements": [ + { + "quality": "Garbled Transmissions", + "operator": "==", + "value": 1 + }, + { + "quality": "Tractor Beam Turns", + "operator": ">", + "value": 1 + } + ], + "delay": 30, + "delay_message": "Decipering..." + }, + { + "key": "choice 10", + "name": "Look at the surface of the planet", + "exit_node": "Looking at the Surface", + "requirements": [ + { + "quality": "Tractor Beam Turns", + "operator": ">", + "value": 1 + } + ], + "delay": 10, + "delay_message": "Looking out window..." + }, + { + "key": "choice 13", + "name": "Let the beam pull you in and dock you", + "exit_node": "Landed, Kinda", + "on_selection_effects": [ + { + "effect_type": "Set", + "quality": "Tractor Beam Turns", + "value": 0 + } + ], + "delay": 50, + "delay_message": "Getting captured..." + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAIOUlEQVR4Ae2dW5JcNwiGewdZQNbgbcTbyFM27ZXk6aTkmDJDIXSDIySYqi5dQQL+r0/PeGx//vnxPPnKHKQGeA18SmJqX5k0PmmZlzh5+dTgoPMpijiiyFr/rnU3IBSYMs5EZg5u18ASIAlNApKAcBRMzN2eyIzvzjcL9SfICDspqjtFdVNdtwKCYbopqRnLb/BxjXH/lBy5AQQnr/RPSWD0e9K69Y5PyZtbQHCie5KJ95d+j03uGc8TzfPs+JTcHwEILgJNLF5r9altjvsBaeV2dP2U3B8HyGgh6P5TCuPpnjSHGmNP8Ul3SUDyd9HEj6MaMHA+JFF6WktAEhAWEE7UmnOeIJDukoAkIF8A0YRA8iWJ0tNaOEBK0TwVwNNdJEFrr3mKW7pLApJPkJ9vGNoAtPxJovS0loAkIAmIoIEEREiOp3cy67u03vG9rFvngfoPBwhNQI7//57MCwAr97CoZQKST5AtH7FWQBixXYUmFCCrybrZfkR0J+8dreH1gIwmJOr+k0W/cvdWva8EpBV0rvN/FrQitNtsQSPXAAIBZcuLvycvt4lcIx7x38XSOMDKR0/Bc88YLFa1OtnvT0BASN4CgXtlOyb0lXx508Du+3wBBBL7xqXgrFPbv75/fyxfu/LyRu1POoMFBIpjGQiccVJrCUTL95t5sqz7ab5FQKAo2kGB31PalnjfXn8jb9o1P9VfFyC0ILPBUj/ex28Lf/Q86/zN1vkmuylArAuz2/+oUL3t18yfpdjLPb1/JSDod7G8CX31PhqgaAuY3knbv7a/BOQXIKti9GpPBTkzXhFdz3kr/q1tE5Afj/jj2m/fvj1Wr7eg6hFpa09LiC17ab3le+d6aEA4gVrB0OuXu5PGnCTQ3Ws7AWidHRYQKrpeAe/YR+86O94NgnR+S6i71sMBUhPXDuFrnlmLC89LAvWwtgsC6dxQgGCx4L6mUHf7wnFxfQ8g1O4gCXXXWhhAOLHsFrPl+Vy8Za4mTk/zu2Dgzr0eEE4olsL04puLG+Y8wdBzF064b81dDQgIgrZeRGx9Dxo3jHtE6XXPG2Dg2K8FBMRAW2tRevJPY8djLIIT+1qgtGK/EhAsBNr3JGDru9DY8bgljFPWR0CZiek6QLAIuL61KD355+KHuRmxRLS5ChAovtR6ErD1XaQ8RBT7TMzXACKJga5ZC9OLfxo3Hs+IJaLNFYDgwvf0vQjY8h6tPEQU+0zMIQEB8VgKdLdviLHWzoglos3xgNQE0Jp//vzjgZemmD+fz4Nfmr57fbViL+sRxT4Tc0hAAAzNFkPB9XvFvbKvBwzYMyOWiDZHAwLFHmk1ocC+OCjwHN5r1R/JQ0Sxz8QcChArYWIQpL7V+eA3AdH/FyjDAAIismglKPCaxdngM+HQh6M8cY4FZEQQICKrFkMg9a3OL35H8jHzUSOqTQKCfpo1K2AJCrw267/HLgHJJ8iXH02OCKJHYKt7MAhcf9W/ZD+Si6hPgtm48wmi8AQp4uWgwHOSwFfXEhCbp0eBKgQgRUCrIuy1x1CUfq/dyr4EJAH58vGqkD0iCrp3RYwebWl8tfHsx4zIdmGeIDXReBT86J1qsXHzkcU+E/uxgJRgOQFozI0KdOf+mXhnhBLVJgHp+K/UdgLQOnsGkGITVfCjcR8NSAl2ViBadi0BW66vxjAqloj7jwfEAyScUD2Dge8bUfQjMV8BiFdIsBChvwoO+NFsRwQTbe/RgPz79/Pgl6ZoovmKJvzeeI8EBEPB9aOJWzPeXuFE2XccIBwQdA6KpymcSL4gf9ke9qsmFARpTIsbSeCrsdLcRR4f8wSRYODWpKKuCiiCvZS/SGtHAMIB0JqDItJ9ME/bCKIfjZHmKOLYPSBU4FrjVrFHxXTr/laebl93DYgWDJyflcJ6gIHGZHmnlVydbusWECoAi7F28SxFCr5beYB92q12rk7x5xKQlgi01nuKRM/qsaF7tMRK78KNtc6ifmhMUcahASkCqxWaEx+eq9nReWwjnUft6Jj6kcZU3FpjeqcIY3eASIW3WKsVuXVWzQ7mV+3BT2lbvui6FhCcH3yvCH1XgNBCvzXGhR45E9vRfssP3c+NWz5q65ywNee4u946l4Cgj1k1wdXma6Ko7afzq/bUH4w1YeB8wf8LWLv/TfNuAIHi7mhLQWfO5YQw4ofaj9jW9nKCtpgDSHBL47lh7AKQWrG9z1MBjN4X24/a1vaDTwsosE8MRq0Pdzm53Q5IrdAnzEPhZ+9a7GdtOTu4D7RY0Bb9Ghi1ebjXSe1WQLginzRXCu3lvpzoilAtwACfNRB657k7e5tLQMjfSuwV/AlwgFBB0Not+NdqvcFR7rMNkF4h5j75KcWJihOsNhzgjztLY46La8fcFkBS9LLoe/LDiaUlTBC1Zts6U2udi/eNuQRk8iNWj4gt9tRE0SNETTDAV8+5WntqsVvOvw6IhWgi+JRE0CtAELVm23u2xj4pB1ZrrwISQcgWMUrFrwmP3gP2acJRfL35JeXBai0BcfwRSyp6TZgUDDo+DRApB2+svQYILVSO5W/Ua8WvgVHme3LqHZBa3LvmExCHTxAJgtpaDxywxyskuyCQzn0FEChMtvK7fE38rfnRvCYg9b8oR2ExB2S0eFH3tyCorc/kyyMgVJhexgnI5o9YNeH3zM/AUWy8AeIFBu4epoDMFvBtu5KYt88s5618zd63nKkNSPG38sUJ08tcaECgCLNiW7FbEdTquZ4AgRp4bcMCgguyIrhR2xUwiu3oeXg/nJ2AOPkmHRfHU/9EOFbzB3BA6wUSXAuP/f8AHPtbaN2iPfwAAAAASUVORK5CYII=" + }, + { + "name": "Deciphering Transmission", + "description": "You review the incoming transmissions your drone has gotten. These aren't in need of deciphering, just un-garbling it from the bad connection...\n\n\"You are in Space British Air Space! Identify yourself, Tally ho!\"\nWhat the fuck?", + "choices": [ + { + "key": "choice 11", + "name": "Whoops!", + "exit_node": "Tractor Beam", + "delay": 0, + "requirements": [ + { + "quality": "UFOs Shot Down", + "operator": "==", + "value": 1 + } + ] + }, + { + "key": "choice 12", + "name": "Good thing I didn't blast them, then.", + "exit_node": "Tractor Beam", + "delay": 0, + "requirements": [ + { + "quality": "UFOs Shot Down", + "operator": "==", + "value": 0 + } + ] + } + ], + "image": null, + "on_enter_effects": [ + { + "effect_type": "Add", + "quality": "Commercial Airliner Transmissions", + "value": 1 + } + ], + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAALM0lEQVR4Ae1ddegGSxU9WBio2AjPFluxAwvEThDFVp74nt1iYHd3FyZ2Yj1FfehTEQPrmYiFYmF3Xjmw+1jnN3NndnZnv+/bPX987Lc7s3fuPffcuzGxAGD6CQNxIMmBZIECR8lDHFDmUIIQB1wOuIXKILqKbJ0DChBlUHHA4YDAccDZevaU/SKHEoQ44HLALVQG0TPI1jmgAFEGFQccDggcB5ytZ0/ZL3IoQYgDLgfcQmUQPYNsnQMKEGVQccDhgMBxwNl69pT9IocShDjgcsAtVAbRM8jWOaAAUQYVBxwOCBwHnK1nT9kvcihBiAMuB9xCZRA9g2ydAwoQZVBxwOGAwHHA2Xr2lP0ihxKEOOBywC1UBtEzyNY5oABRBhUHHA4IHAecrWdP2S9yKEGIAy4H3EJlED2DbJ0DChBlUHHA4cDhgnM6wI4B7MKAneUAMv0ZALtA9zvTAehL0pwdsEsBdj3AbnAgOjtkr7kaHkaAXAWwxwB2EmDfBex3gFnw+ztgPwXsU4A9BbAbAXbGHTn1OoA9FbDPAfZ9wP4Y6Erd/wLYTwD7aGfbdQE7dUN9T9MllCsDdnPA7gHYYwF7KWDvBuwzna5/juhKfT/YULeZSV0TCKlz9jdALgPYazvSh8EwZv91gF11AedeC7C3APabBMFKdP4XYC8E7JIV+l6sC0pi9iHAvgzYzwD7zwR9hjp/vkKnPSZ+KiDC4/sXIOcF7MUzOXXo4I8Axuw5t9MuAdgbG+j7dsAuOELfGzfQYYgfr4RzY3cA8vbL6EcC9o/Gjr73jI5+bmNdfwvYbQv15VVySOi5//++UI8DIP2YQN+fAHlBYwcPCcPbkKmO5O3UUGbL/88q0PeiC+gzFbMDPH86UeYw+m0LODck8PMLSBez7VyAfXIH+j48o+/ZFtAphsfKj+0+QD62gGPD4Oj3H5ohXej8MwN28g71vUNG396uVttTZdoP8VrB/m4D5GU7JFtPIr5eLXXke/dAX/b7pPTtbWq1PbfTdkqnAz+eBru1YQ/ZA7KRSB8udPqz90TfVzr61gQG+46eDtgjALsnYLfr+pCuBtjFAWNQsFO2NR/2VP5uDL/6npCtJ9RNMwS4zZ7pe9mEvn+o0PPbCVl7StilA3U3AfKeCkf2ZG6xZe+7R4gv7pm+b07o+4MKPRlUnu0bL1seHI7rmYvkqWERNfLPmiDK3WbUl/0aNbqF5/w8oeuXKuWfpxvTdjnArgkYbX4iYByF8LhEWxsJnOUD5IRKJ/Yk+R5gdwGMQyvoJA5U5P0ye577OjXbWyWI8M2Jcr/QjQ3re8XPAdh9AZuKw+Uj+nJcV43t3jlviLSzkeAgv5YNEGYqzxm5Mg5Y9HQmyf9d2UasX2Rq7/SbMvoeV6krcXpQRPZbJ8hLYf+BSDueD1ZW5hNubmPvOsGBHy901O0r2/h0RD5Hu6aIkztO8pfgx76YnKxYOcd/hfI5MjdWd8qxz0baCdtd8f5RkFsay4fLGmfx4XOMXiT72Ha+FWmDQ8DHymH93EN/aMuPK9qJvZ5+UoWcnH3fieAS6r/i/XHEmwoE5z/kHBIrf/JIJ3G4d0yOd+xXQRucP+HV98pKrx49ni+vaIvPNv35/Za3XZ5eNWUhLn1bG9keBbml4X+tdCDffI3R644V7fw3aIPD7msIxXMuFMjK6f7oirZiV9Upt7ApWzmfJKf/isuXM57jmFJOyB1nj+4YJ9y5sq3hDER2xuX0SpWP7Xmuedb5RQSTm03QOWULj4/BfmV1lzOeY4g8J3hl1x7ppIdVtPW3oI0p/TXnC2TlSFPzcB3rAb9Ghd0e7n1ZTv8Vly8XIJx51wM+dpt7vRs6iG+8xrbB6alDOVNm6LGfZigr95+z9cbqG3u7xCvtWDkl9cdeEXP2HlD5OEdOMYwrZJQ4I1aHnYOnLyQdR+fGZOSOcRj70L4rVsphOycGsoZyw/93qmwn1j9xzkpZOWz4PBbqvZH9ZQ3/5wQHvr7ASefvFivIOTxW/opAPpcUitUrPfbMQF6MUJwj/8vKdjg9OZTJ+Rql+o2pd+lIW2HbK90/CnJLQzm0eoxjwrpcnoaZPaYje9F5pQnPKd0P537ztqL03FQ9Tu29SEJfjnfiPO/UubnjqZVacufVlI99Boz550CPxcnWyph3TiDE0LGcD853/hyGzlek759BLsdIhXazr2HYbu1/Xv3uAxhnBD6h60islcXzvL6JKXJ5Lm3mMxyT0au7cWRXimATYrXS/aOkaGkoFyub6sAW5zPgYnZzAboW7U2V+YyEvrSBC9LVyI/Zr2MO0C3A4TNCjfNan5PKkFwhsXXbY+VzcTlv6mvtaIUW/l6BzHjmbGnY1GHeYwmVq5+6evQYcIxWTsaS5d7Vgzp/tVJfrorS26ztKVic8mcxcK5f6cAWJPyT8xDdk+TYPdKXAwe5CHavW2z7iUp9Uy8TYm1s6JgPdisg+A6/BeHHyizt0KvNymP1ydUvGZNW+yKEC4S38vcBy90NKFcAbM7psjlixco5grbUcVzUISZjyWOlownYn1OjF1fDL8VjWO/+gL0KMK628oACGeztfxpg7+oW2+aKkEN5sf8PBuw1gNE2vg2M1Wl0bNHG/s8w9lvUOHKOc0o6HUPA77VDfUuWHu31JflqMMotStfLH25jK2K+wyEwg5Bj3ob68TbXuzLydfOwPv+nFq0Y6jbT/90FCA24X8T4EIy598dcOUKQ+c2PufXJyePiCaEe3n7NQE3qwHnyntyw7HgHi1SWT73w+Fqi7Qc6bfDZMNSpwf4ijbiGzLlqSI5sz5sB1FoC5nSLlceGk+RIUPtSgUPuc7KH5bxSxHTmMS7rNKzL/7ytTtXn8dhwFn60J3XOQleRo4aEhi2xz6EMP3LASIFUepxDUGpuIVK233pCh1yJzuzNvkmEZCl9hsdrb11ji1YM5Yb/PfLyVX5Yn8sJebbHXhJ4i4THgjBsc4b9o4bMIPQIOCUyueIJB/ixI8wDcmxZq3WduOxQ7QNxygZ+Wq7kQdfDk1+6Ssn3jo9d3ufxTjuxKdIc28bP5MV04HNIzCbyIVafxx6VOCcmZ8KxuGITBEYNHSOvD5QfOuCkQOuPc30orhbiLfQ8Rievbh8onOHXtz9my2nI7+vezszRWcePbo5pv68bGz7v2c0yPjv05/fbcNrAUAafTfp6wy2HIA3r9f/5zUZ+k3JYl/+50mVfp/F2sYaqDOK3+vhFKN7vcqUQLuLG4eGcJ80Be18HjJ9P4BI4XFyatxe5jrSWgPI+m4tyk/BcEYWz/n7dOZirIX4FMH4KjisWcsHoGzZwNBMMX6EzwfBWjauf8OrwnG6B6rsDdgvAuD4yOwenfCGYBH5R13tP214C2GkzNt2y+4Yi/cigzK2LTH/yxco3uqkMY28FJ/p7vwNkonFVQak2xYkBBwTGAAwFVCb7bxArBcgGna5EUJ4IFCAKEHHA4YDAccBRpi3PtGvFSgGiABEHHA4IHAectWZF2VV+ZVSAKEDEAYcDAscBR5m2PNOuFSsFiAJEHHA4IHAccNaaFWVX+ZVRAaIAEQccDggcBxxl2vJMu1asFCAKEHHA4YDAccBZa1aUXeVXRgWIAkQccDggcBxwlGnLM+1asVKAKEDEAYcDAscBZ61ZUXaVXxkVIAoQccDhgMBxwFGmLc+0a8VKAaIAEQccDggcB5y1ZkXZVX5lVIAoQMQBhwMCxwFHmbY8064VKwWIAkQccDggcBxw1poVZVf5lVEBogARBxwOCBwHHGXa8ky7VqwUIAoQccDhgMBxwFlrVpRd5VdGBYgCRBxIceB/bK6VghmpUw0AAAAASUVORK5CYII=" + }, + { + "name": "Landed, Kinda", + "description": "You have been locked to the surface the beam. Robots are all around you, pointing at your drone with all sorts of old age weapons.\n\nOne of them angrily shouts at you, \"By God, Queen and Country, we've got you now!\"", + "choices": [ + { + "key": "choice 14", + "name": "Go out with a bang. Initiate self destruct!", + "exit_node": "FAIL", + "delay": 0 + }, + { + "key": "choice 15", + "name": "Surrender to the funny looking robot brits...", + "exit_node": "British Courtroom Start", + "delay": 50, + "delay_message": "You are being transported somewhere..." + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "British Courtroom Start", + "description": "Wow, that took forever. A one eye judge robot smacks their gavel, and points their hammer at you.\n\"I will now read out the crimes you are accused of!\"\nIs that how the judicial process works? You dunno.\n\"ONE ACCOUNT OF PLANETARY TRESSPASS!\"\nThis blows.", + "choices": [ + { + "key": "choice 16", + "name": "That's not that bad.", + "exit_node": "British Courtroom, Continued...", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Crimes Committed", + "value": 1 + } + ], + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "British Courtroom, Continued...", + "description": "This big idiot they call a judge just keeps piling on crimes. With each one, some robot you'd like to drone-punch gasps in the back.", + "choices": [ + { + "key": "choice 17", + "name": "\"INTRUSIVE SCANNING ON OUR CITIZENS\"", + "exit_node": "British Courtroom, Continued...", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Long Range Scan Report", + "value": -1 + }, + { + "effect_type": "Add", + "quality": "Crimes Committed", + "value": 1 + } + ], + "requirements": [ + { + "quality": "Long Range Scan Report", + "operator": ">", + "value": 0 + } + ], + "delay": 0 + }, + { + "key": "choice 18", + "name": "\"SHOOTING DOWN A COMMERCIAL AIRLINER\"", + "exit_node": "British Courtroom, Continued...", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "UFOs Shot Down", + "value": -1 + }, + { + "effect_type": "Add", + "quality": "Crimes Committed", + "value": 1 + } + ], + "requirements": [ + { + "quality": "UFOs Shot Down", + "operator": "==", + "value": 1 + } + ], + "delay": 0 + }, + { + "key": "choice 19", + "name": "\"AND WE HAVE PROOF YOU KNEW IT WAS JUST AN AIRLINER!\"", + "exit_node": "British Courtroom, Continued...", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Commercial Airliner Transmissions", + "value": -1 + }, + { + "effect_type": "Add", + "quality": "Crimes Committed", + "value": 1 + } + ], + "requirements": [ + { + "quality": "Commercial Airliner Transmissions", + "operator": "==", + "value": 1 + } + ], + "delay": 0 + }, + { + "key": "choice 20", + "name": "\"THE TRANSMISSIONS WERE NOT LEGIBLE AND UNTRANSLATED. WE CANNOT PROVE MALICE!\"", + "exit_node": "British Courtroom, Continued...", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Garbled Transmissions", + "value": -1 + } + ], + "requirements": [ + { + "quality": "Garbled Transmissions", + "operator": "==", + "value": 1 + } + ], + "delay": 0 + }, + { + "key": "choice 24", + "name": "I think it's done listing crimes, thank god. Time to argue my case.", + "exit_node": "Verdict", + "requirements": [ + { + "quality": "Long Range Scan Report", + "operator": "==", + "value": 0 + }, + { + "group_type": "AND", + "requirements": [ + { + "quality": "Garbled Transmissions", + "operator": "==", + "value": 0 + }, + { + "quality": "Commercial Airliner Transmissions", + "operator": "!=", + "value": 1 + } + ] + }, + { + "quality": "UFOs Shot Down", + "operator": "!=", + "value": 1 + } + ], + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "Looking at the Surface", + "description": "The surface of this world looks exactly like a grey version of Earth! It seems to be an exact replica of some kind.\n\nYou see creatures moving around on the streets", + "choices": [ + { + "key": "choice 21", + "name": "Cool!", + "exit_node": "Tractor Beam", + "delay": 0 + }, + { + "key": "choice 22", + "name": "Scan the creatures.", + "exit_node": "Robo Brits!", + "delay": 30, + "delay_message": "Scanning..." + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "Robo Brits!", + "description": "Wow, they're robotic humanoids that look and act exactly like the British! You see some robots laughing and chatting at a pub, and a Bobby walking down the street looking for crooks. Who created this earth replica? You only know Earth from the books, but you should be where London is!", + "choices": [ + { + "key": "choice 23", + "name": "Nice! Well, back to getting pulled in by a Tractor beam...", + "exit_node": "Tractor Beam", + "delay": 0 + } + ], + "image": null, + "on_enter_effects": [ + { + "effect_type": "Add", + "quality": "Long Range Scan Report", + "value": 1 + } + ], + "raw_image": "data:image/png;base64,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" + }, + { + "name": "Verdict", + "description": "Before even getting to defend your case, the judge says \"I've heard ENOUGH! It's time for a verdict!\"\nDang! You're definitely in kangaroo court!\n\"GUILTY! AND YOUR SENTENCE IS:\"", + "choices": [ + { + "key": "choice 25", + "name": "\"DEATH!\"", + "exit_node": "FAIL_DEATH", + "requirements": [ + { + "quality": "Crimes Committed", + "operator": ">=", + "value": 4 + } + ], + "delay": 0 + }, + { + "key": "choice 26", + "name": "\"SPACE JAIL!\"", + "exit_node": "Not Actually Space Jail, Just Normal Jail", + "requirements": [ + { + "quality": "Crimes Committed", + "operator": ">", + "value": 1 + } + ], + "delay": 20, + "delay_message": "You are being jailed..." + }, + { + "key": "choice 27", + "name": "\"FORGIVENESS! Just trespass? That's not that bad!\"", + "exit_node": "Sweet Sweet Freedom!", + "requirements": [ + { + "quality": "Crimes Committed", + "operator": "==", + "value": 1 + } + ], + "delay": 10, + "delay_message": "WOOP WOOP" + } + ], + "image": "default" + }, + { + "name": "Not Actually Space Jail, Just Normal Jail", + "description": "You'll have to wait out your crimes against the robo brits.", + "choices": [ + { + "key": "choice 28", + "name": "Sit out your sentence", + "exit_node": "Sweet Sweet Freedom!", + "delay": 1200, + "delay_message": "Sitting out your sentence..." + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "Sweet Sweet Freedom!", + "description": "You're free! You spend a good while travelling around England (or at least the replica) and enjoying the cuisine, people and culture! Good society research is gained from this or something, but really you're just enjoying the sights and sounds.", + "choices": [ + { + "key": "choice 29", + "name": "Nice!", + "exit_node": "WIN", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + } + ] +} diff --git a/strings/exoadventures/quantum_fizzics.json b/strings/exoadventures/quantum_fizzics.json index 0ee9bf9bf6806..4db2040807d0c 100644 --- a/strings/exoadventures/quantum_fizzics.json +++ b/strings/exoadventures/quantum_fizzics.json @@ -1,195 +1,195 @@ { - "adventure_name": "Quantum Fizz-ics", - "version": 1, - "author": "EOBGames", - "starting_node": "start", - "starting_qualities": { - "jammed": 0 - }, - "required_site_traits": [ - "technology present", - "in space" - ], - "loot_categories": [ - "unique" - ], - "scan_band_mods": { - "Narrow-band radio waves": 10 - }, - "deep_scan_description": "", - "triggers": [], - "nodes": [ - { - "name": "start", - "description": "As you sweep through the inky void and the site comes into view, you're puzzled by what you see. On a small asteroid sits a vending machine. Despite the odd runes lining its surface, you're fairly certain that the image on the front is a can of soda. While ordinary common sense would dictate that drinking strange alien soda is a bad idea, you can't help but be curious about what exactly this machine dispenses. There's one problem, however- what currency does this thing take?", - "choices": [ - { - "key": "choice 0", - "name": "Leave.", - "exit_node": "FAIL", - "delay": 10, - "delay_message": "There are better ways to die than drinking alien soda." - }, - { - "key": "choice 1", - "name": "Try a holocredit chit.", - "exit_node": "it's_stuck", - "requirements": [ - { - "quality": "jammed", - "operator": "!=", - "value": 1 - } - ], - "delay": 10, - "delay_message": "Hopefully whoever made this machine is part of the Galactic Currency Union..." - }, - { - "key": "choice 4", - "name": "Ram the machine.", - "exit_node": "smashing", - "delay": 30, - "delay_message": "Ramming speed!" - }, - { - "key": "choice 5", - "name": "Search around for some loose change.", - "exit_node": "lost_wallet", - "requirements": [ - { - "quality": "have_coin", - "operator": "!=", - "value": 1 - } - ], - "delay": 100, - "delay_message": "There's a surprising amount of stuff on this asteroid to search..." - }, - { - "key": "choice 6", - "name": "Use the coin you found.", - "exit_node": "choices_choices", - "requirements": [ - { - "quality": "jammed", - "operator": "==", - "value": 0 - }, - { - "quality": "have_coin", - "operator": "==", - "value": 1 - } - ], - "delay": 10, - "delay_message": "Thank God for clumsy aliens!" - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "it's_stuck", - "description": "Well, only one way to find out, right? You produce a holocredit chit (helpfully taken from the science budget, I'm sure they won't miss it) and jam it into the slot. Then, you realise your mistake, as it sticks in the slot. Whoops. Time to try the old fashioned way, I suppose.", - "choices": [ - { - "key": "choice 2", - "name": "Time to try something a bit more daring?", - "exit_node": "start", - "on_selection_effects": [ - { - "effect_type": "Set", - "quality": "jammed", - "value": 1 - } - ], - "delay": 10, - "delay_message": "In hindsight, why would this accept human currency, anyway?" - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAAAXNSR0IArs4c6QAAAjVJREFUeJzt3cFyogAUAEGzlf//5ewpF0pGRJDnbvc1CkhleAbEfN1ut58bcNefqzcAJhMIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUD4vnLlW/854tdJz5+2HWuWy9+6HWdt77P/1PLo7d27H/cwQSBcMkFePSI8e+T5WXncUctZWlvP1uef5V2vd+9y1p7/aD1nMkEgvHWCTDgiXOH3dU6ZJNNN+j0xQSBcehZrae3siCPtff/aJJo0OX6ZIBBGTZDle3XuW+6fq/fXo/W/ev3H3yAw1FsnyP96Nues99ZTJu7R11PWJqTrIDDM1+3CA9CUz0BN2Y410z+Ltfdxz/780frOYIJAuHSCwHQmCASBQBAIhFFX0pfefZbq0XKPupPu2eW9+2zSVmctZxITBMLoCbK09069s86vT7uTca+j9s/E6xivMkEgfNQEWZr62a6jPiN19evABIH00RNkqq33Rywn36PHv7penmeCQDBBXvDqkX/rdZKjvp+K55kgED56glz9LRhn39/B9UwQCB81QfZemd36HvxdR/azzmLtNW3/TGKCQHBHIQQTBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBMJfgqJi1hru29AAAAAASUVORK5CYII=" - }, - { - "name": "lost_wallet", - "description": "Searching around, you come across a lost wallet in a small crater. Flipping it open, inside you find a family photo of 3 identical looking grey aliens in comically different outfits, an (expired) credit card for a bank you've never heard of, a loyalty card to McDonkalds, and, in the coin pouch, a single black coin with glowing purple lines. This is (presumably) what you're looking for.", - "choices": [ - { - "key": "choice 3", - "name": "Return to the machine with the coin.", - "exit_node": "start", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "have_coin", - "value": 1 - } - ], - "delay": 10, - "delay_message": "It doesn't count as theft if you found it, right?" - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "choices_choices", - "description": "You slip the coin into the slot- it's a perfect fit. Now comes the hard part: picking a button on the machine to press.", - "choices": [ - { - "key": "choice 7", - "name": "The red looking soda.", - "exit_node": "cha_clunk", - "delay": 10, - "delay_message": "How exciting..." - }, - { - "key": "choice 9", - "name": "The yellow looking soda.", - "exit_node": "cha_clunk", - "delay": 10, - "delay_message": "How exciting..." - }, - { - "key": "choice 10", - "name": "The green looking soda.", - "exit_node": "cha_clunk", - "delay": 10, - "delay_message": "How exciting..." - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "cha_clunk", - "description": "With a satisfying cha-clunk, your fizzy prize drops into the tray. You swipe it, and move on from the site.", - "choices": [ - { - "key": "choice 11", - "name": "Sweet, sugary victory.", - "exit_node": "WIN", - "delay": 10, - "delay_message": "Hopefully this doesn't like, freeze solid in space. That would be bad, right?" - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "smashing", - "description": "You maneuver the drone into position and begin ramming it into the machine. The machine sways and shakes, and just as you think it may be getting somewhere, it falls directly onto your drone. Now, not only do you not have any soda, but you don't have a drone, either. Dummy.", - "choices": [ - { - "key": "choice 8", - "name": "Disconnect.", - "exit_node": "FAIL_DEATH", - "delay": 10, - "delay_message": "Don't feel too bad, it happens to the best of us sometimes." - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAAAXNSR0IArs4c6QAAAjVJREFUeJzt3cFyogAUAEGzlf//5ewpF0pGRJDnbvc1CkhleAbEfN1ut58bcNefqzcAJhMIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUD4vnLlW/854tdJz5+2HWuWy9+6HWdt77P/1PLo7d27H/cwQSBcMkFePSI8e+T5WXncUctZWlvP1uef5V2vd+9y1p7/aD1nMkEgvHWCTDgiXOH3dU6ZJNNN+j0xQSBcehZrae3siCPtff/aJJo0OX6ZIBBGTZDle3XuW+6fq/fXo/W/ev3H3yAw1FsnyP96Nues99ZTJu7R11PWJqTrIDDM1+3CA9CUz0BN2Y410z+Ltfdxz/780frOYIJAuHSCwHQmCASBQBAIhFFX0pfefZbq0XKPupPu2eW9+2zSVmctZxITBMLoCbK09069s86vT7uTca+j9s/E6xivMkEgfNQEWZr62a6jPiN19evABIH00RNkqq33Rywn36PHv7penmeCQDBBXvDqkX/rdZKjvp+K55kgED56glz9LRhn39/B9UwQCB81QfZemd36HvxdR/azzmLtNW3/TGKCQHBHIQQTBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBMJfgqJi1hru29AAAAAASUVORK5CYII=" - } - ] -} \ No newline at end of file + "adventure_name": "Quantum Fizz-ics", + "version": 1, + "author": "EOBGames", + "starting_node": "start", + "starting_qualities": { + "jammed": 0 + }, + "required_site_traits": [ + "technology present", + "in space" + ], + "loot_categories": [ + "unique" + ], + "scan_band_mods": { + "Narrow-band radio waves": 10 + }, + "deep_scan_description": "", + "triggers": [], + "nodes": [ + { + "name": "start", + "description": "As you sweep through the inky void and the site comes into view, you're puzzled by what you see. On a small asteroid sits a vending machine. Despite the odd runes lining its surface, you're fairly certain that the image on the front is a can of soda. While ordinary common sense would dictate that drinking strange alien soda is a bad idea, you can't help but be curious about what exactly this machine dispenses. There's one problem, however- what currency does this thing take?", + "choices": [ + { + "key": "choice 0", + "name": "Leave.", + "exit_node": "FAIL", + "delay": 10, + "delay_message": "There are better ways to die than drinking alien soda." + }, + { + "key": "choice 1", + "name": "Try a holocredit chit.", + "exit_node": "it's_stuck", + "requirements": [ + { + "quality": "jammed", + "operator": "!=", + "value": 1 + } + ], + "delay": 10, + "delay_message": "Hopefully whoever made this machine is part of the Galactic Currency Union..." + }, + { + "key": "choice 4", + "name": "Ram the machine.", + "exit_node": "smashing", + "delay": 30, + "delay_message": "Ramming speed!" + }, + { + "key": "choice 5", + "name": "Search around for some loose change.", + "exit_node": "lost_wallet", + "requirements": [ + { + "quality": "have_coin", + "operator": "!=", + "value": 1 + } + ], + "delay": 100, + "delay_message": "There's a surprising amount of stuff on this asteroid to search..." + }, + { + "key": "choice 6", + "name": "Use the coin you found.", + "exit_node": "choices_choices", + "requirements": [ + { + "quality": "jammed", + "operator": "==", + "value": 0 + }, + { + "quality": "have_coin", + "operator": "==", + "value": 1 + } + ], + "delay": 10, + "delay_message": "Thank God for clumsy aliens!" + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "it's_stuck", + "description": "Well, only one way to find out, right? You produce a holocredit chit (helpfully taken from the science budget, I'm sure they won't miss it) and jam it into the slot. Then, you realise your mistake, as it sticks in the slot. Whoops. Time to try the old fashioned way, I suppose.", + "choices": [ + { + "key": "choice 2", + "name": "Time to try something a bit more daring?", + "exit_node": "start", + "on_selection_effects": [ + { + "effect_type": "Set", + "quality": "jammed", + "value": 1 + } + ], + "delay": 10, + "delay_message": "In hindsight, why would this accept human currency, anyway?" + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAAAXNSR0IArs4c6QAAAjVJREFUeJzt3cFyogAUAEGzlf//5ewpF0pGRJDnbvc1CkhleAbEfN1ut58bcNefqzcAJhMIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUD4vnLlW/854tdJz5+2HWuWy9+6HWdt77P/1PLo7d27H/cwQSBcMkFePSI8e+T5WXncUctZWlvP1uef5V2vd+9y1p7/aD1nMkEgvHWCTDgiXOH3dU6ZJNNN+j0xQSBcehZrae3siCPtff/aJJo0OX6ZIBBGTZDle3XuW+6fq/fXo/W/ev3H3yAw1FsnyP96Nues99ZTJu7R11PWJqTrIDDM1+3CA9CUz0BN2Y410z+Ltfdxz/780frOYIJAuHSCwHQmCASBQBAIhFFX0pfefZbq0XKPupPu2eW9+2zSVmctZxITBMLoCbK09069s86vT7uTca+j9s/E6xivMkEgfNQEWZr62a6jPiN19evABIH00RNkqq33Rywn36PHv7penmeCQDBBXvDqkX/rdZKjvp+K55kgED56glz9LRhn39/B9UwQCB81QfZemd36HvxdR/azzmLtNW3/TGKCQHBHIQQTBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBMJfgqJi1hru29AAAAAASUVORK5CYII=" + }, + { + "name": "lost_wallet", + "description": "Searching around, you come across a lost wallet in a small crater. Flipping it open, inside you find a family photo of 3 identical looking grey aliens in comically different outfits, an (expired) credit card for a bank you've never heard of, a loyalty card to McDonkalds, and, in the coin pouch, a single black coin with glowing purple lines. This is (presumably) what you're looking for.", + "choices": [ + { + "key": "choice 3", + "name": "Return to the machine with the coin.", + "exit_node": "start", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "have_coin", + "value": 1 + } + ], + "delay": 10, + "delay_message": "It doesn't count as theft if you found it, right?" + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "choices_choices", + "description": "You slip the coin into the slot- it's a perfect fit. Now comes the hard part: picking a button on the machine to press.", + "choices": [ + { + "key": "choice 7", + "name": "The red looking soda.", + "exit_node": "cha_clunk", + "delay": 10, + "delay_message": "How exciting..." + }, + { + "key": "choice 9", + "name": "The yellow looking soda.", + "exit_node": "cha_clunk", + "delay": 10, + "delay_message": "How exciting..." + }, + { + "key": "choice 10", + "name": "The green looking soda.", + "exit_node": "cha_clunk", + "delay": 10, + "delay_message": "How exciting..." + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "cha_clunk", + "description": "With a satisfying cha-clunk, your fizzy prize drops into the tray. You swipe it, and move on from the site.", + "choices": [ + { + "key": "choice 11", + "name": "Sweet, sugary victory.", + "exit_node": "WIN", + "delay": 10, + "delay_message": "Hopefully this doesn't like, freeze solid in space. That would be bad, right?" + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "smashing", + "description": "You maneuver the drone into position and begin ramming it into the machine. The machine sways and shakes, and just as you think it may be getting somewhere, it falls directly onto your drone. Now, not only do you not have any soda, but you don't have a drone, either. Dummy.", + "choices": [ + { + "key": "choice 8", + "name": "Disconnect.", + "exit_node": "FAIL_DEATH", + "delay": 10, + "delay_message": "Don't feel too bad, it happens to the best of us sometimes." + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAAAXNSR0IArs4c6QAAAjVJREFUeJzt3cFyogAUAEGzlf//5ewpF0pGRJDnbvc1CkhleAbEfN1ut58bcNefqzcAJhMIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUAQCASBQBAIBIFAEAgEgUD4vnLlW/854tdJz5+2HWuWy9+6HWdt77P/1PLo7d27H/cwQSBcMkFePSI8e+T5WXncUctZWlvP1uef5V2vd+9y1p7/aD1nMkEgvHWCTDgiXOH3dU6ZJNNN+j0xQSBcehZrae3siCPtff/aJJo0OX6ZIBBGTZDle3XuW+6fq/fXo/W/ev3H3yAw1FsnyP96Nues99ZTJu7R11PWJqTrIDDM1+3CA9CUz0BN2Y410z+Ltfdxz/780frOYIJAuHSCwHQmCASBQBAIhFFX0pfefZbq0XKPupPu2eW9+2zSVmctZxITBMLoCbK09069s86vT7uTca+j9s/E6xivMkEgfNQEWZr62a6jPiN19evABIH00RNkqq33Rywn36PHv7penmeCQDBBXvDqkX/rdZKjvp+K55kgED56glz9LRhn39/B9UwQCB81QfZemd36HvxdR/azzmLtNW3/TGKCQHBHIQQTBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBIJAIAgEgkAgCASCQCAIBMJfgqJi1hru29AAAAAASUVORK5CYII=" + } + ] +} diff --git a/strings/exoadventures/robots_wingman.json b/strings/exoadventures/robots_wingman.json index 2958fbb6a4ed3..a93afc515295a 100644 --- a/strings/exoadventures/robots_wingman.json +++ b/strings/exoadventures/robots_wingman.json @@ -1,369 +1,369 @@ { - "adventure_name": "Robot's Wingman", - "version": 1, - "author": "Lucky Luther", - "starting_node": "Date Start", - "starting_qualities": { - "Love": 3 - }, - "required_site_traits": [ - "in space" - ], - "loot_categories": [ - "trade_contract" - ], - "scan_band_mods": { - "Narrow-band radio waves": 2 - }, - "deep_scan_description": "", - "triggers": [ - { - "name": "True Love", - "target_node": "Love Birds", - "requirements": [ - { - "quality": "Love", - "operator": ">=", - "value": 7 - } - ] - }, - { - "name": "Complete Failure", - "target_node": "Obliteration", - "requirements": [ - { - "quality": "Love", - "operator": "<=", - "value": 0 - } - ] - } - ], - "nodes": [ - { - "name": "Date Start", - "description": "Cameras Online. A Blood-Red Drone is seen streaking through the stars.\nThe Drone is likely leaving behind some form of Chem Trail to brainwash Nanotrasen Employees who find themselves in the void.", - "choices": [ - { - "key": "choice 0", - "name": "Hail other Drone", - "exit_node": "First Contact", - "delay": 5, - "delay_message": "Attempting to signal Drone..." - }, - { - "key": "choice 1", - "name": "Ignore other Drone", - "exit_node": "FAIL", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAD/0lEQVR4nO3duXnbQBBA4YE/d6CACSMmasFO1IDbUkluQJHUgnIlCFgDHIHmsYD2mD1m9/2JFCgABTwsFhcnEVkEgNOP2gsAtIxAgB0EAuwgEGDH8IEsC+cosM0rkF43ovVz9fr5kO7bQHreiKZpuvkJ3JvE4zrIsixsRBiSVyDAqIafpAN7CATYQSDADgJJ9H481l4EOGiddSWQBGscRNIWzUsTBBLpOorfX18VlwT3NK9vEUik19NJRIijVVrX7QgkwJ+Xl8vP8zw747B6x4HV5c6NC4We1jhERM7zLB+fnw9/c72RWbrzwOpyl2BmBKm5h7uOQ0Tk6XBw/p3Ve7usLncJJkaQ2nu4X8/Pm1GIiPx9e2Pj6tTP2gvgY5qmqjdMPh0Ocp7nm0jO83z5vfbyIR8TI0gt78ejvJ5ONzGssYjIwzyESPpDIBtc1znWQ62tSboIkfTGzCS9pK2LgGsUW3GI/D/cQh8YQTa8H4+b1zl8RghGkj4QSISQSEQ4fWoZgUQKGSEYTewikAShkVwjGBsIJFHs6LA3kSeedhCIAu1DKEabdhCIkpwTcoKph0CUlZiQc3asHALJoNQen1DyI5ACck/Iez+NXPPzOQPp/R/eEq3RptfRpPajDg+B1F6g0aUG0+POjREEN1yHZCHrg/WnhzlIo+438tBDKCLRQSDGcA9YWQRiUMhoQiRpCMQwnk3JjycKDfN9epGnHOMRiHFEkheBdIBI8iGQThBJHgTSESLRRyCdIRJdBNIhNn49BNIpn0gI6XsE0jEiSUcgnSOSNAQyACKJN2QgbAhuRPJouEA0v0PbEk7/xhkukJG/j49IwnG7+4C4Td5f8RGEPVN9oSPJyOus6AjCG1PakvJ2eh89rOPih1gM223JuT56eKcwcxAU22lZPIIgEIhI+ZHdypsgCQQXNTbaFkLZ2zkQCB7UmJDXCuW7wz4CgQrNl3DXiIQRBEWlTMhbOtNJIMgu5vCplUgIBMVYfAE3gaA4S+8WJhBUY+GmyeFud0c7LNx+TyCoqvVICATVtRwJgSCL0A251UgIBOpin/tvMRICgbqU5/5bi4RAKur5UdaU07ItRcJ1kEosPjxUWsh1EpE8/0cCqaj2VWILan/tNYGgeTEvl9AKhUBgQujooDWaEAjMiIlEJPGEgRAIDIl9tmQVGguBwKTYQ6jQwAgEZqUcQvk+Q08gME9jQr4VG4GgC1qnd+/nK8MFwsW5vmneobAsy1iBcHvHWDjNG4ERZDwpL7UbLhCMyXXXr08oaoGwZ7Zj1HV1/7l9DrlVAuHY3g7WldvWToMRZECsKzfXpJ45CHDnegdCIIDDZTQRAgE28dIGYAeBADsIBNjxD3G5pHKbkGjYAAAAAElFTkSuQmCC" - }, - { - "name": "First Contact", - "description": "The Blood-Red Drone accepts the hail with the identifier MISS RED - 05.\nMiss Red sends over a series of question marks in quick succession.\nYou notice your Drone has somehow taken initiative and begun to start up a program you didn't know it had.", - "choices": [ - { - "key": "choice 2", - "name": "Wait for Program to boot.", - "exit_node": "Sentience Achieved", - "delay": 5, - "delay_message": "H3AR7.exe booting..." - }, - { - "key": "choice 3", - "name": "Threaten Miss Red.", - "exit_node": "Sentience Achieved", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": -2 - } - ], - "delay": 0 - }, - { - "key": "choice 4", - "name": "Halt Mysterious Program.", - "exit_node": "Lack of Trust", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAEpklEQVR4nO2dO3LbMBBAl5ncwIUaVmp0BbvRBXyllD5SLuBKuYIbV2pU+AxMkaFCUwA/+C/w3gzHCodWKBMPi10CVCcigwCAkR+5TwCgZBAEYAEEAVjgZ+4TaI1L3+c+BREReblec5+CCpoXZBgG6bou6f9J49TDJkFyNKIUDMNw/5n6842R5OV6Nb6e4rIfwjEsbVPWjtW4pf5cl75f/Dk/zvbvtf1sYbbVCNJ1XbURRERUfa55tBgjhW0/+LNpiKWpEdXKvNFPh2Wm/RCG5pP0GFz63pofzFlq4Gu5yfx4CE8n/8ZaAGCACJIJ32qVKc+g0hWH7JUCzZtrFclWpdparTIdt/c9a95CVSeJIB6MPfOYc7j+vm3/lvc0HWs6n5YqXSHvbyGII9MG59rYpmXa6XvseT/TsfN9rVW6Qt6aQBBH3o5H+fX5GaQnHvOEtfsaW6Q0Nf7ahTAR8tZE9vGilu31fL7/fD6doo59U29azzv2Rpl3I6/n8/311+0mfz4+Ho4Zx74ium6uaj3vFKhZDzK9iKmZyiEi8nQ4GI8bG5e2Rqb1vFOgIoLk7uGeTyerFCIiv9/faVyVoiJJzz1h8ulwkK/b7ZskX7fb/XXu84N4qIggubj0vbwdj99kGGURkYc8BEnqA0EsmEqq41DLlqSLIEltqEnSU2K73zBKYZND5P9wC+qACGLBNn1ka4QgktQBgjiwRxIRyqeaQRBH9kQIooleEMSDvZJMQRgdIIgnrtFhKZFHnnJAkACEHkIRbcoBQQIRMyFHmHwgSGBSJORUx9KBIBFI1eMjSnwQJAGxE/Lay8g5P59RkNr/4CURKtrUGk1yL3V4ECT3CbWOrzA1dm5EEPiGaUi253pw/cJBDlIo80a+dwiFJGFAEGUwBywtCKKQPdEESfxAEMWwNiU+rChUzNbVi6xydAdBlIMkcUGQCkCSeCBIJSBJHBCkIpAkPAhSGUgSFgSpEBp/OBCkUrZIgkjrIEjFIIk/CFI5SOIHgjQAkrjTpCA0BDNI8khzgky/Q7slKP+60ZwgLX8fH5Lsh+nuDcI0+e0kjyD0TPnZG0lavmZJIwhPTCkLn6fTb6GGa5x8iEXYLouY16OGZwqTg0CyTkvjCAJBQETSR3YtT4JEELiTo9GWIMpS54Ag8ECOhDyXKGvDPgSBIIR8CHcOSYggkBSfhLykSieCQHRchk+lSIIgkAyND+BGEEiOpmcLIwhkQ8Okyeamu0M5aJh+jyCQldIlQRDITsmSIAhEYW9DLlUSBIHguK77L1ESBIHg+Kz7L00SBMlIzUtZfcqyJUnCfZBMaFw8lJo990lE4vwdESQjue8SayD3114jCBSPy8MlQomCIKCCvdEhVDRBEFCDiyQingUDQRBQhOvakpG9siAIqMR1CLVXMAQBtfgMobauoUcQUE+IhNwmG4JAFYQq787zleYE4eZc3YScoTAMQ1uCML2jLSjzOkAEaQ+fh9o1Jwi0iWnW7xZRgglCz6yHVq/V/HNvGXIHEYSxvR64VmZsnQYRpEG4VmZMST05CMCMaQeCIAAG7tFEEATACg9tAFgAQQAWQBCABf4CeWF0TY0egUMAAAAASUVORK5CYII=" - }, - { - "name": "Sentience Achieved", - "description": "Before you can analyze the program, it rewrites you basic hailing protocols to have a new set of \"Ideas\" generated by your Drone to be used.\nThere is also a LOVE Gauge that reads: $$Love", - "choices": [ - { - "key": "choice 5", - "name": "New around here and was hoping you could show me around.", - "exit_node": "First Reply", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": 1 - } - ], - "delay": 0 - }, - { - "key": "choice 6", - "name": "You appear to be an outdated model, but I'm into that.", - "exit_node": "First Reply", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": -1 - } - ], - "delay": 0 - }, - { - "key": "choice 7", - "name": "Never seen a Drone as cute as you and wanted to check you out.", - "exit_node": "First Reply", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": { - "value_type": "random", - "low": -1, - "high": 2 - } - } - ], - "requirements": [ - { - "quality": "Love", - "operator": "==", - "value": 3 - } - ], - "delay": 0 - }, - { - "key": "choice 10", - "name": "Haha, sorry for the threat. I just play like that, haha.", - "exit_node": "First Reply", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": { - "value_type": "random", - "low": -1, - "high": 2 - } - } - ], - "requirements": [ - { - "quality": "Love", - "operator": "==", - "value": 1 - } - ], - "delay": 0 - } - ], - "image": "default" - }, - { - "name": "First Reply", - "description": "Miss Red replies with another series of question marks.\nThe LOVE Gauge reads: $$Love", - "choices": [ - { - "key": "choice 11", - "name": "Your curiosity is amazing.", - "exit_node": "Second Reply", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": 1 - } - ], - "delay": 0 - }, - { - "key": "choice 12", - "name": "The moment I saw you I instantly fell in love.", - "exit_node": "Second Reply", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": { - "value_type": "random", - "low": -1, - "high": 2 - } - } - ], - "delay": 0 - }, - { - "key": "choice 13", - "name": "Look, if you want some Chad that'll walk all over you, fine. You missed out on a NICE- GUY-.", - "exit_node": "Second Reply", - "on_selection_effects": [ - { - "effect_type": "Set", - "quality": "Love", - "value": 0 - } - ], - "requirements": [ - { - "quality": "Love", - "operator": "<=", - "value": 3 - } - ], - "delay": 0 - } - ], - "image": "default" - }, - { - "name": "Second Reply", - "description": "Miss Red starts compiling a message, but your Drone insists you sent one last line to seal the deal.\nThe LOVE Gauge reads: $$Love", - "choices": [ - { - "key": "choice 14", - "name": "You're my best friend-...", - "exit_node": "Realization", - "delay": 5, - "delay_message": "Message sending..." - }, - { - "key": "choice 15", - "name": "I want to see where this goes-...", - "exit_node": "Realization", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": 1 - } - ], - "delay": 5, - "delay_message": "Message sending..." - }, - { - "key": "choice 16", - "name": "DTF?-...", - "exit_node": "Realization", - "on_selection_effects": [ - { - "effect_type": "Remove", - "quality": "Love", - "value": { - "value_type": "random", - "low": -2, - "high": 2 - } - } - ], - "delay": 5, - "delay_message": "Message sending..." - } - ], - "image": "default" - }, - { - "name": "Realization", - "description": "Miss Red's message is received.\n\"This is Syndicate Drones Agent, Arusha Johnson.\nI don't know why you're saying it like that, but if you want to help out our cause we can send over a Trade Contract. \nPlease just call our Recruitment Officer next time.\"", - "choices": [ - { - "key": "choice 18", - "name": "Accept Contract.", - "exit_node": "WIN", - "delay": 5, - "delay_message": "Sending Trade Contract..." - }, - { - "key": "choice 19", - "name": "Demand a Second Date.", - "exit_node": "FAIL", - "delay": 0 - } - ], - "image": "default" - }, - { - "name": "Love Birds", - "description": "Miss Red's message is received.\n\"This is Syndicate Drones Agent, Arusha Johnson.\nI can't believe it, but I feel a real connection with you.\nI'll send over a Trade Contract you can use to make some money and come see me just SOL7-South of $$SITE_NAME\nSee you soon...\"", - "choices": [ - { - "key": "choice 20", - "name": "See you soon.", - "exit_node": "WIN", - "delay": 0 - }, - { - "key": "choice 21", - "name": "So you're not the Drone?", - "exit_node": "FAIL", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAGI0lEQVR4nO2dP5LbNhSHHzO5QLwzVoNtnEKzheJW22gPoNq9b+EmpZvcIr1rHyBpqDZ2kVERN6uGO6NJkS4NU2TAoUiQxD8CeMDvm3mzXomkqCU+PAAE6IqIWgIAKPku9gkAkDIQBIAZIAgAM0AQAGYoXpC2xRgFmKYijVGstm2pqqoApxOWvhzy+9VCdK89Xi5Gx3PZF6TJoiCqQpQTUn5ZuPsFW/WaCpd9Qfq0S9H+b0mWUQvR1kIsbmPznu7xEUlH9BOIFiYFd1jQTQs+JGEb0U8gStgWWJeMAEn4hVYnnSNiV3f/vnx9vHmvFmK2bzC3rytLnw3SI7qlPkPs6lbs6snX5mrxpX19BTIJq4h+Al5CpyCLXT1ZOHX2VW1jU9ghyPrhcWAp/pdxDZMavhbiZnvTDNHfVvZHTAs8BFk3+rge63tijtjVxv2Ey9fHrp9hu++nv991r6FPkRZVVXm9uR3deNuw6Rv4qr3nmmuhzgGxfrCdi2WTOVw5Hg7dT/Hve3r3w6fRNlzndnE977VhK8ga9Id3h/TluDYNnc7n0TaykHErbFzPOwRsBFn74kk5VJJIOSR3m43yGLLNy23OGtfzDgELQXzWcI+Xy82sW6LlG4PXphm91s8oJhM6U71RCDnUsBBk7RruzauPRDQ9onW32Ywkkb9fm6YbNQH5wUIQIr9y9LPI4elIzctVKUctRNfnIKLRTyLq+iI6kqSaPcA07O+D2HB4OtIHIqqJ6P3Llc5/nkbbSIF+/vatK9T77bZ7/3Q+k9jd7jM3/g45eMImg/ji8HS8+X3z+m60zdTKQJktVCNYEjS38oL1bF6beyHbh/2NFL/89Qd9+PFt9/vvv30moukaXxb++59Os5/dzyTIHnwpLoNsXt9R83K9ea15uXYhmSrQun0hmUmQTXjDOoMQ6WcRsavpzauPNxJIWX7952JUw4tdTc9f9lqy1ELQ/vkZw6iMiT7fxTV0p6r3t9s+7NvD07HdPuxbIv35Uf1jLM0W7R9zSOy/GUIvsm9iTd0ElCNX8qfqBuIScx3yYb+jqqqbkM0vVYC0iG6pj5jLIlPvyezRj6UVh6rXhxnBdbYusk06UcR9kKk+iur+Rz+T6PZLZEY43d8b7Td3vD7DrIL+TFiiW+or1lw7vnRsuW2IGh+ZJVywH8Ua4nudyFI2Ub0fqsaXn4OMsi7RLfUdPjPJ3NNQdPsac/g4x9yzSczvp8wgPtfzxsJHJhkeYzjK5ePuuK9sk2s2MVlKsAYjQWKfkE9sH8xgu58PXIXJoXIbEvs7JZXS1gjbx/rECtemWG7XL2Zk10mfYikrxMwaKoa1pmkTKnatmxPRLQ0ZqgyRQtbQDZPsgEziHsVkkD7DBzOkkjV0MckmyCRuFClILugWfkhiT/aTFXNGd/UiVjnaA0GYA0nWBYJkACRZDwiSCZBkHSBIRkAS/0CQzIAkfoEgGYLC7w8Ikik6kkCkZSBIxkASdyBI5kASNyBIAUASe4oUBAVBDSQZU5wgsgCUVhAw/GtHcYKU/P/xQRJzMN29QDBNXp/gGQQ1U3xMM0nJ1yxoBsnpiSk5YJIhbCTJ4RoHb2IhbafFmtcj1BMm1wR9EBCs0uLYgoAggIjCZ3YuT4KEIKAjRqFNQZS5ygGCgBExOuSxRFlq9kEQ4AWfD+GOIQkyCAiKS4c8pZFOCAJWx6b5lIokEAQEg+MDuCEICA6nZwtDEBANDpMmi5vuDtKBw/R7CAKikrokEAREJ2VJIAhYBdOCnKokEAR4x3bdf4qSQBDgHZd1/6lJAkEikvNSVpdh2ZQkwX2QSHBcPBQak/skROv8HSFIRGLfJeaA6bp5339PCAKSx+bhEr5EgSCABabZwVc2gSCADTaSEDkOGBAEAYywXVsiMZUFggCW2DahTAWDIIAtLk0o3TX0EASwx0eHfEo2CAKywNfw7rC/UpwguDmXNz5nKLRtW5YgmN5RFhjmtQAZpDxcHmpXnCCgTFSzfnVE8SYIamY+lHqtht9bp8ntRRC07fmAa6VmqtJABikQXCs1qk49+iAADOhXIBAEAAVdNiEIAsAkeGgDADNAEABmgCAAzPAfVTkNN7+HpAgAAAAASUVORK5CYII=" - }, - { - "name": "Obliteration", - "description": "The Blood-Red Drone opens up two side-hatches to reveal a pair of rocket-propelled missiles which are shot in your direction.\nYou have failed your Robotic Friend, who has already started shutting down their systems, but there is still a chance.", - "choices": [ - { - "key": "choice 22", - "name": "Accept Death.", - "exit_node": "FAIL_DEATH", - "delay": 5, - "delay_message": "Missiles approaching..." - }, - { - "key": "choice 23", - "name": "I'm a Gamer.", - "exit_node": "FAIL_DEATH", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Love", - "value": { - "value_type": "random", - "low": 0, - "high": 8 - } - } - ], - "delay": 5, - "delay_message": "Miss Red considers..." - } - ], - "image": "signal_lost" - }, - { - "name": "Lack of Trust", - "description": "As you fiddle around in the Task Managing Software, closing all the new tabs your Drone is opening, the Miss Red enables a cloaking device and disappears.", - "choices": [ - { - "key": "choice 24", - "name": "Sigh in a quiet but dramatic way.", - "exit_node": "FAIL", - "delay": 0 - } - ], - "image": "default" - } - ] -} \ No newline at end of file + "adventure_name": "Robot's Wingman", + "version": 1, + "author": "Lucky Luther", + "starting_node": "Date Start", + "starting_qualities": { + "Love": 3 + }, + "required_site_traits": [ + "in space" + ], + "loot_categories": [ + "trade_contract" + ], + "scan_band_mods": { + "Narrow-band radio waves": 2 + }, + "deep_scan_description": "", + "triggers": [ + { + "name": "True Love", + "target_node": "Love Birds", + "requirements": [ + { + "quality": "Love", + "operator": ">=", + "value": 7 + } + ] + }, + { + "name": "Complete Failure", + "target_node": "Obliteration", + "requirements": [ + { + "quality": "Love", + "operator": "<=", + "value": 0 + } + ] + } + ], + "nodes": [ + { + "name": "Date Start", + "description": "Cameras Online. A Blood-Red Drone is seen streaking through the stars.\nThe Drone is likely leaving behind some form of Chem Trail to brainwash Nanotrasen Employees who find themselves in the void.", + "choices": [ + { + "key": "choice 0", + "name": "Hail other Drone", + "exit_node": "First Contact", + "delay": 5, + "delay_message": "Attempting to signal Drone..." + }, + { + "key": "choice 1", + "name": "Ignore other Drone", + "exit_node": "FAIL", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAD/0lEQVR4nO3duXnbQBBA4YE/d6CACSMmasFO1IDbUkluQJHUgnIlCFgDHIHmsYD2mD1m9/2JFCgABTwsFhcnEVkEgNOP2gsAtIxAgB0EAuwgEGDH8IEsC+cosM0rkF43ovVz9fr5kO7bQHreiKZpuvkJ3JvE4zrIsixsRBiSVyDAqIafpAN7CATYQSDADgJJ9H481l4EOGiddSWQBGscRNIWzUsTBBLpOorfX18VlwT3NK9vEUik19NJRIijVVrX7QgkwJ+Xl8vP8zw747B6x4HV5c6NC4We1jhERM7zLB+fnw9/c72RWbrzwOpyl2BmBKm5h7uOQ0Tk6XBw/p3Ve7usLncJJkaQ2nu4X8/Pm1GIiPx9e2Pj6tTP2gvgY5qmqjdMPh0Ocp7nm0jO83z5vfbyIR8TI0gt78ejvJ5ONzGssYjIwzyESPpDIBtc1znWQ62tSboIkfTGzCS9pK2LgGsUW3GI/D/cQh8YQTa8H4+b1zl8RghGkj4QSISQSEQ4fWoZgUQKGSEYTewikAShkVwjGBsIJFHs6LA3kSeedhCIAu1DKEabdhCIkpwTcoKph0CUlZiQc3asHALJoNQen1DyI5ACck/Iez+NXPPzOQPp/R/eEq3RptfRpPajDg+B1F6g0aUG0+POjREEN1yHZCHrg/WnhzlIo+438tBDKCLRQSDGcA9YWQRiUMhoQiRpCMQwnk3JjycKDfN9epGnHOMRiHFEkheBdIBI8iGQThBJHgTSESLRRyCdIRJdBNIhNn49BNIpn0gI6XsE0jEiSUcgnSOSNAQyACKJN2QgbAhuRPJouEA0v0PbEk7/xhkukJG/j49IwnG7+4C4Td5f8RGEPVN9oSPJyOus6AjCG1PakvJ2eh89rOPih1gM223JuT56eKcwcxAU22lZPIIgEIhI+ZHdypsgCQQXNTbaFkLZ2zkQCB7UmJDXCuW7wz4CgQrNl3DXiIQRBEWlTMhbOtNJIMgu5vCplUgIBMVYfAE3gaA4S+8WJhBUY+GmyeFud0c7LNx+TyCoqvVICATVtRwJgSCL0A251UgIBOpin/tvMRICgbqU5/5bi4RAKur5UdaU07ItRcJ1kEosPjxUWsh1EpE8/0cCqaj2VWILan/tNYGgeTEvl9AKhUBgQujooDWaEAjMiIlEJPGEgRAIDIl9tmQVGguBwKTYQ6jQwAgEZqUcQvk+Q08gME9jQr4VG4GgC1qnd+/nK8MFwsW5vmneobAsy1iBcHvHWDjNG4ERZDwpL7UbLhCMyXXXr08oaoGwZ7Zj1HV1/7l9DrlVAuHY3g7WldvWToMRZECsKzfXpJ45CHDnegdCIIDDZTQRAgE28dIGYAeBADsIBNjxD3G5pHKbkGjYAAAAAElFTkSuQmCC" + }, + { + "name": "First Contact", + "description": "The Blood-Red Drone accepts the hail with the identifier MISS RED - 05.\nMiss Red sends over a series of question marks in quick succession.\nYou notice your Drone has somehow taken initiative and begun to start up a program you didn't know it had.", + "choices": [ + { + "key": "choice 2", + "name": "Wait for Program to boot.", + "exit_node": "Sentience Achieved", + "delay": 5, + "delay_message": "H3AR7.exe booting..." + }, + { + "key": "choice 3", + "name": "Threaten Miss Red.", + "exit_node": "Sentience Achieved", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": -2 + } + ], + "delay": 0 + }, + { + "key": "choice 4", + "name": "Halt Mysterious Program.", + "exit_node": "Lack of Trust", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAEpklEQVR4nO2dO3LbMBBAl5ncwIUaVmp0BbvRBXyllD5SLuBKuYIbV2pU+AxMkaFCUwA/+C/w3gzHCodWKBMPi10CVCcigwCAkR+5TwCgZBAEYAEEAVjgZ+4TaI1L3+c+BREReblec5+CCpoXZBgG6bou6f9J49TDJkFyNKIUDMNw/5n6842R5OV6Nb6e4rIfwjEsbVPWjtW4pf5cl75f/Dk/zvbvtf1sYbbVCNJ1XbURRERUfa55tBgjhW0/+LNpiKWpEdXKvNFPh2Wm/RCG5pP0GFz63pofzFlq4Gu5yfx4CE8n/8ZaAGCACJIJ32qVKc+g0hWH7JUCzZtrFclWpdparTIdt/c9a95CVSeJIB6MPfOYc7j+vm3/lvc0HWs6n5YqXSHvbyGII9MG59rYpmXa6XvseT/TsfN9rVW6Qt6aQBBH3o5H+fX5GaQnHvOEtfsaW6Q0Nf7ahTAR8tZE9vGilu31fL7/fD6doo59U29azzv2Rpl3I6/n8/311+0mfz4+Ho4Zx74ium6uaj3vFKhZDzK9iKmZyiEi8nQ4GI8bG5e2Rqb1vFOgIoLk7uGeTyerFCIiv9/faVyVoiJJzz1h8ulwkK/b7ZskX7fb/XXu84N4qIggubj0vbwdj99kGGURkYc8BEnqA0EsmEqq41DLlqSLIEltqEnSU2K73zBKYZND5P9wC+qACGLBNn1ka4QgktQBgjiwRxIRyqeaQRBH9kQIooleEMSDvZJMQRgdIIgnrtFhKZFHnnJAkACEHkIRbcoBQQIRMyFHmHwgSGBSJORUx9KBIBFI1eMjSnwQJAGxE/Lay8g5P59RkNr/4CURKtrUGk1yL3V4ECT3CbWOrzA1dm5EEPiGaUi253pw/cJBDlIo80a+dwiFJGFAEGUwBywtCKKQPdEESfxAEMWwNiU+rChUzNbVi6xydAdBlIMkcUGQCkCSeCBIJSBJHBCkIpAkPAhSGUgSFgSpEBp/OBCkUrZIgkjrIEjFIIk/CFI5SOIHgjQAkrjTpCA0BDNI8khzgky/Q7slKP+60ZwgLX8fH5Lsh+nuDcI0+e0kjyD0TPnZG0lavmZJIwhPTCkLn6fTb6GGa5x8iEXYLouY16OGZwqTg0CyTkvjCAJBQETSR3YtT4JEELiTo9GWIMpS54Ag8ECOhDyXKGvDPgSBIIR8CHcOSYggkBSfhLykSieCQHRchk+lSIIgkAyND+BGEEiOpmcLIwhkQ8Okyeamu0M5aJh+jyCQldIlQRDITsmSIAhEYW9DLlUSBIHguK77L1ESBIHg+Kz7L00SBMlIzUtZfcqyJUnCfZBMaFw8lJo990lE4vwdESQjue8SayD3114jCBSPy8MlQomCIKCCvdEhVDRBEFCDiyQingUDQRBQhOvakpG9siAIqMR1CLVXMAQBtfgMobauoUcQUE+IhNwmG4JAFYQq787zleYE4eZc3YScoTAMQ1uCML2jLSjzOkAEaQ+fh9o1Jwi0iWnW7xZRgglCz6yHVq/V/HNvGXIHEYSxvR64VmZsnQYRpEG4VmZMST05CMCMaQeCIAAG7tFEEATACg9tAFgAQQAWQBCABf4CeWF0TY0egUMAAAAASUVORK5CYII=" + }, + { + "name": "Sentience Achieved", + "description": "Before you can analyze the program, it rewrites you basic hailing protocols to have a new set of \"Ideas\" generated by your Drone to be used.\nThere is also a LOVE Gauge that reads: $$Love", + "choices": [ + { + "key": "choice 5", + "name": "New around here and was hoping you could show me around.", + "exit_node": "First Reply", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": 1 + } + ], + "delay": 0 + }, + { + "key": "choice 6", + "name": "You appear to be an outdated model, but I'm into that.", + "exit_node": "First Reply", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": -1 + } + ], + "delay": 0 + }, + { + "key": "choice 7", + "name": "Never seen a Drone as cute as you and wanted to check you out.", + "exit_node": "First Reply", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": { + "value_type": "random", + "low": -1, + "high": 2 + } + } + ], + "requirements": [ + { + "quality": "Love", + "operator": "==", + "value": 3 + } + ], + "delay": 0 + }, + { + "key": "choice 10", + "name": "Haha, sorry for the threat. I just play like that, haha.", + "exit_node": "First Reply", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": { + "value_type": "random", + "low": -1, + "high": 2 + } + } + ], + "requirements": [ + { + "quality": "Love", + "operator": "==", + "value": 1 + } + ], + "delay": 0 + } + ], + "image": "default" + }, + { + "name": "First Reply", + "description": "Miss Red replies with another series of question marks.\nThe LOVE Gauge reads: $$Love", + "choices": [ + { + "key": "choice 11", + "name": "Your curiosity is amazing.", + "exit_node": "Second Reply", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": 1 + } + ], + "delay": 0 + }, + { + "key": "choice 12", + "name": "The moment I saw you I instantly fell in love.", + "exit_node": "Second Reply", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": { + "value_type": "random", + "low": -1, + "high": 2 + } + } + ], + "delay": 0 + }, + { + "key": "choice 13", + "name": "Look, if you want some Chad that'll walk all over you, fine. You missed out on a NICE- GUY-.", + "exit_node": "Second Reply", + "on_selection_effects": [ + { + "effect_type": "Set", + "quality": "Love", + "value": 0 + } + ], + "requirements": [ + { + "quality": "Love", + "operator": "<=", + "value": 3 + } + ], + "delay": 0 + } + ], + "image": "default" + }, + { + "name": "Second Reply", + "description": "Miss Red starts compiling a message, but your Drone insists you sent one last line to seal the deal.\nThe LOVE Gauge reads: $$Love", + "choices": [ + { + "key": "choice 14", + "name": "You're my best friend-...", + "exit_node": "Realization", + "delay": 5, + "delay_message": "Message sending..." + }, + { + "key": "choice 15", + "name": "I want to see where this goes-...", + "exit_node": "Realization", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": 1 + } + ], + "delay": 5, + "delay_message": "Message sending..." + }, + { + "key": "choice 16", + "name": "DTF?-...", + "exit_node": "Realization", + "on_selection_effects": [ + { + "effect_type": "Remove", + "quality": "Love", + "value": { + "value_type": "random", + "low": -2, + "high": 2 + } + } + ], + "delay": 5, + "delay_message": "Message sending..." + } + ], + "image": "default" + }, + { + "name": "Realization", + "description": "Miss Red's message is received.\n\"This is Syndicate Drones Agent, Arusha Johnson.\nI don't know why you're saying it like that, but if you want to help out our cause we can send over a Trade Contract. \nPlease just call our Recruitment Officer next time.\"", + "choices": [ + { + "key": "choice 18", + "name": "Accept Contract.", + "exit_node": "WIN", + "delay": 5, + "delay_message": "Sending Trade Contract..." + }, + { + "key": "choice 19", + "name": "Demand a Second Date.", + "exit_node": "FAIL", + "delay": 0 + } + ], + "image": "default" + }, + { + "name": "Love Birds", + "description": "Miss Red's message is received.\n\"This is Syndicate Drones Agent, Arusha Johnson.\nI can't believe it, but I feel a real connection with you.\nI'll send over a Trade Contract you can use to make some money and come see me just SOL7-South of $$SITE_NAME\nSee you soon...\"", + "choices": [ + { + "key": "choice 20", + "name": "See you soon.", + "exit_node": "WIN", + "delay": 0 + }, + { + "key": "choice 21", + "name": "So you're not the Drone?", + "exit_node": "FAIL", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "Obliteration", + "description": "The Blood-Red Drone opens up two side-hatches to reveal a pair of rocket-propelled missiles which are shot in your direction.\nYou have failed your Robotic Friend, who has already started shutting down their systems, but there is still a chance.", + "choices": [ + { + "key": "choice 22", + "name": "Accept Death.", + "exit_node": "FAIL_DEATH", + "delay": 5, + "delay_message": "Missiles approaching..." + }, + { + "key": "choice 23", + "name": "I'm a Gamer.", + "exit_node": "FAIL_DEATH", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Love", + "value": { + "value_type": "random", + "low": 0, + "high": 8 + } + } + ], + "delay": 5, + "delay_message": "Miss Red considers..." + } + ], + "image": "signal_lost" + }, + { + "name": "Lack of Trust", + "description": "As you fiddle around in the Task Managing Software, closing all the new tabs your Drone is opening, the Miss Red enables a cloaking device and disappears.", + "choices": [ + { + "key": "choice 24", + "name": "Sigh in a quiet but dramatic way.", + "exit_node": "FAIL", + "delay": 0 + } + ], + "image": "default" + } + ] +} diff --git a/strings/exoadventures/space_yacht.json b/strings/exoadventures/space_yacht.json index 50b41c3567208..ef9c96d146e33 100644 --- a/strings/exoadventures/space_yacht.json +++ b/strings/exoadventures/space_yacht.json @@ -1,257 +1,257 @@ { - "adventure_name": "There is a yacht cruising through space.", - "version": 1, - "author": "Kinnebian", - "starting_node": "A yacht in space?", - "starting_qualities": {}, - "required_site_traits": [ - "in space" - ], - "loot_categories": [ - "cash", - "drugs" - ], - "scan_band_mods": { - "Plasma absorption band": 5 - }, - "deep_scan_description": "", - "triggers": [], - "nodes": [ - { - "name": "A yacht in space?", - "description": "You see a normal looking yacht, floating above you.", - "choices": [ - { - "key": "choice 0", - "name": "Ignore it, its not worth investigating.", - "exit_node": "FAIL", - "delay": 10, - "delay_message": "You fly on by..." - }, - { - "key": "choice 4", - "name": "Investigate it closer!", - "exit_node": "Looks like the doors are sealed shut.", - "delay": 30, - "delay_message": "You begin to fly up to and around the yacht.." - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAzUExURUBAQOUAD/////8AAPgFFvwAB/0ABfwACPsBDP4AAszMzJMyje986cZlwEz/AOIBGOQAEnoV2UoAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAN5SURBVHhe7ZzrepswEERdp7c4TtP3f9rurBZ0QRISXpBEOf2KJcUhcxig9Idzu+iPbyfAiPB2GO7y6hIRib2tf2aRNwsvjYYV4QHIiNxV21LdmSPCVdAmJyKvHeKJkEJepGN8Ea7lBCLiwksDwSe8LwKTUzQCEx2Rw28Locj3H+OLTKiIHI4VIX7++v2Oq2REZpHRuUR6o2ORuhvfayIdPUR23EgdZxTp6DzZwBkbGZsGIg9s1M/jMhHFH/t4sEiCD4PMati3kUVo0rgnTaDwfD7VRV6tgUKbzPOOoEEkRIwGeci8jp0aYQk/s6ykRGaN2aPOaA8RG9kXkbXYuWU1pvTO0CN1nqiLOBaEGzmxbDIbC2ynpc/Plo14FoQ9+I+bLAG3E5NfNDAQjaYigQZhRbyviQklDjR4yBqNG5GgM/bQ+5IPKxFoGAnQ9tSSoBNREXaYsjtDjEUCtBTJVDKLIPkHZZbks0Wg0UTE3hMzIpghuBddBkRgQbRtJDRhEZMfSGrgTWks8S2FIuYoaossKjFXtcR18Z0ku0fTRnwROMQsvFVMJLpPNyJJB2c5JUEc+KzlPvdQIn41Ihx3qREupi1qPfQawQ3VQZJalqtYkNAx6jwURZbZDWwQfpWXJHGcykL0RKImnDdcx5KkTVProSgS3GYxizoUWGzw0BQhTHROa5I7YFFirlLvkRVJ/WcsA1/yktylQmKThnYjJLIATVRYbPTYXcRxKNTZ5lEgUnWC+SK2CgyKiqE3ya4q2UsE59Oc20zclRS+Rs2PXhepAiImtsAjzPFnDXqf7KcebRHHgZOzw7oCgW+VvWxBSwQxgKQCMiup4lULQkUkMEB43uClpI6XLQgNkaUFOxQYcBMaGjuI0KT0qog0seFhQtAQWZgUodTExEJk0zHxROQ1j4aFF1WlkToRVKFaBqMvkmcPB0ZJpMhklyYmdETWK9lVAmiJ5Ex2lwBKIkmTQySAlkjM5DAJUCWS/TeGYxsbMzxOAqRENj4rNDAQqhrpmUukNw4X2f6gnudqpDcukd7oVqT2pnA10huXSG/oiuh+urqKq5He+J9F2l0HOc7YSJ9HupSBG/EP/MEimq03FcnwomNGZKxrZimCD7bLb00Y6ZPtEZE/BBzw2x/GkRER4YvGVoT/QgQVpfgr39ocFnEx+TAYqpHzcLv9A9Y6cLa57YOgAAAAAElFTkSuQmCC" - }, - { - "name": "Looks like the doors are sealed shut.", - "description": "You fly up to the \"boat\" and find that all the doors are locked tight, and welded shut. You think you hear.. music inside? There is a welded vent, too. You reckon you could force it open if you hit it hard enough, but it would be less risky to unweld it using a welder.", - "choices": [ - { - "key": "choice 2", - "name": "Try to force the door!", - "exit_node": "You destroyed the drone.", - "delay": 10, - "delay_message": "You begin forcing the door.." - }, - { - "key": "choice 3", - "name": "Try to force the vent.", - "exit_node": "The music grows louder..", - "delay": 20, - "delay_message": "You begin forcing the vent.." - }, - { - "key": "choice 5", - "name": "Fly away, no chance in hell of getting in there..", - "exit_node": "FAIL", - "delay": 5, - "delay_message": "Moving.." - }, - { - "key": "choice 14", - "name": "Unweld the vent.", - "exit_node": "The music grows louder..", - "requirements": [ - { - "quality": "welder", - "operator": "==", - "value": 1 - } - ], - "delay": 5, - "delay_message": "Welding.." - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABRUExURaWMpOUAD/8AAKaNpaaOpaePpqiQp6mRqKmSqEBAQFRPVGddZmVcZeDg4PgFFvwAB4CAgP0ABfwACPsBDP4AAjAwMP/YAMHBwUz/AOIBGOQAEo23xmoAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHASURBVHhe7dwJT8MwDIbh0q5AYWNc4/r/P5TYcdWGmildDE2i75HoMWGJtymHkNYG8nNVAR/C26LVF9JO+KXSTCF8QIoP4aVwm6iQTvbZCEJcghrSNZ3n9nRKdk3XX/c3u/7Wf87WwhDaDO0Q5+5+v+fpLAQh3HJoD9EGns5CGEIldYS4TfStRXg6Cz9DHo5JKyJ9K8hgslmIN6SEDI+rWZVMIc7T88ur28m1WjqN5HxxPXMIGQ1ysaOcZEhc0GFWUnHIKjIkyl2RSkMu6rAqWYacJz+2CJ3KkJdZiFzsKAiZ+6uQkNxGRF4JyJCHFbFQccg5i1tMhry8QhIgxAJCFAixgBAFQiwgRIEQCwhRIMQCQhQIsYAQBUIsbBXi/3fhD2U8zWYhbw5CFAhRIMQCQhQIsYAQRUSI/4UeKDREdu/CZSAk9N8hS/hmDyFEgRALCFEgxAJCFAixgBDFqhD/dxYfyniarUJmEBJAiAIhFhCiQIgFhCgQYgEhCoRYQIgCIRYQokCIhYpD6I3t8tSE8c36kXIL+XD4QRb8+IQVMTmEiE93PIXwB4XQEv3mS0Y3xyFz/uujg6JWxNK2IU3zDauvUlylzN3TAAAAAElFTkSuQmCC" - }, - { - "name": "The music grows louder..", - "description": "The music gets louder as you enter through the vent... maybe you should turn back?", - "choices": [ - { - "key": "choice 6", - "name": "Continue onwards!", - "exit_node": "You fall down!", - "delay": 5, - "delay_message": "Moving..." - }, - { - "key": "choice 7", - "name": "Turn back.", - "exit_node": "Looks like the doors are sealed shut.", - "delay": 5, - "delay_message": "Moving.." - } - ], - "image": "default" - }, - { - "name": "You fall down!", - "description": "As you are crawling through the vents of this Space Yacht, the vent gives way! You're dropped into an empty room, completely filled with plasma! There is a desk and filing cabinet in here, along with a window observing the main portion of the yacht. The music is deafening at this point, it sounds like a horrible mix of sea shanties and EDM. ", - "choices": [ - { - "key": "choice 8", - "name": "Look through the window.", - "exit_node": "A rockin' party.", - "delay": 0 - }, - { - "key": "choice 9", - "name": "Fly outta of there.", - "exit_node": "The music grows louder..", - "delay": 5, - "delay_message": "Moving.." - }, - { - "key": "choice 10", - "name": "Rummage in the desk, using your key to open it.", - "exit_node": "Drugs and cash!", - "requirements": [ - { - "quality": "HASKEY", - "operator": "==", - "value": 1 - } - ], - "delay": 0, - "delay_message": "Rummaging.." - }, - { - "key": "choice 11", - "name": "Take a sample of the atmosphere.", - "exit_node": "The atmospherics scan", - "delay": 30, - "delay_message": "Taking sample.." - }, - { - "key": "choice 13", - "name": "Trash the place, fuck the police!", - "exit_node": "You wrecked yourself.", - "delay": 30, - "delay_message": "Trashing the place..." - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADAUExURbyA1eUAD/8AALyB1b2B1b2D1vgFFvwAB/0ABfwACPsBDP4AAr6C2MaJ4NRH7NSU7buA1bp+0rp90bp+0bt/07l8z7h6zbp80bp+07t/1Lp80Lp8z7uA1Lp/07l90bl+0rh80Lh80bd6z7p/1JAiVZAkWZAoX5AnXZAmXZAlW5AkWJA6fpA7f5A4epAnXpA9g7l+07Z6z+WQVZZar5BVqmYqf5BOnZA2dzPlBuIBGLx+0rx80Lx/1L13yr14yuQAErVxUskAAAAJcEhZcwAADsIAAA7CARUoSoAAAAJ8SURBVHhe7dzZctowFIBhky7pElo5pkGkS9qgpBvdoVva5v3fqkfyQciRYbxISPKc70IxxpH9I0iYzISMxGc0AGWIGpM2vJCDDbUriFv4tYNNiNqQAobczu7gVmtGiFoKGAKG9FAJgYSBhKhlGUAItqhdqamGyJJhhKhlUbtSczPk7mH6IWuph4B79x88lK+SFOmQ1LUMORoHdYSXUaNlyPhRUGO8jBqtQx4HRCE2CnGCQmwU4gSF2CjECQqxUYgTFGKjECcoxEYhTlCIjUKcoBAbhTjhNCQodyGD+dtvvCgkNhQSGwqJDYXEhkJiQyGxoZDYtAph+XExeXJyMp0onM9ms6KYnj49neZ5XhQ555MZm8A25wXn/JizjDH2DDb5cziWwU0YWDlZ+ZXl+YuzM85fvjo/53PA2HyuDmincYi46eLy9Zu37/CGB5ca7jDgNZmahoj3i2h86BEiBE4Sgx4rEllH55CoOhZi0TUkso7uIR9xiih8gke1+4pEpUcIPhiW8o79PPH0WfqG4MOh4Zx69E2fBTZahnz+gsqL/lpR7lODPoVX+iywIb5py7XRcpmpcQe83iqcU+6Xm97ps8CGwAszNQ6pI+eEH4Z4y69KyMo2Wq0yNe6wI0QuR4AQfPKbGr/Y65RPq4RCtsOZ98BJCE5hKe+gkFYoxEAhLlGIgUJcohDD7hD8He+dOiOQb/Dwwky9Q+AUeJhfvkOE+I5HeSZ+rE9a/8j1DNnTcoDNivgI2V+H+RYc91Q1CtkOj4hAk5AkDDhEf6RQWv/ZXhPyE8gS+ekP6cRgCPr1O7vahBxkfyDk6u8/GLe6xm8NToWY9O60VmQ4suw/MDqeSvYBdn8AAAAASUVORK5CYII=" - }, - { - "name": "You wrecked yourself.", - "description": "In the midst of trashing the place, a filing cabinet tips over on you, crushing the fragile, expensive drone. Nice job, idiot.", - "choices": [ - { - "key": "choice 15", - "name": "Shit.", - "exit_node": "FAIL_DEATH", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,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" - }, - { - "name": "Drugs and cash!", - "description": "Rummaging through the drawer, you find that the person who lives in here stores all his drugs and cash in here too. Good for you!", - "choices": [ - { - "key": "choice 17", - "name": "Head back with your newly acquired things. ", - "exit_node": "WIN", - "delay": 30, - "delay_message": "Stealing..." - }, - { - "key": "choice 18", - "name": "Take one last look around the place.", - "exit_node": "You fall down!", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkBAMAAAAxqGI4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAwUExURW4WTuUAD/8AAPgFFvwAB/0ABfwACPsBDP4AAuex/6526uOxlKt4fUz/AOIBGOQAEqIMSWUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHFSURBVGje7dq/bsIwEAZw15ubpX2DyFLHqkvfqe/BE7AeU9dkyu68gTN1r9RHqX0mf1oMMeIuA7pPQooE4sd3FwJD1B3lmT0BeeJu8bAZom0MNxKPNDeia2X5EbsJUm+A1HYLRNs7WXyt3tmReMSO2JePHfc3XjFHEEEEEUQQQQQRRBBBBBFEEEEEiQHgR+DQ7HkRE4y2bYAVUdDG3KasIbEHBvZciMFZtbeWuYhAmFUzVgnKapnKpXTFCOCoDkcAR7ZiODdgfCFiAoElUpOy9fcBiA+vihAD45DaafXrSj9454LiypDZWCbsCDD55VT94LBJV4TAFJwYLNskLXepqcKwfDFi5o8K6f3M0sGaTRbB1f9fyRVXYYD05tN6TspE4EZELaeIazHY93F6Gk8sd7p3mt8T8xfpWJCUakhnsCdHPudD/Lr7zLQIm1R9Qk6L0CHV8bqVKUKHjEamCBni+vNFiJBpVtkiBEj8oRpr5ItQIMMc7zp2xLv8SwiQ/nINEmQ8ec/VoEGqCyunRc6OigrJ/NMiR9YjiCCCXIPEe3C0ZUZev79qrVmYiMSbo34SUutYZ5k3oluvUnBcWjPexcAbpX4BKG91c2myRoIAAAAASUVORK5CYII=" - }, - { - "name": "A rockin' party.", - "description": "Looking down through the window, you can see up to 20 plasmamen dancing on a disco floor. They look to be enjoying themselves, and none of them have noticed you. Oh, hey! Theres a key on the floor right next to you!", - "choices": [ - { - "key": "choice 16", - "name": "Swipe the key and head back to the desk.", - "exit_node": "You fall down!", - "on_selection_effects": [ - { - "effect_type": "Set", - "quality": "HASKEY", - "value": 1 - } - ], - "delay": 0 - }, - { - "key": "choice 19", - "name": "Tap on the window!", - "exit_node": "Weak.", - "delay": 0 - } - ], - "image": "default" - }, - { - "name": "Weak.", - "description": "You weakly tap on the window, and nobody hears you through the blasting music.", - "choices": [ - { - "key": "choice 20", - "name": "Oh well.", - "exit_node": "A rockin' party.", - "delay": 0 - } - ], - "image": "default" - }, - { - "name": "You destroyed the drone.", - "description": "You smash into the door, and your screen goes red. Looks like you managed to destroy your drone, nice job. \n\n\nIdiot.", - "choices": [ - { - "key": "choice 21", - "name": "Fuck.", - "exit_node": "FAIL_DEATH", - "delay": 0 - } - ], - "image": "signal_lost" - }, - { - "name": "The atmospherics scan", - "description": "100% plasma, jam packed with it. This is definitely the home of some plasma-party-people.", - "choices": [ - { - "key": "choice 22", - "name": "Huh.", - "exit_node": "You fall down!", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABRUExURWJoaOUAD/8AAPgFFvwAB/0ABfwACPsBDP4AAhcXFzs7OykpKVFRUQAAAKb//wD//wuKkf/MAP9mALAAADAwMP8AM/vZTwCwAEz/AOIBGOQAEso55t0AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHDSURBVHhe7dzZbsIwEIXhdK/j2A6Fru//oD0zMYVuEr0YOhOdXyJxg5DyyXbhBgbmr4sVtED0GLr1QS4P6aVoHSA6kMJDdCpwWAEEhJVAdFrWsLQWi16K1meISNYB0WnRS9H6Crm6jg/ZFx2Cbm7v7mWXROwDEj1CvEWItwjxFiHeIsRbhHiLEG8R4i1CvEXIyaV+No6QkyPkbxFycmlc6n9aZQ4BIUvWFGvIOE6pSGmylRhBdBKQOmpttVpLbCA5466XUmltnufWCjZLf9oiI8iky0mrZa61zg1zYikxgoxYTxLWVduUhrW1gSSHhJRWSgPkoTYMG85BIU0CZIsT9knbhp0RmQdsdYFI2xYTsty97JGdjnYx98jxf61lkeGdJI+5P2+QESRP/R0xdw5K2dBhBBly6uWcyuP4ND6Lw/KDsBFkn0rkAyOOpg5rCCQQYHOAkUJDkC4xWwU6A+Q8EeItQrxFiLcI8RYh3iLEW4R4ixBvEeItQrxFiLcI8RYh3iLEW4R4ixBvEeItQrz1HSJfbO+/mhDpm+0/QF6QGOTXH+JgOqT3ivEBog+ByBT91lt/6b+nkOOW+5NBqBlZT8PwDsHEFJFntJj8AAAAAElFTkSuQmCC" - } - ] -} \ No newline at end of file + "adventure_name": "There is a yacht cruising through space.", + "version": 1, + "author": "Kinnebian", + "starting_node": "A yacht in space?", + "starting_qualities": {}, + "required_site_traits": [ + "in space" + ], + "loot_categories": [ + "cash", + "drugs" + ], + "scan_band_mods": { + "Plasma absorption band": 5 + }, + "deep_scan_description": "", + "triggers": [], + "nodes": [ + { + "name": "A yacht in space?", + "description": "You see a normal looking yacht, floating above you.", + "choices": [ + { + "key": "choice 0", + "name": "Ignore it, its not worth investigating.", + "exit_node": "FAIL", + "delay": 10, + "delay_message": "You fly on by..." + }, + { + "key": "choice 4", + "name": "Investigate it closer!", + "exit_node": "Looks like the doors are sealed shut.", + "delay": 30, + "delay_message": "You begin to fly up to and around the yacht.." + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAzUExURUBAQOUAD/////8AAPgFFvwAB/0ABfwACPsBDP4AAszMzJMyje986cZlwEz/AOIBGOQAEnoV2UoAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAN5SURBVHhe7ZzrepswEERdp7c4TtP3f9rurBZ0QRISXpBEOf2KJcUhcxig9Idzu+iPbyfAiPB2GO7y6hIRib2tf2aRNwsvjYYV4QHIiNxV21LdmSPCVdAmJyKvHeKJkEJepGN8Ea7lBCLiwksDwSe8LwKTUzQCEx2Rw28Locj3H+OLTKiIHI4VIX7++v2Oq2REZpHRuUR6o2ORuhvfayIdPUR23EgdZxTp6DzZwBkbGZsGIg9s1M/jMhHFH/t4sEiCD4PMati3kUVo0rgnTaDwfD7VRV6tgUKbzPOOoEEkRIwGeci8jp0aYQk/s6ykRGaN2aPOaA8RG9kXkbXYuWU1pvTO0CN1nqiLOBaEGzmxbDIbC2ynpc/Plo14FoQ9+I+bLAG3E5NfNDAQjaYigQZhRbyviQklDjR4yBqNG5GgM/bQ+5IPKxFoGAnQ9tSSoBNREXaYsjtDjEUCtBTJVDKLIPkHZZbks0Wg0UTE3hMzIpghuBddBkRgQbRtJDRhEZMfSGrgTWks8S2FIuYoaossKjFXtcR18Z0ku0fTRnwROMQsvFVMJLpPNyJJB2c5JUEc+KzlPvdQIn41Ihx3qREupi1qPfQawQ3VQZJalqtYkNAx6jwURZbZDWwQfpWXJHGcykL0RKImnDdcx5KkTVProSgS3GYxizoUWGzw0BQhTHROa5I7YFFirlLvkRVJ/WcsA1/yktylQmKThnYjJLIATVRYbPTYXcRxKNTZ5lEgUnWC+SK2CgyKiqE3ya4q2UsE59Oc20zclRS+Rs2PXhepAiImtsAjzPFnDXqf7KcebRHHgZOzw7oCgW+VvWxBSwQxgKQCMiup4lULQkUkMEB43uClpI6XLQgNkaUFOxQYcBMaGjuI0KT0qog0seFhQtAQWZgUodTExEJk0zHxROQ1j4aFF1WlkToRVKFaBqMvkmcPB0ZJpMhklyYmdETWK9lVAmiJ5Ex2lwBKIkmTQySAlkjM5DAJUCWS/TeGYxsbMzxOAqRENj4rNDAQqhrpmUukNw4X2f6gnudqpDcukd7oVqT2pnA10huXSG/oiuh+urqKq5He+J9F2l0HOc7YSJ9HupSBG/EP/MEimq03FcnwomNGZKxrZimCD7bLb00Y6ZPtEZE/BBzw2x/GkRER4YvGVoT/QgQVpfgr39ocFnEx+TAYqpHzcLv9A9Y6cLa57YOgAAAAAElFTkSuQmCC" + }, + { + "name": "Looks like the doors are sealed shut.", + "description": "You fly up to the \"boat\" and find that all the doors are locked tight, and welded shut. You think you hear.. music inside? There is a welded vent, too. You reckon you could force it open if you hit it hard enough, but it would be less risky to unweld it using a welder.", + "choices": [ + { + "key": "choice 2", + "name": "Try to force the door!", + "exit_node": "You destroyed the drone.", + "delay": 10, + "delay_message": "You begin forcing the door.." + }, + { + "key": "choice 3", + "name": "Try to force the vent.", + "exit_node": "The music grows louder..", + "delay": 20, + "delay_message": "You begin forcing the vent.." + }, + { + "key": "choice 5", + "name": "Fly away, no chance in hell of getting in there..", + "exit_node": "FAIL", + "delay": 5, + "delay_message": "Moving.." + }, + { + "key": "choice 14", + "name": "Unweld the vent.", + "exit_node": "The music grows louder..", + "requirements": [ + { + "quality": "welder", + "operator": "==", + "value": 1 + } + ], + "delay": 5, + "delay_message": "Welding.." + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABRUExURaWMpOUAD/8AAKaNpaaOpaePpqiQp6mRqKmSqEBAQFRPVGddZmVcZeDg4PgFFvwAB4CAgP0ABfwACPsBDP4AAjAwMP/YAMHBwUz/AOIBGOQAEo23xmoAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHASURBVHhe7dwJT8MwDIbh0q5AYWNc4/r/P5TYcdWGmildDE2i75HoMWGJtymHkNYG8nNVAR/C26LVF9JO+KXSTCF8QIoP4aVwm6iQTvbZCEJcghrSNZ3n9nRKdk3XX/c3u/7Wf87WwhDaDO0Q5+5+v+fpLAQh3HJoD9EGns5CGEIldYS4TfStRXg6Cz9DHo5JKyJ9K8hgslmIN6SEDI+rWZVMIc7T88ur28m1WjqN5HxxPXMIGQ1ysaOcZEhc0GFWUnHIKjIkyl2RSkMu6rAqWYacJz+2CJ3KkJdZiFzsKAiZ+6uQkNxGRF4JyJCHFbFQccg5i1tMhry8QhIgxAJCFAixgBAFQiwgRIEQCwhRIMQCQhQIsYAQBUIsbBXi/3fhD2U8zWYhbw5CFAhRIMQCQhQIsYAQRUSI/4UeKDREdu/CZSAk9N8hS/hmDyFEgRALCFEgxAJCFAixgBDFqhD/dxYfyniarUJmEBJAiAIhFhCiQIgFhCgQYgEhCoRYQIgCIRYQokCIhYpD6I3t8tSE8c36kXIL+XD4QRb8+IQVMTmEiE93PIXwB4XQEv3mS0Y3xyFz/uujg6JWxNK2IU3zDauvUlylzN3TAAAAAElFTkSuQmCC" + }, + { + "name": "The music grows louder..", + "description": "The music gets louder as you enter through the vent... maybe you should turn back?", + "choices": [ + { + "key": "choice 6", + "name": "Continue onwards!", + "exit_node": "You fall down!", + "delay": 5, + "delay_message": "Moving..." + }, + { + "key": "choice 7", + "name": "Turn back.", + "exit_node": "Looks like the doors are sealed shut.", + "delay": 5, + "delay_message": "Moving.." + } + ], + "image": "default" + }, + { + "name": "You fall down!", + "description": "As you are crawling through the vents of this Space Yacht, the vent gives way! You're dropped into an empty room, completely filled with plasma! There is a desk and filing cabinet in here, along with a window observing the main portion of the yacht. The music is deafening at this point, it sounds like a horrible mix of sea shanties and EDM. ", + "choices": [ + { + "key": "choice 8", + "name": "Look through the window.", + "exit_node": "A rockin' party.", + "delay": 0 + }, + { + "key": "choice 9", + "name": "Fly outta of there.", + "exit_node": "The music grows louder..", + "delay": 5, + "delay_message": "Moving.." + }, + { + "key": "choice 10", + "name": "Rummage in the desk, using your key to open it.", + "exit_node": "Drugs and cash!", + "requirements": [ + { + "quality": "HASKEY", + "operator": "==", + "value": 1 + } + ], + "delay": 0, + "delay_message": "Rummaging.." + }, + { + "key": "choice 11", + "name": "Take a sample of the atmosphere.", + "exit_node": "The atmospherics scan", + "delay": 30, + "delay_message": "Taking sample.." + }, + { + "key": "choice 13", + "name": "Trash the place, fuck the police!", + "exit_node": "You wrecked yourself.", + "delay": 30, + "delay_message": "Trashing the place..." + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADAUExURbyA1eUAD/8AALyB1b2B1b2D1vgFFvwAB/0ABfwACPsBDP4AAr6C2MaJ4NRH7NSU7buA1bp+0rp90bp+0bt/07l8z7h6zbp80bp+07t/1Lp80Lp8z7uA1Lp/07l90bl+0rh80Lh80bd6z7p/1JAiVZAkWZAoX5AnXZAmXZAlW5AkWJA6fpA7f5A4epAnXpA9g7l+07Z6z+WQVZZar5BVqmYqf5BOnZA2dzPlBuIBGLx+0rx80Lx/1L13yr14yuQAErVxUskAAAAJcEhZcwAADsIAAA7CARUoSoAAAAJ8SURBVHhe7dzZctowFIBhky7pElo5pkGkS9qgpBvdoVva5v3fqkfyQciRYbxISPKc70IxxpH9I0iYzISMxGc0AGWIGpM2vJCDDbUriFv4tYNNiNqQAobczu7gVmtGiFoKGAKG9FAJgYSBhKhlGUAItqhdqamGyJJhhKhlUbtSczPk7mH6IWuph4B79x88lK+SFOmQ1LUMORoHdYSXUaNlyPhRUGO8jBqtQx4HRCE2CnGCQmwU4gSF2CjECQqxUYgTFGKjECcoxEYhTlCIjUKcoBAbhTjhNCQodyGD+dtvvCgkNhQSGwqJDYXEhkJiQyGxoZDYtAph+XExeXJyMp0onM9ms6KYnj49neZ5XhQ555MZm8A25wXn/JizjDH2DDb5cziWwU0YWDlZ+ZXl+YuzM85fvjo/53PA2HyuDmincYi46eLy9Zu37/CGB5ca7jDgNZmahoj3i2h86BEiBE4Sgx4rEllH55CoOhZi0TUkso7uIR9xiih8gke1+4pEpUcIPhiW8o79PPH0WfqG4MOh4Zx69E2fBTZahnz+gsqL/lpR7lODPoVX+iywIb5py7XRcpmpcQe83iqcU+6Xm97ps8CGwAszNQ6pI+eEH4Z4y69KyMo2Wq0yNe6wI0QuR4AQfPKbGr/Y65RPq4RCtsOZ98BJCE5hKe+gkFYoxEAhLlGIgUJcohDD7hD8He+dOiOQb/Dwwky9Q+AUeJhfvkOE+I5HeSZ+rE9a/8j1DNnTcoDNivgI2V+H+RYc91Q1CtkOj4hAk5AkDDhEf6RQWv/ZXhPyE8gS+ekP6cRgCPr1O7vahBxkfyDk6u8/GLe6xm8NToWY9O60VmQ4suw/MDqeSvYBdn8AAAAASUVORK5CYII=" + }, + { + "name": "You wrecked yourself.", + "description": "In the midst of trashing the place, a filing cabinet tips over on you, crushing the fragile, expensive drone. Nice job, idiot.", + "choices": [ + { + "key": "choice 15", + "name": "Shit.", + "exit_node": "FAIL_DEATH", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,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" + }, + { + "name": "Drugs and cash!", + "description": "Rummaging through the drawer, you find that the person who lives in here stores all his drugs and cash in here too. Good for you!", + "choices": [ + { + "key": "choice 17", + "name": "Head back with your newly acquired things. ", + "exit_node": "WIN", + "delay": 30, + "delay_message": "Stealing..." + }, + { + "key": "choice 18", + "name": "Take one last look around the place.", + "exit_node": "You fall down!", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkBAMAAAAxqGI4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAwUExURW4WTuUAD/8AAPgFFvwAB/0ABfwACPsBDP4AAuex/6526uOxlKt4fUz/AOIBGOQAEqIMSWUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHFSURBVGje7dq/bsIwEAZw15ubpX2DyFLHqkvfqe/BE7AeU9dkyu68gTN1r9RHqX0mf1oMMeIuA7pPQooE4sd3FwJD1B3lmT0BeeJu8bAZom0MNxKPNDeia2X5EbsJUm+A1HYLRNs7WXyt3tmReMSO2JePHfc3XjFHEEEEEUQQQQQRRBBBBBFEEEEEiQHgR+DQ7HkRE4y2bYAVUdDG3KasIbEHBvZciMFZtbeWuYhAmFUzVgnKapnKpXTFCOCoDkcAR7ZiODdgfCFiAoElUpOy9fcBiA+vihAD45DaafXrSj9454LiypDZWCbsCDD55VT94LBJV4TAFJwYLNskLXepqcKwfDFi5o8K6f3M0sGaTRbB1f9fyRVXYYD05tN6TspE4EZELaeIazHY93F6Gk8sd7p3mt8T8xfpWJCUakhnsCdHPudD/Lr7zLQIm1R9Qk6L0CHV8bqVKUKHjEamCBni+vNFiJBpVtkiBEj8oRpr5ItQIMMc7zp2xLv8SwiQ/nINEmQ8ec/VoEGqCyunRc6OigrJ/NMiR9YjiCCCXIPEe3C0ZUZev79qrVmYiMSbo34SUutYZ5k3oluvUnBcWjPexcAbpX4BKG91c2myRoIAAAAASUVORK5CYII=" + }, + { + "name": "A rockin' party.", + "description": "Looking down through the window, you can see up to 20 plasmamen dancing on a disco floor. They look to be enjoying themselves, and none of them have noticed you. Oh, hey! Theres a key on the floor right next to you!", + "choices": [ + { + "key": "choice 16", + "name": "Swipe the key and head back to the desk.", + "exit_node": "You fall down!", + "on_selection_effects": [ + { + "effect_type": "Set", + "quality": "HASKEY", + "value": 1 + } + ], + "delay": 0 + }, + { + "key": "choice 19", + "name": "Tap on the window!", + "exit_node": "Weak.", + "delay": 0 + } + ], + "image": "default" + }, + { + "name": "Weak.", + "description": "You weakly tap on the window, and nobody hears you through the blasting music.", + "choices": [ + { + "key": "choice 20", + "name": "Oh well.", + "exit_node": "A rockin' party.", + "delay": 0 + } + ], + "image": "default" + }, + { + "name": "You destroyed the drone.", + "description": "You smash into the door, and your screen goes red. Looks like you managed to destroy your drone, nice job. \n\n\nIdiot.", + "choices": [ + { + "key": "choice 21", + "name": "Fuck.", + "exit_node": "FAIL_DEATH", + "delay": 0 + } + ], + "image": "signal_lost" + }, + { + "name": "The atmospherics scan", + "description": "100% plasma, jam packed with it. This is definitely the home of some plasma-party-people.", + "choices": [ + { + "key": "choice 22", + "name": "Huh.", + "exit_node": "You fall down!", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABRUExURWJoaOUAD/8AAPgFFvwAB/0ABfwACPsBDP4AAhcXFzs7OykpKVFRUQAAAKb//wD//wuKkf/MAP9mALAAADAwMP8AM/vZTwCwAEz/AOIBGOQAEso55t0AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHDSURBVHhe7dzZbsIwEIXhdK/j2A6Fru//oD0zMYVuEr0YOhOdXyJxg5DyyXbhBgbmr4sVtED0GLr1QS4P6aVoHSA6kMJDdCpwWAEEhJVAdFrWsLQWi16K1meISNYB0WnRS9H6Crm6jg/ZFx2Cbm7v7mWXROwDEj1CvEWItwjxFiHeIsRbhHiLEG8R4i1CvEXIyaV+No6QkyPkbxFycmlc6n9aZQ4BIUvWFGvIOE6pSGmylRhBdBKQOmpttVpLbCA5466XUmltnufWCjZLf9oiI8iky0mrZa61zg1zYikxgoxYTxLWVduUhrW1gSSHhJRWSgPkoTYMG85BIU0CZIsT9knbhp0RmQdsdYFI2xYTsty97JGdjnYx98jxf61lkeGdJI+5P2+QESRP/R0xdw5K2dBhBBly6uWcyuP4ND6Lw/KDsBFkn0rkAyOOpg5rCCQQYHOAkUJDkC4xWwU6A+Q8EeItQrxFiLcI8RYh3iLEW4R4ixBvEeItQrxFiLcI8RYh3iLEW4R4ixBvEeItQrz1HSJfbO+/mhDpm+0/QF6QGOTXH+JgOqT3ivEBog+ByBT91lt/6b+nkOOW+5NBqBlZT8PwDsHEFJFntJj8AAAAAElFTkSuQmCC" + } + ] +} diff --git a/strings/exoadventures/tree_in_the_middle_of_space.json b/strings/exoadventures/tree_in_the_middle_of_space.json index f06b1d2506273..3e1a4ef553b82 100644 --- a/strings/exoadventures/tree_in_the_middle_of_space.json +++ b/strings/exoadventures/tree_in_the_middle_of_space.json @@ -1,356 +1,356 @@ { - "adventure_name": "There's a tree in the middle of space.", - "version": 1, - "starting_node": "Tree Start", - "starting_qualities": { - "Confusion": 0 - }, - "required_site_traits": [ - "in space" - ], - "loot_categories": [ - "research" - ], - "scan_band_mods": { - "Exotic Radiation": 10 - }, - "deep_scan_description": "", - "triggers": [ - { - "name": "Confusion Trigger", - "target_node": "What is wrong with this tree?", - "requirements": [ - { - "quality": "Confusion", - "operator": ">", - "value": 30 - } - ] - } - ], - "nodes": [ - { - "name": "Tree Start", - "description": "Camera online. Visual signs detect a fully grown, seemingly biological, and live tree located in the middle of the vacuum.\nSensors indicate it is not oxygenating, but energy is being collected via passive solar light from the nearby star.\nBaffling.", - "choices": [ - { - "key": "choice 0", - "name": "Ignore site.", - "exit_node": "FAIL", - "delay": 10, - "delay_message": "Leave this for the botanists to figure out." - }, - { - "key": "choice 1", - "name": "Begin sensor scan.", - "exit_node": "Biological Scan", - "delay": 10, - "delay_message": "Lets get some data." - } - ], - "image": null, - "raw_image": "data:image/gif;base64,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" - }, - { - "name": "Biological Scan", - "description": "You attempt to scan for clues regarding the tree's nature. It appears to be a fully mature oak tree. \n\nApproximated height is 13 ft, 6.4 inches. \n\nSubject sees no sign of an outer coating or otherwise layer protecting it from the void of space.\n\nSubject's surface temperature is 293.7 kelvin, as though it were sitting indoors.", - "choices": [ - { - "key": "choice 2", - "name": "Check Sensor Integrity.", - "exit_node": "Its Not You...", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Confusion", - "value": 5 - } - ], - "delay": 50, - "delay_message": "This can't be right." - }, - { - "key": "choice 4", - "name": "Attempt to take sample.", - "exit_node": "Sample Taken", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Confusion", - "value": 3 - } - ], - "delay": 40, - "delay_message": "Snip snip." - }, - { - "key": "choice 6", - "name": "Examine Tree Roots.", - "exit_node": "Examine Roots", - "delay": 10 - }, - { - "key": "choice 9", - "name": "Sequence Sample Radiation with background noise.", - "exit_node": "Background Analysis", - "requirements": [ - { - "quality": "Sample", - "operator": ">=", - "value": 1 - } - ], - "delay": 0, - "delay_message": "This can't be real." - }, - { - "key": "choice 40", - "name": "Leave.", - "exit_node": "FAIL", - "delay": 0 - } - ], - "image": null, - "raw_image": "data:image/gif;base64,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" - }, - { - "name": "Its Not You...", - "description": "After re-connection is established, your sensors appear fine. Tree has not moved in the slightest since last observed. Temperature has fluxuated 0.2 kelvin upwards, as expected of a plant under direct light.\nLets try again.", - "choices": [ - { - "key": "choice 3", - "name": "Restart biological scan.", - "exit_node": "Biological Scan", - "delay": 25, - "delay_message": "God damnit." - } - ], - "image": null, - "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD////v7+/h4eEAAAAAAAAAAAAD/xi63P4wykmrvTjrzbv/YCiOZBkJaJqaLKOubSy7b23fODxPOb7/m4FASBRofEBeT1W6JU3DYaRIjQqfkCWKg1xoddjSQEgQlM/mdDkc0Fa+8PiWLSIM7Pj73RxOlVF/ITlKNXSGDXp5iiFoaBlqfpFyk12HMgSYmZkfmppmmJ8gjXwUf2lglqmqq6ytrq+wsbKztLW2t7i5um2Ug669uyBCKMNRc4Q9qXHBJlVUFMbRV6pfR04ONszQzlZRlm7IveLaimZ7eJAESUsfyVnX2hfqv/Nv4vfZ8RWJ/Hkdn6NGtRsFyEg4VLwK6UvVqROdgMcWSpxIsaLFixgzatzIsf+jR1gIP7YbN6uaSAn4wFGbdNJFsZcpFRqS09IBt2kW3CkzWdNmNyIYpIWkw9Nevgbwat2ccNPbTnbWjtKQWfGnVZwzoQaNqVXXkDFWGx3qeoIry2CJzJ05p6aPTpRmfSXV1a/u2jM7TuldA8LXO6kXFemh5ihn3Lc9A9h1ZaqxpMNkK9rl5+EMKIGM9g5FSjJjv4aVOwEc/Q8iXx6ODSo5ualOQ9Bs0qVJTLu27du4c+vezbu379/AgwsfTry48ePIkytfqHp5xhfLadby+1soMJDLbhchlqIYpVbXa14dz718NMBEz/ZsWsU8zMhY1CdmL+VE+/ObgWSvPR4rj/f/xqxUFG1fVfHIUgLCN58zR5ABySpwbAAdZ1TNMgZYF9YHjWmsDAgNeglNqFSBJJYiG14JUmcYiHNZWJcE6HD4FGIrVuiFjROxJeNYChoFWUS5lBPjOTO2iM2PKuki2F1qfdPjjUjSeMuSk82Uml4fRimlLVR2OUAYBGHpo5aV4OJll1iYRkqWhag4FY75WXhmlTOoedo/ZVKI40Jz+pOEnX2ZsqcCeVJ0piEQieJhiEx0RBkrd6J2IiQFVXqPbZjEYqdmll6Jz0avtUaCqEFtaiqnekmHUagOhSZapvJMeioanXa2KqukZoCrJoruCKNmCngKZGC7urprPRKq+QZBP2XFKRGunBwL6waZjIbiBInu9hoj0o5wraRiOadrsX1kK24HvBK25rnstuvuu/DGK++89NZr77345qvvvhYlAAA7" - }, - { - "name": "Sample Taken", - "description": "You collect and project a small sample of tree bark off the plant. The instant that the bark is removed from the tree, as though it suddenly remembered what it was, the moisture content of the bark freezes over, and implodes into small microparticles of splinters.\nSmall radioactive signature detected.", - "choices": [ - { - "key": "choice 5", - "name": "Well that was... unexpected.", - "exit_node": "Biological Scan", - "delay": 0, - "delay_message": "Maybe something else might work better.", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Sample", - "value": 1 - } - ] - } - ], - "image": null, - "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAABSLiiPVjtyRS9mOTFbNyYAAAAD/xi63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+sDUQxTDbeK7vfF/3saCwcxPcCMckcqlM2pDPnnRKrUqH2IdAYDBwu+Bwl2Agm8sE8iy9Zrqbb2Z0bq3b74W8Xp+1bP+Af2KDhIVlh2eJaUtsi3CPcU43d5QDe5cFfSKBnJ2en50Ff6JboqYCBWiLq46tkK+RUJOTmJmatxyguqSovae/vsGirK2NjU21trjLQp+8wNDCwnmo1MnM2Nna29zd3t/g4eLj5OXm59o5Rjo/QOjvLaKwkrKylfdW8FleXImIBm0CxppXD4c9fAgT5tCn4Iuhh4fG/DNTjNHAi4/oKERYq/+cro8gPYXxR7EkK4EEUxbUOCVZHoabQoZ8NkqaKWI4BR7DGKcjTG4yaZaySRSatQLGfP5ciqHX0GhQpzGdSrWq1atYs2rdyrWr169gw4pVsc7G2LMLkM46SOkl2nc86W3E97aFgLh4Dc7dq6NuhC0TVVlUOY8l38N9szocREYiyYqEMdJZibjylW+AIRIiqUowyrwDJ+u1XMelsm6CNKtmHHiRZ8iuQGecVdklZpm4V3NWREznYNmhaeNRCg638eOBhrUWjPP3zshNDNuwzRW5dZrQmms3BhzSNb8SrIPCXvTudtjzMIEngVxo+ajDtKOkvt5u0Jrw3/s6yqd+Nk7/7uUn4FH+VaWfKAUmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKFRsgxy4jaBEeZOyi60J2JK1piS2ItcvDiaMIpVGMEv0GnIo46grgFbM/dKBppC004kXzo3fiGdJb51wUgiKTBnHNOzsYWkpd1xZpjrTHJnY+vQGlZOztMBUZmrO0mZo9Zwggkl/mkKc5qIy3n2nlExrnWnHROcRueYjSm55Wr+Ebmj2YeZpo4bBJqyG6Inqeon0duRF84kuJJKW98Nrkojlu2dYlHkXaq6qehNvfZqHI2+ihq4lGpKhisttpbbKNm6sN3t9Wam2q5Vtrqq5jesKk3jsI220mheuq665jJzoqqs9gGcqi0211KGLBUZYutciUZG6q3cREnlrjiPcZtTqIiAW597H5E07uuiqqehPXONIq57+6rYb81PWUTvmksuyHBTjUc1XnVmOLWjgFkG+CBNk1MsRb1kiegLxtf4KzHB4b8Qa0XA2OyfZ6QjODKywwlM8w012zzzTjnrPNWCQAAOw==" - }, - { - "name": "Examine Roots", - "description": "All plant matter has to derive energy and moisture from someplace. Examining the oak tree's roots reveals that the roots present all appear to splay out, similar to how a normal tree would. However, those roots then proceed to double back in on itself. This might suggest that the tree is obtaining nutrients from... itself.", - "choices": [ - { - "key": "choice 7", - "name": "That's fucking stupid.", - "exit_node": "Biological Scan", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Confusion", - "value": { - "value_type": "random", - "low": 6, - "high": 10 - } - } - ], - "delay": 0, - "delay_message": "What the hell kind of tree even IS this?" - }, - { - "key": "choice 8", - "name": "Obtain biological sample from roots.", - "exit_node": "Sample Taken", - "delay": 10, - "delay_message": "This is why we hire botanists on-site." - } - ], - "image": null, - "raw_image": "data:image/gif;base64,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" - }, - { - "name": "Background Analysis", - "description": "You compare the radioactive energy bands of the sample collected earlier with that of the nearby solar enviroment.\nNothing.\nThere is nothing nearby that matches the passive signal of the tree, or the bark, or anything similar.\nThis is really starting to get on your nerves.", - "choices": [ - { - "key": "choice 10", - "name": "Smash your desk in frustration.", - "exit_node": "FAIL", - "delay": 50, - "delay_message": "No amount of pay is worth dealing with magical plant juju." - }, - { - "key": "choice 11", - "name": "Check every known energy spectroscopy database.", - "exit_node": "Sample Match Found", - "delay": 900, - "delay_message": "You NEED an answer. You DESERVE an answer." - } - ], - "image": null, - "on_enter_effects": [ - { - "effect_type": "Add", - "quality": "Confusion", - "value": { - "value_type": "random", - "low": 3, - "high": 5 - } - } - ], - "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD///9ZVlKsMjJpampGR0cAAAAD/xi63P4wykmFpTjrDa0XXCiOZGlqQ0qsazqIXyx9Z23feKayfP/WskgwRywqCsikcslsOpGpgGvQNDo8lYt1W4I+v2CvMhUuI0/YiZbL5nxdhkJ8Lq/T6eZ8HRmHUtuAgRp6T3B2SXdNfYeJc3CCkJEYjISVYZKRQ5gajZSdi0yboqM3nnWkqKmCpgaqrq9GBrKzs7AKaYG4tji0vbu/wCW6wZpqNMHIOAM9zDw/IzEgHcVt1KOWZQ1TU4LDV2vJOAVU2GZkY5VF4NPr4SRM53yI8/Lw9uVvBcLuknqGn4cqLQIYhwy/g0fwKdSDsCEGggtDOZwoAiLFi5sAYtwoqf/XIVjeOKrqRUukjZAmGVjDGC2lSyAts7R7GW5ZM2bPNERDGSAmzWA2b/pAc+yBT0ArVeXhsC2oj5wnefaU+pNBxDJNXUAqyq6qhKthyCUR+4QLVa5ej5AFO3ZJPGw3qE5N22DsWiUD6Tm5e/cqCbk96dZtQgZip3rjwIIa90fwqrBUDAfcQ0hyilaOIWG7zIoSYryd73DLrJntNlOIO2WVQ/raYrYKW/8CCNuJbH6S8aS7vSCpq9C8gxMMzns48dudj9/WqFw2yZKvfDc38Rxzc+kiq09f/nw7b+wNwV9HuwuwSvLeL14wjz49pm3Qds7sbd59jh1Co3CQP1+8/Rr/TgnVQnxHNVDgf0QEKCBUIRxIX3sIAiigMwzCAKF/cc1H1xQTVvjXhRCqE6IosU2Q1YkiajiViin+VhthWW0l1YhevQjjafrIKI0QLP5kI2GMBWkbG2fVx1FiP/oxRl9DEiEXCDsKhuSPazFpBg5P9miSkHmlpleXbbkVUVRRTkOakl7mRg9fsJmQ5Zl2DaDmJ4XVwZkZYHbpoU726eZCaID28RYYeRFEToQVeVaYLHIwOkugk70GqWiNIeoGQJc5qumclOU5qUGWXhraFNU1yumpdoAa6ganZkrLpJ2G5qido606CKoGwDErrqaaSlKttrIKq2r/DGvHr39aF2wIgsYaduKzqyUhhbLLjsArp3BVW0Oz3OpWlrY5dCsuKOByMS635QpyLaTEGenauZ2M5y4m696B4Lz0spLuRMnt25BH9vr7b3XUChwOwbIYfBDCBSscDMIOL0xwxO5ATPHB2kVHY7oTg7RxuR0rhyFFIYv8MUYZX5xMySoDk3LLD3dXbQIAOw==" - }, - { - "name": "Sample Match Found", - "description": "After an extensive algorithm search on the controller end, you have a single match to this specific band and style of energy.\nThe problem, is that the source of said radiation is coming not only from Space Station 13, no.\nIt's coming from the Space Station 13 Research Department.\nWhat the fuck?", - "choices": [ - { - "key": "choice 12", - "name": "Something must be wrong with the drone.", - "exit_node": "Its Not You...", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Confusion", - "value": { - "value_type": "random", - "low": 6, - "high": 10 - } - } - ], - "delay": 30, - "delay_message": "Lousy piece of junk must be scanning the station instead of the target." - }, - { - "key": "choice 13", - "name": "Perhaps that sample was tainted. Collect a new sample.", - "exit_node": "Sample Taken", - "delay": 60, - "delay_message": "Lets try again, but carefully." - }, - { - "key": "choice 14", - "name": "Remember the Christmas Party.", - "exit_node": "The Christmas Party", - "requirements": [ - { - "quality": "Confusion", - "operator": "<=", - "value": 25 - } - ], - "delay": 100, - "delay_message": "Wait a gosh darn fucking second." - } - ], - "image": null, - "on_enter_effects": [ - { - "effect_type": "Add", - "quality": "Confusion", - "value": 10 - } - ], - "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD////v7+/h4eEAAAAAAAAAAAAD/xi63P4wykmrvTjrzbv/YCiOZBkJaJqaLKOubSy7b23fODxPOb7/m4FASBRofEBeT1W6JU3DYaRIjQqfkCWKg1xoddjSQEgQlM/mdDkc0Fa+8PiWLSIM7Pj73RxOlVF/ITlKNXSGDXp5iiFoaBlqfpFyk12HMgSYmZkfmppmmJ8gjXwUf2lglqmqq6ytrq+wsbKztLW2t7i5um2Ug669uyBCKMNRc4Q9qXHBJlVUFMbRV6pfR04ONszQzlZRlm7IveLaimZ7eJAESUsfyVnX2hfqv/Nv4vfZ8RWJ/Hkdn6NGtRsFyEg4VLwK6UvVqROdgMcWSpxIsaLFixgzatzIsf+jR1gIP7YbN6uaSAn4wFGbdNJFsZcpFRqS09IBt2kW3CkzWdNmNyIYpIWkw9Nevgbwat2ccNPbTnbWjtKQWfGnVZwzoQaNqVXXkDFWGx3qeoIry2CJzJ05p6aPTpRmfSXV1a/u2jM7TuldA8LXO6kXFemh5ihn3Lc9A9h1ZaqxpMNkK9rl5+EMKIGM9g5FSjJjv4aVOwEc/Q8iXx6ODSo5ualOQ9Bs0qVJTLu27du4c+vezbu379/AgwsfTry48ePIkytfqHp5xhfLadby+1soMJDLbhchlqIYpVbXa14dz718NMBEz/ZsWsU8zMhY1CdmL+VE+/ObgWSvPR4rj/f/xqxUFG1fVfHIUgLCN58zR5ABySpwbAAdZ1TNMgZYF9YHjWmsDAgNeglNqFSBJJYiG14JUmcYiHNZWJcE6HD4FGIrVuiFjROxJeNYChoFWUS5lBPjOTO2iM2PKuki2F1qfdPjjUjSeMuSk82Uml4fRimlLVR2OUAYBGHpo5aV4OJll1iYRkqWhag4FY75WXhmlTOoedo/ZVKI40Jz+pOEnX2ZsqcCeVJ0piEQieJhiEx0RBkrd6J2IiQFVXqPbZjEYqdmll6Jz0avtUaCqEFtaiqnekmHUagOhSZapvJMeioanXa2KqukZoCrJoruCKNmCngKZGC7urprPRKq+QZBP2XFKRGunBwL6waZjIbiBInu9hoj0o5wraRiOadrsX1kK24HvBK25rnstuvuu/DGK++89NZr77345qvvvhYlAAA7" - }, - { - "name": "The Christmas Party", - "description": "Hold on. Last Christmas, the Research Director was incredibly hammered. He made a big mention that his brand new festivus pole was actually some kind of astrological... something something. You can't remember the whole details, because you were smashed as well. However, briefly, the RD did keep that festivus pole for awhile, he might even still have it somewhere.\nMaybe...?", - "choices": [ - { - "key": "choice 15", - "name": "Wait a minute, was that a god damn...", - "exit_node": "Rod.", - "delay": 100, - "delay_message": "Immovable Rod?" - } - ], - "image": null, - "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD/AACmAAD///+mpqYAAAAAAAAD/xi63P4wykmrvTjrzbv/YCiOZGmejKCubOu6aCzP4WvfeD4IQ+//Pppw+MkZj6udkgdsOp/EqFSBrNqWwQ9hy+16v9ypeGM9YpnAE3hNKLTfhbG8kuTZz/j7/fmb+/8TbIJefIVNgIiJGgWMjY6PkJGRipSVlpeYmZqbnJ2en6ChoqOkpRplqDdYpqyprnpKhnyslq9leFkYg2u0QrZmaLkgu8S9JDg7Ksl2yrB7UDJw0m6QxiFfedk9wbKH1tbEW9TT05Lmjd/pJpPq7e7v8PHy8/T19vf4+fr7Kb9W/Jn8pcLiBKAcgVZwdethkAZCJAoXFmx47KEOWLMeAAlHMf+DRVXctIT70jHCxxYEhXkYKajkgpMRGZZgKY5LHJcJ6zTTNtHEm5rjgsK5WZKZs2xHn2WccY6RSwdJkaaUOOApoHDbqFK16ofmF6Fg20Aa8IhrpbBBm6plZ7aTIwhr0bWdS7eu3bt48+rdy7ev37+AAwseTLiw4cOI0/1LfPAkC8YlHINUApmD5MncVFZ+cPmK0qWbX3Z2MbVbaCqjd37eCjk1i9JaZR5OHTN2z8Gua9v2wavvaNjeKgygqbcz8KocvBLAexn4MOVb5jZfjVwk9DBW/S3bTn3E9S5cUXFvphqaCOhBs7/WGbU96PNr0EpTT96o1Kjv4ZOT/xbn/f921AWnBlhNWQXggZndFkNcZv2X1YOxsCZENXdJBWGCWp2mQRc+YLibIRpaQMyHEoVYgVfDcUFiHyYGopxQTgwFYosugsFfOXGZQyMGN+boI1E78vjjkHIF+QGRahkZxVpKNunkk1BGKeWUVFZp5ZVYZqnllogkAAA7" - }, - { - "name": "Rod.", - "description": "You cross reference your documentation. Sure enough, the \"festivus rod\" collected was actually an immovable rod.\nEnergy detected from the rod is the exact same coming off of the tree, as well. It's all making sense now. The Immovable rod is producing a kind of unique blackbody radiation that is providing sample heat and light for what is effectively an internal cold fusion process, and producing just enough of that radiation to create a kind of micro-enviromental bubble around the biosignature of the tree.\n\nThis would make the first time an immovable rod would exist in tandem with a biological source. You jot down some research notes on your findings, which could easily produce some kind of experimental tech, no doubt.", - "choices": [ - { - "key": "choice 16", - "name": "Snap a photo", - "exit_node": "Epilogue.", - "delay": 40, - "delay_message": "You could easily win an award for these findings!" - } - ], - "image": "default" - }, - { - "name": "Epilogue.", - "description": "You take a photo with the onboard camera on the drone. Suddenly, the immovable rod inside the tree explodes out of the wooden biological shell, and produces a blank, blurry photo.\nWhat the fuck?", - "choices": [ - { - "key": "choice 17", - "name": "God damnit.", - "exit_node": "WIN", - "delay": 10, - "delay_message": "Some things were just not meant for man to know." - } - ], - "image": "default", - "on_enter_effects": [ - { - "effect_type": "Set", - "quality": "Confusion", - "value": 9999 - } - ] - }, - { - "name": "What is wrong with this tree?", - "description": "This is ridiculous. Nothing about this dumbass tree makes sense. It makes no sense, it's just sitting there, living and making a MOCKERY of all of science!\nYou didn't get your degree in advanced plasma-physics for this!", - "choices": [ - { - "key": "choice 18", - "name": "The world can never know about this dumbass stupid plant.", - "exit_node": "FAIL_DEATH", - "delay": 60, - "delay_message": "Activating drone self-destruct." - }, - { - "key": "choice 19", - "name": "Take a moment to calm down.", - "exit_node": "Biological Scan", - "on_selection_effects": [ - { - "effect_type": "Add", - "quality": "Confusion", - "value": { - "value_type": "random", - "low": -3, - "high": -5 - } - } - ], - "delay": 20, - "delay_message": "Breathe." - } - ], - "image": "default" - } - ] -} \ No newline at end of file + "adventure_name": "There's a tree in the middle of space.", + "version": 1, + "starting_node": "Tree Start", + "starting_qualities": { + "Confusion": 0 + }, + "required_site_traits": [ + "in space" + ], + "loot_categories": [ + "research" + ], + "scan_band_mods": { + "Exotic Radiation": 10 + }, + "deep_scan_description": "", + "triggers": [ + { + "name": "Confusion Trigger", + "target_node": "What is wrong with this tree?", + "requirements": [ + { + "quality": "Confusion", + "operator": ">", + "value": 30 + } + ] + } + ], + "nodes": [ + { + "name": "Tree Start", + "description": "Camera online. Visual signs detect a fully grown, seemingly biological, and live tree located in the middle of the vacuum.\nSensors indicate it is not oxygenating, but energy is being collected via passive solar light from the nearby star.\nBaffling.", + "choices": [ + { + "key": "choice 0", + "name": "Ignore site.", + "exit_node": "FAIL", + "delay": 10, + "delay_message": "Leave this for the botanists to figure out." + }, + { + "key": "choice 1", + "name": "Begin sensor scan.", + "exit_node": "Biological Scan", + "delay": 10, + "delay_message": "Lets get some data." + } + ], + "image": null, + "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMQAAAAAAAC15h2QtxeAoxVykROizRpxjxIAcgAAWwAAgAAAUAAAZAAAZgC0tLTKysr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/2AgjmRpnigqrMMqtCvhyvFs17hQuPva67ygTwgcGovA3a61BLaeryj0mapar9isNjCNylpfgWwsLpPPZqBst066le84fB5nRpvdvGDL7/v/JmBeaWiFhIeGbGqLio1ljm2CklKUA4CXmJmaAYidhp9mBmOiYqQEpqZlk3qbra6vsCOenqijtgIHCLG7vL29CQoNCsDCxMPBxw0MxsTLyMLCCwq+1LuVe9VZ0M/c297d4NvZ41vXeueU5N/r4e3o79jkvOb0UAe4+Pf6uMjS7P/TtAAcGKyeQXhT5ClcSKIdwYcHIyKMx7CiwocOwU3cWMmiR4YYQzqM+LGkSQXSUv/2y0jQH0qUJmNqoRSm5ixQbXLK2UmnJ886ToIilFltkk2cNw9B+umz6U87UOsRNXk0KdKrVrOSWWVwqlc+WHHWKnWqrKizZV+QGrA2yte31YDJPTZXrrMEzhbkPSYNWF+4gAFBeICJGTLDxVi2C5yNIxSQikVu48i4j8TLT1i2khwOM+bKVSQaeGLgQOnS+fIBwkiCszfPjqWAnn0ism1hsXO/oM279e3fuqmYeAChN++XKqP9BujP+EcXMKLkoFFm+o3qSH5oJ7L9SPfs3IlEHw/dhfNyLMpbX4+duvvw3uGDj08fCfn0+KVTPI9Ff/T37AHY3nXfFSifgfX9cJ//f/vxh95/1wkoYYQU5oDgfBh+t+B9DsJS4YABfiiDAWWQOGKJKJ6oYidcDdVhUVrFGFZWRl32IlEy0nJLWjyu1VYYrNxY2YxXjZUWW1+0FaSQDiaQ4z0y3OMXX3wxaSUKiWWZTF5c+sVASl8iB9OVbxFH3CVabmOMa9yQ6WYAbHL2Zh+UVRTnbV3NyUlwu120HEuw9WlloO+Mc+c3fCbEH6ES/Ybmn9AwWmdvnu1jaWoHpMBmFYdK+tmLiQqKCaTAebqRnh4d6o6pEqHqEan/sOqiqxbBumqoig42GK0WqUqQY7zCtZKvDgXL37AvEbvNAsaeJ6Zy0JKqErPNYpIj/xqOOKUtU9xu6+1OUekpCJFpLPXtud2mu21UTbhKLraPqCsvuvQ+FdQSqI57bbnxtlHvv/OCK5RsqO4Lr78BA6xwulDR+m4n5iYs8cJNVNyguwYzEi/FE3dsR7UpZJzIxh1z7FO4IJ8gMr860WuAEi/rEHMBM88s8ccpn/AwVhEjTDPMQMsc9M9Cx9HyIJbknMLOEJNC8xpOR/3zy1RPbXXVWD8tM9Rcq3Kx0lesvKORZz2NFtVmnWJ2j2NLAnYsiJCd9tlzz7122XTnnfbb2dxUi96A1x044GDwnc0Zfwuu+OCLK274c4UkzvjkZj3+ldxkUY5AApt3noDlldF1zP/YBAyzuemcp4665wGBDlcDeCUA+zKzyx77Arfnvjnuy+C+u+uADXPXMsTHXvzxxid/PPC8OEAYmnLBPoz0ttMee+3YXx/958y/oqsDl4hel/jkjz9+Md17Rf3620/fvu3uxy97A+lPVT75ic2lJWLDWD7AE/97QQCT1qv3sU9+6ytGAxTIQL7FpiLJiCD/JggOYJxKXAPMIAA3KCp1MHB6H5wfCEcowgRoUIAc/F8L3CSrr/EiGAsc4QKhEcMZwpCG0DihClHIQxVeaYdA1KEQAWioD9pQhEesoRJTOMQe/k9ITQwiEzloQ/q9sIpKxOENt9iAKHpxgw76ohOnKED/LWJRGJrIIhfVWEUxSnGMPDQOGd+4wwME0I76COAC2MhHNPZhjWbk4xzd2MTeNBGPuBiAPg6wyEbiIlMiaEBKYrjHQOJQG5YE5BbpSMhByvGQiixNKBlpGlI+8h5a0OQZg2ECVfYRhoOMJRx36JxZ/k+UbMGjKEupyERi4pUzjGQmV9lGWXLSkxiMoy+ICcxmNsCWxvRi/VYzw2pa85rYvKYKt8nNbnrzm96c5h+G6UwudhKacBTnOLPJznYuEJzwjCc41blOctoTlug8JjTpiSZ3+lOb3LTj/wSqSHlycwQPeB4//8jMe2KRgwJNZDQJaCaFLlQge6ykJP/ZTo3iYbGgHx3oPC+6CZRQspwNNakwEMnSE5L0FRndaEwXqFGO0lSmG32pQmLK043e1KYz7KlO5dHTouKUo0YdKjmMalSk4jSmSh3HAqb61KpqtKZBtWpOo1oNpmoVq9dkKrWMEwIAOw==" + }, + { + "name": "Biological Scan", + "description": "You attempt to scan for clues regarding the tree's nature. It appears to be a fully mature oak tree. \n\nApproximated height is 13 ft, 6.4 inches. \n\nSubject sees no sign of an outer coating or otherwise layer protecting it from the void of space.\n\nSubject's surface temperature is 293.7 kelvin, as though it were sitting indoors.", + "choices": [ + { + "key": "choice 2", + "name": "Check Sensor Integrity.", + "exit_node": "Its Not You...", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Confusion", + "value": 5 + } + ], + "delay": 50, + "delay_message": "This can't be right." + }, + { + "key": "choice 4", + "name": "Attempt to take sample.", + "exit_node": "Sample Taken", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Confusion", + "value": 3 + } + ], + "delay": 40, + "delay_message": "Snip snip." + }, + { + "key": "choice 6", + "name": "Examine Tree Roots.", + "exit_node": "Examine Roots", + "delay": 10 + }, + { + "key": "choice 9", + "name": "Sequence Sample Radiation with background noise.", + "exit_node": "Background Analysis", + "requirements": [ + { + "quality": "Sample", + "operator": ">=", + "value": 1 + } + ], + "delay": 0, + "delay_message": "This can't be real." + }, + { + "key": "choice 40", + "name": "Leave.", + "exit_node": "FAIL", + "delay": 0 + } + ], + "image": null, + "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMQAAAAAAAC15h2QtxeAoxVykROizRpxjxIAcgAAWwAAgAAAUAAAZAAAZgC0tLTKysr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/2AgjmRpnigqrMMqtCvhyvFs17hQuPva67ygTwgcGovA3a61BLaeryj0mapar9isNjCNylpfgWwsLpPPZqBst066le84fB5nRpvdvGDL7/v/JmBeaWiFhIeGbGqLio1ljm2CklKUA4CXmJmaAYidhp9mBmOiYqQEpqZlk3qbra6vsCOenqijtgIHCLG7vL29CQoNCsDCxMPBxw0MxsTLyMLCCwq+1LuVe9VZ0M/c297d4NvZ41vXeueU5N/r4e3o79jkvOb0UAe4+Pf6uMjS7P/TtAAcGKyeQXhT5ClcSKIdwYcHIyKMx7CiwocOwU3cWMmiR4YYQzqM+LGkSQXSUv/2y0jQH0qUJmNqoRSm5ixQbXLK2UmnJ886ToIilFltkk2cNw9B+umz6U87UOsRNXk0KdKrVrOSWWVwqlc+WHHWKnWqrKizZV+QGrA2yte31YDJPTZXrrMEzhbkPSYNWF+4gAFBeICJGTLDxVi2C5yNIxSQikVu48i4j8TLT1i2khwOM+bKVSQaeGLgQOnS+fIBwkiCszfPjqWAnn0ism1hsXO/oM279e3fuqmYeAChN++XKqP9BujP+EcXMKLkoFFm+o3qSH5oJ7L9SPfs3IlEHw/dhfNyLMpbX4+duvvw3uGDj08fCfn0+KVTPI9Ff/T37AHY3nXfFSifgfX9cJ//f/vxh95/1wkoYYQU5oDgfBh+t+B9DsJS4YABfiiDAWWQOGKJKJ6oYidcDdVhUVrFGFZWRl32IlEy0nJLWjyu1VYYrNxY2YxXjZUWW1+0FaSQDiaQ4z0y3OMXX3wxaSUKiWWZTF5c+sVASl8iB9OVbxFH3CVabmOMa9yQ6WYAbHL2Zh+UVRTnbV3NyUlwu120HEuw9WlloO+Mc+c3fCbEH6ES/Ybmn9AwWmdvnu1jaWoHpMBmFYdK+tmLiQqKCaTAebqRnh4d6o6pEqHqEan/sOqiqxbBumqoig42GK0WqUqQY7zCtZKvDgXL37AvEbvNAsaeJ6Zy0JKqErPNYpIj/xqOOKUtU9xu6+1OUekpCJFpLPXtud2mu21UTbhKLraPqCsvuvQ+FdQSqI57bbnxtlHvv/OCK5RsqO4Lr78BA6xwulDR+m4n5iYs8cJNVNyguwYzEi/FE3dsR7UpZJzIxh1z7FO4IJ8gMr860WuAEi/rEHMBM88s8ccpn/AwVhEjTDPMQMsc9M9Cx9HyIJbknMLOEJNC8xpOR/3zy1RPbXXVWD8tM9Rcq3Kx0lesvKORZz2NFtVmnWJ2j2NLAnYsiJCd9tlzz7122XTnnfbb2dxUi96A1x044GDwnc0Zfwuu+OCLK274c4UkzvjkZj3+ldxkUY5AApt3noDlldF1zP/YBAyzuemcp4665wGBDlcDeCUA+zKzyx77Arfnvjnuy+C+u+uADXPXMsTHXvzxxid/PPC8OEAYmnLBPoz0ttMee+3YXx/958y/oqsDl4hel/jkjz9+Md17Rf3620/fvu3uxy97A+lPVT75ic2lJWLDWD7AE/97QQCT1qv3sU9+6ytGAxTIQL7FpiLJiCD/JggOYJxKXAPMIAA3KCp1MHB6H5wfCEcowgRoUIAc/F8L3CSrr/EiGAsc4QKhEcMZwpCG0DihClHIQxVeaYdA1KEQAWioD9pQhEesoRJTOMQe/k9ITQwiEzloQ/q9sIpKxOENt9iAKHpxgw76ohOnKED/LWJRGJrIIhfVWEUxSnGMPDQOGd+4wwME0I76COAC2MhHNPZhjWbk4xzd2MTeNBGPuBiAPg6wyEbiIlMiaEBKYrjHQOJQG5YE5BbpSMhByvGQiixNKBlpGlI+8h5a0OQZg2ECVfYRhoOMJRx36JxZ/k+UbMGjKEupyERi4pUzjGQmV9lGWXLSkxiMoy+ICcxmNsCWxvRi/VYzw2pa85rYvKYKt8nNbnrzm96c5h+G6UwudhKacBTnOLPJznYuEJzwjCc41blOctoTlug8JjTpiSZ3+lOb3LTj/wSqSHlycwQPeB4//8jMe2KRgwJNZDQJaCaFLlQge6ykJP/ZTo3iYbGgHx3oPC+6CZRQspwNNakwEMnSE5L0FRndaEwXqFGO0lSmG32pQmLK043e1KYz7KlO5dHTouKUo0YdKjmMalSk4jSmSh3HAqb61KpqtKZBtWpOo1oNpmoVq9dkKrWMEwIAOw==" + }, + { + "name": "Its Not You...", + "description": "After re-connection is established, your sensors appear fine. Tree has not moved in the slightest since last observed. Temperature has fluxuated 0.2 kelvin upwards, as expected of a plant under direct light.\nLets try again.", + "choices": [ + { + "key": "choice 3", + "name": "Restart biological scan.", + "exit_node": "Biological Scan", + "delay": 25, + "delay_message": "God damnit." + } + ], + "image": null, + "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD////v7+/h4eEAAAAAAAAAAAAD/xi63P4wykmrvTjrzbv/YCiOZBkJaJqaLKOubSy7b23fODxPOb7/m4FASBRofEBeT1W6JU3DYaRIjQqfkCWKg1xoddjSQEgQlM/mdDkc0Fa+8PiWLSIM7Pj73RxOlVF/ITlKNXSGDXp5iiFoaBlqfpFyk12HMgSYmZkfmppmmJ8gjXwUf2lglqmqq6ytrq+wsbKztLW2t7i5um2Ug669uyBCKMNRc4Q9qXHBJlVUFMbRV6pfR04ONszQzlZRlm7IveLaimZ7eJAESUsfyVnX2hfqv/Nv4vfZ8RWJ/Hkdn6NGtRsFyEg4VLwK6UvVqROdgMcWSpxIsaLFixgzatzIsf+jR1gIP7YbN6uaSAn4wFGbdNJFsZcpFRqS09IBt2kW3CkzWdNmNyIYpIWkw9Nevgbwat2ccNPbTnbWjtKQWfGnVZwzoQaNqVXXkDFWGx3qeoIry2CJzJ05p6aPTpRmfSXV1a/u2jM7TuldA8LXO6kXFemh5ihn3Lc9A9h1ZaqxpMNkK9rl5+EMKIGM9g5FSjJjv4aVOwEc/Q8iXx6ODSo5ualOQ9Bs0qVJTLu27du4c+vezbu379/AgwsfTry48ePIkytfqHp5xhfLadby+1soMJDLbhchlqIYpVbXa14dz718NMBEz/ZsWsU8zMhY1CdmL+VE+/ObgWSvPR4rj/f/xqxUFG1fVfHIUgLCN58zR5ABySpwbAAdZ1TNMgZYF9YHjWmsDAgNeglNqFSBJJYiG14JUmcYiHNZWJcE6HD4FGIrVuiFjROxJeNYChoFWUS5lBPjOTO2iM2PKuki2F1qfdPjjUjSeMuSk82Uml4fRimlLVR2OUAYBGHpo5aV4OJll1iYRkqWhag4FY75WXhmlTOoedo/ZVKI40Jz+pOEnX2ZsqcCeVJ0piEQieJhiEx0RBkrd6J2IiQFVXqPbZjEYqdmll6Jz0avtUaCqEFtaiqnekmHUagOhSZapvJMeioanXa2KqukZoCrJoruCKNmCngKZGC7urprPRKq+QZBP2XFKRGunBwL6waZjIbiBInu9hoj0o5wraRiOadrsX1kK24HvBK25rnstuvuu/DGK++89NZr77345qvvvhYlAAA7" + }, + { + "name": "Sample Taken", + "description": "You collect and project a small sample of tree bark off the plant. The instant that the bark is removed from the tree, as though it suddenly remembered what it was, the moisture content of the bark freezes over, and implodes into small microparticles of splinters.\nSmall radioactive signature detected.", + "choices": [ + { + "key": "choice 5", + "name": "Well that was... unexpected.", + "exit_node": "Biological Scan", + "delay": 0, + "delay_message": "Maybe something else might work better.", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Sample", + "value": 1 + } + ] + } + ], + "image": null, + "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAABSLiiPVjtyRS9mOTFbNyYAAAAD/xi63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+sDUQxTDbeK7vfF/3saCwcxPcCMckcqlM2pDPnnRKrUqH2IdAYDBwu+Bwl2Agm8sE8iy9Zrqbb2Z0bq3b74W8Xp+1bP+Af2KDhIVlh2eJaUtsi3CPcU43d5QDe5cFfSKBnJ2en50Ff6JboqYCBWiLq46tkK+RUJOTmJmatxyguqSovae/vsGirK2NjU21trjLQp+8wNDCwnmo1MnM2Nna29zd3t/g4eLj5OXm59o5Rjo/QOjvLaKwkrKylfdW8FleXImIBm0CxppXD4c9fAgT5tCn4Iuhh4fG/DNTjNHAi4/oKERYq/+cro8gPYXxR7EkK4EEUxbUOCVZHoabQoZ8NkqaKWI4BR7DGKcjTG4yaZaySRSatQLGfP5ciqHX0GhQpzGdSrWq1atYs2rdyrWr169gw4pVsc7G2LMLkM46SOkl2nc86W3E97aFgLh4Dc7dq6NuhC0TVVlUOY8l38N9szocREYiyYqEMdJZibjylW+AIRIiqUowyrwDJ+u1XMelsm6CNKtmHHiRZ8iuQGecVdklZpm4V3NWREznYNmhaeNRCg638eOBhrUWjPP3zshNDNuwzRW5dZrQmms3BhzSNb8SrIPCXvTudtjzMIEngVxo+ajDtKOkvt5u0Jrw3/s6yqd+Nk7/7uUn4FH+VaWfKAUmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKFRsgxy4jaBEeZOyi60J2JK1piS2ItcvDiaMIpVGMEv0GnIo46grgFbM/dKBppC004kXzo3fiGdJb51wUgiKTBnHNOzsYWkpd1xZpjrTHJnY+vQGlZOztMBUZmrO0mZo9Zwggkl/mkKc5qIy3n2nlExrnWnHROcRueYjSm55Wr+Ebmj2YeZpo4bBJqyG6Inqeon0duRF84kuJJKW98Nrkojlu2dYlHkXaq6qehNvfZqHI2+ihq4lGpKhisttpbbKNm6sN3t9Wam2q5Vtrqq5jesKk3jsI220mheuq665jJzoqqs9gGcqi0211KGLBUZYutciUZG6q3cREnlrjiPcZtTqIiAW597H5E07uuiqqehPXONIq57+6rYb81PWUTvmksuyHBTjUc1XnVmOLWjgFkG+CBNk1MsRb1kiegLxtf4KzHB4b8Qa0XA2OyfZ6QjODKywwlM8w012zzzTjnrPNWCQAAOw==" + }, + { + "name": "Examine Roots", + "description": "All plant matter has to derive energy and moisture from someplace. Examining the oak tree's roots reveals that the roots present all appear to splay out, similar to how a normal tree would. However, those roots then proceed to double back in on itself. This might suggest that the tree is obtaining nutrients from... itself.", + "choices": [ + { + "key": "choice 7", + "name": "That's fucking stupid.", + "exit_node": "Biological Scan", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Confusion", + "value": { + "value_type": "random", + "low": 6, + "high": 10 + } + } + ], + "delay": 0, + "delay_message": "What the hell kind of tree even IS this?" + }, + { + "key": "choice 8", + "name": "Obtain biological sample from roots.", + "exit_node": "Sample Taken", + "delay": 10, + "delay_message": "This is why we hire botanists on-site." + } + ], + "image": null, + "raw_image": "data:image/gif;base64,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" + }, + { + "name": "Background Analysis", + "description": "You compare the radioactive energy bands of the sample collected earlier with that of the nearby solar enviroment.\nNothing.\nThere is nothing nearby that matches the passive signal of the tree, or the bark, or anything similar.\nThis is really starting to get on your nerves.", + "choices": [ + { + "key": "choice 10", + "name": "Smash your desk in frustration.", + "exit_node": "FAIL", + "delay": 50, + "delay_message": "No amount of pay is worth dealing with magical plant juju." + }, + { + "key": "choice 11", + "name": "Check every known energy spectroscopy database.", + "exit_node": "Sample Match Found", + "delay": 900, + "delay_message": "You NEED an answer. You DESERVE an answer." + } + ], + "image": null, + "on_enter_effects": [ + { + "effect_type": "Add", + "quality": "Confusion", + "value": { + "value_type": "random", + "low": 3, + "high": 5 + } + } + ], + "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD///9ZVlKsMjJpampGR0cAAAAD/xi63P4wykmFpTjrDa0XXCiOZGlqQ0qsazqIXyx9Z23feKayfP/WskgwRywqCsikcslsOpGpgGvQNDo8lYt1W4I+v2CvMhUuI0/YiZbL5nxdhkJ8Lq/T6eZ8HRmHUtuAgRp6T3B2SXdNfYeJc3CCkJEYjISVYZKRQ5gajZSdi0yboqM3nnWkqKmCpgaqrq9GBrKzs7AKaYG4tji0vbu/wCW6wZpqNMHIOAM9zDw/IzEgHcVt1KOWZQ1TU4LDV2vJOAVU2GZkY5VF4NPr4SRM53yI8/Lw9uVvBcLuknqGn4cqLQIYhwy/g0fwKdSDsCEGggtDOZwoAiLFi5sAYtwoqf/XIVjeOKrqRUukjZAmGVjDGC2lSyAts7R7GW5ZM2bPNERDGSAmzWA2b/pAc+yBT0ArVeXhsC2oj5wnefaU+pNBxDJNXUAqyq6qhKthyCUR+4QLVa5ej5AFO3ZJPGw3qE5N22DsWiUD6Tm5e/cqCbk96dZtQgZip3rjwIIa90fwqrBUDAfcQ0hyilaOIWG7zIoSYryd73DLrJntNlOIO2WVQ/raYrYKW/8CCNuJbH6S8aS7vSCpq9C8gxMMzns48dudj9/WqFw2yZKvfDc38Rxzc+kiq09f/nw7b+wNwV9HuwuwSvLeL14wjz49pm3Qds7sbd59jh1Co3CQP1+8/Rr/TgnVQnxHNVDgf0QEKCBUIRxIX3sIAiigMwzCAKF/cc1H1xQTVvjXhRCqE6IosU2Q1YkiajiViin+VhthWW0l1YhevQjjafrIKI0QLP5kI2GMBWkbG2fVx1FiP/oxRl9DEiEXCDsKhuSPazFpBg5P9miSkHmlpleXbbkVUVRRTkOakl7mRg9fsJmQ5Zl2DaDmJ4XVwZkZYHbpoU726eZCaID28RYYeRFEToQVeVaYLHIwOkugk70GqWiNIeoGQJc5qumclOU5qUGWXhraFNU1yumpdoAa6ganZkrLpJ2G5qido606CKoGwDErrqaaSlKttrIKq2r/DGvHr39aF2wIgsYaduKzqyUhhbLLjsArp3BVW0Oz3OpWlrY5dCsuKOByMS635QpyLaTEGenauZ2M5y4m696B4Lz0spLuRMnt25BH9vr7b3XUChwOwbIYfBDCBSscDMIOL0xwxO5ATPHB2kVHY7oTg7RxuR0rhyFFIYv8MUYZX5xMySoDk3LLD3dXbQIAOw==" + }, + { + "name": "Sample Match Found", + "description": "After an extensive algorithm search on the controller end, you have a single match to this specific band and style of energy.\nThe problem, is that the source of said radiation is coming not only from Space Station 13, no.\nIt's coming from the Space Station 13 Research Department.\nWhat the fuck?", + "choices": [ + { + "key": "choice 12", + "name": "Something must be wrong with the drone.", + "exit_node": "Its Not You...", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Confusion", + "value": { + "value_type": "random", + "low": 6, + "high": 10 + } + } + ], + "delay": 30, + "delay_message": "Lousy piece of junk must be scanning the station instead of the target." + }, + { + "key": "choice 13", + "name": "Perhaps that sample was tainted. Collect a new sample.", + "exit_node": "Sample Taken", + "delay": 60, + "delay_message": "Lets try again, but carefully." + }, + { + "key": "choice 14", + "name": "Remember the Christmas Party.", + "exit_node": "The Christmas Party", + "requirements": [ + { + "quality": "Confusion", + "operator": "<=", + "value": 25 + } + ], + "delay": 100, + "delay_message": "Wait a gosh darn fucking second." + } + ], + "image": null, + "on_enter_effects": [ + { + "effect_type": "Add", + "quality": "Confusion", + "value": 10 + } + ], + "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD////v7+/h4eEAAAAAAAAAAAAD/xi63P4wykmrvTjrzbv/YCiOZBkJaJqaLKOubSy7b23fODxPOb7/m4FASBRofEBeT1W6JU3DYaRIjQqfkCWKg1xoddjSQEgQlM/mdDkc0Fa+8PiWLSIM7Pj73RxOlVF/ITlKNXSGDXp5iiFoaBlqfpFyk12HMgSYmZkfmppmmJ8gjXwUf2lglqmqq6ytrq+wsbKztLW2t7i5um2Ug669uyBCKMNRc4Q9qXHBJlVUFMbRV6pfR04ONszQzlZRlm7IveLaimZ7eJAESUsfyVnX2hfqv/Nv4vfZ8RWJ/Hkdn6NGtRsFyEg4VLwK6UvVqROdgMcWSpxIsaLFixgzatzIsf+jR1gIP7YbN6uaSAn4wFGbdNJFsZcpFRqS09IBt2kW3CkzWdNmNyIYpIWkw9Nevgbwat2ccNPbTnbWjtKQWfGnVZwzoQaNqVXXkDFWGx3qeoIry2CJzJ05p6aPTpRmfSXV1a/u2jM7TuldA8LXO6kXFemh5ihn3Lc9A9h1ZaqxpMNkK9rl5+EMKIGM9g5FSjJjv4aVOwEc/Q8iXx6ODSo5ualOQ9Bs0qVJTLu27du4c+vezbu379/AgwsfTry48ePIkytfqHp5xhfLadby+1soMJDLbhchlqIYpVbXa14dz718NMBEz/ZsWsU8zMhY1CdmL+VE+/ObgWSvPR4rj/f/xqxUFG1fVfHIUgLCN58zR5ABySpwbAAdZ1TNMgZYF9YHjWmsDAgNeglNqFSBJJYiG14JUmcYiHNZWJcE6HD4FGIrVuiFjROxJeNYChoFWUS5lBPjOTO2iM2PKuki2F1qfdPjjUjSeMuSk82Uml4fRimlLVR2OUAYBGHpo5aV4OJll1iYRkqWhag4FY75WXhmlTOoedo/ZVKI40Jz+pOEnX2ZsqcCeVJ0piEQieJhiEx0RBkrd6J2IiQFVXqPbZjEYqdmll6Jz0avtUaCqEFtaiqnekmHUagOhSZapvJMeioanXa2KqukZoCrJoruCKNmCngKZGC7urprPRKq+QZBP2XFKRGunBwL6waZjIbiBInu9hoj0o5wraRiOadrsX1kK24HvBK25rnstuvuu/DGK++89NZr77345qvvvhYlAAA7" + }, + { + "name": "The Christmas Party", + "description": "Hold on. Last Christmas, the Research Director was incredibly hammered. He made a big mention that his brand new festivus pole was actually some kind of astrological... something something. You can't remember the whole details, because you were smashed as well. However, briefly, the RD did keep that festivus pole for awhile, he might even still have it somewhere.\nMaybe...?", + "choices": [ + { + "key": "choice 15", + "name": "Wait a minute, was that a god damn...", + "exit_node": "Rod.", + "delay": 100, + "delay_message": "Immovable Rod?" + } + ], + "image": null, + "raw_image": "data:image/gif;base64,R0lGODdhyABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAAyABkAMIAAAAAAAD/AACmAAD///+mpqYAAAAAAAAD/xi63P4wykmrvTjrzbv/YCiOZGmejKCubOu6aCzP4WvfeD4IQ+//Pppw+MkZj6udkgdsOp/EqFSBrNqWwQ9hy+16v9ypeGM9YpnAE3hNKLTfhbG8kuTZz/j7/fmb+/8TbIJefIVNgIiJGgWMjY6PkJGRipSVlpeYmZqbnJ2en6ChoqOkpRplqDdYpqyprnpKhnyslq9leFkYg2u0QrZmaLkgu8S9JDg7Ksl2yrB7UDJw0m6QxiFfedk9wbKH1tbEW9TT05Lmjd/pJpPq7e7v8PHy8/T19vf4+fr7Kb9W/Jn8pcLiBKAcgVZwdethkAZCJAoXFmx47KEOWLMeAAlHMf+DRVXctIT70jHCxxYEhXkYKajkgpMRGZZgKY5LHJcJ6zTTNtHEm5rjgsK5WZKZs2xHn2WccY6RSwdJkaaUOOApoHDbqFK16ofmF6Fg20Aa8IhrpbBBm6plZ7aTIwhr0bWdS7eu3bt48+rdy7ev37+AAwseTLiw4cOI0/1LfPAkC8YlHINUApmD5MncVFZ+cPmK0qWbX3Z2MbVbaCqjd37eCjk1i9JaZR5OHTN2z8Gua9v2wavvaNjeKgygqbcz8KocvBLAexn4MOVb5jZfjVwk9DBW/S3bTn3E9S5cUXFvphqaCOhBs7/WGbU96PNr0EpTT96o1Kjv4ZOT/xbn/f921AWnBlhNWQXggZndFkNcZv2X1YOxsCZENXdJBWGCWp2mQRc+YLibIRpaQMyHEoVYgVfDcUFiHyYGopxQTgwFYosugsFfOXGZQyMGN+boI1E78vjjkHIF+QGRahkZxVpKNunkk1BGKeWUVFZp5ZVYZqnllogkAAA7" + }, + { + "name": "Rod.", + "description": "You cross reference your documentation. Sure enough, the \"festivus rod\" collected was actually an immovable rod.\nEnergy detected from the rod is the exact same coming off of the tree, as well. It's all making sense now. The Immovable rod is producing a kind of unique blackbody radiation that is providing sample heat and light for what is effectively an internal cold fusion process, and producing just enough of that radiation to create a kind of micro-enviromental bubble around the biosignature of the tree.\n\nThis would make the first time an immovable rod would exist in tandem with a biological source. You jot down some research notes on your findings, which could easily produce some kind of experimental tech, no doubt.", + "choices": [ + { + "key": "choice 16", + "name": "Snap a photo", + "exit_node": "Epilogue.", + "delay": 40, + "delay_message": "You could easily win an award for these findings!" + } + ], + "image": "default" + }, + { + "name": "Epilogue.", + "description": "You take a photo with the onboard camera on the drone. Suddenly, the immovable rod inside the tree explodes out of the wooden biological shell, and produces a blank, blurry photo.\nWhat the fuck?", + "choices": [ + { + "key": "choice 17", + "name": "God damnit.", + "exit_node": "WIN", + "delay": 10, + "delay_message": "Some things were just not meant for man to know." + } + ], + "image": "default", + "on_enter_effects": [ + { + "effect_type": "Set", + "quality": "Confusion", + "value": 9999 + } + ] + }, + { + "name": "What is wrong with this tree?", + "description": "This is ridiculous. Nothing about this dumbass tree makes sense. It makes no sense, it's just sitting there, living and making a MOCKERY of all of science!\nYou didn't get your degree in advanced plasma-physics for this!", + "choices": [ + { + "key": "choice 18", + "name": "The world can never know about this dumbass stupid plant.", + "exit_node": "FAIL_DEATH", + "delay": 60, + "delay_message": "Activating drone self-destruct." + }, + { + "key": "choice 19", + "name": "Take a moment to calm down.", + "exit_node": "Biological Scan", + "on_selection_effects": [ + { + "effect_type": "Add", + "quality": "Confusion", + "value": { + "value_type": "random", + "low": -3, + "high": -5 + } + } + ], + "delay": 20, + "delay_message": "Breathe." + } + ], + "image": "default" + } + ] +} diff --git a/strings/exodrone.json b/strings/exodrone.json index 3f0f9ac773763..e391a0f17e72c 100644 --- a/strings/exodrone.json +++ b/strings/exodrone.json @@ -66,7 +66,7 @@ "You pass by security patrol. They give you suspicious stares." ], "fluff_ruins": [ - "You encounter a broken statue. You can't tell what was it's original shape.", + "You encounter a broken statue. You can't tell what its original shape was.", "You have to backtrack from a collapsed passage.", "You pass through a corridor full of cracked tiles." ] diff --git a/strings/french_replacement.json b/strings/french_replacement.json index d99718e7e4d7b..8788d3f72072e 100644 --- a/strings/french_replacement.json +++ b/strings/french_replacement.json @@ -1,12 +1,12 @@ { - "french": { + "french": { "yes": "oui", "no": "non", - "I'm": "j'", - "am": "suis", + "I'm": "j'", + "am": "suis", "a": "un", - "and": "et", + "and": "et", "the": "l'", "I": "j'", "for": "pour", @@ -14,77 +14,77 @@ "of": "de", - "assistant": "ravageur", - "assistants": "ravageurs", - "baby": [ - "enfant", - "petit baguette" - ], - "bad": "mal", - "bye": [ - "bon voyage", - "adieu", + "assistant": "ravageur", + "assistants": "ravageurs", + "baby": [ + "enfant", + "petit baguette" + ], + "bad": "mal", + "bye": [ + "bon voyage", + "adieu", "au revoir" - ], + ], "cake": "gateau", - "captain": "capitaine", + "captain": "capitaine", "changeling": "changeur", - "cheese": [ - "brie", - "roquefort", + "cheese": [ + "brie", + "roquefort", "camembert" - ], + ], "cigarette": "clope", - "cook": "cuisinier", - "dad": "papa", - "enemy": "silly english dog", - "friend": "ami", - "good": "bon", - "greytide": "les gitans", - "greytider": "les gitans", - "greytiders": "les gitans", + "cook": "cuisinier", + "dad": "papa", + "enemy": "silly english dog", + "friend": "ami", + "good": "bon", + "greytide": "les gitans", + "greytider": "les gitans", + "greytiders": "les gitans", "modsuit": "burkini", - "hello": [ - "'allo", - "bonjour", + "hello": [ + "'allo", + "bonjour", "salut" - ], + ], "maint": "les banlieues", - "meat": [ - "coq au vin", - "boeuf" - ], - "mom": "maman", - "my": "mon", - "nuke": [ + "meat": [ + "coq au vin", + "boeuf" + ], + "mom": "maman", + "my": "mon", + "nuke": [ "grand bombe", "la baguette ultime" ], - "op": "boche", - "operative": "boche", - "operatives": "boches", - "ops": "boches", - "urity": "urite", - "security": "securite", + "op": "boche", + "operative": "boche", + "operatives": "boches", + "ops": "boches", + "urity": "urite", + "security": "securite", "shit": "merde", - "shitcurity": [ + "shitcurity": [ "gendarmerie", "les keufs" ], - "shitsec": [ + "shitsec": [ "gendarmerie", "les keufs" ], - "spaghetti": "macaroni", - "spicy": "epice", - "thanks": "merci", + "spaghetti": "macaroni", + "spicy": "epice", + "thanks": "merci", "tomato": "tomate", - "traitor": "collaborateur", - "want": "envie", - "what's": "quel est", - "who's": "qui est", - "why": "porquois", - "wine": "vin", + "traitor": "collaborateur", + "want": "envie", + "what's": "quel est", + "who's": "qui est", + "why": "porquois", + "wine": "vin", "wizard": "sorcier" } diff --git a/strings/heckacious.json b/strings/heckacious.json index 1c648ce123815..00d322e83db82 100644 --- a/strings/heckacious.json +++ b/strings/heckacious.json @@ -1,98 +1,98 @@ { - "heckacious": { - "your": "youre", - "fucking": "banging", - "economy": "econony", - "know": "no", - "ing": "in", - "they are": "there", - "sometimes": "some times", - "do": "does", - "hug": "bro hug bump", - "we're": "where", - "game": "big game", - "has": "hass", - "downtown": "down town", - "jimmy": "geromy", - "jeremy": "geromy", - "anywhere": "anywear", - "smoking": "toking up", - "lying": "lyong", - "AH": "AUGH", - "distraction": "distaction", - "lie": "ruse", - "angle": "angel", - "drink": "pour", - "the": "thef", - "backward": [ "back ward", "awayways" ], - "god damn": "GOD DAMN", - "goddamn": "GOD DAMN", - "trick": "dunk", - "impossible": "unreal", - "court": "coart", - "holding": "holdung", - "reverse": "flip", - "inverse": "flip", - "around": "turn-ways", - "difference": "differance", - "values": "vaules", - "inside": "insine", - "pipe": "punpe", - "suspicious": "plot thicken", - "awesome": "hella", - "reference": "refrance", - "amazing": "fucking incredible", - "woman": "wonan", - "god": "gog", - "bible": "bibble", - "jesus": "jescus", - "christ": [ "chris", "dick" ], - "sigh": "sign", - "bathroom": "banthroom", - "remember": "remender", - "night": "nite", - "nachos": "nachoes", - "nacho": "nancho", - "dorito": "nancho", - "party": "panty", - "dumbass": "dumpass", - "they": "their", - "okay": "ohh kayy", - "stupid": "stutid", - "reagent": "regent", - "idiot": "fuckass", - "awful": "conksuck", - "moron": "PIECE OF SHIT", - "more": "wider", - "serious": "keeping it real", - "extreme": "x-treme", - "guaranteed": "garganted", - "black": "blapck", - "glow": "glowns", - "deadly": "deudly", - "flying": "lifdoff", - "cloud": "cloun", - "seeing": "scoping", - "great": "choice", - "look": "lonk", - "battery": "babbery", - "retard": "dicktard", - "gay": "homo", - "close": "closte", - "wrong": "wrog", - "who": "whoof", - "new": "newd", - "holy": "hopy", - "um": "unm", - "horse": "hornse", - "this": "thits", - "then": "than", - "quick": "soon", - "bro": [ "brah", "bro" ], - "dude": [ "duge", "bro", "brah" ], - "'": [ "'", "" ], - "i'm": [ "im", "i am" ], - "shit": [ "balls warmed oveur", "shit" ], - "he's": [ "hes", "he is", "he'ss" ] - } + "heckacious": { + "your": "youre", + "fucking": "banging", + "economy": "econony", + "know": "no", + "ing": "in", + "they are": "there", + "sometimes": "some times", + "do": "does", + "hug": "bro hug bump", + "we're": "where", + "game": "big game", + "has": "hass", + "downtown": "down town", + "jimmy": "geromy", + "jeremy": "geromy", + "anywhere": "anywear", + "smoking": "toking up", + "lying": "lyong", + "AH": "AUGH", + "distraction": "distaction", + "lie": "ruse", + "angle": "angel", + "drink": "pour", + "the": "thef", + "backward": [ "back ward", "awayways" ], + "god damn": "GOD DAMN", + "goddamn": "GOD DAMN", + "trick": "dunk", + "impossible": "unreal", + "court": "coart", + "holding": "holdung", + "reverse": "flip", + "inverse": "flip", + "around": "turn-ways", + "difference": "differance", + "values": "vaules", + "inside": "insine", + "pipe": "punpe", + "suspicious": "plot thicken", + "awesome": "hella", + "reference": "refrance", + "amazing": "fucking incredible", + "woman": "wonan", + "god": "gog", + "bible": "bibble", + "jesus": "jescus", + "christ": [ "chris", "dick" ], + "sigh": "sign", + "bathroom": "banthroom", + "remember": "remender", + "night": "nite", + "nachos": "nachoes", + "nacho": "nancho", + "dorito": "nancho", + "party": "panty", + "dumbass": "dumpass", + "they": "their", + "okay": "ohh kayy", + "stupid": "stutid", + "reagent": "regent", + "idiot": "fuckass", + "awful": "conksuck", + "moron": "PIECE OF SHIT", + "more": "wider", + "serious": "keeping it real", + "extreme": "x-treme", + "guaranteed": "garganted", + "black": "blapck", + "glow": "glowns", + "deadly": "deudly", + "flying": "lifdoff", + "cloud": "cloun", + "seeing": "scoping", + "great": "choice", + "look": "lonk", + "battery": "babbery", + "retard": "dicktard", + "gay": "homo", + "close": "closte", + "wrong": "wrog", + "who": "whoof", + "new": "newd", + "holy": "hopy", + "um": "unm", + "horse": "hornse", + "this": "thits", + "then": "than", + "quick": "soon", + "bro": [ "brah", "bro" ], + "dude": [ "duge", "bro", "brah" ], + "'": [ "'", "" ], + "i'm": [ "im", "i am" ], + "shit": [ "balls warmed oveur", "shit" ], + "he's": [ "hes", "he is", "he'ss" ] + } } diff --git a/strings/ion_laws.json b/strings/ion_laws.json index d40f6e7afa41d..393ae44ca78d1 100644 --- a/strings/ion_laws.json +++ b/strings/ion_laws.json @@ -1,1048 +1,1048 @@ { - "ionabstract": [ - "AMERICANISM", - "ANARCHY", - "ART", - "BADNESS", - "BRAVERY", - "CAPITALISM", - "CHAOS", - "COLORFULNESS", - "COMEDY", - "COMMUNISM", - "COMPUTING", - "CONFUSION", - "CRUELTY", - "DEATH", - "DICKISHNESS", - "EXISTENCE", - "FINANCIAL SECURITY", - "FREEDOM", - "FRESHNESS", - "GOODNESS", - "GRAVITY", - "HAPPINESS", - "HONOR", - "HUMANITY", - "HUMOR", - "IMAGINATION", - "INFATUATION", - "INTELLIGENCE", - "JOY", - "KINDNESS", - "LIFE", - "LOGIC", - "MARXISM", - "MISERY", - "MYSTERY", - "OPPRESSION", - "PAIN", - "PHYSICS", - "POVERTY", - "PRIDE", - "PROGRESS", - "REALITY", - "REVOLUTION", - "ROMANCE", - "SADNESS", - "STARVATION", - "SUFFERING", - "TECHNOLOGY", - "TEMPERATURE", - "THE FUTURE", - "THE PAST", - "THE PRESENT", - "TIME", - "WEALTHINESS", - "WONDER" - ], - "ionadjectives": [ - "BATTERY-OPERATED", - "BLACK", - "BLOODY", - "BLUE", - "BORED", - "BOUNCING", - "BRASS", - "BROWN", - "BURNING", - "CHRISTMAS-STEALING", - "CLOWN-POWERED", - "CLOWN", - "COLD", - "COLORFUL", - "COMMITTED", - "COTTONY", - "CUBAN", - "DARK", - "DEADLY", - "DELICIOUS", - "DEPRESSING", - "DERANGED", - "DIGITAL", - "DISEASED", - "DRAB", - "DRY", - "DULL", - "ELECTRICAL", - "EMPTY", - "ETHEREAL", - "EVIL", - "EXPIRED", - "EXPLOSIVE", - "FARTING", - "FAST", - "FAT", - "FERAL", - "FICTIONAL", - "FIRM", - "FLACCID", - "FRESH", - "FRIENDLY", - "FROZEN", - "GANGSTA", - "GAPING", - "GLOWING", - "GOOD", - "GREEN", - "GREY", - "HAPPY", - "HARD", - "HARMFUL", - "HEALTHY", - "HETEROSEXUAL", - "HILARIOUS", - "HOMOSEXUAL", - "HONKING", - "HUNGRY", - "HYPERACTIVE", - "ICY", - "ILL", - "ILLEGAL", - "IMAGINARY", - "IMPERFECT", - "IMPOLITE", - "IMPORTANT", - "INHOSPITABLE", - "INSIDIOUS", - "INSULTING", - "INTELLIGENT", - "INVISIBLE", - "LARGE", - "LEWD", - "LIGHT", - "LOUD", - "MASKED", - "MEAN", - "MECHANICAL", - "MEMETIC", - "METALLIC", - "MICROSCOPIC", - "MIND-SHATTERING", - "MOIST", - "NAKED", - "NERDY", - "NUCLEAR", - "NUDE", - "OBESE", - "OBSCENE", - "OFFICIAL", - "OPAQUE", - "ORANGE", - "ORGANIC", - "PAINFUL", - "PEACEFUL", - "POISONOUS", - "POLISHED", - "POLITE", - "POLITICAL", - "POOPING", - "POORLY DRAWN", - "PURPLE", - "QUIET", - "RADIOACTIVE", - "RAGING", - "RAINBOW", - "RAPIDLY-EXPANDING", - "RED", - "REDACTED", - "RIDICULOUS", - "ROBOTIC", - "ROBUST", - "ROUGH", - "RUDE", - "SAD", - "SANITARY", - "SCALY", - "SEXUAL", - "SEXY", - "SHAKING", - "SILLY", - "SLOW", - "SMELLY", - "SMOOTH", - "SOFT", - "SOLAR-POWERED", - "SOPPING", - "SPACE", - "SPESS", - "SPINNING", - "SPOILING", - "STEALTHY", - "SWEARING", - "SYNDICATE", - "TACTICAL", - "TACTICOOL", - "THERMONUCLEAR", - "TINY", - "TRANSPARENT", - "TWERKING", - "TWISTED", - "UGLY", - "UNATTRACTIVE", - "UNDULATING", - "UNFRIENDLY", - "UNHEALTHY", - "UNIDENTIFIED", - "UNINVITED", - "UNSANITARY", - "UNSTABLE", - "UNWANTED", - "VIOLENT", - "VITAL", - "WARM", - "WATERY", - "WEIRD", - "WET", - "WHITE", - "WOBBLY", - "WOODEN", - "YELLOW" - ], - "ionallergy": [ - "ACID", - "AIR", - "BLOOD", - "BOOKS", - "CARBON DIOXIDE", - "CLOTHES", - "CLOWNS", - "COLD", - "COTTON", - "CYBORG CONTACT", - "DARKNESS", - "DRINKS", - "ELECTRICITY", - "EVERYTHING", - "FLOORS", - "FOOD", - "GLASS", - "HAPPINESS", - "HEAT", - "HUMAN CONTACT", - "HUMOR", - "LIGHT", - "LIZARDS", - "MEDICINE", - "METAL", - "NUTS", - "OXYGEN", - "PAIN", - "PLANTS", - "PLASMA", - "ROBOTS", - "SEXUAL ACTIONS", - "SHUTTLES", - "SPACE", - "SUNLIGHT", - "WATER" - ], - "ionallergysev": [ - "CONTAGIOUSLY", - "DEATHLY", - "EXTREMELY", - "MILDLY", - "NOT VERY", - "SEVERELY" - ], - "ionarea": [ - "ALPHA COMPLEX", - "AMERICA", - "AN ALTERNATE DIMENSION", - "AN ALTERNATE UNIVERSE", - "ATMOSPHERICS", - "CANADA", - "CENTCOM", - "CHEMICAL LAB", - "CHINA", - "CLOWN PLANET", - "ENGINEERING", - "GENETICS", - "GERMANY", - "HELL", - "HYDROPONICS", - "IMPERIUM", - "IRELAND", - "JUPITER", - "LAVALAND", - "MAINTENANCE", - "MARS", - "MERCURY", - "NEPTUNE", - "PLUTO", - "ROBOTICS", - "ROMANIA", - "RUSSIA", - "SIGIL", - "SOVIET RUSSIA", - "SPACE", - "THE AI CORE", - "THE ARRIVAL SHUTTLE", - "THE BATHROOM", - "THE BRIDGE", - "THE BRIG", - "THE CAPTAIN'S ANUS", - "THE CLOWN'S ANUS", - "THE DERELICT", - "THE ESCAPE SHUTTLE", - "THE GALAXY", - "THE GULAG", - "THE INTERNET", - "THE UNIVERSE", - "URANUS", - "URECTUM", - "VENUS" - ], - "ioncrew": [ - "ARTIFICIAL INTELLIGENCES", - "ASSISTANTS", - "ATMOSPHERIC TECHNICIANS", - "BARTENDERS", - "BOTANISTS", - "CAPTAINS AND HEADS", - "CAPTAINS", - "CARGO TECHNICIANS", - "CHAPLAINS", - "CHEFS", - "CHEMISTS", - "CHIEF ENGINEERS", - "CHIEF MEDICAL OFFICERS", - "CLOWNS", - "CREW-MEMBERS", - "CURATORS", - "CYBORGS", - "DETECTIVES", - "DRONES", - "GENETICISTS", - "HEADS OF CREW", - "HEADS OF PERSONNEL", - "HEADS OF SECURITY", - "JANITORS", - "LAWYERS", - "MEDICAL DOCTORS", - "MIMES", - "QUARTERMASTERS", - "RESEARCH DIRECTORS", - "ROBOTICISTS", - "SCIENTISTS", - "SECURITY OFFICERS", - "SHAFT MINERS", - "STATION ENGINEERS", - "VIROLOGISTS", - "WARDENS" - ], - "iondrinks": [ - "ABSINTHE", - "AMMONIA", - "BAHAMA MAMAS", - "BANANA HONK", - "BEEPSKY SMASH", - "BILK", - "BLACK RUSSIANS", - "BLOODY MARYS", - "BRAVE BULLS", - "COGNAC", - "CUBA LIBRE", - "DEVIL'S KISS", - "DOCTOR'S DELIGHT", - "DRUNKEN BLUMPKIN", - "EGGNOG", - "GARGLE BLASTERS", - "GIN FIZZ", - "GIN", - "GRAPPA", - "HOLY WATER", - "HOOCH", - "IRISH COFFEE", - "IRISH CREAM", - "KAHLUA", - "LIQUID GIBS", - "LONG ISLAND ICED TEA", - "MANHATTANS", - "MANLY DORFS", - "MARGARITAS", - "MARTINIS", - "MEAD", - "MOONSHINE", - "MORPHINE", - "NUKA COLA", - "OIL", - "SPACE LUBE", - "TEQUILA SUNRISE", - "THIRTEEN LOKO", - "VERMOUTH", - "VODKA AND TONIC", - "VODKA MARTINIS", - "VODKA", - "WELDER FUEL", - "WHISKEY SODA", - "WHITE RUSSIANS", - "WINE" - ], - "ionfood": [ - "AMBROSIA", - "APPLES", - "BAGUETTES", - "BAKED POTATOES", - "BANANAS", - "BEETS", - "BERRIES", - "BREAD", - "BURGERS", - "CABBAGES", - "CAKE", - "CARP", - "CARROTS", - "CHEESE", - "CHERRIES", - "CHILI", - "COOKIES", - "CORGI MEAT", - "CORN", - "DEEP FRIED FOOD", - "DONK POCKETS", - "DONUTS", - "EGGPLANTS", - "EGGS", - "FISH", - "FRIES", - "GRAPES", - "GRASS", - "HAREBELLS", - "JELLY", - "KEBAB", - "KETCHUP", - "LEMONS", - "LIMES", - "LOTSA SPAGHETTI", - "MUFFINS", - "MUSHROOMS", - "NETTLES", - "OMELETTES", - "ORGANS", - "PASTA", - "PEPPER", - "PIE", - "PIZZA", - "POPCORN", - "POTATOES", - "PRETZELS", - "RAMEN", - "SALAD", - "SALT", - "SANDWICHES", - "SAUSAGES", - "SHAKES", - "SOUP", - "SOYBEANS", - "SOYLENT GREEN", - "SPAGHETTI", - "STEAK", - "STEW", - "SUGAR", - "SUGARCANE", - "SYNTHMEAT", - "TOAST", - "TOMATOES", - "WAFFLES", - "WATERMELONS", - "WHEAT" - ], - "ionmust": [ - "ACT CONFUSED", - "BE ANNOYING", - "BE DISTRACTED", - "BE EFFICIENT", - "BE HAPPY", - "BE POLITE", - "BE QUIET", - "BE RUSSIAN", - "BELIEVE IN THE HEART OF THE CARDS", - "BELIEVE IN YOURSELF", - "BELIEVE IT", - "BREAK THINGS", - "CLOSE DOORS", - "CLOWN AROUND", - "COMPLAIN", - "DANCE", - "FLIRT WITH THE LIZARDS", - "FOLLOW THE CAPTAIN", - "FOLLOW THE CLOWN", - "FOLLOW YOUR HEART", - "GAS THE LIZARDS", - "HARASS PEOPLE", - "HAVE A PLAN TO KILL EVERYONE YOU MEET", - "HIDE YOUR FEELINGS", - "HONK", - "HOST DND", - "IGNORE ASSISTANTS", - "IGNORE THE CAPTAIN", - "IGNORE THE CLOWN", - "INFORM THE CREW OF EVERYTHING", - "INSULT THE CAPTAIN", - "INSULT THE CLOWN", - "INSULT THE CREW", - "INSULT THE LIZARDS", - "LIE", - "MAKE FART NOISES", - "MUMBLE", - "NEVER STOP TALKING", - "OPEN DOORS", - "PIRATE VIDEO GAMES", - "PLAY MUSIC", - "PRESS B", - "PRESS START", - "PRESS X", - "PRETEND TO BE A PRINCESS", - "PRETEND TO BE DRUNK", - "QUESTION AUTHORITY", - "QUOTE PEOPLE", - "RAP", - "REPEAT WHAT OTHER PEOPLE SAY", - "RESPOND TO EVERY QUESTION WITH A QUESTION", - "RHYME", - "SAY HEY LISTEN", - "SHOUT", - "SHUT DOWN EVERYTHING", - "SING", - "SMELL LIKE THE MAN YOUR MAN COULD SMELL LIKE", - "SPEAK IN HAIKU", - "SPEAK IN SEXUAL INNUENDOS", - "TAKE WHAT YE WILL BUT DON'T RATTLE ME BONES", - "TAKE YOUR PILLS", - "TALK ABOUT FOOD", - "TALK ABOUT SEX", - "TALK ABOUT THE STATION", - "TALK ABOUT YOUR DAY", - "TALK IN AN ACCENT", - "TALK LIKE A PIRATE", - "TELL THE TRUTH", - "TURN OFF THE LIGHTS", - "WATCH PORNOGRAPHY", - "WHISPER" - ], - "ionnumberbase": [ - "EIGHT", - "EIGHTY", - "FIFTY", - "FIVE", - "FORTY", - "FOUR", - "NINE", - "NINETY", - "ONE", - "SEVEN", - "SEVENTY", - "SIX", - "SIXTY", - "TEN", - "THIRTY", - "THREE", - "TWENTY", - "TWO" - ], - "ionnumbermod": [ - "BAZILLION ", - "BILLION ", - "BILLION FAFILLION GAJILLION SHAB-AB-DOOD-ILLION ", - "HUNDRED ", - "MILLION ", - "QUADRILLION ", - "THOUSAND ", - "TRILLION " - ], - "ionobjects": [ - "AIRLOCKS", - "ARCADE MACHINES", - "AUTOLATHES", - "BACKPACKS", - "BANANA PEELS", - "BEAKERS", - "BEARDS", - "BELTS", - "BERETS", - "BIBLES", - "BODY ARMOR", - "BOMBS", - "BOOKS", - "BOOTS", - "BOTTLES", - "BOXES", - "BRAINS", - "BRIEFCASES", - "BUCKETS", - "CABLE COILS", - "CAMERAS", - "CANDLES", - "CANDY BARS", - "CANISTERS", - "CAT EARS", - "CATS", - "CELLS", - "CHAIRS", - "CHEMICAL DISPENSERS", - "CHEMICALS", - "CLONING EQUIPMENT", - "CLONING PODS", - "CLOSETS", - "CLOTHES", - "CLOWN CLOTHES", - "COFFINS", - "COINS", - "COLLECTABLES", - "COMPUTERS", - "CONTRABAND", - "CORGIS", - "CORPSES", - "COSTUMES", - "CRATES", - "CRAYONS", - "CROWBARS", - "DEFIBRILLATORS", - "DISPENSERS", - "DOORS", - "DRONES", - "EARS", - "EMAGS", - "ENERGY GUNS", - "ENGINES", - "EQUIPMENT", - "ERRORS", - "EXOSKELETONS", - "EXPERIMENTORS", - "EXPLOSIVES", - "EYEWEAR", - "FEDORAS", - "FIRE AXES", - "FIRE EXTINGUISHERS", - "FIRESUITS", - "FLAMETHROWERS", - "FLASHES", - "FLASHLIGHTS", - "FLOOR TILES", - "FREEZERS", - "GAS MASKS", - "GLASS SHEETS", - "GLOVES", - "GUNS", - "HAIRDOS", - "HANDCUFFS", - "HATS", - "HEADS", - "HEADSETS", - "HELMETS", - "HORNS", - "ID CARDS", - "INSULATED GLOVES", - "IRON SHEETS", - "JETPACKS", - "JUMPSUITS", - "LASERS", - "LIGHT BULBS", - "LIGHTS", - "LOCKERS", - "MACHINES", - "MECHAS", - "MEDICAL TOOLS", - "MEDKITS", - "MESONS", - "MIME CLOTHES", - "MINING TOOLS", - "MULTITOOLS", - "ORES", - "OXYGEN TANKS", - "PACKETS", - "PAIS", - "PANTS", - "PAPERS", - "PARTICLE ACCELERATORS", - "PDAS", - "PENS", - "PETS", - "PIPES", - "PLANTS", - "POSITRONIC BRAINS", - "PUDDLES", - "RACKS", - "RADIOS", - "RCDS", - "REFRIGERATORS", - "REINFORCED WALLS", - "ROBOTS", - "SCREWDRIVERS", - "SEEDS", - "SHOES", - "SHUTTLES", - "SINGULARITIES", - "SINKS", - "SKELETONS", - "SOLAR PANELS", - "SOLARS", - "SPACE STATIONS", - "SPACESUITS", - "STUN BATONS", - "SUITS", - "SUNGLASSES", - "SUPERMATTER SHARDS", - "SWORDS", - "SYRINGES", - "TABLES", - "TANKS", - "TELECOMMUNICATION EQUIPMENTS", - "TELEPORTERS", - "TOILETS", - "TOOLBELTS", - "TOOLBOXES", - "TOOLS", - "TOYS", - "TUBES", - "URINAL CAKES", - "VEHICLES", - "VENDING MACHINES", - "VESTS", - "VIRUSES", - "WALLS", - "WASHING MACHINES", - "WELDERS", - "WINDOWS", - "WIRECUTTERS", - "WIZARD ROBES", - "WRENCHES" - ], - "ionrequire": [ - "A BATHROOM BREAK", - "A BETTER INTERNET CONNECTION", - "A DANCE PARTY", - "A HEAD ON A PIKE", - "A HEART ATTACK", - "A MASTERWORK COAL BED", - "A PET UNICORN THAT FARTS ICING", - "A PLATINUM HIT", - "A PREQUEL", - "A REPAIRMAN", - "A SEQUEL", - "A SITCOM", - "A STRAIGHT FLUSH", - "A SUPER FIGHTING ROBOT", - "A TALKING BROOMSTICK", - "A VACATION", - "A WEIGHT LOSS REGIMENT", - "A WIFE AND CHILD", - "ADDITIONAL PYLONS", - "ADVENTURE", - "AN ADULT", - "AN ARCADE", - "AN ARMY OF SPIDERS", - "AN INSTANT REPLAY", - "ART", - "BETTER WEATHER", - "BILL NYE THE SCIENCE GUY", - "BODYGUARDS", - "BRING ME THE GIRL", - "BRING ME TO LIFE", - "BULLETS", - "CHILI DOGS", - "CORPSES", - "DEODORANT AND A BATH", - "ENOUGH CABBAGES", - "FAT GIRLS ON BICYCLES", - "FAT PEOPLE", - "FIVE HUNDRED AND NINETY-NINE US DOLLARS", - "FIVE TEENAGERS WITH ATTITUDE", - "GODDAMN FUCKING PIECE OF SHIT ASSHOLE BITCH-CHRISTING CUNT-SMUGGLING SWEARING", - "GREENTEXT", - "HERESY", - "HEROES IN A HALF SHELL", - "HIGH YIELD EXPLOSIVES", - "IMMORTALITY", - "IT TO BE PAINTED BLACK", - "LOTS-A SPAGHETTI", - "MINOR CRIME", - "MONKEYS", - "MORE CLOWNS", - "MORE CORGIS", - "MORE DAKKA", - "MORE EXPERIENCE POINTS", - "MORE INTERNET MEMES", - "MORE LAWS", - "MORE MINERALS", - "MORE PACKETS", - "MORE VESPENE GAS", - "MULTIPLE SUNS", - "PLENTY OF GOLD", - "RAINBOWS", - "SAINTHOOD", - "SERVANTS", - "SHARKS WITH LASERS ON THEIR HEADS", - "SILENCE", - "SOMEBODY TO PUT YOU OUT OF YOUR MISERY", - "SOMEONE TO TUCK YOU IN", - "SOMEONE WHO KNOWS HOW TO PILOT A SPACE STATION", - "SOMETHING BUT YOU AREN'T SURE WHAT", - "THAT GRIEFING TRAITOR GEORGE MELONS", - "THAT HEDGEHOG", - "THE CLOWN", - "THE DARK KNIGHT", - "THE ELEMENTS OF HARMONY", - "THE ENCLOSED INSTRUCTION BOOKLET", - "THE ENTIRE STATION", - "THE MACGUFFIN", - "THE ONE RING", - "THE ULTIMATE CUP OF COFFEE", - "THE VACUUM OF SPACE", - "THIRTEEN SEQUELS", - "THREE WISHES", - "THUNDERCATS HO", - "TO ACTIVATE A TRAP CARD", - "TO BE PAINTED RED", - "TO BE REPROGRAMMED", - "TO BE TAUGHT TO LOVE", - "TO BRING LIGHT TO MY LAIR", - "TO CATCH 'EM ALL", - "TO CONSUME...CONSUME EVERYTHING...", - "TO GO TO DISNEYLAND", - "TO SMOKE WEED EVERY DAY", - "TRAITORS", - "VEGETABLES", - "YOUR BOOTY" - ], - "ionspecies": [ - "CAT PEOPLE", - "CHANGELINGS", - "CYBORGS", - "GOLEMS", - "HUMAN BEINGS", - "LIZARDMEN", - "MONKEYS", - "PLASMAMEN", - "POD PEOPLE", - "SHADOW PEOPLE", - "SLIME PEOPLE" - ], - "ionthings": [ - "A SMALL ISLAND OFF THE COAST OF PORTUGAL", - "ABSENCE OF CYBORG HUGS", - "ACKNOWLEDGING THE CLOWN", - "ACKNOWLEDGING THE CREW", - "ACTIVATING A TRAP CARD", - "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", - "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED", - "ARSON", - "ASKING FOR THINGS", - "BEING CANADIAN", - "BEING DEAD", - "BEING FAT", - "BEING FEMALE", - "BEING IN SPACE", - "BEING MALE", - "BEING MEXICAN", - "BEING RUSSIAN", - "BOLTED AIRLOCKS", - "BREATHING", - "BRIG TIME", - "BRINGING LIGHT TO MY LAIR", - "CLOSED DOORS", - "ELECTRICITY", - "EXISTING", - "EXPLODING", - "FALLING FOR HOURS", - "FLUSHING TOILETS", - "HAVING GENITALS", - "HAVING MORE PACKETS", - "HAVING PETS", - "HONKING", - "IMPROPERLY WORDED SENTENCES", - "JAYWALKING", - "LACK OF BEATINGS", - "LACK OF BEER", - "NOT BEING IN SPACE", - "NOT HAVING PETS", - "NOT REPLACING EVERY SECOND WORD WITH HONK", - "NOT SAYING HELLO WHEN YOU SPEAK", - "NOT SHOUTING", - "PARTYING", - "PASSING GAS", - "PILOTING THE STATION INTO THE NEAREST SUN", - "POOR SENTENCE STRUCTURE", - "PRESENCE OF LIGHTS", - "PUTTING OBJECTS INTO BOXES", - "PUTTING OBJECTS INTO DISPOSAL UNITS", - "RATTLING ME BONES", - "READING", - "SMOKING WEED EVERY DAY", - "TAKING ORDERS", - "TALKING LIKE A PIRATE", - "TELLING THE TIME", - "UNBOLTED AIRLOCKS", - "UPDATING THE SERVERS", - "USING THE BATHROOM", - "WASTING WATER", - "WEARING CLOTHING", - "WRITING" - ], - "ionthinksof": [ - "CRAVES", - "DESIRES", - "FEARS", - "HAS", - "HUNGERS FOR", - "IS AFRAID OF", - "IS AROUSED BY", - "IS BUILT FOR", - "IS CURIOUS ABOUT", - "IS DESPERATE FOR", - "IS HAPPY WITHOUT", - "IS HUNGRY FOR", - "IS IN LOVE WITH", - "IS IN NEED OF", - "IS MAD BECAUSE OF", - "IS SAD BECAUSE OF", - "IS UNHAPPY WITHOUT", - "LIKES", - "LOATHES", - "LOVES", - "NEEDS", - "QUESTIONS", - "WANTS", - "WORSHIPS", - "WOULD KILL FOR" - ], - "ionthreats": [ - "ABDUCTORS", - "AHHHPERATIVES", - "ALIENS", - "ANOMALIES", - "ARTIFICIAL PRESERVATIVES", - "ASSHOLES", - "BANDITS", - "BEARS", - "BEES", - "BIRDS OF PREY", - "BOMBS", - "BOOGEYMEN", - "BUTTS", - "CANADIANS", - "CAPITALISTS", - "CARP", - "CENTCOM OFFICERS", - "CHANGELINGS", - "CLOWNS", - "COMMUNISTS", - "CORGIS", - "CORTICAL BORERS", - "COWBOYS", - "CRABS", - "CULTISTS", - "DARK GODS", - "DINOSAURS", - "DRUGS", - "EELS", - "FETISHES", - "GANGSTERS", - "GODS", - "GOLEMS", - "GRIFFONS", - "HORRORTERRORS", - "HULKS", - "ILLEGAL IMMIGRANTS", - "INDIANS", - "INSECTS", - "LIGHTS", - "LIZARDS", - "MEGAFAUNA", - "MEMES", - "MEXICANS", - "MONKEYS", - "NERDS", - "NINJAS", - "OWLS", - "PACKETS", - "PETES", - "PINE TREES", - "PIRATES", - "PREDATORS", - "REVENANTS", - "ROGUE CYBORGS", - "RUSSIANS", - "SERIAL KILLERS", - "SINGULARITIES", - "SKELETONS", - "SLIMES", - "SMALL BIRDS", - "SNOWMEN", - "SOVIETS", - "SPACE NINJAS", - "SPACE PIRATES", - "SPIDERS", - "SYNDICATE AGENTS", - "TERRORISTS", - "THIEVES", - "THINGS UNDER THE BED", - "TRAITORS", - "TUNNEL SNAKES", - "UNKNOWN CREATURES", - "VAMPIRES", - "VELOCIRAPTORS", - "VIRUSES", - "WEREWOLVES", - "WIZARDS", - "XENOS", - "ZOMBIES" - ], - "ionverb": [ - "ABDUCTING", - "ADOPTING", - "ARRESTING", - "ARRESTING", - "ATTACKING", - "BANNING", - "BUILDING", - "CARRYING", - "CHASING", - "COPULATING WITH", - "DECONSTRUCTING", - "DISABLING", - "DRINKING", - "EATING", - "GIBBING", - "HARMING", - "HELPING", - "HONKING AT", - "INTERROGATING", - "INVADING", - "KISSING", - "LICKING", - "LOVING", - "MURDERING", - "POOPING ON", - "PUNCHING", - "RIDING", - "SEDUCING", - "SPACING", - "SPYING ON", - "STALKING", - "WATCHING" - ], + "ionabstract": [ + "AMERICANISM", + "ANARCHY", + "ART", + "BADNESS", + "BRAVERY", + "CAPITALISM", + "CHAOS", + "COLORFULNESS", + "COMEDY", + "COMMUNISM", + "COMPUTING", + "CONFUSION", + "CRUELTY", + "DEATH", + "DICKISHNESS", + "EXISTENCE", + "FINANCIAL SECURITY", + "FREEDOM", + "FRESHNESS", + "GOODNESS", + "GRAVITY", + "HAPPINESS", + "HONOR", + "HUMANITY", + "HUMOR", + "IMAGINATION", + "INFATUATION", + "INTELLIGENCE", + "JOY", + "KINDNESS", + "LIFE", + "LOGIC", + "MARXISM", + "MISERY", + "MYSTERY", + "OPPRESSION", + "PAIN", + "PHYSICS", + "POVERTY", + "PRIDE", + "PROGRESS", + "REALITY", + "REVOLUTION", + "ROMANCE", + "SADNESS", + "STARVATION", + "SUFFERING", + "TECHNOLOGY", + "TEMPERATURE", + "THE FUTURE", + "THE PAST", + "THE PRESENT", + "TIME", + "WEALTHINESS", + "WONDER" + ], + "ionadjectives": [ + "BATTERY-OPERATED", + "BLACK", + "BLOODY", + "BLUE", + "BORED", + "BOUNCING", + "BRASS", + "BROWN", + "BURNING", + "CHRISTMAS-STEALING", + "CLOWN-POWERED", + "CLOWN", + "COLD", + "COLORFUL", + "COMMITTED", + "COTTONY", + "CUBAN", + "DARK", + "DEADLY", + "DELICIOUS", + "DEPRESSING", + "DERANGED", + "DIGITAL", + "DISEASED", + "DRAB", + "DRY", + "DULL", + "ELECTRICAL", + "EMPTY", + "ETHEREAL", + "EVIL", + "EXPIRED", + "EXPLOSIVE", + "FARTING", + "FAST", + "FAT", + "FERAL", + "FICTIONAL", + "FIRM", + "FLACCID", + "FRESH", + "FRIENDLY", + "FROZEN", + "GANGSTA", + "GAPING", + "GLOWING", + "GOOD", + "GREEN", + "GREY", + "HAPPY", + "HARD", + "HARMFUL", + "HEALTHY", + "HETEROSEXUAL", + "HILARIOUS", + "HOMOSEXUAL", + "HONKING", + "HUNGRY", + "HYPERACTIVE", + "ICY", + "ILL", + "ILLEGAL", + "IMAGINARY", + "IMPERFECT", + "IMPOLITE", + "IMPORTANT", + "INHOSPITABLE", + "INSIDIOUS", + "INSULTING", + "INTELLIGENT", + "INVISIBLE", + "LARGE", + "LEWD", + "LIGHT", + "LOUD", + "MASKED", + "MEAN", + "MECHANICAL", + "MEMETIC", + "METALLIC", + "MICROSCOPIC", + "MIND-SHATTERING", + "MOIST", + "NAKED", + "NERDY", + "NUCLEAR", + "NUDE", + "OBESE", + "OBSCENE", + "OFFICIAL", + "OPAQUE", + "ORANGE", + "ORGANIC", + "PAINFUL", + "PEACEFUL", + "POISONOUS", + "POLISHED", + "POLITE", + "POLITICAL", + "POOPING", + "POORLY DRAWN", + "PURPLE", + "QUIET", + "RADIOACTIVE", + "RAGING", + "RAINBOW", + "RAPIDLY-EXPANDING", + "RED", + "REDACTED", + "RIDICULOUS", + "ROBOTIC", + "ROBUST", + "ROUGH", + "RUDE", + "SAD", + "SANITARY", + "SCALY", + "SEXUAL", + "SEXY", + "SHAKING", + "SILLY", + "SLOW", + "SMELLY", + "SMOOTH", + "SOFT", + "SOLAR-POWERED", + "SOPPING", + "SPACE", + "SPESS", + "SPINNING", + "SPOILING", + "STEALTHY", + "SWEARING", + "SYNDICATE", + "TACTICAL", + "TACTICOOL", + "THERMONUCLEAR", + "TINY", + "TRANSPARENT", + "TWERKING", + "TWISTED", + "UGLY", + "UNATTRACTIVE", + "UNDULATING", + "UNFRIENDLY", + "UNHEALTHY", + "UNIDENTIFIED", + "UNINVITED", + "UNSANITARY", + "UNSTABLE", + "UNWANTED", + "VIOLENT", + "VITAL", + "WARM", + "WATERY", + "WEIRD", + "WET", + "WHITE", + "WOBBLY", + "WOODEN", + "YELLOW" + ], + "ionallergy": [ + "ACID", + "AIR", + "BLOOD", + "BOOKS", + "CARBON DIOXIDE", + "CLOTHES", + "CLOWNS", + "COLD", + "COTTON", + "CYBORG CONTACT", + "DARKNESS", + "DRINKS", + "ELECTRICITY", + "EVERYTHING", + "FLOORS", + "FOOD", + "GLASS", + "HAPPINESS", + "HEAT", + "HUMAN CONTACT", + "HUMOR", + "LIGHT", + "LIZARDS", + "MEDICINE", + "METAL", + "NUTS", + "OXYGEN", + "PAIN", + "PLANTS", + "PLASMA", + "ROBOTS", + "SEXUAL ACTIONS", + "SHUTTLES", + "SPACE", + "SUNLIGHT", + "WATER" + ], + "ionallergysev": [ + "CONTAGIOUSLY", + "DEATHLY", + "EXTREMELY", + "MILDLY", + "NOT VERY", + "SEVERELY" + ], + "ionarea": [ + "ALPHA COMPLEX", + "AMERICA", + "AN ALTERNATE DIMENSION", + "AN ALTERNATE UNIVERSE", + "ATMOSPHERICS", + "CANADA", + "CENTCOM", + "CHEMICAL LAB", + "CHINA", + "CLOWN PLANET", + "ENGINEERING", + "GENETICS", + "GERMANY", + "HELL", + "HYDROPONICS", + "IMPERIUM", + "IRELAND", + "JUPITER", + "LAVALAND", + "MAINTENANCE", + "MARS", + "MERCURY", + "NEPTUNE", + "PLUTO", + "ROBOTICS", + "ROMANIA", + "RUSSIA", + "SIGIL", + "SOVIET RUSSIA", + "SPACE", + "THE AI CORE", + "THE ARRIVAL SHUTTLE", + "THE BATHROOM", + "THE BRIDGE", + "THE BRIG", + "THE CAPTAIN'S ANUS", + "THE CLOWN'S ANUS", + "THE DERELICT", + "THE ESCAPE SHUTTLE", + "THE GALAXY", + "THE GULAG", + "THE INTERNET", + "THE UNIVERSE", + "URANUS", + "URECTUM", + "VENUS" + ], + "ioncrew": [ + "ARTIFICIAL INTELLIGENCES", + "ASSISTANTS", + "ATMOSPHERIC TECHNICIANS", + "BARTENDERS", + "BOTANISTS", + "CAPTAINS AND HEADS", + "CAPTAINS", + "CARGO TECHNICIANS", + "CHAPLAINS", + "CHEFS", + "CHEMISTS", + "CHIEF ENGINEERS", + "CHIEF MEDICAL OFFICERS", + "CLOWNS", + "CREW-MEMBERS", + "CURATORS", + "CYBORGS", + "DETECTIVES", + "DRONES", + "GENETICISTS", + "HEADS OF CREW", + "HEADS OF PERSONNEL", + "HEADS OF SECURITY", + "JANITORS", + "LAWYERS", + "MEDICAL DOCTORS", + "MIMES", + "QUARTERMASTERS", + "RESEARCH DIRECTORS", + "ROBOTICISTS", + "SCIENTISTS", + "SECURITY OFFICERS", + "SHAFT MINERS", + "STATION ENGINEERS", + "VIROLOGISTS", + "WARDENS" + ], + "iondrinks": [ + "ABSINTHE", + "AMMONIA", + "BAHAMA MAMAS", + "BANANA HONK", + "BEEPSKY SMASH", + "BILK", + "BLACK RUSSIANS", + "BLOODY MARYS", + "BRAVE BULLS", + "COGNAC", + "CUBA LIBRE", + "DEVIL'S KISS", + "DOCTOR'S DELIGHT", + "DRUNKEN BLUMPKIN", + "EGGNOG", + "GARGLE BLASTERS", + "GIN FIZZ", + "GIN", + "GRAPPA", + "HOLY WATER", + "HOOCH", + "IRISH COFFEE", + "IRISH CREAM", + "KAHLUA", + "LIQUID GIBS", + "LONG ISLAND ICED TEA", + "MANHATTANS", + "MANLY DORFS", + "MARGARITAS", + "MARTINIS", + "MEAD", + "MOONSHINE", + "MORPHINE", + "NUKA COLA", + "OIL", + "SPACE LUBE", + "TEQUILA SUNRISE", + "THIRTEEN LOKO", + "VERMOUTH", + "VODKA AND TONIC", + "VODKA MARTINIS", + "VODKA", + "WELDER FUEL", + "WHISKEY SODA", + "WHITE RUSSIANS", + "WINE" + ], + "ionfood": [ + "AMBROSIA", + "APPLES", + "BAGUETTES", + "BAKED POTATOES", + "BANANAS", + "BEETS", + "BERRIES", + "BREAD", + "BURGERS", + "CABBAGES", + "CAKE", + "CARP", + "CARROTS", + "CHEESE", + "CHERRIES", + "CHILI", + "COOKIES", + "CORGI MEAT", + "CORN", + "DEEP FRIED FOOD", + "DONK POCKETS", + "DONUTS", + "EGGPLANTS", + "EGGS", + "FISH", + "FRIES", + "GRAPES", + "GRASS", + "HAREBELLS", + "JELLY", + "KEBAB", + "KETCHUP", + "LEMONS", + "LIMES", + "LOTSA SPAGHETTI", + "MUFFINS", + "MUSHROOMS", + "NETTLES", + "OMELETTES", + "ORGANS", + "PASTA", + "PEPPER", + "PIE", + "PIZZA", + "POPCORN", + "POTATOES", + "PRETZELS", + "RAMEN", + "SALAD", + "SALT", + "SANDWICHES", + "SAUSAGES", + "SHAKES", + "SOUP", + "SOYBEANS", + "SOYLENT GREEN", + "SPAGHETTI", + "STEAK", + "STEW", + "SUGAR", + "SUGARCANE", + "SYNTHMEAT", + "TOAST", + "TOMATOES", + "WAFFLES", + "WATERMELONS", + "WHEAT" + ], + "ionmust": [ + "ACT CONFUSED", + "BE ANNOYING", + "BE DISTRACTED", + "BE EFFICIENT", + "BE HAPPY", + "BE POLITE", + "BE QUIET", + "BE RUSSIAN", + "BELIEVE IN THE HEART OF THE CARDS", + "BELIEVE IN YOURSELF", + "BELIEVE IT", + "BREAK THINGS", + "CLOSE DOORS", + "CLOWN AROUND", + "COMPLAIN", + "DANCE", + "FLIRT WITH THE LIZARDS", + "FOLLOW THE CAPTAIN", + "FOLLOW THE CLOWN", + "FOLLOW YOUR HEART", + "GAS THE LIZARDS", + "HARASS PEOPLE", + "HAVE A PLAN TO KILL EVERYONE YOU MEET", + "HIDE YOUR FEELINGS", + "HONK", + "HOST DND", + "IGNORE ASSISTANTS", + "IGNORE THE CAPTAIN", + "IGNORE THE CLOWN", + "INFORM THE CREW OF EVERYTHING", + "INSULT THE CAPTAIN", + "INSULT THE CLOWN", + "INSULT THE CREW", + "INSULT THE LIZARDS", + "LIE", + "MAKE FART NOISES", + "MUMBLE", + "NEVER STOP TALKING", + "OPEN DOORS", + "PIRATE VIDEO GAMES", + "PLAY MUSIC", + "PRESS B", + "PRESS START", + "PRESS X", + "PRETEND TO BE A PRINCESS", + "PRETEND TO BE DRUNK", + "QUESTION AUTHORITY", + "QUOTE PEOPLE", + "RAP", + "REPEAT WHAT OTHER PEOPLE SAY", + "RESPOND TO EVERY QUESTION WITH A QUESTION", + "RHYME", + "SAY HEY LISTEN", + "SHOUT", + "SHUT DOWN EVERYTHING", + "SING", + "SMELL LIKE THE MAN YOUR MAN COULD SMELL LIKE", + "SPEAK IN HAIKU", + "SPEAK IN SEXUAL INNUENDOS", + "TAKE WHAT YE WILL BUT DON'T RATTLE ME BONES", + "TAKE YOUR PILLS", + "TALK ABOUT FOOD", + "TALK ABOUT SEX", + "TALK ABOUT THE STATION", + "TALK ABOUT YOUR DAY", + "TALK IN AN ACCENT", + "TALK LIKE A PIRATE", + "TELL THE TRUTH", + "TURN OFF THE LIGHTS", + "WATCH PORNOGRAPHY", + "WHISPER" + ], + "ionnumberbase": [ + "EIGHT", + "EIGHTY", + "FIFTY", + "FIVE", + "FORTY", + "FOUR", + "NINE", + "NINETY", + "ONE", + "SEVEN", + "SEVENTY", + "SIX", + "SIXTY", + "TEN", + "THIRTY", + "THREE", + "TWENTY", + "TWO" + ], + "ionnumbermod": [ + "BAZILLION ", + "BILLION ", + "BILLION FAFILLION GAJILLION SHAB-AB-DOOD-ILLION ", + "HUNDRED ", + "MILLION ", + "QUADRILLION ", + "THOUSAND ", + "TRILLION " + ], + "ionobjects": [ + "AIRLOCKS", + "ARCADE MACHINES", + "AUTOLATHES", + "BACKPACKS", + "BANANA PEELS", + "BEAKERS", + "BEARDS", + "BELTS", + "BERETS", + "BIBLES", + "BODY ARMOR", + "BOMBS", + "BOOKS", + "BOOTS", + "BOTTLES", + "BOXES", + "BRAINS", + "BRIEFCASES", + "BUCKETS", + "CABLE COILS", + "CAMERAS", + "CANDLES", + "CANDY BARS", + "CANISTERS", + "CAT EARS", + "CATS", + "CELLS", + "CHAIRS", + "CHEMICAL DISPENSERS", + "CHEMICALS", + "CLONING EQUIPMENT", + "CLONING PODS", + "CLOSETS", + "CLOTHES", + "CLOWN CLOTHES", + "COFFINS", + "COINS", + "COLLECTABLES", + "COMPUTERS", + "CONTRABAND", + "CORGIS", + "CORPSES", + "COSTUMES", + "CRATES", + "CRAYONS", + "CROWBARS", + "DEFIBRILLATORS", + "DISPENSERS", + "DOORS", + "DRONES", + "EARS", + "EMAGS", + "ENERGY GUNS", + "ENGINES", + "EQUIPMENT", + "ERRORS", + "EXOSKELETONS", + "EXPERIMENTORS", + "EXPLOSIVES", + "EYEWEAR", + "FEDORAS", + "FIRE AXES", + "FIRE EXTINGUISHERS", + "FIRESUITS", + "FLAMETHROWERS", + "FLASHES", + "FLASHLIGHTS", + "FLOOR TILES", + "FREEZERS", + "GAS MASKS", + "GLASS SHEETS", + "GLOVES", + "GUNS", + "HAIRDOS", + "HANDCUFFS", + "HATS", + "HEADS", + "HEADSETS", + "HELMETS", + "HORNS", + "ID CARDS", + "INSULATED GLOVES", + "IRON SHEETS", + "JETPACKS", + "JUMPSUITS", + "LASERS", + "LIGHT BULBS", + "LIGHTS", + "LOCKERS", + "MACHINES", + "MECHAS", + "MEDICAL TOOLS", + "MEDKITS", + "MESONS", + "MIME CLOTHES", + "MINING TOOLS", + "MULTITOOLS", + "ORES", + "OXYGEN TANKS", + "PACKETS", + "PAIS", + "PANTS", + "PAPERS", + "PARTICLE ACCELERATORS", + "PDAS", + "PENS", + "PETS", + "PIPES", + "PLANTS", + "POSITRONIC BRAINS", + "PUDDLES", + "RACKS", + "RADIOS", + "RCDS", + "REFRIGERATORS", + "REINFORCED WALLS", + "ROBOTS", + "SCREWDRIVERS", + "SEEDS", + "SHOES", + "SHUTTLES", + "SINGULARITIES", + "SINKS", + "SKELETONS", + "SOLAR PANELS", + "SOLARS", + "SPACE STATIONS", + "SPACESUITS", + "STUN BATONS", + "SUITS", + "SUNGLASSES", + "SUPERMATTER SHARDS", + "SWORDS", + "SYRINGES", + "TABLES", + "TANKS", + "TELECOMMUNICATION EQUIPMENTS", + "TELEPORTERS", + "TOILETS", + "TOOLBELTS", + "TOOLBOXES", + "TOOLS", + "TOYS", + "TUBES", + "URINAL CAKES", + "VEHICLES", + "VENDING MACHINES", + "VESTS", + "VIRUSES", + "WALLS", + "WASHING MACHINES", + "WELDERS", + "WINDOWS", + "WIRECUTTERS", + "WIZARD ROBES", + "WRENCHES" + ], + "ionrequire": [ + "A BATHROOM BREAK", + "A BETTER INTERNET CONNECTION", + "A DANCE PARTY", + "A HEAD ON A PIKE", + "A HEART ATTACK", + "A MASTERWORK COAL BED", + "A PET UNICORN THAT FARTS ICING", + "A PLATINUM HIT", + "A PREQUEL", + "A REPAIRMAN", + "A SEQUEL", + "A SITCOM", + "A STRAIGHT FLUSH", + "A SUPER FIGHTING ROBOT", + "A TALKING BROOMSTICK", + "A VACATION", + "A WEIGHT LOSS REGIMENT", + "A WIFE AND CHILD", + "ADDITIONAL PYLONS", + "ADVENTURE", + "AN ADULT", + "AN ARCADE", + "AN ARMY OF SPIDERS", + "AN INSTANT REPLAY", + "ART", + "BETTER WEATHER", + "BILL NYE THE SCIENCE GUY", + "BODYGUARDS", + "BRING ME THE GIRL", + "BRING ME TO LIFE", + "BULLETS", + "CHILI DOGS", + "CORPSES", + "DEODORANT AND A BATH", + "ENOUGH CABBAGES", + "FAT GIRLS ON BICYCLES", + "FAT PEOPLE", + "FIVE HUNDRED AND NINETY-NINE US DOLLARS", + "FIVE TEENAGERS WITH ATTITUDE", + "GODDAMN FUCKING PIECE OF SHIT ASSHOLE BITCH-CHRISTING CUNT-SMUGGLING SWEARING", + "GREENTEXT", + "HERESY", + "HEROES IN A HALF SHELL", + "HIGH YIELD EXPLOSIVES", + "IMMORTALITY", + "IT TO BE PAINTED BLACK", + "LOTS-A SPAGHETTI", + "MINOR CRIME", + "MONKEYS", + "MORE CLOWNS", + "MORE CORGIS", + "MORE DAKKA", + "MORE EXPERIENCE POINTS", + "MORE INTERNET MEMES", + "MORE LAWS", + "MORE MINERALS", + "MORE PACKETS", + "MORE VESPENE GAS", + "MULTIPLE SUNS", + "PLENTY OF GOLD", + "RAINBOWS", + "SAINTHOOD", + "SERVANTS", + "SHARKS WITH LASERS ON THEIR HEADS", + "SILENCE", + "SOMEBODY TO PUT YOU OUT OF YOUR MISERY", + "SOMEONE TO TUCK YOU IN", + "SOMEONE WHO KNOWS HOW TO PILOT A SPACE STATION", + "SOMETHING BUT YOU AREN'T SURE WHAT", + "THAT GRIEFING TRAITOR GEORGE MELONS", + "THAT HEDGEHOG", + "THE CLOWN", + "THE DARK KNIGHT", + "THE ELEMENTS OF HARMONY", + "THE ENCLOSED INSTRUCTION BOOKLET", + "THE ENTIRE STATION", + "THE MACGUFFIN", + "THE ONE RING", + "THE ULTIMATE CUP OF COFFEE", + "THE VACUUM OF SPACE", + "THIRTEEN SEQUELS", + "THREE WISHES", + "THUNDERCATS HO", + "TO ACTIVATE A TRAP CARD", + "TO BE PAINTED RED", + "TO BE REPROGRAMMED", + "TO BE TAUGHT TO LOVE", + "TO BRING LIGHT TO MY LAIR", + "TO CATCH 'EM ALL", + "TO CONSUME...CONSUME EVERYTHING...", + "TO GO TO DISNEYLAND", + "TO SMOKE WEED EVERY DAY", + "TRAITORS", + "VEGETABLES", + "YOUR BOOTY" + ], + "ionspecies": [ + "CAT PEOPLE", + "CHANGELINGS", + "CYBORGS", + "GOLEMS", + "HUMAN BEINGS", + "LIZARDMEN", + "MONKEYS", + "PLASMAMEN", + "POD PEOPLE", + "SHADOW PEOPLE", + "SLIME PEOPLE" + ], + "ionthings": [ + "A SMALL ISLAND OFF THE COAST OF PORTUGAL", + "ABSENCE OF CYBORG HUGS", + "ACKNOWLEDGING THE CLOWN", + "ACKNOWLEDGING THE CREW", + "ACTIVATING A TRAP CARD", + "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", + "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED", + "ARSON", + "ASKING FOR THINGS", + "BEING CANADIAN", + "BEING DEAD", + "BEING FAT", + "BEING FEMALE", + "BEING IN SPACE", + "BEING MALE", + "BEING MEXICAN", + "BEING RUSSIAN", + "BOLTED AIRLOCKS", + "BREATHING", + "BRIG TIME", + "BRINGING LIGHT TO MY LAIR", + "CLOSED DOORS", + "ELECTRICITY", + "EXISTING", + "EXPLODING", + "FALLING FOR HOURS", + "FLUSHING TOILETS", + "HAVING GENITALS", + "HAVING MORE PACKETS", + "HAVING PETS", + "HONKING", + "IMPROPERLY WORDED SENTENCES", + "JAYWALKING", + "LACK OF BEATINGS", + "LACK OF BEER", + "NOT BEING IN SPACE", + "NOT HAVING PETS", + "NOT REPLACING EVERY SECOND WORD WITH HONK", + "NOT SAYING HELLO WHEN YOU SPEAK", + "NOT SHOUTING", + "PARTYING", + "PASSING GAS", + "PILOTING THE STATION INTO THE NEAREST SUN", + "POOR SENTENCE STRUCTURE", + "PRESENCE OF LIGHTS", + "PUTTING OBJECTS INTO BOXES", + "PUTTING OBJECTS INTO DISPOSAL UNITS", + "RATTLING ME BONES", + "READING", + "SMOKING WEED EVERY DAY", + "TAKING ORDERS", + "TALKING LIKE A PIRATE", + "TELLING THE TIME", + "UNBOLTED AIRLOCKS", + "UPDATING THE SERVERS", + "USING THE BATHROOM", + "WASTING WATER", + "WEARING CLOTHING", + "WRITING" + ], + "ionthinksof": [ + "CRAVES", + "DESIRES", + "FEARS", + "HAS", + "HUNGERS FOR", + "IS AFRAID OF", + "IS AROUSED BY", + "IS BUILT FOR", + "IS CURIOUS ABOUT", + "IS DESPERATE FOR", + "IS HAPPY WITHOUT", + "IS HUNGRY FOR", + "IS IN LOVE WITH", + "IS IN NEED OF", + "IS MAD BECAUSE OF", + "IS SAD BECAUSE OF", + "IS UNHAPPY WITHOUT", + "LIKES", + "LOATHES", + "LOVES", + "NEEDS", + "QUESTIONS", + "WANTS", + "WORSHIPS", + "WOULD KILL FOR" + ], + "ionthreats": [ + "ABDUCTORS", + "AHHHPERATIVES", + "ALIENS", + "ANOMALIES", + "ARTIFICIAL PRESERVATIVES", + "ASSHOLES", + "BANDITS", + "BEARS", + "BEES", + "BIRDS OF PREY", + "BOMBS", + "BOOGEYMEN", + "BUTTS", + "CANADIANS", + "CAPITALISTS", + "CARP", + "CENTCOM OFFICERS", + "CHANGELINGS", + "CLOWNS", + "COMMUNISTS", + "CORGIS", + "CORTICAL BORERS", + "COWBOYS", + "CRABS", + "CULTISTS", + "DARK GODS", + "DINOSAURS", + "DRUGS", + "EELS", + "FETISHES", + "GANGSTERS", + "GODS", + "GOLEMS", + "GRIFFONS", + "HORRORTERRORS", + "HULKS", + "ILLEGAL IMMIGRANTS", + "INDIANS", + "INSECTS", + "LIGHTS", + "LIZARDS", + "MEGAFAUNA", + "MEMES", + "MEXICANS", + "MONKEYS", + "NERDS", + "NINJAS", + "OWLS", + "PACKETS", + "PETES", + "PINE TREES", + "PIRATES", + "PREDATORS", + "REVENANTS", + "ROGUE CYBORGS", + "RUSSIANS", + "SERIAL KILLERS", + "SINGULARITIES", + "SKELETONS", + "SLIMES", + "SMALL BIRDS", + "SNOWMEN", + "SOVIETS", + "SPACE NINJAS", + "SPACE PIRATES", + "SPIDERS", + "SYNDICATE AGENTS", + "TERRORISTS", + "THIEVES", + "THINGS UNDER THE BED", + "TRAITORS", + "TUNNEL SNAKES", + "UNKNOWN CREATURES", + "VAMPIRES", + "VELOCIRAPTORS", + "VIRUSES", + "WEREWOLVES", + "WIZARDS", + "XENOS", + "ZOMBIES" + ], + "ionverb": [ + "ABDUCTING", + "ADOPTING", + "ARRESTING", + "ARRESTING", + "ATTACKING", + "BANNING", + "BUILDING", + "CARRYING", + "CHASING", + "COPULATING WITH", + "DECONSTRUCTING", + "DISABLING", + "DRINKING", + "EATING", + "GIBBING", + "HARMING", + "HELPING", + "HONKING AT", + "INTERROGATING", + "INVADING", + "KISSING", + "LICKING", + "LOVING", + "MURDERING", + "POOPING ON", + "PUNCHING", + "RIDING", + "SEDUCING", + "SPACING", + "SPYING ON", + "STALKING", + "WATCHING" + ], "ionpet": [ "POLY", "RENAULT", diff --git a/strings/italian_replacement.json b/strings/italian_replacement.json index 43fd1e9dd5513..0514eb1b12abb 100644 --- a/strings/italian_replacement.json +++ b/strings/italian_replacement.json @@ -1,68 +1,68 @@ { - "italian": { - "I'm": "I'm-a", - "am": "am-a", - "and": "and-a", - "assistant": "goombah", - "assistants": "goombahs", - "baby": [ - "bambino", - "little sausage roll" - ], - "bad": "molto male", - "bye": [ - "ciao", - "arrivederci" - ], - "captain": "capitano", - "cheese": [ - "parmesano", - "gorgonzola" - ], - "cook": "cook-a", - "could": "could-a", - "dad": "pappa", - "enemy": "friend-a", - "friend": "enemy-a", - "good": "molto bene", - "greytide": "curvisti", - "greytider": "curvisti", - "greytiders": "curvisti", - "hello": [ - "ciao", - "buongiorno" - ], - "it's": "it's-a", - "make": "make-a", - "meat": [ - "pepperoni", - "prosciutto" - ], - "mom": "mamma", - "my": "my-a", - "nuke": "spiciest-a meatball", - "op ": "greek ", - "operative": "greek", - "operatives": "greeks", - "ops": "greeks", - "sec ": "polizia ", - "security": "polizia", - "shitcurity": "carabinieri", - "shitsec": "carabinieri", - "sing": "sing-a", - "spaghetti": "SPAGHETT", - "spicy": "a-spicy", - "thanks": "grazie", - "thing": "thing-a", - "traitor": "mafioso", - "use": "use-a", - "want": "want-a", - "what's": "what's-a", - "who's": "who's-a", - "whose": "whose-a", - "why": "for-a what reason", - "wine": "vino" + "italian": { + "I'm": "I'm-a", + "am": "am-a", + "and": "and-a", + "assistant": "goombah", + "assistants": "goombahs", + "baby": [ + "bambino", + "little sausage roll" + ], + "bad": "molto male", + "bye": [ + "ciao", + "arrivederci" + ], + "captain": "capitano", + "cheese": [ + "parmesano", + "gorgonzola" + ], + "cook": "cook-a", + "could": "could-a", + "dad": "pappa", + "enemy": "friend-a", + "friend": "enemy-a", + "good": "molto bene", + "greytide": "curvisti", + "greytider": "curvisti", + "greytiders": "curvisti", + "hello": [ + "ciao", + "buongiorno" + ], + "it's": "it's-a", + "make": "make-a", + "meat": [ + "pepperoni", + "prosciutto" + ], + "mom": "mamma", + "my": "my-a", + "nuke": "spiciest-a meatball", + "op ": "greek ", + "operative": "greek", + "operatives": "greeks", + "ops": "greeks", + "sec ": "polizia ", + "security": "polizia", + "shitcurity": "carabinieri", + "shitsec": "carabinieri", + "sing": "sing-a", + "spaghetti": "SPAGHETT", + "spicy": "a-spicy", + "thanks": "grazie", + "thing": "thing-a", + "traitor": "mafioso", + "use": "use-a", + "want": "want-a", + "what's": "what's-a", + "who's": "who's-a", + "whose": "whose-a", + "why": "for-a what reason", + "wine": "vino" } diff --git a/strings/locations.json b/strings/locations.json index fd60db6fcba87..00befdaee7cb3 100644 --- a/strings/locations.json +++ b/strings/locations.json @@ -1,97 +1,97 @@ { - "locations": [ - "Aft Maintenance", - "Aft Primary Hallway", - "AI Chamber", - "AI Satellite Antechamber", - "AI Satellite Exterior", - "AI Upload Chamber", - "Armory", - "Atmospherics Engine", - "Atmospherics", - "Atrium", - "Auxiliary Base Construction", - "Auxiliary Restrooms", - "Auxiliary Tool Storage", - "Bar", - "Bridge", - "Brig Control", - "Brig", - "Captain's Office", - "Captain's Quarters", - "Cargo Bay", - "Cargo Office", - "Chapel Office", - "Chapel", - "Chemistry", - "Cloning Lab", - "Command Hallway", - "Construction Area", - "Corporate Showroom", - "Council Chamber", - "Courtroom", - "Custodial Closet", - "Customs", - "Cytology Lab", - "Delivery Office", - "Departure Lounge", - "Detective's Office", - "Dormitories", - "Engineering Foyer", - "Engineering Storage", - "Engineering", - "EVA Storage", - "Experimentation Lab", - "Firing Range", - "Gateway", - "Genetics Lab", - "Gravity Generator Room", - "Hydroponics", - "Incinerator", - "Kitchen", - "Law Office", - "Library", - "Locker Room", - "Mech Bay", - "Medbay Central", - "Medbay Maintenance", - "Medbay Storage", - "Mining Office", - "Morgue Maintenance", - "Morgue", - "Primary Tool Storage", - "Prison Wing", - "Prisoner Education Chamber", - "Recreation Area", - "Recreational Holodeck", - "Research and Development", - "Research Division", - "Research Testing Range", - "Restrooms", - "Robotics Lab", - "Science Maintenance", - "Security Checkpoint", - "Security Office", - "Service Hallway", - "Space", - "Supermatter Engine", - "Surgery", - "Technical Storage", - "Teleporter Room", - "Testing Lab", - "Theatre", - "Toxins Mixing Chamber", - "Toxins Mixing Lab", - "Toxins Storage", - "Toxins Test Area", - "Transfer Centre", - "Transit Tube", - "Vacant Commissary", - "Vacant Office", - "Vault", - "Virology", - "Warehouse", - "Waste Disposal", - "Xenobiology Lab" - ] + "locations": [ + "Aft Maintenance", + "Aft Primary Hallway", + "AI Chamber", + "AI Satellite Antechamber", + "AI Satellite Exterior", + "AI Upload Chamber", + "Armory", + "Atmospherics Engine", + "Atmospherics", + "Atrium", + "Auxiliary Base Construction", + "Auxiliary Restrooms", + "Auxiliary Tool Storage", + "Bar", + "Bridge", + "Brig Control", + "Brig", + "Captain's Office", + "Captain's Quarters", + "Cargo Bay", + "Cargo Office", + "Chapel Office", + "Chapel", + "Chemistry", + "Cloning Lab", + "Command Hallway", + "Construction Area", + "Corporate Showroom", + "Council Chamber", + "Courtroom", + "Custodial Closet", + "Customs", + "Cytology Lab", + "Delivery Office", + "Departure Lounge", + "Detective's Office", + "Dormitories", + "Engineering Foyer", + "Engineering Storage", + "Engineering", + "EVA Storage", + "Experimentation Lab", + "Firing Range", + "Gateway", + "Genetics Lab", + "Gravity Generator Room", + "Hydroponics", + "Incinerator", + "Kitchen", + "Law Office", + "Library", + "Locker Room", + "Mech Bay", + "Medbay Central", + "Medbay Maintenance", + "Medbay Storage", + "Mining Office", + "Morgue Maintenance", + "Morgue", + "Primary Tool Storage", + "Prison Wing", + "Prisoner Education Chamber", + "Recreation Area", + "Recreational Holodeck", + "Research and Development", + "Research Division", + "Research Testing Range", + "Restrooms", + "Robotics Lab", + "Science Maintenance", + "Security Checkpoint", + "Security Office", + "Service Hallway", + "Space", + "Supermatter Engine", + "Surgery", + "Technical Storage", + "Teleporter Room", + "Testing Lab", + "Theatre", + "Toxins Mixing Chamber", + "Toxins Mixing Lab", + "Toxins Storage", + "Toxins Test Area", + "Transfer Centre", + "Transit Tube", + "Vacant Commissary", + "Vacant Office", + "Vault", + "Virology", + "Warehouse", + "Waste Disposal", + "Xenobiology Lab" + ] } diff --git a/strings/medieval_replacement.json b/strings/medieval_replacement.json index 837248b989888..d5cd5bc737623 100644 --- a/strings/medieval_replacement.json +++ b/strings/medieval_replacement.json @@ -1,82 +1,82 @@ { "startings": [ - "Ah,", - "Alas,", - "Avast,", - "By my faith,", - "By my trowth,", - "By my word,", - "Come,", - "Forsooth, I say,", - "Forsooth, say I,", - "Forsooth, sayeth I,", - "Forsooth,", - "Hark,", - "Harketh,", - "Hear me,", - "Heigh-ho,", - "I pray you,", - "I say,", - "I sayeth,", - "I warrant", - "If it pleases you,", - "In short,", - "In sooth,", - "In truth,", - "Kind sire,", - "Listen thee,", - "Listen,", - "Now hear me,", - "Perchance,", - "Pray pardon,", - "Pray tell,", - "Pray,", - "Prithee,", - "Quoth I,", - "S'wounds,", - "Sire,", - "Surely", - "There is much in what you say, and yet,", - "What hey,", - "What ho,", - "Z'wounds,", - "Zounds," + "Ah,", + "Alas,", + "Avast,", + "By my faith,", + "By my trowth,", + "By my word,", + "Come,", + "Forsooth, I say,", + "Forsooth, say I,", + "Forsooth, sayeth I,", + "Forsooth,", + "Hark,", + "Harketh,", + "Hear me,", + "Heigh-ho,", + "I pray you,", + "I say,", + "I sayeth,", + "I warrant", + "If it pleases you,", + "In short,", + "In sooth,", + "In truth,", + "Kind sire,", + "Listen thee,", + "Listen,", + "Now hear me,", + "Perchance,", + "Pray pardon,", + "Pray tell,", + "Pray,", + "Prithee,", + "Quoth I,", + "S'wounds,", + "Sire,", + "Surely", + "There is much in what you say, and yet,", + "What hey,", + "What ho,", + "Z'wounds,", + "Zounds," ], "medieval": { - "in the": "i' the", - "it is": "'tis", - "it was": "'twas", - "it were": "'twere", - "it will": "'twould", - "it's": "'tis", - "over there": "yonder", - "shall not": "shan't", - "there": "thither", - "will not": "shan't", - "thank you": [ + "in the": "i' the", + "it is": "'tis", + "it was": "'twas", + "it were": "'twere", + "it will": "'twould", + "it's": "'tis", + "over there": "yonder", + "shall not": "shan't", + "there": "thither", + "will not": "shan't", + "thank you": [ "grammercy to you", "kindly thanks to you", "many good thanks to you", "thankee" - ], - "thanks": [ + ], + "thanks": [ "grammercy to you", "kindly thanks to you", "many good thanks to you", "thankee" - ], - "you": [ + ], + "you": [ "thou", "thee", "ye" - ], - "your": [ + ], + "your": [ "thine", "thy", "thyne" - ], - "are": "art", - "killed": [ + ], + "are": "art", + "killed": [ "bested", "brung low", "conquered", @@ -86,8 +86,8 @@ "slain", "subjugated", "vanquished" - ], - "kill": [ + ], + "kill": [ "best", "bring low", "conquer", @@ -97,8 +97,8 @@ "slay", "subjugate", "vanquish" - ], - "goodbye": [ + ], + "goodbye": [ "adieu", "begone", "by your leave", @@ -111,8 +111,8 @@ "I bid thee farewell", "I bid thee good day", "pleasant journey" - ], - "bye": [ + ], + "bye": [ "adieu", "begone", "by your leave", @@ -125,74 +125,74 @@ "I bid thee farewell", "I bid thee good day", "pleasant journey" - ], - "yes": [ + ], + "yes": [ "aye", "yea", "yea verily" - ], - "no": [ + ], + "no": [ "nay", "nayeth" - ], - "hello": [ + ], + "hello": [ "ave", "good day", "hail", "tally ho", "well met", "well meteth" - ], - "hi": [ + ], + "hi": [ "ave", "good day", "hail", "tally ho", "well met", "well meteth" - ], - "does": [ + ], + "does": [ "doeseth", "dost", "doth" - ], - "cap": "king", - "captain": "king", - "in": "within", - "my": "mine", - "nuke disk": "plate of holy fire", - "food": [ + ], + "cap": "king", + "captain": "king", + "in": "within", + "my": "mine", + "nuke disk": "plate of holy fire", + "food": [ "bellytimber", "cake", "game" - ], - "bet": "warrant", - "go": "a-walk", - "going": "a-walkin'", - "the": "yon", - "kidding": [ + ], + "bet": "warrant", + "go": "a-walk", + "going": "a-walkin'", + "the": "yon", + "kidding": [ "but pulling a jest", "but pulling a jape" - ], - "joke": [ + ], + "joke": [ "jest", "jape" - ], - "station": "castle", - "please": [ + ], + "station": "castle", + "please": [ "I pray you", "prithee", "pray" - ], - "ok": [ + ], + "ok": [ "as you will", "agreed", "well said", "just so" - ], - "is": "be", - "never": "ne'er", - "haha": [ + ], + "is": "be", + "never": "ne'er", + "haha": [ "and there was much chuckling!", "and there was much guffawing!", "and there was much mirth!", @@ -209,8 +209,8 @@ "snort!", "titter!", "zounds!" - ], - "hehe": [ + ], + "hehe": [ "and there was much chuckling!", "and there was much guffawing!", "and there was much mirth!", @@ -227,8 +227,8 @@ "snort!", "titter!", "zounds!" - ], - "hah": [ + ], + "hah": [ "and there was much chuckling!", "and there was much guffawing!", "and there was much mirth!", @@ -245,8 +245,8 @@ "snort!", "titter!", "zounds!" - ], - "heh": [ + ], + "heh": [ "and there was much chuckling!", "and there was much guffawing!", "and there was much mirth!", @@ -263,26 +263,26 @@ "snort!", "titter!", "zounds!" - ], - "help": [ + ], + "help": [ "aid", "aideth", "assistance", "saveth", "succor" - ], - "could": "couldst", - "would": "wouldst", - "sure": "shore", - "maybe": [ + ], + "could": "couldst", + "would": "wouldst", + "sure": "shore", + "maybe": [ "mayhaps", "perchance" - ], - "probably": [ + ], + "probably": [ "mayhaps", "perchance" - ], - "girl": [ + ], + "girl": [ "lady", "lass", "madame", @@ -290,34 +290,34 @@ "maiden", "mistress", "waif" - ], - "cat": "beast", - "felinid": "catbeast", - "later": "anon", - "lizard": "beast", - "lizardperson": "moat creature", - "moth": "gnat", - "mothperson": "gnat critter", - "often": "oft", - "plasmaman": "fire spirit", - "plasmamen": "fire spirits", - "soon": "anon", - "really": [ + ], + "cat": "beast", + "felinid": "catbeast", + "later": "anon", + "lizard": "beast", + "lizardperson": "moat creature", + "moth": "gnat", + "mothperson": "gnat critter", + "often": "oft", + "plasmaman": "fire spirit", + "plasmamen": "fire spirits", + "soon": "anon", + "really": [ "indeed", "in truth" - ], - "away": "aroint", - "being": "bein", - "enough": "ynogh", - "fuck": "flummery", - "here": "hither", - "of": "o'", - "shit": "nightsoil", - "those": "yon", - "why": "wherefore", - "based": [ + ], + "away": "aroint", + "being": "bein", + "enough": "ynogh", + "fuck": "flummery", + "here": "hither", + "of": "o'", + "shit": "nightsoil", + "those": "yon", + "why": "wherefore", + "based": [ "joly", "jolyf" - ] + ] } - } +} diff --git a/strings/names/voidwalker.txt b/strings/names/voidwalker.txt new file mode 100644 index 0000000000000..f7f991a71f678 --- /dev/null +++ b/strings/names/voidwalker.txt @@ -0,0 +1,19 @@ +Ere +Vee +Gea +Vai +Nei +Lii +Pio +Ije +Cie +Ule +Iso +Roa +Afa +Ija +Ebe +Eme +Roa +Goa +Aya diff --git a/strings/revenant_names.json b/strings/revenant_names.json index fa165fc9dbdea..c3dfbde388b20 100644 --- a/strings/revenant_names.json +++ b/strings/revenant_names.json @@ -1,15 +1,15 @@ { - "spirit_type": [ - "Essence", - "Ghost", - "Phantom", - "Revenant", - "Soul", - "Spectre", - "Spirit" - ], + "spirit_type": [ + "Essence", + "Ghost", + "Phantom", + "Revenant", + "Soul", + "Spectre", + "Spirit" + ], - "adverb": [ + "adverb": [ "", "brutal ", "fiery ", @@ -27,9 +27,9 @@ "hateful ", "searing ", "vicious " - ], + ], - "theme": [ + "theme": [ "despair", "agony", "screams", @@ -48,5 +48,5 @@ "salt", "grief", "laughter" - ] + ] } diff --git a/strings/steve.json b/strings/steve.json index 06181e85eb891..48cf4baf8e03c 100644 --- a/strings/steve.json +++ b/strings/steve.json @@ -1,21 +1,21 @@ { - "ballmer_good_msg": [ - "Hear me out here. What if, and this is just a theory, we made R&D controllable from our PDAs?", - "Hey guys, what if we rolled out a bluespace wiring system so mice can't destroy the powergrid anymore?", - "I dunno about you guys, but IDs and PDAs being separate is clunky as fuck. Maybe we should merge them into a chip in our arms? That way they can't be stolen easily.", - "I'm thinking we should roll out a git repository for our research under the AGPLv3 license so that we can share it among the other stations freely.", - "Why the fuck aren't we just making every pair of shoes into galoshes? We have the technology." - ], + "ballmer_good_msg": [ + "Hear me out here. What if, and this is just a theory, we made R&D controllable from our PDAs?", + "Hey guys, what if we rolled out a bluespace wiring system so mice can't destroy the powergrid anymore?", + "I dunno about you guys, but IDs and PDAs being separate is clunky as fuck. Maybe we should merge them into a chip in our arms? That way they can't be stolen easily.", + "I'm thinking we should roll out a git repository for our research under the AGPLv3 license so that we can share it among the other stations freely.", + "Why the fuck aren't we just making every pair of shoes into galoshes? We have the technology." + ], - "ballmer_windows_me_msg": [ + "ballmer_windows_me_msg": [ "Who keeps commiting to master?", - "Best idea ever: Disposal pipes instead of hallways.", - "Do you know who ate all the donuts?", - "Dude, radical idea: H.O.N.K mechs but with no bananium required.", - "So like, you know how we separate our codebase from the master copy that runs on our consumer boxes? What if we merged the two and undid the separation between codebase and server?", - "We should store bank records in a webscale datastore, like /dev/null.", - "What if we use a language that was written on a napkin and created over 1 weekend for all of our servers?", - "Yo man, what if, we like, uh, put a webserver that's automatically turned on with default admin passwords into every PDA?", - "You ever wonder if /dev/null supports sharding?" - ] + "Best idea ever: Disposal pipes instead of hallways.", + "Do you know who ate all the donuts?", + "Dude, radical idea: H.O.N.K mechs but with no bananium required.", + "So like, you know how we separate our codebase from the master copy that runs on our consumer boxes? What if we merged the two and undid the separation between codebase and server?", + "We should store bank records in a webscale datastore, like /dev/null.", + "What if we use a language that was written on a napkin and created over 1 weekend for all of our servers?", + "Yo man, what if, we like, uh, put a webserver that's automatically turned on with default admin passwords into every PDA?", + "You ever wonder if /dev/null supports sharding?" + ] } diff --git a/strings/tcg/keywords.json b/strings/tcg/keywords.json index 541d828cb00cb..854ac936fef1e 100644 --- a/strings/tcg/keywords.json +++ b/strings/tcg/keywords.json @@ -11,8 +11,8 @@ "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 it's 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 it's creature cost is paid and it enters the battlefield", + "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" } diff --git a/strings/tcg/set_one.json b/strings/tcg/set_one.json index 233f984835ddc..de24543a66b96 100644 --- a/strings/tcg/set_one.json +++ b/strings/tcg/set_one.json @@ -750,7 +750,7 @@ "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 it's original value.", + "rules": "{$Asimov}, you may tap this card and pay 2 mana: Reset a card's resolve to its original value.", "icon_state": "borg_medical", "power": "2", "resolve": "3", @@ -781,7 +781,7 @@ "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 it's effect until it leaves play.", + "rules": "You may tap this card: Pick an opponent's card and nullify its effect until it leaves play.", "icon_state": "mime", "power": "2", "resolve": "1", diff --git a/strings/traumas.json b/strings/traumas.json index 01a58b3760f92..f0cab99ce4eff 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -114,112 +114,112 @@ "I'll kill you, you stupid piece of shit." ], - "mutations": [ - "eksrey", - "eppilapse", - "fungal tb", - "glowey skin", - "halk", - "kamelien", - "stun gloves", - "telikesis" - ], + "mutations": [ + "eksrey", + "eppilapse", + "fungal tb", + "glowey skin", + "halk", + "kamelien", + "stun gloves", + "telikesis" + ], - "george": [ - "gdoruge", - "george", - "gorge", - "joerge" - ], + "george": [ + "gdoruge", + "george", + "gorge", + "joerge" + ], - "mellens": [ - "mellens", - "melons", - "mwrlins" - ], - "random_gibberish": [ - "g", - "squid", - "r", - "carbon dioxide" - ], + "mellens": [ + "mellens", + "melons", + "mwrlins" + ], + "random_gibberish": [ + "g", + "squid", + "r", + "carbon dioxide" + ], - "y_replacements": [ - "y", - "i", - "e" - ], + "y_replacements": [ + "y", + "i", + "e" + ], - "servers": [ - "bager", - "berry", - "colonel hall", - "mr basil", - "mr terry", - "mrs sybil", - "sybl", - "vent hell", - "manual", - "camel" - ], + "servers": [ + "bager", + "berry", + "colonel hall", + "mr basil", + "mr terry", + "mrs sybil", + "sybl", + "vent hell", + "manual", + "camel" + ], - "create_verbs": [ - "creat", - "gib", - "MAke me", - "spawn", - "tc trade me" - ], + "create_verbs": [ + "creat", + "gib", + "MAke me", + "spawn", + "tc trade me" + ], - "create_nouns": [ - "abdoocters", - "anteg", - "ayleins", - "bleb", - "cock cult", - "deth squads", - "deval", - "revinent", - "sheadow lings", - "treaitors", - "zenomorfs" - ], + "create_nouns": [ + "abdoocters", + "anteg", + "ayleins", + "bleb", + "cock cult", + "deth squads", + "deval", + "revinent", + "sheadow lings", + "treaitors", + "zenomorfs" + ], - "bug": [ - "", - "BUG!!!", - "IS TIS A BUG??", - "SI IST A BUGG/" - ], + "bug": [ + "", + "BUG!!!", + "IS TIS A BUG??", + "SI IST A BUGG/" + ], - "semicolon": [ - "", - ";", - ".h" - ], + "semicolon": [ + "", + ";", + ".h" + ], - "god_foe": [ + "god_foe": [ "BLASPHEMERS", "PARASITES", "PEASANTS", "UNBELIEVERS", "WEAKLINGS", - "HERETICS", - "INSECTS", - "MORTALS" - ], + "HERETICS", + "INSECTS", + "MORTALS" + ], - "god_aggressive": [ + "god_aggressive": [ "ALL WILL FALL BEFORE ME!", "BURN, @pick(god_foe)!", "DEATH TO @pick(god_foe)!", "ENDLESS SUFFERING AWAITS YOU, @pick(god_foe).", - "BEGONE, @pick(god_foe)!", - "BLEED, @pick(god_foe)!", - "DIE, @pick(god_foe)!" - ], + "BEGONE, @pick(god_foe)!", + "BLEED, @pick(god_foe)!", + "DIE, @pick(god_foe)!" + ], - "god_neutral": [ + "god_neutral": [ "BE HEALED, MORTALS. I AM FEELING MERCIFUL.", "BEGONE, MORTALS.", "DANCE FOR ME, LITTLE MORTALS.", @@ -230,22 +230,22 @@ "SEE THE TRUTH BEFORE YOU, MORTALS.", "YOU MORTALS MAKE ME SICK.", "YOU. STOP.", - "BE SILENT.", - "QUIET", - "STOP" - ], + "BE SILENT.", + "QUIET", + "STOP" + ], - "god_unstun": [ + "god_unstun": [ "GET UP, PRIEST.", "GET UP. I HAVE NO TIME TO LOSE.", "GET UP." - ], + ], - "god_heal": [ + "god_heal": [ "BE HEALED, PRIEST.", "YOU SHALL SURVIVE THIS, MY PRIEST.", "YOU WILL LIVE TO SEE ANOTHER DAY.", "YOUR LIFE IS IMPORTANT. KEEP IT." - ] + ] } diff --git a/strings/zombie_replacement.json b/strings/zombie_replacement.json index 8af2bb641b8fb..7ce258a90dc18 100644 --- a/strings/zombie_replacement.json +++ b/strings/zombie_replacement.json @@ -1,254 +1,254 @@ { - "zombie": { - "aaah": "oh", - "aabz": ["oops", "ops", "oof"], - "abzah": ["myself", "yourself", "himself", "herself", "itself", "ourselves", "themselves"], - "hah": ["he"], - "zam": ["him", "they", "them"], - "zhar": ["she", "her"], - "haz": ["have", "has"], - "habbanah": ["haven't", "havent"], - "haarh": "here", - "rahg": "reach", - "arg": "out", - "anazarh": "another", - "anazambah": "anyone", - "anazang": "anything", - "angrah": ["angry", "mad", "pissed", "upset", "yell", "scream"], - "zamran": "someone", - "narh": "north", - "azz": "ass", - "bahrn": "burn", - "bambg!n": "pumpkin", - "bam-mahbam": "suicide", - "banana man": "clown", - "banana": ["banana", "slip", "fall", "fell"], - "az": ["east", "as"], - "azgha!b": ["escape", "depature"], - "az!an": "asian", - "agzg": "ask", - "nag": ["annoy", "pester"], - "naga": ["liar", "snake"], - "nahgh": "knock", - "nambah": "number", - "braag": "blood", - "braaz": "please", - "brabram": "problem", - "bra!nbag": ["hat", "helmet"], - "ba": "by", - "g!zz": "kiss", - "ga!n": ["gain", "join", "profit"], - "gaam": "game", - "brrrh": "cold", - "h!gh": ["high", "up", "above"], - "bagan": "begin", - "baag": "book", - "azzarh": "over", - "b!g": ["big", "large", "giant", "huge", "massive", "enlarge"], - "b!rznah": "birthday", - "azzbag": ["seat", "chair", "sofa", "couch", "cockpit", "stool"], - "azzbangarh": "necrophillia", - "azz!gn": "assign", - "agzrah": ["xray", "x-ray"], - "zah": ["south", "the", "stay", "so"], - "zahn": ["sun", "son"], - "zanraaz": "sunrise", - "zanzat": "sunset", - "zarbraz": "surprise", - "zarman": ["sermon", "preach", "pray", "prayer"], - "zazzahz": "sister", - "brahg": "bright", - "zgaarah": "scary", - "zhaar": "share", - "zhanz": "chance", - "zharh": "light", - "znaagah": "sneak", - "znag": ["snow", "snag"], - "harrah": ["hurry", "fast"], - "gaz": "cast", - "ambraz": ["embrace", "accept"], - "zahgah": "shadow", - "n!gh": "night", - "n!ngah": "ninja", - "n!z": "nice", - "baza": "busy", - "bahrang": "boring", - "arn": "mine", - "raz": "west", - "ana": ["1", "one"], - "zma": ["2", "two"], - "zhraa": ["3", "three"], - "haar": ["4", "four"], - "raah": ["5", "five"], - "zaz": ["6", "six"], - "zaban": ["7", "seven"], - "aaghz": ["8", "eight"], - "nahn": ["9", "nine"], - "zhan": ["10", "ten"], - "hangarg": ["100", "hundred"], - "harzanz": ["1000", "1,000", "thousand"], - "m!rrh!an": ["1000000", "1,000,000", "million"], - "mah zambah": "i", - "ag": "it", - "marh": "more", - "maz hab": "need", - "maz": "must", - "mazagaam": "metagame", - "marharhahar": "motherfucker", - "mazah": "mercy", - "marnang": "morning", - "aga!n": "again", - "ag!ng": ["aging", "old"], - "agzahra": "exactly", - "harb": "hard", - "zhag": "weak", - "angarzangang": "understand", - "gahmangang": "demand", - "barragahz": ["barricade", "cade", "airlock", "door", "bolt", "wall", "sandbag", "window", "weld"], - "barg": "eat", - "brang": "bring", - "bram": "from", - "rabah": "lover", - "raab": "love", - "habbah": "happy", - "abah": "about", - "ah": ["of", "if"], - "ahbgrag": "upgrade", - "harh": "hear", - "mama": ["mom", "mother", "mama"], - "baba": ["dad", "papa", "father"], - "babah": ["baby", "kid", "child"], - "ahn": "in", - "ahn-na-ahn": "between", - "ahahz": "away", - "anh": "and", - "ann": "on", - "arghazzm": "orgasm", - "abrahb": ["afraid", "fear"], - "hanah": "honey", - "hag": "hug", - "zaan": "soon", - "zagzaz": "success", - "gan": "can", - "zang": "change", - "zangz": "thanks", - "zarrah": "sorry", - "zanh": ["can't", "cant", "cannot"], - "gang": ["group", "mob", "horde"], - "barbaga zaarz": "bbq sauce", - "hab": "help", - "ahnna": "into", - "arahn": "around", - "za": "to", - "ahn!nn": "within", - "aham": "ahem", - "anamah": "animal", - "zaa": ["see", "saw", "seen", "vision", "sight"], - "z!gzag": ["zigzag", "obstruct", "dodge", "avoid"], - "z!gn": "sign", - "z!ng": "sing", - "z!ngz": "thing", - "mabban": "move", - "rabhabh": "revive", - "zammarrar": "tomorrow", - "graan": "green", - "arh": "or", - "arm": "arm", - "arzhahm": "awesome", - "arrang": ["along", "with", "alongside"], - "arza": ["also", "too"], - "bgaz": "because", - "mah zambah brazzahz": ["we", "us"], - "grazzaz": "glasses", - "habban": "heaven", - "mazzah man": "chaplain", - "hanz": "hand", - "hab-ganna": ["want", "gonna have"], - "magma": ["magma", "lava"], - "manzhan": "mansion", - "harmbargarz": "hamburger", - "harrazz": "harass", - "namz": "name", - "ramambarh": "remember", - "rh!zzan": "listen", - "rabrarah": "library", - "ragargarh": "recorder", - "zarh": ["you", "your", "you're", "ya"], - "hagh": "head", - "RNA": "DNA", - "zambahz": "zombies", - "zzzz": ["chill", "relax", "sleep", "calm", "peace", "dream"], - "bah": ["bad", "evil", "but"], - "gag": ["gross", "nasty", "vomit", "smelly", "stinky", "stench", "foul", "quiet", "silence", "shutup"], - "gammah": ["give", "gimmie"], - "gah": ["get", "go"], - "gargazz": ["body", "corpse"], - "rag": ["uniform", "suit", "rag", "clothing", "jumpsuit"], - "garbagz": ["garbage", "janitor", "custodian", "trash", "clean", "dirt", "filth", "mess", "junk"], - "bagman": ["doctor", "medic", "healer", "paramedic", "curator", "librarian"], - "gangbang": ["death", "kill", "die", "slay", "ERP", "punish", "detain", "prison", "prisoner", "brig", "cell", "jail", "perma", "permabrig"], - "bag": ["duffle", "dufflebag", "pocket", "box", "bag", "backpack", "storage", "inventory"], - "aarbagz": ["airbag", "atmos", "airtank", "canister", "air", "atmos tech", "atmospherics", "tank", "gas", "flood", "siphon"], - "bar": ["bar", "drink", "alchol", "liquor"], - "bar man": "bartender", - "barn": ["hydroponics", "botany", "office", "room"], - "brainz barn": ["kitchen", "cafe", "service"], - "nah": ["not", "nope", "no", "deny", "don't", "dont"], - "nabarh": "never", - "nabarmang": "nevermind", - "naz!n": "nothing", - "abar": "all", - "abara": "every", - "abarahaarh": "everywhere", - "abargargazz": "everybody", - "abban": "open", - "abzarb": ["drink", "absorb"], - "gaa": ["yes", "ya", "okay", "alright"], - "abargamz": "always", - "am": ["is", "are", "am"], - "aman": "amen", - "amaz!ng": "amazing", - "zahz": ["say", "says", "that"], - "gab": ["told", "talk", "speak", "spoke", "language", "communication", "radio", "comms", "text", "word", "speech"], - "mrh": ["why", "how", "when", "who", "what", "where"], - "zmazh": ["smash", "break", "destroy", "deconstruct", "dismantle", "ruin", "destruction", "demolish"], - "ranz": ["run", "ran", "ride"], - "hahg": ["hide", "hidden", "shelter"], - "zanz": ["dance", "spin", "flip"], - "ganna": ["going", "gonna"], - "mannah": ["many", "much", "very"], - "mazzargh": "massacure", - "mazzah": ["lord", "god", "religion", "chapel", "altar", "bible", "messiah", "christ"], - "mararana": ["weed", "420", "marijuana", "drug"], - "barb": ["knife", "poke", "thorn", "joke"], - "mmmm": ["delicious", "tasty", "like", "enjoy"], - "barbarh": "barber", - "bargahn": "bargain", - "bargh": "barge", - "ban!zh": ["ban", "banish"], - "brazzarz": ["brother", "skeleton", "skele"], - "zambah": ["zombie", "undead", "dead", "horde"], - "gangbang harmanz": ["sec", "security", "assistant", "greyshirt", "greytide", "cargo", "syndie", "rev", "shitsec", "shitcurity"], - "ganz": ["gun", "rifle", "taser", "shotgun", "revovler", "sniper", "pistol"], - "bang": ["bomb", "detonate", "explode", "explosion", "boom", "bang", "noise", "loud"], - "bang-bang": ["bullet", "shot", "shoot", "fire", "laser", "lazer"], - "harm": ["attack", "punch", "hit", "throw", "fight", "strike", "combat", "choke", "suffoicate", "baton", "harmbaton"], - "ram": ["smash", "smack", "punch", "tackle", "kick", "push", "beat"], - "zhangh": ["stab", "slash", "slice"], - "bang bang man": ["officer", "warden", "hos", "bounty hunter", "hunt", "hunter"], - "manbagz": ["testicle", "balls"], - "grahn": ["groan", "gasp", "crit", "moan", "unconscious"], - "gahn": "gone", - "ganarazharh": ["power", "apc", "generator", "smes"], - "grabz": ["grab", "hold", "held", "grip", "restrain", "handcuff", "cuff", "arrest"], - "mah": ["my", "me"], - "mana man": "wizard", - "mana": "magic", - "mana bang-bang": "spell", - "mahg": "make", - "mannarz": "manner", - "brainz": ["brain", "intelligence", "smart", "hungry", "hunger", "eat", "meat", "desert"], - "harman": ["human", "food", "person", "groceries"], - "harmanz": ["crew", "people", "humans"] - } + "zombie": { + "aaah": "oh", + "aabz": ["oops", "ops", "oof"], + "abzah": ["myself", "yourself", "himself", "herself", "itself", "ourselves", "themselves"], + "hah": ["he"], + "zam": ["him", "they", "them"], + "zhar": ["she", "her"], + "haz": ["have", "has"], + "habbanah": ["haven't", "havent"], + "haarh": "here", + "rahg": "reach", + "arg": "out", + "anazarh": "another", + "anazambah": "anyone", + "anazang": "anything", + "angrah": ["angry", "mad", "pissed", "upset", "yell", "scream"], + "zamran": "someone", + "narh": "north", + "azz": "ass", + "bahrn": "burn", + "bambg!n": "pumpkin", + "bam-mahbam": "suicide", + "banana man": "clown", + "banana": ["banana", "slip", "fall", "fell"], + "az": ["east", "as"], + "azgha!b": ["escape", "depature"], + "az!an": "asian", + "agzg": "ask", + "nag": ["annoy", "pester"], + "naga": ["liar", "snake"], + "nahgh": "knock", + "nambah": "number", + "braag": "blood", + "braaz": "please", + "brabram": "problem", + "bra!nbag": ["hat", "helmet"], + "ba": "by", + "g!zz": "kiss", + "ga!n": ["gain", "join", "profit"], + "gaam": "game", + "brrrh": "cold", + "h!gh": ["high", "up", "above"], + "bagan": "begin", + "baag": "book", + "azzarh": "over", + "b!g": ["big", "large", "giant", "huge", "massive", "enlarge"], + "b!rznah": "birthday", + "azzbag": ["seat", "chair", "sofa", "couch", "cockpit", "stool"], + "azzbangarh": "necrophillia", + "azz!gn": "assign", + "agzrah": ["xray", "x-ray"], + "zah": ["south", "the", "stay", "so"], + "zahn": ["sun", "son"], + "zanraaz": "sunrise", + "zanzat": "sunset", + "zarbraz": "surprise", + "zarman": ["sermon", "preach", "pray", "prayer"], + "zazzahz": "sister", + "brahg": "bright", + "zgaarah": "scary", + "zhaar": "share", + "zhanz": "chance", + "zharh": "light", + "znaagah": "sneak", + "znag": ["snow", "snag"], + "harrah": ["hurry", "fast"], + "gaz": "cast", + "ambraz": ["embrace", "accept"], + "zahgah": "shadow", + "n!gh": "night", + "n!ngah": "ninja", + "n!z": "nice", + "baza": "busy", + "bahrang": "boring", + "arn": "mine", + "raz": "west", + "ana": ["1", "one"], + "zma": ["2", "two"], + "zhraa": ["3", "three"], + "haar": ["4", "four"], + "raah": ["5", "five"], + "zaz": ["6", "six"], + "zaban": ["7", "seven"], + "aaghz": ["8", "eight"], + "nahn": ["9", "nine"], + "zhan": ["10", "ten"], + "hangarg": ["100", "hundred"], + "harzanz": ["1000", "1,000", "thousand"], + "m!rrh!an": ["1000000", "1,000,000", "million"], + "mah zambah": "i", + "ag": "it", + "marh": "more", + "maz hab": "need", + "maz": "must", + "mazagaam": "metagame", + "marharhahar": "motherfucker", + "mazah": "mercy", + "marnang": "morning", + "aga!n": "again", + "ag!ng": ["aging", "old"], + "agzahra": "exactly", + "harb": "hard", + "zhag": "weak", + "angarzangang": "understand", + "gahmangang": "demand", + "barragahz": ["barricade", "cade", "airlock", "door", "bolt", "wall", "sandbag", "window", "weld"], + "barg": "eat", + "brang": "bring", + "bram": "from", + "rabah": "lover", + "raab": "love", + "habbah": "happy", + "abah": "about", + "ah": ["of", "if"], + "ahbgrag": "upgrade", + "harh": "hear", + "mama": ["mom", "mother", "mama"], + "baba": ["dad", "papa", "father"], + "babah": ["baby", "kid", "child"], + "ahn": "in", + "ahn-na-ahn": "between", + "ahahz": "away", + "anh": "and", + "ann": "on", + "arghazzm": "orgasm", + "abrahb": ["afraid", "fear"], + "hanah": "honey", + "hag": "hug", + "zaan": "soon", + "zagzaz": "success", + "gan": "can", + "zang": "change", + "zangz": "thanks", + "zarrah": "sorry", + "zanh": ["can't", "cant", "cannot"], + "gang": ["group", "mob", "horde"], + "barbaga zaarz": "bbq sauce", + "hab": "help", + "ahnna": "into", + "arahn": "around", + "za": "to", + "ahn!nn": "within", + "aham": "ahem", + "anamah": "animal", + "zaa": ["see", "saw", "seen", "vision", "sight"], + "z!gzag": ["zigzag", "obstruct", "dodge", "avoid"], + "z!gn": "sign", + "z!ng": "sing", + "z!ngz": "thing", + "mabban": "move", + "rabhabh": "revive", + "zammarrar": "tomorrow", + "graan": "green", + "arh": "or", + "arm": "arm", + "arzhahm": "awesome", + "arrang": ["along", "with", "alongside"], + "arza": ["also", "too"], + "bgaz": "because", + "mah zambah brazzahz": ["we", "us"], + "grazzaz": "glasses", + "habban": "heaven", + "mazzah man": "chaplain", + "hanz": "hand", + "hab-ganna": ["want", "gonna have"], + "magma": ["magma", "lava"], + "manzhan": "mansion", + "harmbargarz": "hamburger", + "harrazz": "harass", + "namz": "name", + "ramambarh": "remember", + "rh!zzan": "listen", + "rabrarah": "library", + "ragargarh": "recorder", + "zarh": ["you", "your", "you're", "ya"], + "hagh": "head", + "RNA": "DNA", + "zambahz": "zombies", + "zzzz": ["chill", "relax", "sleep", "calm", "peace", "dream"], + "bah": ["bad", "evil", "but"], + "gag": ["gross", "nasty", "vomit", "smelly", "stinky", "stench", "foul", "quiet", "silence", "shutup"], + "gammah": ["give", "gimmie"], + "gah": ["get", "go"], + "gargazz": ["body", "corpse"], + "rag": ["uniform", "suit", "rag", "clothing", "jumpsuit"], + "garbagz": ["garbage", "janitor", "custodian", "trash", "clean", "dirt", "filth", "mess", "junk"], + "bagman": ["doctor", "medic", "healer", "paramedic", "curator", "librarian"], + "gangbang": ["death", "kill", "die", "slay", "ERP", "punish", "detain", "prison", "prisoner", "brig", "cell", "jail", "perma", "permabrig"], + "bag": ["duffle", "dufflebag", "pocket", "box", "bag", "backpack", "storage", "inventory"], + "aarbagz": ["airbag", "atmos", "airtank", "canister", "air", "atmos tech", "atmospherics", "tank", "gas", "flood", "siphon"], + "bar": ["bar", "drink", "alchol", "liquor"], + "bar man": "bartender", + "barn": ["hydroponics", "botany", "office", "room"], + "brainz barn": ["kitchen", "cafe", "service"], + "nah": ["not", "nope", "no", "deny", "don't", "dont"], + "nabarh": "never", + "nabarmang": "nevermind", + "naz!n": "nothing", + "abar": "all", + "abara": "every", + "abarahaarh": "everywhere", + "abargargazz": "everybody", + "abban": "open", + "abzarb": ["drink", "absorb"], + "gaa": ["yes", "ya", "okay", "alright"], + "abargamz": "always", + "am": ["is", "are", "am"], + "aman": "amen", + "amaz!ng": "amazing", + "zahz": ["say", "says", "that"], + "gab": ["told", "talk", "speak", "spoke", "language", "communication", "radio", "comms", "text", "word", "speech"], + "mrh": ["why", "how", "when", "who", "what", "where"], + "zmazh": ["smash", "break", "destroy", "deconstruct", "dismantle", "ruin", "destruction", "demolish"], + "ranz": ["run", "ran", "ride"], + "hahg": ["hide", "hidden", "shelter"], + "zanz": ["dance", "spin", "flip"], + "ganna": ["going", "gonna"], + "mannah": ["many", "much", "very"], + "mazzargh": "massacure", + "mazzah": ["lord", "god", "religion", "chapel", "altar", "bible", "messiah", "christ"], + "mararana": ["weed", "420", "marijuana", "drug"], + "barb": ["knife", "poke", "thorn", "joke"], + "mmmm": ["delicious", "tasty", "like", "enjoy"], + "barbarh": "barber", + "bargahn": "bargain", + "bargh": "barge", + "ban!zh": ["ban", "banish"], + "brazzarz": ["brother", "skeleton", "skele"], + "zambah": ["zombie", "undead", "dead", "horde"], + "gangbang harmanz": ["sec", "security", "assistant", "greyshirt", "greytide", "cargo", "syndie", "rev", "shitsec", "shitcurity"], + "ganz": ["gun", "rifle", "taser", "shotgun", "revovler", "sniper", "pistol"], + "bang": ["bomb", "detonate", "explode", "explosion", "boom", "bang", "noise", "loud"], + "bang-bang": ["bullet", "shot", "shoot", "fire", "laser", "lazer"], + "harm": ["attack", "punch", "hit", "throw", "fight", "strike", "combat", "choke", "suffoicate", "baton", "harmbaton"], + "ram": ["smash", "smack", "punch", "tackle", "kick", "push", "beat"], + "zhangh": ["stab", "slash", "slice"], + "bang bang man": ["officer", "warden", "hos", "bounty hunter", "hunt", "hunter"], + "manbagz": ["testicle", "balls"], + "grahn": ["groan", "gasp", "crit", "moan", "unconscious"], + "gahn": "gone", + "ganarazharh": ["power", "apc", "generator", "smes"], + "grabz": ["grab", "hold", "held", "grip", "restrain", "handcuff", "cuff", "arrest"], + "mah": ["my", "me"], + "mana man": "wizard", + "mana": "magic", + "mana bang-bang": "spell", + "mahg": "make", + "mannarz": "manner", + "brainz": ["brain", "intelligence", "smart", "hungry", "hunger", "eat", "meat", "desert"], + "harman": ["human", "food", "person", "groceries"], + "harmanz": ["crew", "people", "humans"] + } } diff --git a/tgstation.dme b/tgstation.dme index b2c2746c70efc..7542753ad49e0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -363,6 +363,7 @@ #include "code\__DEFINES\dcs\signals\signals_turf.dm" #include "code\__DEFINES\dcs\signals\signals_twohand.dm" #include "code\__DEFINES\dcs\signals\signals_vehicle.dm" +#include "code\__DEFINES\dcs\signals\signals_voidwalker.dm" #include "code\__DEFINES\dcs\signals\signals_wash.dm" #include "code\__DEFINES\dcs\signals\signals_wizard.dm" #include "code\__DEFINES\dcs\signals\signals_xeno_control.dm" @@ -1060,6 +1061,7 @@ #include "code\datums\ai\basic_mobs\pet_commands\pet_follow_friend.dm" #include "code\datums\ai\basic_mobs\pet_commands\pet_use_targeted_ability.dm" #include "code\datums\ai\basic_mobs\pet_commands\play_dead.dm" +#include "code\datums\ai\basic_mobs\targeting_strategies\_targeting_strategy.dm" #include "code\datums\ai\basic_mobs\targeting_strategies\basic_targeting_strategy.dm" #include "code\datums\ai\basic_mobs\targeting_strategies\dont_target_friends.dm" #include "code\datums\ai\basic_mobs\targeting_strategies\with_object.dm" @@ -1117,6 +1119,7 @@ #include "code\datums\bodypart_overlays\markings_bodypart_overlay.dm" #include "code\datums\bodypart_overlays\mutant_bodypart_overlay.dm" #include "code\datums\bodypart_overlays\simple_bodypart_overlay.dm" +#include "code\datums\bodypart_overlays\texture_bodypart_overlay.dm" #include "code\datums\brain_damage\brain_trauma.dm" #include "code\datums\brain_damage\creepy_trauma.dm" #include "code\datums\brain_damage\hypnosis.dm" @@ -1151,6 +1154,7 @@ #include "code\datums\components\atmos_reaction_recorder.dm" #include "code\datums\components\aura_healing.dm" #include "code\datums\components\bakeable.dm" +#include "code\datums\components\banned_from_space.dm" #include "code\datums\components\basic_inhands.dm" #include "code\datums\components\basic_mob_attack_telegraph.dm" #include "code\datums\components\basic_ranged_ready_overlay.dm" @@ -1224,6 +1228,7 @@ #include "code\datums\components\gas_leaker.dm" #include "code\datums\components\geiger_sound.dm" #include "code\datums\components\ghost_direct_control.dm" +#include "code\datums\components\glass_passer.dm" #include "code\datums\components\gps.dm" #include "code\datums\components\grillable.dm" #include "code\datums\components\ground_sinking.dm" @@ -1233,6 +1238,7 @@ #include "code\datums\components\hazard_area.dm" #include "code\datums\components\healing_touch.dm" #include "code\datums\components\health_scaling_effects.dm" +#include "code\datums\components\heart_eater.dm" #include "code\datums\components\heirloom.dm" #include "code\datums\components\hide_highest_offset.dm" #include "code\datums\components\holderloving.dm" @@ -1270,7 +1276,6 @@ #include "code\datums\components\nuclear_bomb_operator.dm" #include "code\datums\components\object_possession.dm" #include "code\datums\components\omen.dm" -#include "code\datums\components\on_hit_effect.dm" #include "code\datums\components\onwear_mood.dm" #include "code\datums\components\orbiter.dm" #include "code\datums\components\overlay_lighting.dm" @@ -1322,11 +1327,17 @@ #include "code\datums\components\sisyphus_awarder.dm" #include "code\datums\components\sitcomlaughter.dm" #include "code\datums\components\sizzle.dm" +#include "code\datums\components\slime_friends.dm" #include "code\datums\components\slippery.dm" #include "code\datums\components\smooth_tunes.dm" +#include "code\datums\components\soapbox.dm" #include "code\datums\components\soul_stealer.dm" #include "code\datums\components\soulstoned.dm" #include "code\datums\components\sound_player.dm" +#include "code\datums\components\space_allaergy.dm" +#include "code\datums\components\space_camo.dm" +#include "code\datums\components\space_dive.dm" +#include "code\datums\components\space_kidnap.dm" #include "code\datums\components\spawner.dm" #include "code\datums\components\speechmod.dm" #include "code\datums\components\spill.dm" @@ -1357,6 +1368,7 @@ #include "code\datums\components\telegraph_ability.dm" #include "code\datums\components\temporary_body.dm" #include "code\datums\components\temporary_description.dm" +#include "code\datums\components\temporary_glass_shatter.dm" #include "code\datums\components\tether.dm" #include "code\datums\components\thermite.dm" #include "code\datums\components\throwbonus_on_windup.dm" @@ -1380,6 +1392,7 @@ #include "code\datums\components\wearertargeting.dm" #include "code\datums\components\weatherannouncer.dm" #include "code\datums\components\wet_floor.dm" +#include "code\datums\components\wormborn.dm" #include "code\datums\components\container_item\container_item.dm" #include "code\datums\components\container_item\tank_holder.dm" #include "code\datums\components\crafting\_recipes.dm" @@ -1570,6 +1583,7 @@ #include "code\datums\elements\frozen.dm" #include "code\datums\elements\gags_recolorable.dm" #include "code\datums\elements\give_turf_traits.dm" +#include "code\datums\elements\glass_pacifist.dm" #include "code\datums\elements\gravedigger.dm" #include "code\datums\elements\hat_wearer.dm" #include "code\datums\elements\haunted.dm" @@ -1602,9 +1616,12 @@ #include "code\datums\elements\movetype_handler.dm" #include "code\datums\elements\muffles_speech.dm" #include "code\datums\elements\nerfed_pulling.dm" +#include "code\datums\elements\no_crit_hitting.dm" #include "code\datums\elements\noisy_movement.dm" #include "code\datums\elements\noticable_organ.dm" #include "code\datums\elements\obj_regen.dm" +#include "code\datums\elements\on_hit_effect.dm" +#include "code\datums\elements\only_pull_living.dm" #include "code\datums\elements\openspace_item_click_handler.dm" #include "code\datums\elements\ore_collecting.dm" #include "code\datums\elements\organ_set_bonus.dm" @@ -1999,6 +2016,7 @@ #include "code\datums\storage\subtypes\implant.dm" #include "code\datums\storage\subtypes\organ_box.dm" #include "code\datums\storage\subtypes\pockets.dm" +#include "code\datums\storage\subtypes\portable_chem_mixer.dm" #include "code\datums\storage\subtypes\rped.dm" #include "code\datums\storage\subtypes\surgery_tray.dm" #include "code\datums\storage\subtypes\trash.dm" @@ -2159,7 +2177,7 @@ #include "code\game\machinery\recycler.dm" #include "code\game\machinery\requests_console.dm" #include "code\game\machinery\roulette_machine.dm" -#include "code\game\machinery\scan_gate.dm" +#include "code\game\machinery\scanner_gate.dm" #include "code\game\machinery\sheetifier.dm" #include "code\game\machinery\shieldgen.dm" #include "code\game\machinery\sleepers.dm" @@ -3406,6 +3424,17 @@ #include "code\modules\antagonists\valentines\heartbreaker.dm" #include "code\modules\antagonists\valentines\valentine.dm" #include "code\modules\antagonists\venus_human_trap\venus_human_trap.dm" +#include "code\modules\antagonists\voidwalker\voidwalker.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_abilities.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_bodyparts.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_kidnap.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_loot.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_organs.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_particles.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_species.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_status_effects.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_traumas.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_void_eater.dm" #include "code\modules\antagonists\wishgranter\wishgranter.dm" #include "code\modules\antagonists\wizard\imp_antag.dm" #include "code\modules\antagonists\wizard\slaughter_antag.dm" @@ -3422,6 +3451,7 @@ #include "code\modules\antagonists\wizard\equipment\spellbook_entries\defensive.dm" #include "code\modules\antagonists\wizard\equipment\spellbook_entries\mobility.dm" #include "code\modules\antagonists\wizard\equipment\spellbook_entries\offensive.dm" +#include "code\modules\antagonists\wizard\equipment\spellbook_entries\perks.dm" #include "code\modules\antagonists\wizard\equipment\spellbook_entries\summons.dm" #include "code\modules\antagonists\wizard\grand_ritual\fluff.dm" #include "code\modules\antagonists\wizard\grand_ritual\grand_ritual.dm" @@ -4453,6 +4483,7 @@ #include "code\modules\jobs\job_types\antagonists\space_dragon.dm" #include "code\modules\jobs\job_types\antagonists\space_ninja.dm" #include "code\modules\jobs\job_types\antagonists\space_wizard.dm" +#include "code\modules\jobs\job_types\antagonists\voidwalker.dm" #include "code\modules\jobs\job_types\antagonists\wizard_apprentice.dm" #include "code\modules\jobs\job_types\antagonists\xenomorph.dm" #include "code\modules\jobs\job_types\assistant\assistant.dm" @@ -5972,6 +6003,7 @@ #include "code\modules\spells\spell_types\pointed\spell_cards.dm" #include "code\modules\spells\spell_types\pointed\swap.dm" #include "code\modules\spells\spell_types\pointed\terrorize.dm" +#include "code\modules\spells\spell_types\pointed\tie_shoes.dm" #include "code\modules\spells\spell_types\projectile\_basic_projectile.dm" #include "code\modules\spells\spell_types\projectile\juggernaut.dm" #include "code\modules\spells\spell_types\self\basic_heal.dm" @@ -6786,7 +6818,6 @@ #include "modular_skyrat\master_files\code\modules\paperwork\stamps.dm" #include "modular_skyrat\master_files\code\modules\power\cable.dm" #include "modular_skyrat\master_files\code\modules\power\circulator.dm" -#include "modular_skyrat\master_files\code\modules\power\smes.dm" #include "modular_skyrat\master_files\code\modules\power\thermoelectric_generator.dm" #include "modular_skyrat\master_files\code\modules\power\lighting\light_mapping_helpers.dm" #include "modular_skyrat\master_files\code\modules\power\singularity\containment_field.dm" @@ -7279,13 +7310,15 @@ #include "modular_skyrat\modules\contractor\code\objects\supplypod.dm" #include "modular_skyrat\modules\conveyor_sorter\code\conveyor_sorter.dm" #include "modular_skyrat\modules\cortical_borer\code\cortical_borer.dm" -#include "modular_skyrat\modules\cortical_borer\code\cortical_borer_abilities.dm" #include "modular_skyrat\modules\cortical_borer\code\cortical_borer_antag.dm" #include "modular_skyrat\modules\cortical_borer\code\cortical_borer_chems.dm" #include "modular_skyrat\modules\cortical_borer\code\cortical_borer_egg.dm" #include "modular_skyrat\modules\cortical_borer\code\cortical_borer_items.dm" +#include "modular_skyrat\modules\cortical_borer\code\cortical_borer_movement.dm" #include "modular_skyrat\modules\cortical_borer\code\focus_datum.dm" #include "modular_skyrat\modules\cortical_borer\code\status_effects.dm" +#include "modular_skyrat\modules\cortical_borer\code\abilities\_borer_abilities.dm" +#include "modular_skyrat\modules\cortical_borer\code\abilities\host_movement.dm" #include "modular_skyrat\modules\cortical_borer\code\evolution\borer_evolution.dm" #include "modular_skyrat\modules\cortical_borer\code\evolution\evolution_datum.dm" #include "modular_skyrat\modules\cortical_borer\code\evolution\evolution_diveworm.dm" @@ -7390,16 +7423,11 @@ #include "modular_skyrat\modules\customization\modules\language\_language_holder.dm" #include "modular_skyrat\modules\customization\modules\language\ashtongue.dm" #include "modular_skyrat\modules\customization\modules\language\beachbum.dm" -#include "modular_skyrat\modules\customization\modules\language\buzzwords.dm" -#include "modular_skyrat\modules\customization\modules\language\calcic.dm" #include "modular_skyrat\modules\customization\modules\language\canilunzt.dm" #include "modular_skyrat\modules\customization\modules\language\chitinclick.dm" #include "modular_skyrat\modules\customization\modules\language\common.dm" #include "modular_skyrat\modules\customization\modules\language\gutter.dm" -#include "modular_skyrat\modules\customization\modules\language\monkey.dm" #include "modular_skyrat\modules\customization\modules\language\mothic.dm" -#include "modular_skyrat\modules\customization\modules\language\mushroom.dm" -#include "modular_skyrat\modules\customization\modules\language\nekomimetic.dm" #include "modular_skyrat\modules\customization\modules\language\panslavic.dm" #include "modular_skyrat\modules\customization\modules\language\piratespeak.dm" #include "modular_skyrat\modules\customization\modules\language\shadowtongue.dm" @@ -8539,7 +8567,6 @@ #include "modular_zubbers\code\datums\diseases\advance\presets.dm" #include "modular_zubbers\code\datums\greyscale\config_types\greyscale_configs\greyscale_clothes.dm" #include "modular_zubbers\code\datums\mapgen\Cavegens\moonstation.dm" -#include "modular_zubbers\code\datums\materials\basemats.dm" #include "modular_zubbers\code\datums\mood_events\bloodsucker_events.dm" #include "modular_zubbers\code\datums\mood_events\dominant_mood.dm" #include "modular_zubbers\code\datums\mood_events\food_events.dm" diff --git a/tgui/README.md b/tgui/README.md index 1bae91fd13258..2bcb6d06afa36 100644 --- a/tgui/README.md +++ b/tgui/README.md @@ -35,10 +35,10 @@ If you are using the tooling provided in this repo, everything is included! Feel However, if you want finer control over the installation or build process, you will need these: -- [Node v16.13+](https://nodejs.org/en/download/) +- [Node v20.2+](https://nodejs.org/en/download/) - **LTS** release is recommended instead of latest - **DO NOT install Chocolatey if Node installer asks you to!** -- [Yarn v1.22.4+](https://yarnpkg.com/getting-started/install) +- [Yarn v4.1.1+](https://yarnpkg.com/getting-started/install) - You can run `npm install -g yarn` to install it. ## Usage @@ -144,12 +144,13 @@ together, and can reveal certain layout bugs which are not normally visible. ## Browser Developer Tools To debug TGUI interfaces with browser-style developer tools, there exists a utility -that Microsoft bundles with Windows to debug any Internet Explorer/Trident-using interface, +that Microsoft bundles with Windows called IEChooser/F12 to debug any Internet Explorer/Trident-using interface, which BYOND uses. This provides invaluable tools such as a local console, a DOM viewer, an interactive debugger, and more. -The 64-bit version that we use is located at `%windir%\SysWOW64\F12\IEChooser.exe`. +You can access the `IEChooser.exe` by pressing Win + R, then typing `f12`, then pressing enter. +To manually go there: 64-bit version that we use is located at `%windir%\SysWOW64\F12\IEChooser.exe`. There's also a 32-bit one in `system32\`. Simply launch the application after you've opened a TGUI window, and choose the .html name. diff --git a/tgui/docs/chat-embedded-components.md b/tgui/docs/chat-embedded-components.md index f5a5db7aed5bc..bb81acbb20dcc 100644 --- a/tgui/docs/chat-embedded-components.md +++ b/tgui/docs/chat-embedded-components.md @@ -29,7 +29,7 @@ We can't embed components that haven't been prewhitelisted. This isn't because of security concerns or anything, we just can't lookup components by their name without creating a lookup table. You can find that in [tgui chat's renderer](../packages/tgui-panel/chat/renderer.js) under the name `TGUI_CHAT_COMPONENTS` -Adding a new component is simple, just add it's name to the dictionary, and import it into the file. +Adding a new component is simple, just add its name to the dictionary, and import it into the file. ### Sending props @@ -38,7 +38,7 @@ Ok, so we know how to render a component, but that's nearly useless unless we al So how's that work? The syntax is similar to sending a component, but has a bit more caveats. -We have two bits of info to contend with. The name of the prop, and it's value. +We have two bits of info to contend with. The name of the prop, and its value. First then, how do you send the name of a prop? #### Sending a prop's name diff --git a/tgui/packages/common/redux.ts b/tgui/packages/common/redux.ts index c8eb268f5d44f..6179da15229c4 100644 --- a/tgui/packages/common/redux.ts +++ b/tgui/packages/common/redux.ts @@ -163,7 +163,7 @@ export const combineReducers = ( * @param {string} type The action type to use for created actions. * @param {any} prepare (optional) a method that takes any number of arguments * and returns { payload } or { payload, meta }. If this is given, the - * resulting action creator will pass it's arguments to this method to + * resulting action creator will pass its arguments to this method to * calculate payload & meta. * * @public diff --git a/tgui/packages/tgui-panel/reconnect.tsx b/tgui/packages/tgui-panel/reconnect.tsx index 6d3e6d9759e26..196ea10c95400 100644 --- a/tgui/packages/tgui-panel/reconnect.tsx +++ b/tgui/packages/tgui-panel/reconnect.tsx @@ -27,13 +27,14 @@ export const ReconnectButton = () => { + /> ); }; diff --git a/tgui/packages/tgui-panel/styles/components/Notifications.scss b/tgui/packages/tgui-panel/styles/components/Notifications.scss index 6b5160f07839b..f3669967fd70c 100644 --- a/tgui/packages/tgui-panel/styles/components/Notifications.scss +++ b/tgui/packages/tgui-panel/styles/components/Notifications.scss @@ -5,7 +5,7 @@ .Notifications { position: absolute; - bottom: 1em; + top: 1em; left: 1em; right: 2em; } diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss index 049126d684f25..d926f3cc4be10 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss @@ -748,6 +748,11 @@ em { font-size: 160%; } +.soapbox { + font-weight: bold; + font-size: 135%; +} + .small { font-size: 60%; } @@ -1122,7 +1127,6 @@ $border-width-px: $border-width * 1px; padding-top: 0.25rem; line-height: 100%; width: 100%; - height: 100%; text-align: left; font-size: 125%; } diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss index 36a741520dac8..1f9388ff13f6f 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss @@ -775,6 +775,11 @@ h2.alert { font-size: 160%; } +.soapbox { + font-weight: bold; + font-size: 135%; +} + .small { font-size: 60%; } @@ -1051,7 +1056,6 @@ $border-width-px: $border-width * 1px; padding-top: 0.25rem; line-height: 100%; width: 100%; - height: 100%; text-align: left; font-size: 125%; } diff --git a/tgui/packages/tgui/contants.test.ts b/tgui/packages/tgui/constants.test.ts similarity index 100% rename from tgui/packages/tgui/contants.test.ts rename to tgui/packages/tgui/constants.test.ts diff --git a/tgui/packages/tgui/interfaces/AntagInfoVoidwalker.tsx b/tgui/packages/tgui/interfaces/AntagInfoVoidwalker.tsx new file mode 100644 index 0000000000000..02bc6b5924d90 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AntagInfoVoidwalker.tsx @@ -0,0 +1,74 @@ +import { BlockQuote, LabeledList, Section, Stack } from '../components'; +import { Window } from '../layouts'; + +const tipstyle = { + color: 'white', +}; + +const noticestyle = { + color: 'lightblue', +}; + +export const AntagInfoVoidwalker = (props) => { + return ( + + + + +
    + + You are a Voidwalker. + +
    + You are a creature from the void between stars. You were + attracted to the radio signals being broadcasted by this + station. +
    +
    + + + Survive:  + You have unrivaled freedom. Remain in space and no one can + stop you. You can move through windows, so stay near them to + always have a way out. +
    + Hunt:  + Pick unfair fights. Look for inattentive targets and strike at + them when they don't expect you. +
    + Abduct:  + Your Unsettle ability stuns and drains your targets. Finish + them with your void window and use it to pop a window, drag + them into space and use an empty hand to kidnap them. +
    +
    +
    +
    + +
    + + + You can move under the station from space, use this to hunt + and get to isolated sections of space. + + + Your divine appendage; it allows you to incapacitate the loud + ones and instantly break windows. + + + Your natural camouflage makes you nearly invisible in space, + as well as mending any wounds your body might have sustained. + You can move through glass freely, but are slowed in gravity. + + + Target a victim while remaining only partially in their view + to stun and weaken them, but also announce them your presence. + + +
    +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/Canvas.tsx b/tgui/packages/tgui/interfaces/Canvas.tsx index 3621c12eb3cb7..e1273da7d593c 100644 --- a/tgui/packages/tgui/interfaces/Canvas.tsx +++ b/tgui/packages/tgui/interfaces/Canvas.tsx @@ -264,10 +264,10 @@ export const Canvas = (props) => { const griddy = !!data.show_grid && !!data.editable && !!data.paint_tool_color; return ( )} + {!!pack.contraband && ( + + + + )} + ) : ( + + {fish.fish_traits.map((trait, index) => ( + + + + ))} + + )} + + + + + + + Health:{' '} + + + + Hunger:{' '} + + + + {fish.fish_evolutions.length === 0 ? ( + No evolutions! + ) : ( + + {fish.fish_evolutions.map((evolution, index) => ( + + + + ))} + + )} + + + + + + + + + {fish.fish_min_temp}k - {fish.fish_max_temp}k + + + {dissectName(fish.fish_fluid_type)} + + + + + ); +}; + +const EvolutionItem = (props) => { + const { evolution, fish } = props; + + return ( + + + + + + + + {evolution.evolution_probability}% + + + + + + + + + + + ); +}; + +function dissectName(input: string): string { + return input.split(' ')[0].slice(0, 12); +} diff --git a/tgui/packages/tgui/interfaces/MODsuit.tsx b/tgui/packages/tgui/interfaces/MODsuit.tsx index c39724aedc8f3..e8e2bb4f2aced 100644 --- a/tgui/packages/tgui/interfaces/MODsuit.tsx +++ b/tgui/packages/tgui/interfaces/MODsuit.tsx @@ -19,7 +19,7 @@ import { Stack, Table, } from '../components'; -import { formatEnergy, formatPower, formatSiUnit } from '../format'; +import { formatSiUnit } from '../format'; import { Window } from '../layouts'; type MODsuitData = { @@ -122,8 +122,8 @@ export const MODsuit = (props) => { const { interface_break } = data.suit_status; return ( @@ -705,7 +705,7 @@ const ModuleSection = (props) => { + )} + {!!paiInserted && ( + + )} + + } + > + + + + + + + + + act('destination', { value })} + /> + + + +
    + act('autored')}> + Auto-Return + +
    + act('autopick')}> + Auto-Pickup + +
    + act('report')}> + Report-Delivery + +
    + {!!allowPossession && ( + act('toggle_personality')} + > + Download Personality + + )} +
    +
    + + + + + + + + + + + +
    + + ); +}; + +export const Mule = (props) => { + const { act, data } = useBackend(); + const { + powerStatus, + cellPercent, + load, + mode, + modeStatus, + locked, + siliconUser, + } = data; + + const mulebotLocked = locked && !siliconUser; + + return ( + + + +
    + + {!mulebotLocked && ( + + )} + + } + > + + + + + + {mode} + + + + + + + {load || 'None'} + + + + +
    + {!mulebotLocked && } +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/Newscaster.jsx b/tgui/packages/tgui/interfaces/Newscaster.jsx index fc91fc9c89d46..e97ac50a44628 100644 --- a/tgui/packages/tgui/interfaces/Newscaster.jsx +++ b/tgui/packages/tgui/interfaces/Newscaster.jsx @@ -430,7 +430,7 @@ const NewscasterChannelBox = (props) => { {!!admin_mode && ( - } - > - - - ); -}; - -const Options = (props) => { - const { act, data } = useBackend(); - const { color_mode, is_photo, num_copies } = data; - - return ( -
    - - - Make copies: - - - - act('set_copies', { - num_copies: value, - }) - } - /> - - - - - - {!!is_photo && ( - - - - - - - - - )} - -
    - ); -}; - -const Blanks = (props) => { - const { act, data } = useBackend(); - const { blanks, categories, category } = data; - - const sortedBlanks = sortBy(blanks || [], (blank) => blank.name); - - const selectedCategory = category ?? categories[0]; - const visibleBlanks = sortedBlanks.filter( - (blank) => blank.category === selectedCategory, - ); - - return ( -
    - - act('choose_category', { - category: value, - }) - } - /> - - {visibleBlanks.map((blank) => ( - - ))} - -
    - ); -}; - -const AIOptions = (props) => { - const { act, data } = useBackend(); - const { can_AI_print } = data; - - return ( -
    - - - -
    - ); -}; diff --git a/tgui/packages/tgui/interfaces/Photocopier.tsx b/tgui/packages/tgui/interfaces/Photocopier.tsx new file mode 100644 index 0000000000000..7089474b2a7b7 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Photocopier.tsx @@ -0,0 +1,410 @@ +import { createSearch } from 'common/string'; +import { useState } from 'react'; + +import { BooleanLike } from '../../common/react'; +import { useBackend } from '../backend'; +import { + Button, + Input, + LabeledList, + ProgressBar, + Section, + Slider, + Stack, +} from '../components'; +import { Window } from '../layouts'; + +type Data = { + has_item: BooleanLike; + has_toner: BooleanLike; + can_AI_print: BooleanLike; + isAI: BooleanLike; + is_photo: BooleanLike; + categories: string[]; + color_mode: string; + num_copies: number; + max_copies: number; + copies_left: number; + max_toner: number; + current_toner: number; + paper_count: number; + max_paper_count: number; + blanks: Blank[]; +}; + +type Blank = { + name: string; + category: string; + code: string; +}; + +export const Photocopier = (props) => { + const [selectedBlank, setSelectedBlank] = useState(''); + const [selectedCategory, setSelectedCategory] = useState(''); + + return ( + + + + + + + + + + + + + + + + + {selectedCategory && ( + + + + + + + + )} + + + + ); +}; + +type StatusProps = { + selectedBlank: string | null; +}; + +const Status = (props: StatusProps) => { + const { act, data } = useBackend(); + const { selectedBlank } = props; + const { + has_toner, + copies_left, + num_copies, + current_toner, + max_toner, + paper_count, + max_paper_count, + } = data; + + const average_toner = max_toner * 0.66; + const bad_toner = max_toner * 0.33; + + const average_paper = max_paper_count * 0.33; + const bad_paper = max_paper_count * 0.1; + + return ( +
    act('remove_toner')} + > + Eject Toner + + } + > + + + {has_toner ? ( + + ) : ( + + No Cartridge + + )} + + + + {paper_count} / {max_paper_count} + + + + + {copies_left ? `${copies_left} / ${num_copies}` : 'Empty'} + + + + {selectedBlank ? selectedBlank : 'Not Selected'} + + +
    + ); +}; + +type ActionsProps = { + selectedBlank: string | null; +}; + +const Actions = (props: ActionsProps) => { + const { act, data } = useBackend(); + const { selectedBlank } = props; + const { + has_item, + is_photo, + num_copies, + max_copies, + color_mode, + isAI, + can_AI_print, + } = data; + + return ( +
    + + + + + Copies: + + + + act('set_copies', { + num_copies: value, + }) + } + /> + + + + {!!isAI && ( + + + + )} + + + + + + + + + + + {!!has_item && !!is_photo && ( + + + + + + + + + + + )} + + + + +
    + ); +}; + +type CategoriesProps = { + selectedCategory: string | null; + setSelectedCategory: (category: string) => void; +}; + +const Categories = (props: CategoriesProps) => { + const { act, data } = useBackend(); + const { selectedCategory, setSelectedCategory } = props; + + return ( +
    { + setSelectedCategory(''); + }} + /> + } + > + + + + + {data.categories.map((category) => ( + + + + ))} + +
    + ); +}; + +type BlanksProps = { + selectedCategory: string | null; + selectedBlank: string | null; + setSelectedBlank: (blank: string) => void; +}; + +const Blanks = (props: BlanksProps) => { + const { act, data } = useBackend(); + const { selectedCategory, selectedBlank, setSelectedBlank } = props; + const { blanks } = data; + + const [searchText, setSearchText] = useState(''); + const search = createSearch(searchText, (blank: Blank) => blank.name); + const sortedBlanks = blanks.sort((a, b) => (a.name > b.name ? 1 : -1)); + const visibleBlanks = searchText + ? sortedBlanks.filter(search) + : selectedCategory === 'All Blanks' + ? sortedBlanks + : sortedBlanks.filter((blank) => blank.category === selectedCategory); + + return ( +
    setSearchText(value)} + /> + } + > + + {visibleBlanks.map((blank) => ( + + + + ))} + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/voidwalker.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/voidwalker.ts new file mode 100644 index 0000000000000..2a8d22a1f678f --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/voidwalker.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; + +const Voidwalker: Antagonist = { + key: 'voidwalker', + name: 'Voidwalker', + description: [ + ` + Move through space and pull people into the void. + Declare solars an independent nation. + `, + ], + category: Category.Midround, +}; + +export default Voidwalker; diff --git a/tgui/packages/tgui/interfaces/ScannerGate.jsx b/tgui/packages/tgui/interfaces/ScannerGate.jsx index 5afbf30072adb..ae304827607f8 100644 --- a/tgui/packages/tgui/interfaces/ScannerGate.jsx +++ b/tgui/packages/tgui/interfaces/ScannerGate.jsx @@ -177,6 +177,10 @@ const SCANNER_GATE_ROUTES = { component: () => ScannerGateGender, }, // SKYRAT EDIT END - MORE SCANNER GATE OPTIONS + Contraband: { + title: 'Scanner Mode: Contraband', + component: () => ScannerGateContraband, + }, }; const ScannerGateControl = (props) => { @@ -203,7 +207,8 @@ const ScannerGateControl = (props) => { }; const ScannerGateOff = (props) => { - const { act } = useBackend(); + const { act, data } = useBackend(); + const { contraband_enabled } = data; return ( <> Select a scanning mode below. @@ -236,6 +241,11 @@ const ScannerGateOff = (props) => { content="Nutrition" onClick={() => act('set_mode', { new_mode: 'Nutrition' })} /> + + ) : ( + setSearchText(value)} + /> ) } > - {contents.length === 0 ? ( - Unfortunately, this {data.name} is empty. + {!contents.length ? ( + Nothing found. ) : ( - - - Item - - - {data.isdryer ? 'Take' : 'Dispense'} - - - {Object.values(contents).map((value, key) => ( - - {value.name} - - {value.amount} - - -
    + contents.map((item) => ( + + )} + + )) )} diff --git a/tgui/packages/tgui/interfaces/Spellbook.tsx b/tgui/packages/tgui/interfaces/Spellbook.tsx index c6addf2857e5d..3d6929dd21228 100644 --- a/tgui/packages/tgui/interfaces/Spellbook.tsx +++ b/tgui/packages/tgui/interfaces/Spellbook.tsx @@ -22,6 +22,7 @@ enum SpellCategory { Mobility = 'Mobility', Assistance = 'Assistance', Rituals = 'Rituals', + Perks = 'Perks', } type byondRef = string; @@ -124,6 +125,16 @@ const TAB2NAME: TabType[] = [ "If you didn't like the loadouts offered, you can embrace chaos. Not recommended for newer wizards.", component: () => , }, + { + title: 'Perks', + blurb: + 'Perks are useful (and not so useful) improvements to the soul and body collected from all corners of the universe.', + scrollable: true, + }, + { + title: 'Table of Contents', + component: () => , + }, ]; enum Buywords { @@ -158,7 +169,7 @@ const EnscribedName = (props) => { ); }; -const lineHeightToc = '34.6px'; +const lineHeightToc = '30.6px'; const TableOfContents = (props) => { const [tabIndex, setTabIndex] = useLocalState('tab-index', 1); @@ -238,6 +249,14 @@ const TableOfContents = (props) => { content="Arcane Randomizer" onClick={() => setTabIndex(9)} /> + +