diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_1x3.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_1x3.dmm deleted file mode 100644 index 05e6e4b63f..0000000000 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_1x3.dmm +++ /dev/null @@ -1,2760 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ab" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ac" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"at" = ( -/obj/structure/closet/crate/bin, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/item/cartridge/atmos, -/turf/open/floor/engine, -/area/engine/engineering) -"av" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"aw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"aC" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_x = 5 - }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/engine, -/area/engine/supermatter) -"aX" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/space, -/area/space/nearstation) -"aY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bl" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/engine, -/area/engine/engineering) -"bo" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"bH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Output to Waste" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"bT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ck" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cP" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/storage/toolbox/electrical{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/safety_eye_protection, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Gas to Cooling Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cY" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"de" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Port"; - dir = 4; - network = list("ss13","engine") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"df" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/rad_collector/anchored, -/turf/open/floor/engine, -/area/engine/supermatter) -"dl" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dw" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"dD" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"ej" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Cooling Loop Bypass" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ey" = ( -/obj/structure/reflector/single/anchored{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ez" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"fa" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"fj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"fq" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"fK" = ( -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"fW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gf" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"gj" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gx" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"gB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gQ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"hy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hJ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hK" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"ii" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"in" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"iC" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = 6 - }, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = -4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"iD" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"iJ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Gas to Filter" - }, -/obj/machinery/airalarm/engine{ - dir = 4; - pixel_x = -23 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"iU" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"jp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"jr" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"js" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jB" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jZ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"kA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"kW" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ln" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"lw" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"lG" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) -"lQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"mi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"mj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"mk" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"mE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"mH" = ( -/obj/structure/sign/poster/official/safety_eye_protection, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"mU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"mW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"mX" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/engine, -/area/engine/engineering) -"nd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Cooling Loop to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"nz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/engine, -/area/engine/engineering) -"nH" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"nR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"nV" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"nW" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/rad_collector/anchored, -/turf/open/floor/engine, -/area/engine/supermatter) -"ou" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"oC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"oS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"pb" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"px" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"pA" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"pL" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"pP" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qc" = ( -/obj/structure/table, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"qe" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Bypass" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qo" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qA" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"rt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"ry" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"rJ" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"rY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"sm" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space/nearstation) -"sn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"so" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"sq" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"sA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Mix" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"td" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"te" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"ti" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"tn" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"tw" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"tE" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"un" = ( -/obj/structure/reflector/single/anchored{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"uz" = ( -/obj/structure/sign/warning/radiation, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"uC" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"uR" = ( -/obj/machinery/power/supermatter_crystal/engine, -/turf/open/floor/engine, -/area/engine/supermatter) -"vD" = ( -/obj/structure/girder, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"vN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"vO" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"vX" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"wz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"wG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wS" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"xo" = ( -/obj/structure/reflector/box/anchored{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"xB" = ( -/turf/open/floor/engine, -/area/engine/engineering) -"yd" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"yf" = ( -/turf/open/space/basic, -/area/space/nearstation) -"yA" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"yD" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"yZ" = ( -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Fore"; - dir = 1; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"zf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Atmos to Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"zh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/flashlight, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/pipe_dispenser, -/turf/open/floor/engine, -/area/engine/engineering) -"zF" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"zS" = ( -/turf/open/space/basic, -/area/space) -"Ab" = ( -/obj/item/crowbar/large, -/obj/structure/rack, -/obj/item/flashlight, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Ah" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"AH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Bc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Bl" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/geiger_counter, -/obj/item/geiger_counter, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"BD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/binary/valve/digital/on{ - dir = 4; - name = "Output Release" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Cb" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Cn" = ( -/obj/machinery/status_display, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"CH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"CT" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Chamber" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"CW" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Dj" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Dz" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"DA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"DC" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Ef" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ei" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Es" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ex" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ey" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"EL" = ( -/turf/closed/wall, -/area/engine/engineering) -"EM" = ( -/obj/item/wrench, -/obj/structure/rack, -/obj/item/weldingtool/hugetank, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Fr" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"FG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Gb" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"Gl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Starboard"; - dir = 8; - network = list("ss13","engine") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Gz" = ( -/obj/machinery/button/door{ - id = "engsm"; - name = "Radiation Shutters Control"; - pixel_y = -24; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"GB" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"GI" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"GK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"GX" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Hj" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Hn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"Hw" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Hz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ik" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"In" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"IE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"IF" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/emitter/anchored{ - dir = 8; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Jn" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Jp" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"JH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"JK" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"JV" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Laser Room"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ke" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Kv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"KX" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"KZ" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"Le" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"Lg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Lv" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Lw" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"LJ" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/engine/engineering) -"LS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"Ml" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8; - filter_type = "n2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Mr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Mu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ME" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"MI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"MJ" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"MK" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"MP" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Ne" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"Np" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Nx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ND" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"NK" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"NU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Aft"; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/engine/engineering) -"NZ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Oj" = ( -/turf/closed/wall/r_wall, -/area/space/nearstation) -"Ok" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"OK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"OU" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Pa" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"Ph" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Py" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Qn" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"Qu" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"QD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"QJ" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Rh" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"RA" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"RV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"Sn" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"SL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"SR" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"SX" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Tk" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plating, -/area/engine/engineering) -"TB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"TC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"TO" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ub" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Uq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Ur" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Uu" = ( -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"UM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"UN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Vg" = ( -/obj/item/wrench, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Vn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Vz" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"VP" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Wf" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"WB" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space/nearstation) -"WI" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"WT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Xy" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"XA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"XG" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"XK" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/radio/headset/headset_eng, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"XY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"YB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YD" = ( -/obj/structure/reflector/double/anchored{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"YF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YX" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Gas to Filter" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YY" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"YZ" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space/nearstation) -"Zn" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ZH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ZO" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ZT" = ( -/turf/template_noop, -/area/template_noop) - -(1,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -yf -Rh -yf -yf -Rh -yf -yf -Rh -yf -yf -yf -YZ -YZ -YZ -ZT -ZT -ZT -ZT -ZT -"} -(2,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -pL -aX -pL -yA -Sn -yA -yA -Sn -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(3,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(4,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -uC -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(5,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(6,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -wS -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(7,1,1) = {" -ZT -ZT -ZT -ZT -EL -EL -MP -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -yf -yf -yf -yf -zS -"} -(8,1,1) = {" -ZT -ZT -cP -Ke -EL -Tk -MP -wS -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -yf -yf -Rh -yf -yf -"} -(9,1,1) = {" -ZT -ZT -dl -Ok -ND -Zn -Ei -bI -KZ -lG -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -YZ -YZ -tw -Rh -Rh -Rh -yf -"} -(10,1,1) = {" -ZT -nR -AH -iD -MP -MP -MP -sq -aA -rJ -gf -rJ -rJ -td -yf -yf -yf -yf -Rh -yf -yf -yf -yf -Rh -yf -yf -"} -(11,1,1) = {" -oC -GB -UN -sn -sn -sn -de -GK -wG -TC -mj -fW -at -XA -td -MP -MP -MP -MP -MP -MP -yf -WB -YZ -WB -yf -"} -(12,1,1) = {" -cS -hJ -qe -ry -ry -ry -ry -cX -ry -ry -nd -ry -yD -Ex -ck -iC -Uu -kW -Uu -EM -MP -yf -YZ -Oj -YZ -yf -"} -(13,1,1) = {" -ME -qr -Hz -gj -bl -te -ez -Mr -DA -ej -Dz -jZ -gB -SR -SX -Vn -Vn -cp -Uu -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(14,1,1) = {" -Ne -yd -bW -VP -Qu -Vg -KX -px -nW -Vz -cN -xB -WI -IE -JV -Bc -JH -Lv -XY -LJ -MP -Rh -YZ -Oj -YZ -Rh -"} -(15,1,1) = {" -MP -zh -QD -Hj -rt -lQ -KX -RA -tE -Vz -cN -Xy -Ml -Ef -iD -MJ -QJ -pP -pP -MJ -MP -yf -YZ -Oj -YZ -yf -"} -(16,1,1) = {" -MP -aC -bW -TO -fK -uz -RA -ti -YY -Vz -cN -JK -WT -Ef -MP -Lw -Uu -Uu -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(17,1,1) = {" -oS -fa -bW -ZO -yZ -qA -iJ -pb -so -jr -js -CW -YF -Py -iD -YD -Uu -Uu -ey -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(18,1,1) = {" -iD -fa -bW -YX -Qu -aV -jp -tn -uR -Jp -NU -Hw -ac -ac -iD -xo -Uu -xo -vD -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(19,1,1) = {" -oS -fa -bW -vO -Gz -lE -CT -Gb -UM -Wf -Mu -jB -Nx -aw -iD -Uu -Uu -Uu -un -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(20,1,1) = {" -MP -Bl -bW -iU -fK -RA -Wf -mW -bq -Vz -cN -JK -WT -Ef -MP -Lw -Uu -Uu -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(21,1,1) = {" -MP -nV -mE -vO -Pa -wz -fj -RA -cY -Vz -cN -vO -Np -Ef -iD -MJ -Dj -IF -Dj -MJ -MP -yf -YZ -Oj -YZ -yf -"} -(22,1,1) = {" -iD -fa -hy -vO -Pa -Ey -fj -Cn -df -Vz -cN -JK -lw -bH -JV -Bc -Ph -Ph -nH -LJ -MP -Rh -YZ -Oj -YZ -Rh -"} -(23,1,1) = {" -iD -vX -bo -GX -mk -Ik -SL -YB -RV -qm -MK -ii -rY -Qn -ab -ZH -ZH -MI -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(24,1,1) = {" -mH -bT -Lg -zf -ry -ry -ry -OK -ry -ry -sA -ry -mX -BD -Uq -zF -Uu -GI -Uu -Ab -MP -Rh -YZ -Oj -YZ -yf -"} -(25,1,1) = {" -iD -mU -in -Ur -Es -Kv -Gl -aY -Kv -Kv -Fr -vN -nz -In -Ub -MP -MP -MP -MP -MP -MP -yf -YZ -YZ -YZ -yf -"} -(26,1,1) = {" -wt -av -kA -qo -EL -MP -MP -Cb -Uu -Uu -pA -jg -qc -fq -LS -Hn -dw -yf -Rh -yf -yf -yf -yf -Rh -yf -yf -"} -(27,1,1) = {" -ZT -ZT -ZT -ou -DC -iD -Uu -mi -NK -NK -Ah -Uu -Jn -MP -dw -dw -dw -Rh -Rh -Rh -Rh -tw -Rh -Rh -Rh -Rh -"} -(28,1,1) = {" -ZT -ZT -ZT -OU -Ok -CH -GI -gx -TB -gQ -gQ -ln -XK -MP -yf -yf -Rh -yf -Rh -Oj -YZ -yf -yf -Rh -yf -yf -"} -(29,1,1) = {" -ZT -ZT -ZT -FG -NZ -MP -MP -MP -MP -MP -iD -iD -iD -MP -Rh -Rh -Rh -Rh -Rh -Oj -YZ -yf -yf -Rh -yf -zS -"} diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_3x.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_3x.dmm deleted file mode 100644 index 3356ebaa77..0000000000 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_3x.dmm +++ /dev/null @@ -1,2777 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ab" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ac" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"at" = ( -/obj/structure/closet/crate/bin, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/item/cartridge/atmos, -/turf/open/floor/engine, -/area/engine/engineering) -"av" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"aw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"aC" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_x = 5 - }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"aX" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/space, -/area/space/nearstation) -"aY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bo" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Output to Waste" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"bT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ck" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cP" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/storage/toolbox/electrical{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/safety_eye_protection, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Gas to Cooling Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"de" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Port"; - dir = 4; - network = list("ss13","engine") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"df" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"dl" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dw" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"dD" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"ej" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Cooling Loop Bypass" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ey" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/engine, -/area/engine/supermatter) -"ez" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"fa" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"fj" = ( -/obj/machinery/status_display, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"fq" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"fK" = ( -/obj/structure/sign/warning/radiation, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"fW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gf" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"gj" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gx" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"gB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gQ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"hy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hJ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hK" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"ii" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"in" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"iC" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = 6 - }, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = -4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"iD" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"iJ" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"iU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"jp" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"js" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"jB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jZ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"kA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"kW" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ln" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"lw" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lE" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Chamber" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"lG" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) -"mi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"mj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"mE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"mH" = ( -/obj/structure/sign/poster/official/safety_eye_protection, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"mU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"mX" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/engine, -/area/engine/engineering) -"na" = ( -/obj/machinery/camera{ - c_tag = "Supermatter Chamber"; - network = list("engine"); - pixel_x = 23 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"nd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Cooling Loop to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ni" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"nz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/engine, -/area/engine/engineering) -"nH" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"nR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"nV" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"nW" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/item/tank/internals/plasma, -/turf/open/floor/plating, -/area/engine/supermatter) -"ou" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"oC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"oS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"px" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"pA" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"pL" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"pP" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qc" = ( -/obj/structure/table, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"qe" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Bypass" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qo" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Gas to Filter" - }, -/obj/machinery/airalarm/engine{ - dir = 4; - pixel_x = -23 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"re" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"rt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ry" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"rJ" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"rY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"sm" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space/nearstation) -"sn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"so" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"sq" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"sA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Mix" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"td" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"te" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"tw" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"tE" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"un" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"uC" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"uR" = ( -/obj/machinery/power/supermatter_crystal/engine, -/turf/open/floor/engine, -/area/engine/supermatter) -"vD" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"vN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"vO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"vX" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"wz" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"wG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wS" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"xo" = ( -/obj/structure/reflector/box/anchored{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"xB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"yd" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"yf" = ( -/turf/open/space/basic, -/area/space/nearstation) -"yA" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"yD" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"yZ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"zf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Atmos to Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"zh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/flashlight, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/pipe_dispenser, -/turf/open/floor/engine, -/area/engine/engineering) -"zF" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"zS" = ( -/turf/open/space/basic, -/area/space) -"Ab" = ( -/obj/item/crowbar/large, -/obj/structure/rack, -/obj/item/flashlight, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Ah" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"AH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Bc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Bk" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"Bl" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/geiger_counter, -/obj/item/geiger_counter, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"BD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/binary/valve/digital/on{ - dir = 4; - name = "Output Release" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Cb" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Cn" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"CH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"CT" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"CW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Dz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"DA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"DC" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Ef" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ei" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Es" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ex" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"EL" = ( -/turf/closed/wall, -/area/engine/engineering) -"EM" = ( -/obj/item/wrench, -/obj/structure/rack, -/obj/item/weldingtool/hugetank, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"EX" = ( -/obj/item/wrench, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Fr" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"FG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"FL" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"Gl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Starboard"; - dir = 8; - network = list("ss13","engine") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Gz" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"GB" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"GI" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"GK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"GX" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Hj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Hn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"Hw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Aft"; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Hz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ik" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"In" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"IE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"IF" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/emitter/anchored{ - dir = 8; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Jn" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"JH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"JK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"JL" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"JV" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Laser Room"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ke" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Kv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"KX" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"KZ" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"Le" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"Lg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Lv" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Lw" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"LE" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door{ - id = "engsm"; - name = "Radiation Shutters Control"; - pixel_y = -24; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"LJ" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/engine/engineering) -"LS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"Ml" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8; - filter_type = "n2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Mr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ME" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"MI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"MJ" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"MK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"MP" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Ne" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"Np" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Nw" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"Nx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ND" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"NK" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"NU" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plating, -/area/engine/supermatter) -"NZ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Oj" = ( -/turf/closed/wall/r_wall, -/area/space/nearstation) -"Ok" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"OK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"OR" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"OU" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Pa" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Ph" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Py" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Qn" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"Qu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/engine, -/area/engine/supermatter) -"QD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Rh" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"RA" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/engine, -/area/engine/supermatter) -"RV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"Sn" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"SL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"SR" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"SX" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Tk" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plating, -/area/engine/engineering) -"TB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"TC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"TO" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ub" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Uq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Ur" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Uu" = ( -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"UN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Vg" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Vn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"VN" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"VP" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Wf" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"Ws" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"WB" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space/nearstation) -"WI" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"WT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Xy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"XA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"XG" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"XK" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/radio/headset/headset_eng, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"XY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"YB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YX" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Gas to Filter" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YZ" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space/nearstation) -"Zn" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ZH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ZO" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Fore"; - dir = 1; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ZT" = ( -/turf/template_noop, -/area/template_noop) - -(1,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -yf -Rh -yf -yf -Rh -yf -yf -Rh -yf -yf -yf -YZ -YZ -YZ -ZT -ZT -ZT -ZT -ZT -"} -(2,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -pL -aX -pL -yA -Sn -yA -yA -Sn -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(3,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(4,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -uC -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(5,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(6,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -wS -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(7,1,1) = {" -ZT -ZT -ZT -ZT -EL -EL -MP -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -yf -yf -yf -yf -zS -"} -(8,1,1) = {" -ZT -ZT -cP -Ke -EL -Tk -MP -wS -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -yf -yf -Rh -yf -yf -"} -(9,1,1) = {" -ZT -ZT -dl -Ok -ND -Zn -Ei -bI -KZ -lG -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -YZ -YZ -tw -Rh -Rh -Rh -yf -"} -(10,1,1) = {" -ZT -nR -AH -iD -MP -MP -MP -sq -aA -rJ -gf -rJ -rJ -td -yf -yf -yf -yf -Rh -yf -yf -yf -yf -Rh -yf -yf -"} -(11,1,1) = {" -oC -GB -UN -sn -sn -sn -de -GK -wG -TC -mj -fW -at -XA -td -MP -MP -MP -MP -MP -MP -yf -WB -YZ -WB -yf -"} -(12,1,1) = {" -cS -hJ -qe -ry -ry -ry -ry -cX -ry -ry -nd -ry -yD -Ex -ck -iC -Uu -kW -Uu -EM -MP -yf -YZ -Oj -YZ -yf -"} -(13,1,1) = {" -ME -qr -Hz -gj -te -te -ez -Mr -DA -ej -Dz -jZ -gB -SR -SX -Vn -Vn -cp -Uu -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(14,1,1) = {" -Ne -yd -bW -VP -EX -Vg -KX -px -nW -Cn -fj -xB -WI -IE -JV -Bc -JH -Lv -XY -LJ -MP -Rh -YZ -Oj -YZ -Rh -"} -(15,1,1) = {" -MP -zh -QD -Hj -rt -Vg -JL -na -tE -tE -JL -Xy -Ml -Ef -iD -MJ -pP -pP -pP -MJ -MP -yf -YZ -Oj -YZ -yf -"} -(16,1,1) = {" -MP -aC -bW -TO -fK -JL -JL -Bk -Bk -Bk -FL -JK -WT -Ef -MP -Lw -Uu -Uu -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(17,1,1) = {" -oS -fa -bW -ZO -yZ -qA -iJ -so -uR -ey -js -CW -YF -Py -iD -Uu -xo -Uu -Uu -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(18,1,1) = {" -iD -fa -bW -YX -Qu -aV -jp -so -uR -ey -NU -Hw -ac -ac -iD -Uu -Uu -xo -Uu -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(19,1,1) = {" -oS -fa -bW -LE -Gz -lE -CT -so -uR -ey -un -jB -Nx -aw -iD -Uu -Uu -Uu -xo -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(20,1,1) = {" -MP -Bl -bW -iU -JL -OR -Wf -RA -RA -RA -vD -JK -WT -Ef -MP -Lw -Uu -Uu -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(21,1,1) = {" -MP -nV -mE -Ws -VN -wz -JL -tE -tE -tE -JL -vO -Np -Ef -iD -MJ -IF -IF -IF -MJ -MP -yf -YZ -Oj -YZ -yf -"} -(22,1,1) = {" -iD -fa -hy -Ws -Pa -wz -fj -Nw -df -re -KX -ni -lw -bH -JV -Bc -Ph -Ph -nH -LJ -MP -Rh -YZ -Oj -YZ -Rh -"} -(23,1,1) = {" -iD -vX -bo -GX -Ik -Ik -SL -YB -RV -qm -MK -ii -rY -Qn -ab -ZH -ZH -MI -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(24,1,1) = {" -mH -bT -Lg -zf -ry -ry -ry -OK -ry -ry -sA -ry -mX -BD -Uq -zF -Uu -GI -Uu -Ab -MP -Rh -YZ -Oj -YZ -yf -"} -(25,1,1) = {" -iD -mU -in -Ur -Es -Kv -Gl -aY -Kv -Kv -Fr -vN -nz -In -Ub -MP -MP -MP -MP -MP -MP -yf -YZ -YZ -YZ -yf -"} -(26,1,1) = {" -wt -av -kA -qo -EL -MP -MP -Cb -Uu -Uu -pA -jg -qc -fq -LS -Hn -dw -yf -Rh -yf -yf -yf -yf -Rh -yf -yf -"} -(27,1,1) = {" -ZT -ZT -ZT -ou -DC -iD -Uu -mi -NK -NK -Ah -Uu -Jn -MP -dw -dw -dw -Rh -Rh -Rh -Rh -tw -Rh -Rh -Rh -Rh -"} -(28,1,1) = {" -ZT -ZT -ZT -OU -Ok -CH -GI -gx -TB -gQ -gQ -ln -XK -MP -yf -yf -Rh -yf -Rh -Oj -YZ -yf -yf -Rh -yf -yf -"} -(29,1,1) = {" -ZT -ZT -ZT -FG -NZ -MP -MP -MP -MP -MP -iD -iD -iD -MP -Rh -Rh -Rh -Rh -Rh -Oj -YZ -yf -yf -Rh -yf -zS -"} diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_5x5.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_5x5.dmm deleted file mode 100644 index 2b24fa2a70..0000000000 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_5x5.dmm +++ /dev/null @@ -1,2871 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ab" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ac" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"at" = ( -/obj/structure/closet/crate/bin, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/item/cartridge/atmos, -/turf/open/floor/engine, -/area/engine/engineering) -"av" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"aw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"aC" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_x = 5 - }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aV" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"aX" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/space, -/area/space/nearstation) -"aY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bo" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bH" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"bT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bW" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ck" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cP" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/storage/toolbox/electrical{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/safety_eye_protection, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Gas to Cooling Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"de" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Port"; - dir = 4; - network = list("ss13","engine") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"df" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"dl" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dw" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"dD" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"ej" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Cooling Loop Bypass" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ey" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ez" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"fa" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"fj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Fore"; - dir = 1; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"fq" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"fK" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"fW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gf" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"gj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Gas to Filter" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gx" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"gB" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"gQ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"hy" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hJ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hK" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"ii" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"in" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"iC" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = 6 - }, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = -4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"iD" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"iJ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door{ - id = "engsm"; - name = "Radiation Shutters Control"; - pixel_y = -24; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"iU" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"jg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"jp" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"js" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"jB" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"jZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"kA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"kW" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ln" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"lw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lE" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"lG" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) -"mi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"mj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"mE" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"mH" = ( -/obj/structure/sign/poster/official/safety_eye_protection, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"mU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"mW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"mX" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"na" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"nd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Cooling Loop to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ni" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"nz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/engine, -/area/engine/engineering) -"nH" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"nR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"nV" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"nW" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/item/tank/internals/plasma, -/turf/open/floor/plating, -/area/engine/supermatter) -"ou" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"oC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"oS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"px" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"pA" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"pL" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"pP" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qc" = ( -/obj/structure/table, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"qe" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Bypass" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qo" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qA" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"re" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"rt" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ry" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"rJ" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"rY" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"sm" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space/nearstation) -"sn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"so" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"sq" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"sA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Mix" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"td" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"te" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"ti" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"tn" = ( -/turf/open/floor/engine, -/area/engine/supermatter) -"tw" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"tE" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"un" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"uC" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"uR" = ( -/obj/machinery/power/supermatter_crystal/engine, -/turf/open/floor/engine, -/area/engine/supermatter) -"vD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"vN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"vO" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"vX" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"wz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"wG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wS" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"xo" = ( -/obj/structure/reflector/box/anchored{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"xB" = ( -/obj/machinery/status_display, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"yd" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"yf" = ( -/turf/open/space/basic, -/area/space/nearstation) -"yA" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"yD" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"yZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Gas to Filter" - }, -/obj/machinery/airalarm/engine{ - dir = 4; - pixel_x = -23 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"zf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Atmos to Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"zh" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/flashlight, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/pipe_dispenser, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"zF" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"zS" = ( -/turf/open/space/basic, -/area/space) -"Ab" = ( -/obj/item/crowbar/large, -/obj/structure/rack, -/obj/item/flashlight, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Ah" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"AH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Bc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Bk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"Bl" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/geiger_counter, -/obj/item/geiger_counter, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"BD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Cb" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Cn" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"CH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"CT" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Supermatter Chamber"; - network = list("engine"); - pixel_x = 23 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"CW" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"Dj" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Supermatter Chamber"; - network = list("engine"); - pixel_x = 23 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"Dz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"DA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"DC" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Ef" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8; - filter_type = "n2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ei" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Es" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ex" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"EL" = ( -/turf/closed/wall, -/area/engine/engineering) -"EM" = ( -/obj/item/wrench, -/obj/structure/rack, -/obj/item/weldingtool/hugetank, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"EX" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Fr" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"FG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Gl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Starboard"; - dir = 8; - network = list("ss13","engine") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Gz" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Chamber" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"GB" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"GI" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"GK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"GX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Hj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Hn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"Hw" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"Hz" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ik" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"In" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"IE" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"IF" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/emitter/anchored{ - dir = 8; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Jn" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"JH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"JK" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"JL" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"JV" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Laser Room"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Ke" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Kv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"KX" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"KZ" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"Le" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"Lg" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Lv" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Lw" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"LE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"LJ" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/engine/engineering) -"LS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"Ml" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Mr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ME" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"MI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"MJ" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"MK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"MP" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Ne" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"Np" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Nw" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"Nx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ND" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"NK" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"NU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"NZ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Oj" = ( -/turf/closed/wall/r_wall, -/area/space/nearstation) -"Ok" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"OK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"OR" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"OU" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"Pa" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Ph" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Py" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Qn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Qu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"QD" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"QJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Aft"; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Rh" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"RA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"RV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"Sn" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"SL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"SR" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"SX" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"Tk" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plating, -/area/engine/engineering) -"TB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"TC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"TO" = ( -/obj/structure/sign/warning/radiation, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"Ub" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Uq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"Ur" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Uu" = ( -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"UM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"UN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"UP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"Vg" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"Vn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"VN" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"VP" = ( -/obj/item/wrench, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"Wf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"Ws" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"WB" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space/nearstation) -"WI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"WT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"Xy" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"XA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"XG" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"XK" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/radio/headset/headset_eng, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"XY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"YB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YD" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"YX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/engine, -/area/engine/supermatter) -"YZ" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space/nearstation) -"Zn" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ZH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ZO" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"ZT" = ( -/turf/template_noop, -/area/template_noop) - -(1,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -yf -Rh -yf -yf -Rh -yf -yf -Rh -yf -yf -yf -YZ -YZ -YZ -ZT -ZT -ZT -ZT -ZT -"} -(2,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -pL -aX -pL -yA -Sn -yA -yA -Sn -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(3,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(4,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -uC -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(5,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(6,1,1) = {" -ZT -ZT -ZT -ZT -ZT -ZT -ZT -wS -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -ZT -ZT -ZT -ZT -ZT -"} -(7,1,1) = {" -ZT -ZT -ZT -ZT -EL -EL -MP -bI -XG -bI -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -Oj -YZ -yf -yf -yf -yf -zS -"} -(8,1,1) = {" -ZT -ZT -cP -Ke -EL -Tk -MP -wS -XG -uC -Le -dD -yA -yA -dD -hK -yf -yf -YZ -Oj -YZ -yf -yf -Rh -yf -yf -"} -(9,1,1) = {" -ZT -ZT -dl -Ok -ND -Zn -Ei -bI -KZ -lG -sm -dD -Sn -Sn -dD -lG -Rh -Rh -YZ -YZ -YZ -tw -Rh -Rh -Rh -yf -"} -(10,1,1) = {" -ZT -nR -AH -iD -MP -MP -MP -sq -aA -rJ -gf -rJ -rJ -td -yf -yf -yf -yf -Rh -yf -yf -yf -yf -Rh -yf -yf -"} -(11,1,1) = {" -oC -GB -UN -sn -sn -sn -de -GK -wG -TC -mj -fW -at -XA -td -MP -MP -MP -MP -MP -MP -yf -WB -YZ -WB -yf -"} -(12,1,1) = {" -cS -hJ -qe -ry -ry -ry -ry -cX -ry -ry -nd -ry -yD -Ex -ck -iC -Uu -kW -Uu -EM -MP -yf -YZ -Oj -YZ -yf -"} -(13,1,1) = {" -ME -qr -Hz -te -te -so -ez -Mr -DA -ej -Dz -jZ -gB -SR -SX -Vn -Vn -cp -Uu -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(14,1,1) = {" -Ne -yd -bW -VP -EX -Vg -px -px -nW -Cn -Cn -xB -WI -IE -JV -Bc -JH -Lv -XY -LJ -MP -Rh -YZ -Oj -YZ -Rh -"} -(15,1,1) = {" -MP -zh -QD -Hj -EX -un -CT -na -na -KX -KX -Xy -Ml -Ef -iD -MJ -pP -pP -pP -MJ -MP -yf -YZ -Oj -YZ -yf -"} -(16,1,1) = {" -MP -aC -ey -TO -Xy -OR -UP -UP -UP -UP -UP -Xy -WT -UM -MP -Lw -Uu -Uu -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(17,1,1) = {" -oS -fa -fj -ZO -yZ -qA -tn -tn -tn -tn -tn -CW -YF -Py -iD -Uu -Uu -Uu -Uu -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(18,1,1) = {" -iD -fa -gj -YX -Qu -aV -tn -tn -uR -tn -tn -Hw -QJ -ac -iD -Uu -xo -xo -xo -Uu -MP -yf -YZ -Oj -YZ -yf -"} -(19,1,1) = {" -oS -fa -iJ -LE -Gz -lE -tn -tn -tn -tn -tn -JL -Nx -aw -iD -Uu -Uu -Uu -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(20,1,1) = {" -MP -Bl -jp -Xy -JL -OR -Wf -Wf -Wf -Wf -Wf -Xy -WT -UM -MP -Lw -Uu -Uu -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(21,1,1) = {" -MP -nV -mE -Ws -VN -wz -Dj -tE -tE -NU -NU -Xy -Np -YD -iD -MJ -IF -IF -IF -MJ -MP -yf -YZ -Oj -YZ -yf -"} -(22,1,1) = {" -iD -fa -mE -js -VN -xB -Nw -Nw -df -re -re -Vg -lw -bH -JV -Bc -Ph -Ph -nH -LJ -MP -Rh -YZ -Oj -YZ -Rh -"} -(23,1,1) = {" -iD -vX -bo -GX -Ik -vD -SL -YB -RV -qm -MK -ii -rY -Qn -ab -ZH -ZH -MI -Uu -Uu -MP -Rh -YZ -Oj -YZ -yf -"} -(24,1,1) = {" -mH -bT -Lg -zf -ry -ry -ry -OK -ry -ry -sA -ry -mX -BD -Uq -zF -Uu -GI -Uu -Ab -MP -Rh -YZ -Oj -YZ -yf -"} -(25,1,1) = {" -iD -mU -in -Ur -Es -Kv -Gl -aY -Kv -Kv -Fr -vN -nz -In -Ub -MP -MP -MP -MP -MP -MP -yf -YZ -YZ -YZ -yf -"} -(26,1,1) = {" -wt -av -kA -qo -EL -MP -MP -Cb -Uu -Uu -pA -jg -qc -fq -LS -Hn -dw -yf -Rh -yf -yf -yf -yf -Rh -yf -yf -"} -(27,1,1) = {" -ZT -ZT -ZT -ou -DC -iD -Uu -mi -NK -NK -Ah -Uu -Jn -MP -dw -dw -dw -Rh -Rh -Rh -Rh -tw -Rh -Rh -Rh -Rh -"} -(28,1,1) = {" -ZT -ZT -ZT -OU -Ok -CH -GI -gx -TB -gQ -gQ -ln -XK -MP -yf -yf -Rh -yf -Rh -Oj -YZ -yf -yf -Rh -yf -yf -"} -(29,1,1) = {" -ZT -ZT -ZT -FG -NZ -MP -MP -MP -MP -MP -iD -iD -iD -MP -Rh -Rh -Rh -Rh -Rh -Oj -YZ -yf -yf -Rh -yf -zS -"} diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index 4d07c02565..f4a18fd87c 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -967,6 +967,10 @@ }, /turf/open/floor/plating, /area/awaymission/cabin) +"dw" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/closed/indestructible/rock/snow, +/area/space) (1,1,1) = {" aa @@ -1223,7 +1227,7 @@ aa aa aa aa -aa +dw "} (2,1,1) = {" aa diff --git a/_maps/RandomZLevels/VR/snowdin_VR.dmm b/_maps/RandomZLevels/VR/snowdin_VR.dmm index bae0b05e3d..8f6eda450c 100644 --- a/_maps/RandomZLevels/VR/snowdin_VR.dmm +++ b/_maps/RandomZLevels/VR/snowdin_VR.dmm @@ -4,15 +4,9 @@ /turf/closed/indestructible/rock/snow, /area/awaymission/snowdin/cave/mountain) "ab" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/mob/living/simple_animal/hostile/netherworld/migo, -/turf/open/floor/plasteel, -/area/awaymission/snowdin/post/mining_dock) +/obj/effect/mapping_helpers/planet_z, +/turf/closed/indestructible/rock/snow, +/area/awaymission/snowdin/cave/mountain) "ac" = ( /turf/closed/indestructible/rock/snow, /area/awaymission/snowdin/cave/mountain) @@ -10273,6 +10267,16 @@ /obj/item/shard, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_dock) +"xA" = ( +/mob/living/simple_animal/hostile/netherworld/migo, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/snowdin/post/mining_dock) "xB" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -16009,7 +16013,7 @@ ac ac "} (2,1,1) = {" -ac +ab ac ac ac @@ -66514,7 +66518,7 @@ wD wT xe xs -ab +xA xI xN wL diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index 96c1a08b1f..d50480c381 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -2251,6 +2251,10 @@ initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid) +"gW" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/closed/indestructible/rock, +/area/space/nearstation) "gX" = ( /obj/effect/baseturf_helper/lava, /turf/closed/mineral/volcanic, @@ -2532,7 +2536,7 @@ aa aa aa aa -aa +gW "} (2,1,1) = {" aa diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 8c33326703..ddc8778ac1 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -7215,6 +7215,10 @@ heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/research) +"oV" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/open/space, +/area/space) "vV" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -7508,7 +7512,7 @@ aa aa aa aa -aa +oV "} (2,1,1) = {" aa diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 57e03061dd..525c8fcf7b 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -4,15 +4,9 @@ /turf/closed/indestructible/rock/snow, /area/awaymission/snowdin/cave/mountain) "ab" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/mob/living/simple_animal/hostile/netherworld/migo, -/turf/open/floor/plasteel, -/area/awaymission/snowdin/post/mining_dock) +/obj/effect/mapping_helpers/planet_z, +/turf/closed/indestructible/rock/snow, +/area/awaymission/snowdin/cave/mountain) "ac" = ( /turf/closed/indestructible/rock/snow, /area/awaymission/snowdin/cave/mountain) @@ -10337,6 +10331,16 @@ /obj/item/shard, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_dock) +"xA" = ( +/mob/living/simple_animal/hostile/netherworld/migo, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/snowdin/post/mining_dock) "xB" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -16104,7 +16108,7 @@ ac ac "} (2,1,1) = {" -ac +ab ac ac ac @@ -66609,7 +66613,7 @@ wD wT xe xs -ab +xA xI xN wL diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index 66d7f556b4..21cd37f78f 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -5,16 +5,6 @@ "ab" = ( /turf/open/space, /area/space) -"ac" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate/melee/sword, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) "ad" = ( /obj/structure/shuttle/engine/propulsion/right{ dir = 1 @@ -2607,6 +2597,16 @@ /obj/effect/spawner/lootdrop/armory_contraband, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) +"jK" = ( +/mob/living/simple_animal/hostile/syndicate/melee/sword, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) "jL" = ( /obj/machinery/door/poddoor{ id = "spacebattlearmory"; @@ -2894,6 +2894,10 @@ /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) +"kM" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/closed/mineral/random, +/area/space/nearstation) "vw" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/awaymission/spacebattle/syndicate5) @@ -3171,7 +3175,7 @@ aa aa aa aa -aa +kM "} (2,1,1) = {" aa @@ -35682,10 +35686,10 @@ eC cn fL cp -ac +jK fs fO -ac +jK eM eM eM diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 56018b943a..f6d46ef97d 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -25,9 +25,6 @@ "ag" = ( /turf/closed/wall/mineral/titanium, /area/awaymission/undergroundoutpost45/central) -"ah" = ( -/turf/open/space, -/area/space/nearstation) "aj" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -13948,6 +13945,10 @@ temperature = 363.9 }, /area/awaymission/undergroundoutpost45/caves) +"zi" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/open/space, +/area/space/nearstation) "KE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -14210,7 +14211,7 @@ aa aa aa aa -ah +zi "} (2,1,1) = {" aa diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index b6463f7147..92ceb0ac34 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -35,12 +35,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/bar) -"aad" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine, -/area/science/xenobiology) "aae" = ( /obj/effect/landmark/carpspawn, /turf/open/space, @@ -145,6 +139,7 @@ /obj/structure/sign/warning/electricshock{ pixel_y = 32 }, +/obj/machinery/seed_extractor, /turf/open/floor/plasteel, /area/security/prison) "aat" = ( @@ -173,10 +168,6 @@ "aay" = ( /turf/open/floor/plating, /area/security/prison) -"aaA" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel, -/area/security/prison) "aaB" = ( /obj/structure/window/reinforced, /obj/machinery/hydroponics/soil, @@ -235,6 +226,10 @@ /turf/open/floor/plasteel, /area/security/prison) "aaN" = ( +/obj/structure/chair/sofa/left, +/turf/open/floor/plasteel, +/area/security/prison) +"aaO" = ( /obj/structure/chair/sofa/right, /turf/open/floor/plasteel, /area/security/prison) @@ -267,15 +262,12 @@ /area/space/nearstation) "aaV" = ( /obj/structure/table/wood, -/obj/item/storage/pill_bottle/dice, +/obj/item/toy/cards/deck, /turf/open/floor/plasteel, /area/security/prison) "aaW" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 4 - }, +/obj/structure/table/wood, +/obj/item/storage/pill_bottle/dice, /turf/open/floor/plasteel, /area/security/prison) "aaX" = ( @@ -358,6 +350,7 @@ /obj/structure/table, /obj/item/storage/box/firingpins, /obj/item/storage/box/firingpins, +/obj/item/key/security, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -460,13 +453,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/security/execution/transfer) -"abz" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/engine, -/area/science/xenobiology) "abA" = ( /obj/machinery/light, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -1565,6 +1551,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) +"adO" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "adP" = ( /obj/structure/cable{ icon_state = "2-8" @@ -1887,7 +1881,14 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/key/security, +/obj/item/gun/energy/pumpaction/blaster{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/gun/energy/pumpaction/blaster{ + pixel_x = 3; + pixel_y = -3 + }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "aet" = ( @@ -4903,9 +4904,6 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/security/brig) "akt" = ( @@ -4928,16 +4926,13 @@ /turf/open/floor/plasteel, /area/security/brig) "aku" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"akv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/brig) "akw" = ( @@ -4965,6 +4960,11 @@ }, /turf/open/floor/plasteel, /area/security/courtroom) +"akz" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "akA" = ( /obj/structure/chair{ dir = 8; @@ -5174,9 +5174,6 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/structure/cable{ - icon_state = "1-4" - }, /turf/open/floor/plasteel, /area/security/brig) "akX" = ( @@ -5200,40 +5197,6 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"akY" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/security/brig) -"ala" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - desc = "A rare fourth cell, known for faulty wiring..."; - id = "Cell 4"; - name = "Cell 4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/brig) "alb" = ( /obj/structure/chair{ dir = 4; @@ -5445,6 +5408,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/courtroom) +"alE" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "alF" = ( /obj/machinery/atmospherics/components/unary/tank/air, /turf/open/floor/plating, @@ -5676,13 +5644,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) -"amp" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 4"; - name = "Cell 4 Locker" - }, -/turf/open/floor/plasteel, -/area/security/brig) "amr" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -6521,8 +6482,8 @@ /area/hallway/primary/fore) "aoC" = ( /obj/effect/turf_decal/tile/red, +/obj/structure, /obj/item/storage/box/drinkingglasses, -/obj/structure/table, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aoD" = ( @@ -6540,14 +6501,14 @@ /area/hallway/primary/fore) "aoE" = ( /obj/effect/turf_decal/tile/red, +/obj/structure, /obj/item/storage/box/cups, -/obj/structure/table, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aoF" = ( /obj/effect/turf_decal/tile/red, +/obj/structure, /obj/machinery/chem_dispenser/drinks, -/obj/structure/table, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aoG" = ( @@ -6705,7 +6666,6 @@ "ape" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/abandoned{ - abandoned = 0; name = "Vacant Office B"; req_access_txt = "32" }, @@ -9240,6 +9200,9 @@ /area/crew_quarters/dorms) "aww" = ( /obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "awx" = ( @@ -9618,6 +9581,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/port/fore) +"axm" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) "axn" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -9650,6 +9622,9 @@ /turf/open/floor/plating, /area/maintenance/fore) "axr" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, /obj/structure/cable{ icon_state = "4-8" }, @@ -10057,29 +10032,41 @@ /turf/closed/wall/r_wall, /area/maintenance/port/fore) "ayA" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, -/obj/machinery/door/firedoor, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-8" }, -/turf/open/floor/plasteel/white/side{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-4" }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/maintenance/fore) "ayC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/maintenance/fore) "ayD" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/maintenance/fore) "ayE" = ( /turf/closed/wall/r_wall, /area/maintenance/fore) +"ayF" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) "ayG" = ( /turf/closed/wall/r_wall, /area/gateway) @@ -11326,21 +11313,18 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "aBU" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/theatre) "aBV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ dir = 8; light_color = "#e8eaff" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/wood, /area/crew_quarters/theatre) "aBW" = ( @@ -13607,15 +13591,6 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/ai_monitored/nuke_storage) -"aHG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) "aHH" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -14213,12 +14188,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel, /area/storage/primary) -"aJe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) "aJf" = ( /obj/machinery/camera{ c_tag = "EVA South"; @@ -14636,6 +14605,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/storage/primary) +"aKb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) "aKc" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -14726,7 +14706,9 @@ /obj/item/radio/intercom{ pixel_y = 25 }, -/obj/machinery/camera, +/obj/machinery/camera{ + c_tag = "Theatre Stage" + }, /obj/structure/chair/comfy/brown{ dir = 4 }, @@ -14747,7 +14729,31 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/storage/primary) +"aKt" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) "aKu" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aKv" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/crew_quarters/theatre) @@ -14755,6 +14761,12 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -14769,9 +14781,13 @@ /obj/machinery/door/airlock/public/glass{ name = "Central Access" }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aKx" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-8" }, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/crew_quarters/theatre) "aKy" = ( @@ -15072,6 +15088,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "aLl" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -15227,6 +15246,18 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"aLJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "aLK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -19980,7 +20011,6 @@ /area/chapel/main) "aXX" = ( /obj/machinery/door/airlock/engineering/abandoned{ - abandoned = 0; name = "Vacant Office A"; req_access_txt = "32" }, @@ -21801,10 +21831,12 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "bcQ" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/turf/open/floor/wood, +/turf/open/floor/carpet, /area/crew_quarters/heads/captain) "bcR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21874,9 +21906,6 @@ /area/hallway/primary/starboard) "bdd" = ( /obj/machinery/vending/cola/random, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/wood, /area/bridge/meeting_room) "bde" = ( @@ -21920,8 +21949,12 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "bdi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = -30 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) @@ -22835,9 +22868,6 @@ dir = 8; pixel_x = 27 }, -/obj/machinery/light{ - dir = 4 - }, /turf/open/floor/wood, /area/bridge/meeting_room) "bfs" = ( @@ -22876,13 +22906,6 @@ pixel_y = 7 }, /obj/item/pen, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Captain's Desk"; - departmentType = 5; - name = "Captain RC"; - pixel_x = -30 - }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bfz" = ( @@ -22904,14 +22927,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"bfC" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) "bfD" = ( /obj/structure/cable{ icon_state = "1-2" @@ -23339,6 +23354,9 @@ /turf/open/floor/wood, /area/bridge/meeting_room) "bgM" = ( +/obj/machinery/light{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, @@ -23368,9 +23386,14 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bgS" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = -30 }, +/obj/structure/filingcabinet, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bgT" = ( @@ -23378,9 +23401,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bgU" = ( @@ -23389,18 +23409,12 @@ }, /obj/effect/landmark/start/captain, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bgV" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/item/coin/plasma, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bgW" = ( @@ -23997,22 +24011,11 @@ pixel_x = -28 }, /obj/machinery/suit_storage_unit/captain, -/obj/machinery/light{ - light_color = "#c9d3e8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bil" = ( -/obj/machinery/computer/card{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bim" = ( /obj/structure/table/wood, /obj/machinery/recharger, -/obj/item/melee/chainofcommand, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bin" = ( @@ -28236,10 +28239,11 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "bsb" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) "bsc" = ( /turf/open/floor/plasteel, /area/engine/gravity_generator) @@ -28247,16 +28251,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) -"bsg" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/machinery/camera{ - c_tag = "Medbay Morgue"; - dir = 8; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) "bsh" = ( /turf/closed/wall, /area/teleporter) @@ -34916,6 +34910,20 @@ }, /turf/open/floor/plasteel/white, /area/science/research) +"bHg" = ( +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 5; + icon_state = "roomnum"; + name = "Room Number 7"; + pixel_y = 24 + }, +/obj/structure/chair/sofa/right, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) "bHh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -45346,9 +45354,14 @@ /area/engine/engineering) "cgw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/closet/radiation, /turf/open/floor/plasteel, /area/engine/engineering) +"cgx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) "cgy" = ( /obj/machinery/light/small{ dir = 1 @@ -45418,8 +45431,32 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cgI" = ( -/turf/template_noop, -/area/template_noop) +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cgJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cgK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cgL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) "cgO" = ( /obj/structure/rack, /obj/item/lighter, @@ -45828,6 +45865,27 @@ /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plasteel, /area/engine/engineering) +"chF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"chG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) "chH" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, @@ -45916,6 +45974,36 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"chV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/tank/internals/emergency_oxygen/engi{ + pixel_x = 5 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"chX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) "chY" = ( /obj/machinery/shieldgen, /turf/open/floor/plating, @@ -45998,6 +46086,24 @@ "cig" = ( /turf/closed/wall, /area/engine/engineering) +"cii" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/obj/item/clothing/glasses/meson, +/obj/item/geiger_counter, +/obj/item/geiger_counter, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) "cij" = ( /obj/machinery/modular_computer/console/preset/engineering, /obj/structure/cable{ @@ -46063,6 +46169,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) +"cip" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) "ciq" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -46072,6 +46187,13 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) +"cir" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) "cis" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, @@ -46216,6 +46338,16 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/engineering) +"ciO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) "ciP" = ( /obj/structure/cable{ icon_state = "0-2" @@ -46383,6 +46515,12 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) +"cjh" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cji" = ( /obj/structure/cable{ icon_state = "1-2" @@ -46668,7 +46806,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/closet/wardrobe/engineering_yellow, /turf/open/floor/plasteel, /area/engine/engineering) "cjT" = ( @@ -47536,6 +47673,15 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"cmm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) "cmo" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -47912,6 +48058,18 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) +"cnx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) "cny" = ( /obj/effect/landmark/start/station_engineer, /turf/open/floor/plasteel, @@ -48170,6 +48328,19 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"coc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"coj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/dorms) "cop" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ dir = 1 @@ -48261,7 +48432,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engine_smes) "coz" = ( @@ -48274,6 +48447,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/engine_smes) "coA" = ( @@ -48338,6 +48514,16 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"coK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) "coL" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -48350,6 +48536,18 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"coM" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) "coS" = ( /obj/structure/rack, /obj/item/gun/energy/laser{ @@ -48466,9 +48664,6 @@ /area/engine/engine_smes) "cpk" = ( /obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, /turf/open/floor/plasteel, /area/engine/engine_smes) "cpl" = ( @@ -48485,20 +48680,18 @@ dir = 1; pixel_y = -22 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /turf/open/floor/plasteel, /area/engine/engine_smes) "cpn" = ( /obj/machinery/light, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engine_smes) "cpo" = ( @@ -48538,6 +48731,52 @@ /obj/machinery/cell_charger, /turf/open/floor/plasteel, /area/engine/engineering) +"cpt" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/storage/toolbox/electrical{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpv" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) "cpA" = ( /obj/structure/cable{ icon_state = "1-2" @@ -48552,6 +48791,15 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/bridge) +"cpD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) "cpE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -48666,6 +48914,133 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"cpZ" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqa" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqe" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqf" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqg" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Filter" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqh" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Fore"; + dir = 1; + network = list("ss13","engine"); + pixel_x = 23 + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqi" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqj" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door{ + id = "engsm"; + name = "Radiation Shutters Control"; + pixel_y = -24; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cql" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqm" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering) "cqn" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -48747,6 +49122,53 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"cqA" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cqC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqD" = ( +/obj/structure/sign/warning/radiation, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cqE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/engine, +/area/engine/supermatter) +"cqF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) "cqG" = ( /obj/structure/rack, /obj/item/storage/box/rubbershot{ @@ -48843,10 +49265,70 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel, /area/engine/engineering) +"cqS" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/engine/engineering) +"cqT" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "cqY" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/engineering) +"cqZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/engine/supermatter) +"cra" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas to Filter" + }, +/obj/machinery/airalarm/engine{ + dir = 4; + pixel_x = -23 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/engine/supermatter) +"crb" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Chamber" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/engine/supermatter) +"crc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"crd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "crh" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48911,6 +49393,36 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/engineering) +"crs" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"crt" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cru" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"crv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) "crw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -49001,6 +49513,44 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/aft) +"crH" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"crI" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"crJ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"crK" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"crL" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"crM" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "crP" = ( /obj/machinery/light, /turf/open/floor/plasteel, @@ -49012,6 +49562,26 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"crT" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"crU" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) +"crV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "crW" = ( /obj/machinery/light/small{ dir = 8 @@ -49030,11 +49600,39 @@ /obj/structure/transit_tube, /turf/open/floor/plating, /area/engine/engineering) +"crZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"csa" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"csb" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/space, +/area/space/nearstation) "csc" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/space, /area/maintenance/aft) +"csd" = ( +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cse" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "csg" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -49051,6 +49649,13 @@ }, /turf/open/space, /area/space/nearstation) +"csj" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) "csk" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/airless, @@ -49076,6 +49681,10 @@ /obj/structure/transit_tube/crossing/horizontal, /turf/open/space, /area/space/nearstation) +"csp" = ( +/obj/effect/landmark/event_spawn, +/turf/closed/wall, +/area/crew_quarters/fitness) "csq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 @@ -49098,16 +49707,68 @@ /obj/machinery/meter, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) +"css" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space/nearstation) +"csu" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"csv" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"csx" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space/nearstation) "csy" = ( /obj/structure/disposalpipe/segment, /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"csA" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) "csD" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) +"csH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) "csM" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/yellow/visible, @@ -49123,6 +49784,30 @@ /obj/structure/transit_tube/horizontal, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) +"csP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) "csT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/xmastree, @@ -50806,14 +51491,6 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"cwP" = ( -/obj/structure/fireplace, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 23 - }, -/turf/open/floor/plating, -/area/maintenance/port) "cwT" = ( /obj/machinery/camera{ c_tag = "Arrivals Escape Pod 2"; @@ -50972,6 +51649,13 @@ }, /turf/open/floor/plating, /area/hallway/secondary/exit) +"cyi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) "cyl" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -51123,14 +51807,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"czi" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) "czk" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -51141,6 +51817,23 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) +"czD" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"czE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"czF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "czG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -51340,6 +52033,96 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"cAl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cAm" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/open/floor/engine, +/area/engine/supermatter) +"cAo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Cooling Loop to Gas" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Mix" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAu" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) "cAy" = ( /obj/structure/closet/secure_closet/freezer/kitchen/maintenance, /turf/open/floor/plating, @@ -51446,6 +52229,10 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"cAP" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/engine/supermatter) "cAQ" = ( /obj/structure/chair, /turf/open/floor/plating, @@ -51865,6 +52652,15 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/engine/air, /area/engine/atmos) +"cBR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) "cBS" = ( /obj/structure/cable{ icon_state = "1-2" @@ -52101,6 +52897,79 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"cDe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/pipe_dispenser, +/turf/open/floor/engine, +/area/engine/engineering) +"cDi" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDj" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) "cDl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52115,6 +52984,92 @@ /obj/machinery/vending/engivend, /turf/open/floor/plasteel, /area/engine/engineering) +"cDo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDs" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDw" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Atmos to Loop" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52122,6 +53077,70 @@ /obj/effect/landmark/start/station_engineer, /turf/open/floor/plasteel, /area/engine/engineering) +"cDC" = ( +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cDD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cDE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cDF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cDG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cDH" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDI" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cDJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -52162,6 +53181,831 @@ /obj/structure/closet/radiation, /turf/open/floor/plasteel, /area/engine/engineering) +"cEa" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cEd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Port"; + dir = 4; + network = list("ss13","engine") + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cEf" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cEg" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cEh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cEi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Starboard"; + dir = 8; + network = list("ss13","engine") + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEk" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cEl" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cEr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Cooling Loop" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEt" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cEu" = ( +/obj/machinery/camera{ + c_tag = "Supermatter Chamber"; + network = list("engine"); + pixel_x = 23 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEv" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEy" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEz" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEA" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cEB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Gas" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cED" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEE" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/space, +/area/space/nearstation) +"cEK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cEL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEM" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/tank/internals/plasma, +/turf/open/floor/plating, +/area/engine/supermatter) +"cET" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cEU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cEW" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Cooling Loop Bypass" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFe" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cFh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cFj" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cFk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix Bypass" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFm" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cFn" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/space, +/area/space/nearstation) +"cFo" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cFu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"cFw" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cFy" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFA" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFF" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/crew_quarters/fitness) +"cFI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cFK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Aft"; + network = list("ss13","engine"); + pixel_x = 23 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFT" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGd" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/item/cartridge/atmos, +/turf/open/floor/engine, +/area/engine/engineering) +"cGe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGf" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8; + filter_type = "n2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGg" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/engine/engineering) +"cGi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/engine/engineering) +"cGj" = ( +/obj/structure/table, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGk" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGl" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/radio/headset/headset_eng, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGt" = ( +/obj/structure/closet/wardrobe/engineering_yellow, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGx" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"cGC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + dir = 4; + name = "Output Release" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGE" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGH" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Laser Room"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGK" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cGR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGT" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGU" = ( +/obj/structure/reflector/double/anchored{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGV" = ( +/obj/structure/reflector/box/anchored{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGZ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cHa" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cHb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHc" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHd" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHe" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHj" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/emitter/anchored{ + dir = 8; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHn" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHo" = ( +/obj/structure/reflector/single/anchored{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cHp" = ( +/obj/structure/reflector/single/anchored{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cHr" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) "cHD" = ( /obj/structure/cable{ icon_state = "1-2" @@ -52471,27 +54315,33 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) -"cJn" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ +"cII" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/coin/silver, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cIW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/vending/kink, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" }, -/obj/effect/turf_decal/stripes/box, /turf/open/floor/plasteel, -/area/engine/atmos) -"cMk" = ( -/obj/machinery/vr_sleeper{ +/area/crew_quarters/fitness) +"cJl" = ( +/obj/structure/toilet{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"cMm" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) "cMC" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -52512,6 +54362,16 @@ }, /turf/open/floor/plasteel/dark, /area/engine/engineering) +"cMD" = ( +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cMH" = ( +/turf/open/floor/engine, +/area/engine/supermatter) +"cMN" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/supermatter) "cMQ" = ( /obj/structure/cable{ icon_state = "0-2" @@ -52699,6 +54559,10 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"cPO" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cQw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -52717,47 +54581,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cRz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "holoprivacy"; - name = "Holodeck Privacy"; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cRD" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/dresser, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/theatre"; - dir = 8; - name = "Theatre APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"cSn" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) "cSA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52776,6 +54599,42 @@ }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) +"cSG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cSH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cSJ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) "cSL" = ( /obj/machinery/button/door{ id = "atmos"; @@ -53144,60 +55003,10 @@ "cVb" = ( /turf/closed/wall, /area/hallway/secondary/service) -"cVp" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/obj/structure/curtain, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"cVu" = ( -/obj/machinery/camera{ - c_tag = "Locker Room South"; - dir = 8 - }, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) "cVK" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/science/circuit) -"cXx" = ( -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"dbn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"dbM" = ( -/turf/open/floor/plating, -/area/space/nearstation) -"dcG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/wardrobe/pjs, -/obj/item/clothing/under/maid, -/obj/item/clothing/under/maid, -/obj/item/clothing/under/janimaid, -/obj/item/clothing/under/janimaid, -/obj/item/clothing/accessory/maidapron, -/obj/item/clothing/accessory/maidapron, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "dfh" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -53212,257 +55021,63 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"dfI" = ( -/obj/machinery/door/firedoor, -/obj/structure/sign/departments/evac{ - pixel_y = -32 +"dfH" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/main"; + dir = 4; + name = "Firing Range APC"; + pixel_x = 24 }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/security/prison) "dfL" = ( /obj/structure/reagent_dispensers/keg/gargle, /turf/open/floor/wood, /area/maintenance/bar) -"dgh" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/machinery/camera{ - c_tag = "VR Sleepers"; - dir = 1 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/crew_quarters/fitness) "dgz" = ( /turf/closed/wall, /area/crew_quarters/cryopod) -"dhx" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/machinery/light/small{ +"djq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/mineral/titanium/blue, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) -"dkk" = ( -/obj/machinery/photocopier{ - pixel_x = -5; - pixel_y = -5 +"djB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/wood, -/area/library) +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "dok" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"doP" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"dtE" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"dvc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"dvO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/science/circuit) -"dwc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, +"dqD" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"dxB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/prison) -"dzi" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"dzy" = ( -/obj/machinery/door/airlock{ - name = "Shower Room" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/toilet) -"dHb" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"dKP" = ( -/turf/closed/wall, -/area/maintenance/bar) -"dKV" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/wood, -/area/maintenance/bar) -"dMu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"dMX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/chair/comfy/brown, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"dMZ" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"dRC" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hydroponics) -"dSv" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/abandoned_gambling_den"; - name = "Abandoned Gambling Den APC"; - pixel_y = -24 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"dTe" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"dTJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"eaI" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom{ - pixel_x = -30 - }, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"edH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"ego" = ( -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"egQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"egS" = ( -/obj/structure/table/wood/fancy, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/snacks/burger/plain, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"elw" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"epV" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm6"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"eqm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"est" = ( +/obj/machinery/door/airlock/vault, +/obj/effect/mapping_helpers/airlock/locked, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"dqG" = ( /obj/machinery/light{ dir = 1 }, @@ -53476,13 +55091,277 @@ dir = 1 }, /area/hallway/secondary/entry) +"dsV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/closet/secure_closet/personal/cabinet{ + desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here."; + name = "Personal ID-Locked Closet"; + pixel_y = 15 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"duc" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"dvc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"dvO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/science/circuit) +"dyS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"dzi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"dBt" = ( +/obj/structure/filingcabinet, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"dCk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"dEZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Shooting Range" + }, +/turf/open/floor/plating, +/area/security/prison) +"dGY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/official/safety_eye_protection, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"dHx" = ( +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"dHP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"dIA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"dIH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) +"dKe" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"dKg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"dKP" = ( +/turf/closed/wall, +/area/maintenance/bar) +"dKV" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) +"dLh" = ( +/obj/structure/table/wood, +/obj/item/instrument/trumpet, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"dMZ" = ( +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"dQy" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/security/prison) +"dQz" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"dSI" = ( +/obj/machinery/door/airlock{ + desc = "To keep the station within regulations, space IKEA requires one storage cupboard for their Nanotrasen partnership to continue."; + id_tag = "MaintDorm1"; + name = "Furniture Storage" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"dSM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"eaD" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/hydroponics) +"eaI" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"eeD" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/gravity_generator"; + dir = 8; + name = "Gravity Generator APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/table, +/obj/item/paper/guides/jobs/engi/gravity_gen, +/obj/item/pen/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"efo" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"ekY" = ( +/obj/structure/filingcabinet, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"epP" = ( +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"eqs" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = -30; + pixel_y = 45; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ese" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) "evR" = ( /turf/open/floor/plating, /area/maintenance/bar) -"ewZ" = ( -/obj/structure/chair/sofa/right, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +"eyC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) "eyM" = ( /obj/machinery/mineral/ore_redemption{ input_dir = 2; @@ -53491,111 +55370,90 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"eAE" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/carpet, +/area/library) +"eBm" = ( +/obj/structure/chair/sofa/left, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"eDq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"eDv" = ( +/turf/open/floor/carpet, +/area/crew_quarters/theatre) "eHI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) -"eLH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"eMQ" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/vending/wardrobe/curator_wardrobe, -/turf/open/floor/carpet, -/area/library) -"eND" = ( -/obj/structure/filingcabinet, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"eNK" = ( +"eIe" = ( /obj/structure/table/wood, -/obj/item/instrument/guitar, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"eNW" = ( -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"eOv" = ( -/obj/effect/landmark/event_spawn, -/turf/closed/wall, -/area/crew_quarters/fitness) -"eOy" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ +/obj/machinery/light{ dir = 4 }, +/obj/item/instrument/trombone, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"eJk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, +/area/security/brig) +"eJz" = ( +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"eMb" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"eMV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/security/prison) -"ePO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"eRk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"eRn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/quartermaster/warehouse) "eRz" = ( /obj/structure/lattice, /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) -"eUd" = ( -/obj/structure/cable{ - icon_state = "4-8" +"eTc" = ( +/obj/item/flashlight/lamp/green{ + pixel_x = -3; + pixel_y = 22 }, -/obj/structure/chair/comfy/brown{ - dir = 8 +/obj/structure/dresser{ + desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too."; + name = "Dresser"; + pixel_y = 7 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plating, +/area/maintenance/port) +"eUR" = ( +/obj/structure/chair/stool{ + pixel_y = 8 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "eVC" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/firedoor, @@ -53611,45 +55469,93 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"eXm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"fbm" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 +"eWl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/wood, -/area/crew_quarters/bar) -"fby" = ( -/obj/structure/cable{ - icon_state = "2-4" +/area/crew_quarters/theatre) +"eWv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/light/small{ + dir = 8 }, -/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/security/prison) +"eWV" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, -/area/engine/gravity_generator) +/area/hallway/primary/fore) +"eYr" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/space/nearstation) +"fcc" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/crew_quarters/fitness) +"fcu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/space, +/area/solar/port/aft) "fcG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/science/mixing) -"fhP" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +"fey" = ( +/obj/structure/chair/sofa, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"ffm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"ffU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"fkx" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/evac{ + pixel_y = 32 }, /turf/open/floor/plasteel, -/area/engine/gravity_generator) -"fjy" = ( -/obj/structure/lattice, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) +/area/hallway/primary/starboard) "flc" = ( /obj/structure/table/reinforced, /obj/item/storage/fancy/donut_box, @@ -53668,67 +55574,20 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/service) -"fnJ" = ( -/obj/structure/sign/mining{ - pixel_y = 7 - }, -/turf/closed/wall, -/area/quartermaster/miningdock) -"frE" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"fsk" = ( -/obj/structure/lattice/catwalk, -/obj/item/stack/marker_beacon{ - anchored = 1; - icon_state = "markerburgundy-on"; - light_power = 3; - light_range = 3; - name = "Docking Beacon"; - picked_color = "Burgundy" - }, -/turf/open/floor/plating, -/area/space/nearstation) -"ftv" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"fuo" = ( -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/grass, -/area/security/prison) -"fvk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"fvW" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, +"fpd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/wood, -/area/crew_quarters/bar) +/turf/closed/wall, +/area/crew_quarters/dorms) +"fsQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ftK" = ( +/obj/structure/bed, +/turf/open/floor/plating, +/area/maintenance/port) "fvY" = ( /obj/machinery/computer/cryopod{ pixel_y = 26 @@ -53738,28 +55597,54 @@ }, /turf/open/floor/carpet, /area/crew_quarters/cryopod) +"fwD" = ( +/obj/structure/sign/poster/official/ion_rifle, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) "fxa" = ( /obj/structure/chair/wood/normal, /turf/open/floor/wood{ icon_state = "wood-broken4" }, /area/maintenance/bar) -"fyq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - pixel_x = 5 +"fyr" = ( +/obj/machinery/door/window/southright{ + name = "Target Storage" }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"fyM" = ( -/obj/structure/closet/wardrobe/cargotech, -/obj/item/radio/headset/headset_cargo, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"fzd" = ( -/turf/closed/wall, -/area/crew_quarters/abandoned_gambling_den) +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target/syndicate, +/turf/open/floor/plating, +/area/security/prison) +"fBj" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Air In" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"fDV" = ( +/obj/machinery/computer/card{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"fEo" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"fFp" = ( +/obj/structure/table/wood/fancy/royalblue, +/obj/item/crowbar/red, +/turf/open/floor/plating, +/area/maintenance/port) "fGf" = ( /obj/machinery/smartfridge/disks{ pixel_y = 2 @@ -53770,42 +55655,30 @@ }, /turf/open/floor/plasteel, /area/hydroponics) -"fGl" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/cable{ - icon_state = "1-2" +"fIK" = ( +/obj/structure/closet{ + name = "Costume Closet" }, -/turf/open/floor/plasteel, -/area/security/brig) -"fGC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/vault, -/obj/effect/mapping_helpers/airlock/locked, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"fHK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"fIn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/machinery/meter, +/obj/item/clothing/head/russobluecamohat, +/obj/item/clothing/head/russobluecamohat, +/obj/item/clothing/head/russofurhat, +/obj/item/clothing/head/russofurhat, +/obj/item/clothing/head/russofurhat, +/obj/item/clothing/head/russofurhat, +/obj/item/clothing/under/mw2_russian_para, +/obj/item/clothing/under/mw2_russian_para, +/obj/item/clothing/under/mw2_russian_para, +/obj/item/clothing/under/mw2_russian_para, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"fJa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, -/obj/structure/chair/sofa{ - dir = 1 +"fJA" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -53814,7 +55687,679 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) -"fLd" = ( +"fLb" = ( +/obj/structure/table/wood, +/obj/item/instrument/violin, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"fLn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"fLX" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"fOB" = ( +/obj/structure/chair/sofa{ + dir = 1 + }, +/obj/structure/window, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"fPz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1; + pixel_x = 5 + }, +/obj/machinery/light/small, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"fRa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + icon_state = "roomnum"; + name = "Room Number 1"; + pixel_x = -30; + pixel_y = -7 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"fSL" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + icon_state = "right"; + name = "Unisex Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"fTg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fXo" = ( +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"fXH" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"fZD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/landmark/start/mime, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"gbb" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"gbq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/construction) +"gbT" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"gfn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"gfD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"gjl" = ( +/turf/closed/wall, +/area/quartermaster/warehouse) +"gks" = ( +/turf/open/floor/grass, +/area/security/prison) +"gmc" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/camera{ + c_tag = "VR Sleepers"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"gnM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"gnW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/starboard/aft) +"gqp" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"gqR" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"gro" = ( +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"guh" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/item/reagent_containers/food/snacks/cheesynachos{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"gvC" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"gwd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"gxH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"gzA" = ( +/obj/structure/table/wood/fancy, +/obj/machinery/light, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 20 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 20 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"gzJ" = ( +/obj/structure/sign/poster/official/cohiba_robusto_ad, +/turf/closed/wall, +/area/lawoffice) +"gBo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"gBY" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/fore"; + dir = 1; + name = "Starboard Bow Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"gDv" = ( +/obj/structure/table, +/obj/item/clothing/gloves/boxing/yellow, +/obj/item/clothing/gloves/boxing/green, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing, +/obj/item/clothing/gloves/boxing, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"gFY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"gGD" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"gGK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"gIT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"gJR" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar{ + pixel_x = -7 + }, +/obj/item/instrument/eguitar{ + pixel_x = 5 + }, +/obj/item/instrument/violin, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"gLH" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"gMl" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"gOZ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"gTx" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"gUz" = ( +/obj/structure/sign/poster/official/safety_eye_protection, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"gWd" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/construction) +"gXs" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"gYK" = ( +/obj/machinery/light/small, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"gYR" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"gZG" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/sleeper) +"hmv" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hot" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/window, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"hvD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hxw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"hFk" = ( +/obj/structure/piano{ + icon_state = "piano" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hIi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"hIJ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hKI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"hKX" = ( +/obj/machinery/button/door{ + desc = "Alright, GAMER! Want to take your PWRGAME addiction to the MAX? Just smash this button with your chubby chetto encrusted hands an- oh, you broke the switch. Good job, idiot."; + id = "RIPFUN"; + name = "Powerful Gamer Toggle"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = 7; + specialfunctions = 4 + }, +/obj/structure/table_frame/wood, +/turf/open/floor/plating, +/area/maintenance/port) +"hMk" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"hRa" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"hSS" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/coin/silver, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"hUC" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-06" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"hVk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/warehouse"; + dir = 4; + name = "Cargo Warehouse APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"hYH" = ( +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"iaq" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"iiH" = ( +/obj/structure/table/wood/fancy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup."; + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"iiW" = ( +/turf/open/floor/wood, +/area/maintenance/bar) +"ijc" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ilO" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"imi" = ( +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"imH" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/bar) +"imK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ioS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"ipA" = ( +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"ipU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"itE" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/curtain, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"itG" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"itP" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ium" = ( +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ixv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"izv" = ( +/obj/machinery/vending/clothing, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"izL" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/evac{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"iCE" = ( /obj/structure/table/wood, /obj/machinery/requests_console{ department = "Theatre"; @@ -53835,96 +56380,740 @@ dir = 4 }, /area/crew_quarters/theatre) -"fOc" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 +"iEc" = ( +/obj/structure/safe, +/obj/item/clothing/head/bearpelt, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"fPs" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/obj/item/reagent_containers/food/snacks/cheesynachos{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"fQF" = ( -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 5; - icon_state = "roomnum"; - name = "Room Number 7"; - pixel_y = 24 - }, -/obj/structure/chair/sofa/right, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"fSr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/bin, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light, +/obj/item/gun/ballistic/revolver/nagant, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"iEJ" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"iFt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"iGV" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, /turf/open/floor/plasteel, +/area/security/prison) +"iHq" = ( +/obj/machinery/door/airlock{ + name = "Recharging Station" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"iNn" = ( +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"iQA" = ( +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/under/color/grey, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"iRI" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"iSB" = ( +/obj/machinery/door/window/southleft{ + name = "Target Storage" + }, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target, +/obj/item/target, +/turf/open/floor/plating, +/area/security/prison) +"iTd" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here."; + name = "Personal ID-Locked Closet"; + pixel_y = 15 + }, +/turf/open/floor/carpet, /area/crew_quarters/dorms) -"fTg" = ( +"iTD" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"iVU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/firealarm{ - pixel_y = 24 +/obj/effect/spawner/structure/window, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) +"iWm" = ( +/obj/machinery/camera{ + c_tag = "Bar West"; + dir = 4 + }, +/obj/machinery/computer/arcade/orion_trail, +/obj/structure/sign/poster/official/foam_force_ad{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"jav" = ( +/obj/structure/chair/sofa/right, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"jbf" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; + dir = 1; + name = "Service Hall APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"jcN" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"jde" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4; + pixel_y = 5 + }, +/obj/structure/chair/sofa{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"jgm" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Circuitry Lab"; + dir = 8; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jil" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"jlm" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"joc" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/dresser, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre"; + dir = 8; + name = "Theatre APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"joq" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"jqv" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"jrE" = ( +/obj/structure/sign/poster/official/random{ + pixel_x = 32 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"fVU" = ( +/area/science/circuit) +"jtp" = ( +/obj/structure/sign/poster/contraband/red_rum{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"jtY" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, /turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"juV" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"jvm" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/space, +/area/solar/starboard/aft) +"jxp" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"jAD" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"jCq" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jDh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"jHt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jJF" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"jKM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/locker) +"jMa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, /area/crew_quarters/fitness) -"fZD" = ( -/obj/structure/filingcabinet, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" +"jMY" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/artistic{ + icon_state = "yellow"; + item_state = "toolbox_yellow"; + name = "Cable Toolbox"; + pixel_y = 6 + }, +/obj/item/storage/toolbox/artistic{ + icon_state = "yellow"; + item_state = "toolbox_yellow"; + name = "Cable Toolbox"; + pixel_y = -4 }, /turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"gbq" = ( +/area/engine/engineering) +"jNS" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"jOF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/port) +"jRc" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/dice{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/snacks/cherrycupcake, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"jRs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"jSk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) +"jSO" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jTp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"jUc" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"jVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plating, -/area/construction) -"gbT" = ( +/area/maintenance/starboard/aft) +"jYg" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"jYD" = ( +/obj/structure/closet{ + name = "Suit Closet" + }, +/obj/item/clothing/under/suit_jacket/white, +/obj/item/clothing/under/suit_jacket/tan, +/obj/item/clothing/under/suit_jacket/red, +/obj/item/clothing/under/suit_jacket/really_black, +/obj/item/clothing/under/suit_jacket/navy, +/obj/item/clothing/under/suit_jacket/green, +/obj/item/clothing/under/suit_jacket/female, +/obj/item/clothing/under/suit_jacket/checkered, +/obj/item/clothing/under/suit_jacket/charcoal, +/obj/item/clothing/under/suit_jacket/burgundy, +/obj/item/clothing/under/suit_jacket, +/obj/item/clothing/under/lawyer/black, +/obj/item/clothing/under/lawyer/blacksuit, +/obj/item/clothing/under/lawyer/blue, +/obj/item/clothing/under/lawyer/bluesuit, +/obj/item/clothing/under/lawyer/female, +/obj/item/clothing/under/lawyer/purpsuit, +/obj/item/clothing/under/lawyer/really_black, +/obj/item/clothing/under/lawyer/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"kcg" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kgf" = ( +/obj/machinery/button/door{ + id = "maintdiy"; + name = "Shutters Control Button"; + pixel_x = -6; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"khb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, +/obj/item/kitchen/rollingpin, +/obj/item/shovel/spade, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"khB" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"kiH" = ( +/obj/machinery/door/airlock{ + name = "Bar Back Room" + }, +/turf/open/space/basic, +/area/crew_quarters/bar) +"kmf" = ( +/obj/machinery/vending/autodrobe/all_access, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"kmw" = ( +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"knx" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"knR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"kob" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ktc" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"kte" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"kuT" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"kwj" = ( +/obj/machinery/door/airlock{ + name = "Instrument Storage" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"kwW" = ( +/obj/structure/table/wood, +/obj/item/book/codex_gigas, +/obj/item/clothing/under/suit_jacket/red, +/obj/structure/destructible/cult/tome, +/turf/open/floor/carpet, +/area/library) +"kyA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"kyF" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood, +/area/maintenance/bar) +"kzT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/science/mixing) +"kBF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"kCq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"kCK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"kDw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"kFf" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kMg" = ( +/turf/open/space/basic, +/area/space/nearstation) +"kMO" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/soap, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"kMY" = ( +/obj/machinery/door/airlock{ + desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; + id_tag = "PrivateStudy"; + name = "Private Study" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"kOA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "holoprivacy"; + name = "Holodeck Privacy"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"kPd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"kQg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kQk" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/storage/toolbox/electrical, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"gdu" = ( +"kQq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"kSb" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"kTe" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/turf/closed/wall/mineral/titanium, +/area/space/nearstation) +"lev" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"lfx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "maintdiy"; + name = "Security Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"liD" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ljN" = ( /obj/structure/toilet{ dir = 4 }, @@ -53948,656 +57137,308 @@ }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet/locker) -"gfD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"ggg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space, -/area/solar/starboard/aft) -"ghs" = ( +"lmT" = ( /obj/structure/table/wood/fancy, -/obj/machinery/light, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 20 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 20 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4; pixel_y = 5 }, +/obj/item/reagent_containers/food/snacks/burger/plain, /turf/open/floor/wood, /area/crew_quarters/bar) -"ghJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - icon_state = "roomnum"; - name = "Room Number 1"; - pixel_x = -30; - pixel_y = -7 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"ghY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"gjf" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"gjl" = ( -/turf/closed/wall, -/area/quartermaster/warehouse) -"gjC" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"gtL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"gwd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"gwi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"gBo" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"gCe" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"gFD" = ( -/obj/structure/table/wood/fancy/royalblue, -/obj/item/crowbar/red, -/turf/open/floor/plating, -/area/maintenance/port) -"gIO" = ( -/obj/structure/bed, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plating, -/area/security/prison) -"gJg" = ( -/turf/closed/wall/mineral/titanium, -/area/space/nearstation) -"gKk" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"gLH" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"gMl" = ( +"lnu" = ( /obj/structure/chair/wood/normal{ dir = 4 }, -/turf/open/floor/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, /area/maintenance/bar) -"gOZ" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" +"lqe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/sofa, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"lre" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"lrF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"lrH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"ltC" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"lwn" = ( +/obj/structure/table, +/obj/item/book/manual/hydroponics_pod_people{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/paper/guides/jobs/hydroponics{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"lyB" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Firing Range"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"lzY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"lAB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/science/circuit) +"lAY" = ( +/obj/structure/closet/lasertag/red, +/obj/item/clothing/under/pj/red, +/obj/item/clothing/under/pj/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"lBk" = ( +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"lCi" = ( +/obj/docking_port/stationary/public_mining_dock{ + dir = 8 }, /turf/open/floor/plating, -/area/crew_quarters/fitness) -"gQn" = ( -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"gSH" = ( -/obj/structure/grille, -/turf/closed/wall/r_wall, +/area/construction/mining/aux_base) +"lDF" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/space/basic, /area/space/nearstation) -"gVX" = ( +"lHE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"lJX" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"lMg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"lNn" = ( +/obj/structure/lattice, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"lNz" = ( +/obj/structure/sign/mining{ + pixel_y = 7 + }, +/turf/closed/wall, +/area/quartermaster/miningdock) +"lQG" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/circuit) +"lQR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"lUd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"lUR" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"maz" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access_txt = "20" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/crew_quarters/heads/captain) +"maK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"mbl" = ( +/obj/structure/chair/sofa/left, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"mcQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/black, +/obj/item/clothing/under/skirt/black, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/under/trendy_fit, +/obj/item/clothing/under/trendy_fit, +/obj/item/clothing/under/sundress, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"mdp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"mdQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"mgT" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"mjr" = ( +/obj/structure/reagent_dispensers/keg/milk, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"mnP" = ( +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/pda_ad{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"moa" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"mpA" = ( +/obj/structure/table/wood, +/obj/item/melee/chainofcommand, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"mpI" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"mqZ" = ( +/obj/structure/reagent_dispensers/keg/aphro/strong, +/obj/item/reagent_containers/glass/beaker, +/turf/open/floor/plating, +/area/maintenance/bar) +"mrR" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood, +/area/maintenance/bar) +"muq" = ( +/obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, /turf/closed/wall/r_wall, -/area/engine/engine_smes) -"gVY" = ( -/obj/structure/reagent_dispensers/foamtank, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/plasteel, -/area/engine/atmos) -"gWd" = ( +/area/engine/gravity_generator) +"mvB" = ( /obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/construction) -"gXs" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"gZG" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/item/reagent_containers/glass/beaker/synthflesh, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/sleeper) -"haz" = ( -/obj/machinery/autolathe{ - name = "public autolathe" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"haX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"hcd" = ( -/obj/machinery/smartfridge/organ/preloaded, -/turf/closed/wall, -/area/medical/sleeper) -"hdb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"hdp" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/structure/light_construct{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"hfe" = ( -/obj/structure/sign/poster/contraband/smoke{ - desc = "This poster reminds us all that the Detective is a parasite. Year after year, they must get replacement lungs because of their addiction. "; - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"hgX" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/light/small, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"hho" = ( -/obj/structure/lattice/catwalk, -/obj/item/stack/marker_beacon{ - anchored = 1; - icon_state = "markerburgundy-on"; - light_power = 3; - light_range = 3; - name = "Docking Beacon"; - picked_color = "Burgundy" - }, -/turf/open/space/basic, -/area/space/nearstation) -"hik" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/space, -/area/solar/starboard/aft) -"hjw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"hkg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms) -"hlY" = ( -/obj/machinery/door/airlock{ - name = "Recharging Station" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"hoo" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space/basic, -/area/space) -"htr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"hvS" = ( -/obj/effect/landmark/stationroom/box/engine, -/turf/open/space/basic, -/area/space) -"hwu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"hzw" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/window{ - dir = 1 - }, -/obj/structure/window{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"hzR" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"hKF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/storage/tech) -"hMx" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"hRa" = ( -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"hRz" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"hRT" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"hRX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"hSU" = ( -/obj/structure/chair/sofa/left, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"hVw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"hWn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"hYW" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"hZH" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"idX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"iep" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"ier" = ( -/obj/machinery/button/door{ - id = "Room Two"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 7; - pixel_y = -24; - specialfunctions = 4 - }, -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"igT" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck{ - pixel_y = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"ihm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction/flip, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ihC" = ( -/obj/item/chair/wood, -/turf/open/floor/plating, -/area/maintenance/port) -"iiW" = ( -/turf/open/floor/wood, -/area/maintenance/bar) -"ikx" = ( -/turf/open/floor/plating/foam, -/area/space/nearstation) -"ilJ" = ( -/obj/effect/turf_decal/tile/red, -/obj/machinery/light{ - light_color = "#c9d3e8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"imH" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/maintenance/bar) -"ioB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/landmark/start/mime, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"ioG" = ( -/obj/machinery/vending/cola/red, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"ioX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ipc" = ( -/obj/machinery/door/airlock/engineering{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"ipA" = ( -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"iqw" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/brig) -"isy" = ( -/obj/structure/urinal{ - pixel_y = 32 +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet) -"itG" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"itT" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"ium" = ( -/mob/living/simple_animal/bot/cleanbot{ - name = "C.L.E.A.N." - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"ivF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"iyC" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-06" - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"izv" = ( -/obj/machinery/vending/clothing, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"iEx" = ( -/obj/structure/table/wood, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/instrument/trombone, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"iEI" = ( -/obj/machinery/vending/autodrobe/all_access, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"iEJ" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod One" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"iES" = ( -/obj/structure/fireplace, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"iFL" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"iMG" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-14" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"iNn" = ( -/obj/machinery/camera{ - c_tag = "Kitchen Cold Room" - }, +"mwm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"iOt" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"mBv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Output to Waste" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"mDU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"mFJ" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -54612,206 +57453,19 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) -"iOV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/light_construct{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"iRJ" = ( +"mHC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/storage"; - name = "Cargo Bay APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"iVU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) -"iWa" = ( -/obj/structure/closet/crate, -/obj/item/book/manual/wiki/telescience, -/obj/item/book/manual/wiki/engineering_guide, -/obj/item/book/manual/wiki/engineering_construction, -/obj/item/book/manual/wiki/atmospherics, -/obj/item/book/manual/wiki/detective, -/obj/item/book/manual/wiki/tcomms, -/obj/item/book/manual/wiki/engineering_singulo_tesla, -/obj/item/book/manual/wiki/experimentor, -/obj/item/book/manual/wiki/research_and_development, -/obj/item/book/manual/wiki/robotics_cyborgs, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/book/manual/wiki/medicine, -/obj/item/book/manual/wiki/medical_cloning, -/obj/item/book/manual/wiki/infections, -/obj/item/book/manual/ripley_build_and_repair, -/obj/item/book/manual/hydroponics_pod_people, -/obj/item/book/manual/wiki/toxins, -/obj/item/book/manual/wiki/grenades, -/obj/item/book{ - desc = "An undeniably handy book."; - icon_state = "bookknock"; - name = "A Simpleton's Guide to Safe-cracking with Stethoscopes" - }, -/turf/open/floor/wood, -/area/library) -"iWk" = ( -/obj/structure/bookcase{ - name = "Forbidden Knowledge" - }, -/turf/open/floor/carpet, -/area/library) -"iYz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"jaa" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"jbf" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/service"; - dir = 1; - name = "Service Hall APC"; - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"jdT" = ( -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"jeR" = ( -/obj/structure/chair/sofa/left, -/turf/open/floor/plasteel, -/area/security/prison) -"jeT" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"jgm" = ( -/obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" }, -/obj/machinery/camera{ - c_tag = "Circuitry Lab"; - dir = 8; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jgv" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"jhF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"jiR" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/window, -/obj/structure/window{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"jlm" = ( -/obj/machinery/rnd/production/techfab/department/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"jly" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"jmC" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space/nearstation) -"jnm" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"job" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"mHW" = ( +/obj/machinery/vr_sleeper{ dir = 4 }, /obj/effect/turf_decal/tile/red{ @@ -54820,412 +57474,47 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/door/window/westright{ - name = "Red Corner" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"jqv" = ( -/obj/structure/chair/wood/normal{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" +/turf/open/floor/plasteel/white/side{ + dir = 4 }, -/area/maintenance/bar) -"jrE" = ( -/obj/structure/sign/poster/official/random{ - pixel_x = 32 +/area/crew_quarters/fitness) +"mJU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"mKU" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"mMb" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-14" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"mNi" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/science/circuit) -"jsy" = ( -/obj/structure/closet{ - name = "Suit Closet" - }, -/obj/item/clothing/under/suit_jacket/white, -/obj/item/clothing/under/suit_jacket/tan, -/obj/item/clothing/under/suit_jacket/red, -/obj/item/clothing/under/suit_jacket/really_black, -/obj/item/clothing/under/suit_jacket/navy, -/obj/item/clothing/under/suit_jacket/green, -/obj/item/clothing/under/suit_jacket/female, -/obj/item/clothing/under/suit_jacket/checkered, -/obj/item/clothing/under/suit_jacket/charcoal, -/obj/item/clothing/under/suit_jacket/burgundy, -/obj/item/clothing/under/suit_jacket, -/obj/item/clothing/under/lawyer/black, -/obj/item/clothing/under/lawyer/blacksuit, -/obj/item/clothing/under/lawyer/blue, -/obj/item/clothing/under/lawyer/bluesuit, -/obj/item/clothing/under/lawyer/female, -/obj/item/clothing/under/lawyer/purpsuit, -/obj/item/clothing/under/lawyer/really_black, -/obj/item/clothing/under/lawyer/red, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"jtk" = ( -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"jtU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/execution/transfer) -"jvN" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"jwi" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"jzi" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/floor/plating, -/area/space/nearstation) -"jzD" = ( -/obj/structure/piano{ - icon_state = "piano" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"jAD" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"jBZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"jCq" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jDY" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"jFy" = ( -/obj/machinery/door/airlock{ - desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; - id_tag = "PrivateStudy"; - name = "Private Study" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/library) -"jHt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jHM" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/prison) -"jJF" = ( -/obj/machinery/door/airlock/maintenance, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"jLM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"jMK" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"jNo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/space/nearstation) -"jRy" = ( -/obj/machinery/door/airlock{ - name = "Instrument Storage" - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) -"jSa" = ( -/obj/item/electropack/shockcollar, -/obj/item/assembly/signaler, -/turf/open/floor/plating, -/area/security/prison) -"jSD" = ( -/obj/machinery/door/airlock/security{ - name = "Firing Range"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"jSO" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jVl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jXg" = ( -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/nuke_storage"; - dir = 1; - name = "Vault APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"jYI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"kay" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"kcj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"kdm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/prison) -"kel" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"kfE" = ( -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/security/prison) -"khb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/obj/item/shovel/spade, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"khA" = ( -/obj/structure/table, -/obj/item/instrument/guitar{ - pixel_x = -7 - }, -/obj/item/instrument/eguitar{ - pixel_x = 5 - }, -/obj/item/instrument/violin, -/obj/item/instrument/trombone, -/obj/item/instrument/saxophone, -/obj/item/instrument/piano_synth, -/obj/item/instrument/recorder, -/obj/item/instrument/accordion, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"khB" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"klu" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"knx" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"kob" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ksn" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/window, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"kuY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "maint2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"kvb" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/turf/closed/wall/mineral/titanium, -/area/space/nearstation) -"kvZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"kwy" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/requests_console{ - department = "Bar"; - departmentType = 2; - pixel_x = -30; - pixel_y = 45; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"kxc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"kyi" = ( +"mOL" = ( /obj/structure/bed, /obj/machinery/button/door{ - id = "Dorm5"; + id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; @@ -55235,36 +57524,284 @@ /obj/effect/spawner/lootdrop/bedsheet, /turf/open/floor/wood, /area/crew_quarters/dorms) -"kyF" = ( -/obj/effect/landmark/xeno_spawn, +"mPj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/restroom{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"mPE" = ( +/obj/machinery/chem_dispenser/drinks, +/obj/structure/table/wood, /turf/open/floor/wood, /area/maintenance/bar) -"kzT" = ( +"mRe" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mRj" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"mTi" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"mTj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ncB" = ( +/obj/machinery/camera{ + c_tag = "Gravity Generator Room"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"ncI" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/security/prison) +"ndo" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"neq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"neT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"nfm" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) +"nhn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"niE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/science/mixing) -"kCk" = ( -/obj/structure/mirror{ - pixel_y = 32 +/turf/closed/wall, +/area/maintenance/port) +"nlN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"nnb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"noK" = ( +/obj/structure/girder, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"npV" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"nqP" = ( +/obj/machinery/vending/cola/red, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"nuI" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nvw" = ( +/obj/machinery/photocopier{ + pixel_x = -5; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/library) +"nxv" = ( +/obj/machinery/power/apc{ + areastring = "/area/construction"; + name = "Construction Area APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/construction) +"nxN" = ( +/turf/closed/wall/mineral/titanium, +/area/space/nearstation) +"nyF" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"nzc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"nzh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"nDn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"nGt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"kCW" = ( -/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"kDD" = ( -/obj/structure/lattice, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"kHJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +"nGN" = ( +/obj/structure/piano, +/obj/structure/window/reinforced, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"nNY" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"nOD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"nRG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nTu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/prison) +"oaB" = ( +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"oaP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"oaT" = ( +/obj/structure/window, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"oce" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"odx" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plating, +/area/maintenance/bar) +"odR" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "holoprivacy"; @@ -55272,7 +57809,158 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness) -"kHK" = ( +"ogU" = ( +/obj/machinery/door/airlock/security{ + name = "Firing Range"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ohe" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"olr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"ope" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"oqa" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/marker_beacon{ + anchored = 1; + icon_state = "markerburgundy-on"; + light_power = 3; + light_range = 3; + name = "Docking Beacon"; + picked_color = "Burgundy" + }, +/turf/open/space/basic, +/area/space/nearstation) +"osd" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/closed/wall, +/area/storage/primary) +"ove" = ( +/obj/machinery/door/airlock/command{ + name = "Conference Room"; + req_access_txt = "19" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/bridge/meeting_room) +"ovG" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sign/poster/official/love_ian{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oxA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"oAc" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"oAV" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"oBB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"oDF" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/engine/engineering) +"oFY" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"oGS" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"oHU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"oIt" = ( /obj/machinery/button/door{ desc = "Bolts the doors to the Private Study."; id = "PrivateStudy"; @@ -55284,93 +57972,76 @@ }, /turf/open/floor/wood, /area/library) -"kJr" = ( -/obj/effect/turf_decal/stripes/line{ +"oIx" = ( +/obj/machinery/button/door{ + id = "Room Two"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 7; + pixel_y = -24; + specialfunctions = 4 + }, +/obj/structure/chair/comfy/brown{ dir = 8 }, -/turf/open/floor/plating, -/area/security/prison) -"kJY" = ( -/obj/item/flashlight/lamp/green{ - pixel_x = -3; - pixel_y = 22 +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"oJs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/obj/structure/dresser{ - desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too."; - name = "Dresser"; - pixel_y = 7 +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"oKh" = ( +/obj/structure/chair/wood/normal{ + dir = 8 }, -/turf/open/floor/plating, -/area/maintenance/port) -"kKw" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/solar/port/aft) -"kLR" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - desc = "Privacy shutters for the Private Study. Stops people spying in on your game."; - id = "PrivateStudy1"; - name = "Private Study Privacy Shutters" - }, -/obj/effect/spawner/structure/window, /turf/open/floor/wood, -/area/library) -"kOf" = ( -/obj/structure/chair{ - dir = 8 +/area/maintenance/bar) +"oKy" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 }, -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"kPd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"oLI" = ( /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/hallway/secondary/service) -"kQk" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" +/area/engine/gravity_generator) +"oNq" = ( +/obj/structure/mirror{ + pixel_y = 32 }, -/obj/item/storage/toolbox/electrical, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"oNN" = ( +/obj/item/electropack/shockcollar, +/obj/item/assembly/signaler, /turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"kQZ" = ( -/obj/effect/spawner/structure/window/reinforced, +/area/security/prison) +"oSk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 + dir = 4 }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" +/obj/structure/cable{ + icon_state = "4-8" }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"oSW" = ( +/obj/structure/grille/broken, /turf/open/floor/plating, -/area/crew_quarters/fitness) -"kRk" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"kSb" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"kSh" = ( +/area/space/nearstation) +"oTI" = ( /obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -29 @@ -55387,176 +58058,41 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) -"kSB" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"kTz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"kWI" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/window{ +"oUh" = ( +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/locker) -"lhg" = ( -/obj/machinery/vending/clothing, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"lmi" = ( -/obj/structure/door_assembly/door_assembly_mai, -/obj/item/electronics/airlock, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"lnu" = ( -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"lwj" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{ - pixel_x = -3; - pixel_y = 2 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"lwp" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"lwY" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - icon_state = "right"; - name = "Unisex Showers" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"lxx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/bar) -"lAB" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, /area/science/circuit) -"lBE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +"oVS" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"lCi" = ( -/obj/docking_port/stationary/public_mining_dock{ - dir = 8 - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"lCB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/space/nearstation) -"lCL" = ( -/turf/open/space/basic, -/area/space/nearstation) -"lFl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"lLt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/space/nearstation) -"lLI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"lMg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"lMx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/crew_quarters/dorms) -"lMY" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/spawner/structure/window, -/turf/open/floor/grass, -/area/crew_quarters/bar) -"lNB" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/structure/window, +/obj/structure/window{ dir = 4 }, -/turf/open/floor/plating, -/area/space/nearstation) -"lQG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"oWe" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + desc = "Privacy shutters for the Private Study. Stops people spying in on your game."; + id = "PrivateStudy1"; + name = "Private Study Privacy Shutters" + }, /obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/circuit) -"lTq" = ( -/obj/structure/table, -/obj/item/folder/blue, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"lYU" = ( +/turf/open/floor/wood, +/area/library) +"oZl" = ( /obj/effect/turf_decal/tile/red{ dir = 8 }, @@ -55566,28 +58102,111 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"lYZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "2-8" +"pbw" = ( +/obj/structure/chair{ + dir = 4 }, -/obj/structure/disposalpipe/junction, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"pdg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/window/eastleft{ + name = "Blue Corner" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"maC" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice{ - pixel_x = 4; - pixel_y = 4 +/area/crew_quarters/locker) +"pet" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/reagent_containers/food/snacks/cherrycupcake, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"mbD" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"pgY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"phP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/starboard/aft) +"pmf" = ( +/obj/structure/reagent_dispensers/foamtank, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plasteel, +/area/engine/atmos) +"pmj" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"pnl" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"pnx" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"pnS" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/marker_beacon{ + anchored = 1; + icon_state = "markerburgundy-on"; + light_power = 3; + light_range = 3; + name = "Docking Beacon"; + picked_color = "Burgundy" + }, +/turf/open/floor/plating, +/area/space/nearstation) +"poc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"puG" = ( /obj/structure/closet{ name = "Suit Closet" }, @@ -55611,712 +58230,17 @@ /obj/item/clothing/under/lawyer/really_black, /obj/item/clothing/under/lawyer/red, /turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"mfb" = ( -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"mjr" = ( -/obj/structure/reagent_dispensers/keg/milk, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"mlr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/light_construct{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"moq" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"mpI" = ( -/obj/structure/table/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"mqa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"mqZ" = ( -/obj/structure/reagent_dispensers/keg/aphro/strong, -/obj/item/reagent_containers/glass/beaker, -/turf/open/floor/plating, -/area/maintenance/bar) -"mrR" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood, -/area/maintenance/bar) -"mte" = ( -/obj/structure/extinguisher_cabinet, -/turf/closed/wall/r_wall, -/area/hallway/primary/central) -"mwb" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/space/nearstation) -"mwO" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"myt" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here."; - name = "Personal ID-Locked Closet"; - pixel_y = 15 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"mCq" = ( -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"mEN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"mHC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"mIS" = ( -/obj/structure/table, -/obj/item/clothing/gloves/boxing/yellow, -/obj/item/clothing/gloves/boxing/green, -/obj/item/clothing/gloves/boxing/blue, -/obj/item/clothing/gloves/boxing/blue, -/obj/item/clothing/gloves/boxing, -/obj/item/clothing/gloves/boxing, -/turf/open/floor/plasteel, /area/crew_quarters/locker) -"mNi" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mPE" = ( -/obj/machinery/chem_dispenser/drinks, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"mQR" = ( -/obj/machinery/camera{ - c_tag = "Gravity Generator Room"; - dir = 8 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"mRe" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mTp" = ( -/obj/structure/chair/sofa/left, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"mXB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ncj" = ( -/obj/effect/turf_decal/tile/blue, -/obj/structure/sign/poster/contraband/fun_police{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"ndC" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"nea" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"neb" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, +"pAE" = ( +/obj/machinery/vending/cola/space_up, +/turf/open/floor/plasteel/dark, /area/hallway/primary/central) -"nel" = ( -/obj/effect/spawner/structure/window/reinforced, +"pGr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"new" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) -"neC" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/security/prison) -"nfm" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) -"nie" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness) -"nlt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"nmx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"nmS" = ( -/obj/structure/closet/athletic_mixed, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"nrR" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"nsJ" = ( -/obj/machinery/door/airlock{ - desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; - id_tag = "PrivateStudy"; - name = "Private Study" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/library) -"ntf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"nuV" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"nxv" = ( -/obj/machinery/power/apc{ - areastring = "/area/construction"; - name = "Construction Area APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/construction) -"nyH" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"nGt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nGS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - alpha = 255; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"nIE" = ( -/obj/structure/sign/poster/contraband/tools, -/turf/closed/wall, -/area/storage/primary) -"nLf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"nMx" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/vault, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"nOS" = ( -/obj/structure/safe, -/obj/item/clothing/head/bearpelt, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/gun/ballistic/revolver/nagant, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"nQr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/port) -"nRG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nTE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"nWq" = ( -/obj/machinery/door/airlock/engineering{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"nXa" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"oce" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"odx" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plating, -/area/maintenance/bar) -"oeJ" = ( -/obj/structure/table/wood, -/obj/item/instrument/violin, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"oeQ" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"ohX" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"olr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"olv" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/security/brig) -"olw" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"oma" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"orw" = ( -/obj/structure/table, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/recharger, -/obj/item/gun/energy/laser/practice, -/obj/item/gun/energy/laser/practice, -/turf/open/floor/plasteel, -/area/security/prison) -"ory" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"otF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ouD" = ( -/obj/structure/reagent_dispensers/keg/semen, -/turf/open/floor/plating, -/area/maintenance/bar) -"oBp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port) -"oDy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-04" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"oFk" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"oHU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"oKh" = ( -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"oMY" = ( -/obj/machinery/button/door{ - desc = "Alright, GAMER! Want to take your PWRGAME addiction to the MAX? Just smash this button with your chubby chetto encrusted hands an- oh, you broke the switch. Good job, idiot."; - id = "RIPFUN"; - name = "Powerful Gamer Toggle"; - normaldoorcontrol = 1; - pixel_x = -24; - pixel_y = 7; - specialfunctions = 4 - }, -/obj/structure/table_frame/wood, -/turf/open/floor/plating, -/area/maintenance/port) -"oNb" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ - pixel_x = -3; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"oNQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"oOb" = ( -/obj/structure/sign/poster/official/cohiba_robusto_ad, -/turf/closed/wall, -/area/lawoffice) -"oSO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/sofa, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"oUh" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"oXL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"oYc" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"phu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"phH" = ( -/turf/open/floor/grass, -/area/security/prison) -"phY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"pjh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"poa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"poc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"ppY" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/sign/poster/official/love_ian{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"pqR" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"prP" = ( -/obj/structure/grille, -/turf/open/space/basic, -/area/space/nearstation) -"prU" = ( -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"ptV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"puG" = ( -/obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/effect/decal/cleanable/cobweb, -/obj/item/clothing/under/color/grey, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"pxD" = ( -/obj/structure/chair/sofa, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"pzk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/table, -/obj/item/coin/gold, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"pAl" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"pFt" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/space, -/area/solar/starboard/aft) "pHl" = ( /obj/structure/table, /obj/item/storage/box/beakers{ @@ -56343,12 +58267,16 @@ }, /turf/open/floor/plasteel/white, /area/medical/sleeper) -"pHo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"pIA" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/open/floor/wood, +/area/crew_quarters/bar) +"pKz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/port) "pLn" = ( /obj/machinery/conveyor/inverted{ dir = 5; @@ -56356,40 +58284,193 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) -"pLt" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/light{ +"pMv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/power/apc{ - areastring = "/area/security/main"; - dir = 4; - name = "Firing Range APC"; - pixel_x = 24 +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-04" }, -/turf/open/floor/plasteel, -/area/security/prison) -"pNH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/window, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pNj" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"pNO" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"pQA" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"pRx" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/computer/slot_machine, +/obj/item/coin/iron, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"pUo" = ( +/obj/structure/fireplace, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"pVa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/wood, -/area/crew_quarters/theatre) -"pNI" = ( -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/official/pda_ad{ - pixel_y = -32 +/area/crew_quarters/heads/captain) +"pWH" = ( +/obj/structure/closet/crate, +/obj/item/book/manual/wiki/telescience, +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/wiki/engineering_construction, +/obj/item/book/manual/wiki/atmospherics, +/obj/item/book/manual/wiki/detective, +/obj/item/book/manual/wiki/tcomms, +/obj/item/book/manual/wiki/engineering_singulo_tesla, +/obj/item/book/manual/wiki/experimentor, +/obj/item/book/manual/wiki/research_and_development, +/obj/item/book/manual/wiki/robotics_cyborgs, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/book/manual/wiki/medicine, +/obj/item/book/manual/wiki/medical_cloning, +/obj/item/book/manual/wiki/infections, +/obj/item/book/manual/ripley_build_and_repair, +/obj/item/book/manual/hydroponics_pod_people, +/obj/item/book/manual/wiki/toxins, +/obj/item/book/manual/wiki/grenades, +/obj/item/book{ + desc = "An undeniably handy book."; + icon_state = "bookknock"; + name = "A Simpleton's Guide to Safe-cracking with Stethoscopes" + }, +/turf/open/floor/wood, +/area/library) +"pWO" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"pPE" = ( +/area/hallway/primary/starboard) +"qaZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"qcu" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"qdm" = ( +/obj/machinery/autolathe{ + name = "public autolathe" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"qet" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/spawner/structure/window, +/turf/open/floor/grass, +/area/crew_quarters/bar) +"qeQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"qeZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"qnd" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"qqY" = ( +/obj/effect/turf_decal/tile/blue{ + alpha = 255 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255; + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"quT" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"qvo" = ( +/obj/structure/chair/comfy/brown{ + color = "#66b266"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"qwZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"qxb" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"qzE" = ( +/obj/machinery/door/airlock{ + name = "Shower Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet) +"qGM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -56397,128 +58478,109 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/obj/machinery/door/window/eastleft{ - name = "Blue Corner" +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"qIw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/effect/turf_decal/tile/blue{ +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"qIT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"qIZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/locker) -"pQr" = ( -/obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"pQD" = ( -/obj/structure/sign/poster/official/ion_rifle, -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) -"pSf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"pTn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/terminal, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"pTR" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"pUl" = ( +"qKJ" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/command{ - name = "Command Access To Vault" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"pZv" = ( -/obj/machinery/shower{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/mineral/titanium/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) -"qbx" = ( -/obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ - pixel_x = -3; - pixel_y = 5 +"qKZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/execution/transfer) +"qMf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/crew_quarters/fitness) -"qeQ" = ( -/obj/effect/turf_decal/stripes/line{ +"qPl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, -/area/science/circuit) -"qje" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 +/area/crew_quarters/dorms) +"qPJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, -/obj/effect/turf_decal/tile/green{ +/obj/machinery/camera{ + c_tag = "Bar Backroom"; + dir = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"qkC" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/starboard/fore"; - dir = 1; - name = "Starboard Bow Maintenance APC"; - pixel_y = 24 - }, +/area/engine/gravity_generator) +"qRq" = ( +/obj/structure/table, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "0-2" }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"qlr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/recharger, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/turf/open/floor/plasteel, +/area/security/prison) +"qVa" = ( +/obj/structure/sign/poster/official/help_others{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"qXl" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -56537,322 +58599,157 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/locker) -"qlF" = ( -/obj/structure/lattice, -/turf/closed/wall, +"qYi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, /area/security/prison) -"qmM" = ( +"qZv" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"qoP" = ( -/obj/machinery/airalarm{ - pixel_y = 23 +"rak" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, -/obj/structure/chair/sofa/left, /turf/open/floor/carpet, /area/crew_quarters/dorms) -"qpA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/cohiba_robusto_ad{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"qux" = ( -/obj/structure/chair/sofa/left{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"quT" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space/basic, -/area/space/nearstation) -"qvM" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"qwe" = ( -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"qwB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/engineering/glass{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"qxc" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/computer/slot_machine, -/obj/item/coin/iron, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"qAQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"qBc" = ( -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"qBe" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"qEv" = ( -/obj/structure/table/wood/fancy, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/reagent_containers/food/drinks/britcup{ - desc = "Kingston's personal cup."; - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"qHB" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"qIf" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/bar) -"qIw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"qJZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"qMu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/prison) -"qNs" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - on = 0; - pixel_x = -7; - pixel_y = 12 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"qOf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"qQJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"qUm" = ( -/obj/structure/filingcabinet/employment, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"qXH" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) "rcD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall/r_wall, /area/science/circuit) -"reZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) +"rfu" = ( +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/grass, +/area/security/prison) +"rfE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "rfW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) -"rgF" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/coin/silver, +"rgv" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, /turf/open/floor/plating, -/area/maintenance/starboard/fore) -"rhb" = ( -/obj/machinery/vending/cola/space_up, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"riA" = ( +/area/security/prison) +"rkR" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"rmC" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"rmX" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rmY" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rnY" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/space/nearstation) +"rrJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"ruS" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rAJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/camera{ - c_tag = "Firing Range"; - dir = 1 +/obj/machinery/door/window/westright{ + name = "Red Corner" }, -/turf/open/floor/plasteel, -/area/security/prison) -"riB" = ( -/obj/machinery/door/firedoor, -/obj/structure/sign/departments/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"rmX" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"rsv" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/solar/starboard/fore) -"rsX" = ( /obj/effect/turf_decal/tile/red, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"rtT" = ( -/obj/structure/chair/comfy/brown{ - color = "#66b266"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"rvZ" = ( -/obj/structure/target_stake, -/obj/item/target/syndicate, -/turf/open/floor/plating, -/area/security/prison) -"rxH" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/space/nearstation) -"rzg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) +/turf/open/floor/plasteel, +/area/crew_quarters/locker) "rBq" = ( /obj/item/clothing/head/kitty, /obj/item/clothing/under/maid, /obj/item/clothing/mask/muzzle, /turf/open/floor/plating, /area/maintenance/bar) -"rEV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" +"rEQ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"rFc" = ( -/obj/machinery/door/airlock{ - desc = "To keep the station within regulations, space IKEA requires one storage cupboard for their Nanotrasen partnership to continue."; - id_tag = "MaintDorm1"; - name = "Furniture Storage" +/turf/open/floor/plasteel, +/area/hydroponics) +"rJv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port) -"rKc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/sign/poster/official/space_cops{ + pixel_x = -32 }, -/turf/open/space, -/area/solar/port/fore) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "rKP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plating, /area/construction) -"rLr" = ( -/obj/structure/window, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"rLR" = ( -/obj/structure/sign/poster/contraband/space_up{ - pixel_x = -32; - pixel_y = 32 +"rKZ" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"rMc" = ( -/obj/structure/table/wood/fancy/black, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/security/prison) +"rLg" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"rMI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/port/fore) "rMN" = ( /obj/structure/bed, /obj/item/tank/internals/anesthetic, @@ -56875,38 +58772,29 @@ }, /turf/open/floor/plasteel, /area/science/mixing) -"rOm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 23 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"rTQ" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +"rTD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/turf/open/floor/plasteel/white/side{ +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/area/crew_quarters/fitness) -"rUQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"rXv" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 1 }, -/turf/open/floor/plating, -/area/space/nearstation) +/turf/open/floor/plasteel/dark, +/area/hydroponics) "saK" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -56919,60 +58807,43 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel/white, /area/science/circuit) -"sdL" = ( +"sbs" = ( +/turf/open/floor/plating, +/area/space/nearstation) +"sfO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/pjs, +/obj/item/clothing/under/maid, +/obj/item/clothing/under/maid, +/obj/item/clothing/under/janimaid, +/obj/item/clothing/under/janimaid, +/obj/item/clothing/accessory/maidapron, +/obj/item/clothing/accessory/maidapron, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"sfY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"sfa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, -/area/crew_quarters/theatre) -"sgV" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Air In" - }, -/obj/effect/turf_decal/stripes/line{ +/area/crew_quarters/bar) +"shX" = ( +/obj/machinery/light{ dir = 8 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) -"sjm" = ( -/obj/structure/table/wood, -/obj/item/instrument/piano_synth, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"sjw" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/area/crew_quarters/abandoned_gambling_den) +"siG" = ( +/obj/machinery/vending/clothing, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/closet/wardrobe/black, -/obj/item/clothing/under/skirt/black, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/under/trendy_fit, -/obj/item/clothing/under/trendy_fit, -/obj/item/clothing/under/sundress, /turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"sjT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/prison) +/area/crew_quarters/locker) "slk" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -56985,86 +58856,33 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"slp" = ( -/obj/effect/turf_decal/tile/blue{ - alpha = 255 - }, -/obj/effect/turf_decal/tile/blue{ +"sno" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - alpha = 255; - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"smn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/structure/sign/poster/official/cohiba_robusto_ad{ + pixel_y = -32 }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"srw" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"snG" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/space, -/area/solar/port/aft) -"spX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"sqa" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "applebush" + icon_state = "1-4" }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/port) -"srq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"ssL" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/space, -/area/solar/starboard/fore) -"suI" = ( -/obj/machinery/door/window/southleft{ - name = "Target Storage" - }, -/obj/item/target/clown, -/obj/item/target/clown, -/obj/item/target, -/obj/item/target, +/area/engine/gravity_generator) +"svt" = ( +/obj/structure/target_stake, +/obj/item/target/syndicate, /turf/open/floor/plating, /area/security/prison) -"svw" = ( -/obj/structure/chair{ - dir = 4 +"sxe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) +/turf/open/floor/wood, +/area/crew_quarters/theatre) "sxs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, @@ -57078,52 +58896,61 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/service) -"sxX" = ( -/obj/structure/cable{ - icon_state = "1-2" +"szF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"szH" = ( +/obj/machinery/shower{ + dir = 8 }, -/area/maintenance/starboard/fore) -"sAI" = ( -/obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) +/turf/open/floor/plasteel/freezer, +/area/security/prison) "sAM" = ( /turf/open/floor/wood{ icon_state = "wood-broken6" }, /area/maintenance/bar) +"sBu" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/crew_quarters/fitness) +"sCo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard/fore) "sEt" = ( /turf/open/floor/wood{ icon_state = "wood-broken7" }, /area/maintenance/bar) -"sIe" = ( -/obj/structure/sign/poster/official/fruit_bowl{ - pixel_y = 32 +"sEJ" = ( +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/abandoned_gambling_den"; + name = "Abandoned Gambling Den APC"; + pixel_y = -24 }, -/area/hallway/primary/starboard) -"sLr" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/coin/silver, /turf/open/floor/plating, -/area/maintenance/starboard/fore) +/area/crew_quarters/abandoned_gambling_den) "sLv" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance, @@ -57132,17 +58959,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"sMa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/vending/kink, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "sOs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57150,6 +58966,29 @@ /obj/machinery/door/airlock/maintenance/abandoned, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"sOO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"sPj" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/coin/gold, +/obj/item/coin/gold, +/obj/item/coin/gold, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sPA" = ( +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "sQX" = ( /turf/open/floor/plating, /area/space) @@ -57161,6 +59000,38 @@ /obj/structure/chair/office/light, /turf/open/floor/plasteel/white, /area/science/circuit) +"sTt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"sVN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"sWr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) "sWR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57170,6 +59041,16 @@ }, /turf/open/floor/plasteel, /area/quartermaster/office) +"sXo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) "sXy" = ( /obj/machinery/door/airlock/external{ name = "Security External Airlock"; @@ -57184,38 +59065,141 @@ /obj/machinery/vending/boozeomat/all_access, /turf/closed/wall, /area/maintenance/bar) -"sYv" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"sZa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/camera{ - c_tag = "Bar Backroom"; - dir = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"sZR" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) "tal" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/hallway/secondary/service) -"tdF" = ( +"taU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/window, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"tcE" = ( +/obj/structure/door_assembly/door_assembly_mai, +/obj/item/electronics/airlock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"thl" = ( +/obj/machinery/smartfridge/organ/preloaded, +/turf/closed/wall, +/area/medical/sleeper) +"thY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"tku" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"tkU" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"tpb" = ( +/turf/open/floor/plating/foam, +/area/space/nearstation) +"tqg" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"trb" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"trk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"trl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"trM" = ( +/obj/structure/table, +/obj/item/instrument/guitar{ + pixel_x = -7 + }, +/obj/item/instrument/eguitar{ + pixel_x = 5 + }, +/obj/item/instrument/violin, +/obj/item/instrument/trombone, +/obj/item/instrument/saxophone, +/obj/item/instrument/piano_synth, +/obj/item/instrument/recorder, +/obj/item/instrument/accordion, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"tsY" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"ttp" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"ttF" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/crew_quarters/fitness) +"tur" = ( +/obj/item/restraints/handcuffs/fake, +/turf/open/floor/plating, +/area/maintenance/bar) +"tyg" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" @@ -57226,40 +59210,724 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) -"thr" = ( -/obj/structure/frame/computer{ +"tDE" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/floor/plating, +/area/space/nearstation) +"tEy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"tMl" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"tOq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"tPS" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"tPT" = ( +/obj/machinery/chem_dispenser/drinks/beer, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"tQu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"tRe" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tRF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"tTh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"tTt" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall, +/area/crew_quarters/toilet) +"tVp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"tVQ" = ( +/obj/structure/table, +/obj/item/folder/blue, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"tXL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"tYn" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/security/prison) +"uao" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"uaw" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/art"; + dir = 1; + name = "Maint bar"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"udn" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"udp" = ( +/obj/item/crowbar/large, +/obj/structure/rack, +/obj/item/flashlight, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"udS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"ueP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"uhG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"uhH" = ( +/obj/item/wrench, +/obj/structure/rack, +/obj/item/weldingtool/hugetank, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"uip" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"uiR" = ( +/obj/structure/lattice, +/turf/closed/wall, +/area/security/prison) +"uiT" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ujF" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"ukL" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ulP" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"unN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/window{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"uoB" = ( +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/item/screwdriver, +/obj/machinery/camera{ + c_tag = "Circuitry Lab North"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"uqO" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"urH" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"usD" = ( +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"usO" = ( +/obj/machinery/vending/snack/random, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"uuG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"uuT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"uvZ" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"uBW" = ( +/turf/closed/wall, +/area/crew_quarters/abandoned_gambling_den) +"uFF" = ( +/obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plating, /area/space/nearstation) -"tkU" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"tqg" = ( -/obj/machinery/cryopod{ +"uGq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"uJq" = ( +/obj/machinery/vr_sleeper{ dir = 4 }, -/obj/machinery/firealarm{ - pixel_y = 24 +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"uJI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"uNs" = ( +/obj/item/flashlight/lamp/green{ + pixel_x = -3; + pixel_y = 22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4; + pixel_y = 5 + }, +/obj/structure/dresser{ + desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too."; + name = "Dresser"; + pixel_y = 7 }, /turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"tqt" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/comfy/brown{ +/area/crew_quarters/dorms) +"uNu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"uOb" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"uOn" = ( +/obj/structure/chair/office/light, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"uPT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"uTQ" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"uUC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/solar/port/aft) +"uVo" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + on = 0; + pixel_x = -7; + pixel_y = 12 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"uVS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"uWs" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"uXD" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"vbc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"vbD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"vbP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"vfe" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"vgX" = ( +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vhc" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"viT" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"vjm" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/rag, +/obj/machinery/light/small{ dir = 1 }, /turf/open/floor/wood, -/area/library) -"trb" = ( -/obj/machinery/light{ +/area/maintenance/bar) +"vnw" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"voH" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/item/radio/headset/headset_cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"vpY" = ( +/obj/structure/closet/lasertag/blue, +/obj/item/clothing/under/pj/blue, +/obj/item/clothing/under/pj/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vqa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/departments/custodian{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vsM" = ( +/obj/machinery/power/apc/auto_name/south, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"vtO" = ( +/obj/structure/sign/poster/official/twelve_gauge, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"vxh" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"vzp" = ( +/obj/structure/table/reinforced, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/item/stock_parts/cell/high, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"vzO" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"vAP" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"vAZ" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plasteel, -/area/security/courtroom) -"tru" = ( +/area/hydroponics) +"vBb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vBN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vCb" = ( +/obj/machinery/rnd/production/techfab/department/service, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"vCt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"vEA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 20 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 20 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/reagent_containers/food/drinks/britcup, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"vGp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/storage"; + name = "Cargo Bay APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"vHj" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Cryogenics " + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/cryopod) +"vHY" = ( +/turf/open/floor/plating, +/area/science/mixing) +"vKR" = ( +/obj/machinery/computer/arcade/minesweeper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"vMd" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"vOw" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"vPl" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/space/nearstation) +"vPE" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"vQS" = ( +/obj/structure/sign/poster/contraband/smoke{ + desc = "This poster reminds us all that the Detective is a parasite. Year after year, they must get replacement lungs because of their addiction. "; + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"vXW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/table, +/obj/item/coin/gold, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"wab" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"wbB" = ( /obj/machinery/airalarm{ dir = 4; pixel_x = -22 @@ -57281,149 +59949,7 @@ /obj/item/megaphone/clown, /turf/open/floor/plasteel, /area/crew_quarters/theatre) -"trY" = ( -/obj/structure/sign/poster/contraband/lizard{ - pixel_x = -32 - }, -/obj/structure/sign/poster/contraband/lizard{ - pixel_x = -32 - }, -/obj/structure/sign/poster/contraband/lizard{ - pixel_x = -32 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"tsr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"tuj" = ( -/obj/structure/light_construct{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"tur" = ( -/obj/item/restraints/handcuffs/fake, -/turf/open/floor/plating, -/area/maintenance/bar) -"tuN" = ( -/obj/structure/chair/sofa, -/obj/structure/window{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"tAb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/command{ - name = "Captain's Vault Access"; - req_access_txt = "20" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"tAE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 20 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 20 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/item/reagent_containers/food/drinks/britcup, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"tAV" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"tCi" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"tFt" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"tGG" = ( -/obj/structure/table/wood, -/obj/item/book/codex_gigas, -/obj/item/clothing/under/suit_jacket/red, -/obj/structure/destructible/cult/tome, -/turf/open/floor/carpet, -/area/library) -"tHx" = ( -/obj/machinery/computer/arcade/minesweeper{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"tIk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "maintdiy"; - name = "Security Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"tIC" = ( -/obj/structure/table/wood, -/obj/item/instrument/guitar{ - pixel_x = -7 - }, -/obj/item/instrument/eguitar{ - pixel_x = 5 - }, -/obj/item/instrument/violin, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"tLl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/prison) -"tMl" = ( -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"tMS" = ( +"wcX" = ( /obj/structure/table, /obj/item/paper_bin{ pixel_y = 6 @@ -57431,698 +59957,26 @@ /obj/item/pen/fountain, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) -"tNJ" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"tOd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/prison) -"tOq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"tOU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"tPT" = ( -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"tQk" = ( -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"tRe" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"tRF" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"tTW" = ( -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"tUm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"tUw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"tWs" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"tWR" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"tXL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"uaw" = ( -/obj/machinery/power/apc{ - areastring = "/area/storage/art"; - dir = 1; - name = "Maint bar"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"udi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, +"wdQ" = ( +/obj/structure/fireplace, /obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"ued" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"uhm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/warehouse"; - dir = 4; - name = "Cargo Warehouse APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-2" + dir = 8; + pixel_x = 23 }, /turf/open/floor/plating, /area/maintenance/port) -"ujF" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"uko" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ukP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"ukS" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/soap, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"unl" = ( -/obj/item/flashlight/lamp/green{ - pixel_x = -3; - pixel_y = 22 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, -/obj/structure/dresser{ - desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too."; - name = "Dresser"; - pixel_y = 7 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"unu" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"unE" = ( -/obj/structure/fans/tiny/invisible, -/turf/open/space/basic, -/area/space) -"unY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/departments/custodian{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"uoB" = ( -/obj/structure/table/reinforced, -/obj/item/multitool, -/obj/item/screwdriver, -/obj/machinery/camera{ - c_tag = "Circuitry Lab North"; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"upX" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"usO" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"uuG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"uvZ" = ( -/obj/structure/mineral_door/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"uya" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/restroom{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"uzk" = ( -/obj/structure/sign/departments/restroom, -/turf/closed/wall, -/area/crew_quarters/toilet) -"uDW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"uNu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"uPT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"uTq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"uVq" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#d1dfff" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"uVt" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plating, -/area/security/prison) -"uVS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"uYE" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"uZM" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/sign/poster/official/space_cops{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"vbD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "EVA Storage"; - req_access_txt = "18" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"vbY" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"vdz" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"vdH" = ( -/obj/structure/bed, -/turf/open/floor/plating, -/area/maintenance/port) -"vgp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"vjm" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/rag, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"vjq" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"vpm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"vpz" = ( -/obj/structure/sign/poster/official/twelve_gauge, -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) -"vpY" = ( -/obj/structure/closet/lasertag/blue, -/obj/item/clothing/under/pj/blue, -/obj/item/clothing/under/pj/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"vrM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-18" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"vsM" = ( -/obj/machinery/power/apc/auto_name/south, -/obj/structure/cable, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"vxh" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"vys" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"vzp" = ( -/obj/structure/table/reinforced, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/item/stock_parts/cell/high, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"vzO" = ( -/obj/structure/chair/wood/normal{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"vzS" = ( -/obj/structure/table, -/obj/item/book/manual/hydroponics_pod_people{ - pixel_x = -4; - pixel_y = 5 - }, -/obj/item/paper/guides/jobs/hydroponics{ - pixel_x = -5; - pixel_y = 3 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"vCb" = ( -/obj/machinery/rnd/production/techfab/department/service, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"vCt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"vDq" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/space/nearstation) -"vFt" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"vGX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/closet/secure_closet/personal/cabinet{ - desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here."; - name = "Personal ID-Locked Closet"; - pixel_y = 15 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"vHj" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Cryogenics " - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) -"vHv" = ( -/obj/structure/closet{ - name = "Costume Closet" - }, -/obj/item/clothing/head/russobluecamohat, -/obj/item/clothing/head/russobluecamohat, -/obj/item/clothing/head/russofurhat, -/obj/item/clothing/head/russofurhat, -/obj/item/clothing/head/russofurhat, -/obj/item/clothing/head/russofurhat, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"vHM" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"vHY" = ( -/turf/open/floor/plating, -/area/science/mixing) -"vLD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/machinery/camera/motion{ - c_tag = "Vault"; - dir = 1; - network = list("vault") - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"vNh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"vOq" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/coin/gold, -/obj/item/coin/gold, -/obj/item/coin/gold, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"vPE" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"vRr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Shooting Range" - }, -/turf/open/floor/plating, -/area/security/prison) -"vRX" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/detectives_office"; - dir = 4; - name = "Detective's Office APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"vUR" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/security/prison) -"vVP" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/engine/gravity_generator"; - dir = 8; - name = "Gravity Generator APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/table, -/obj/item/paper/guides/jobs/engi/gravity_gen, -/obj/item/pen/blue, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"vWw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/prison) -"vYa" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"wcy" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) "wfR" = ( /obj/item/electropack/shockcollar, /obj/item/assembly/signaler, /turf/open/floor/plating, /area/maintenance/bar) -"wgb" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/security/prison) +"wgV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) "wkN" = ( /turf/closed/wall, /area/science/circuit) @@ -58132,15 +59986,6 @@ }, /turf/open/floor/carpet, /area/crew_quarters/cryopod) -"woX" = ( -/obj/machinery/door/window/southright{ - name = "Target Storage" - }, -/obj/item/target/alien, -/obj/item/target/alien, -/obj/item/target/syndicate, -/turf/open/floor/plating, -/area/security/prison) "wph" = ( /obj/docking_port/stationary{ area_type = /area/construction/mining/aux_base; @@ -58155,17 +60000,6 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) -"wpo" = ( -/obj/machinery/camera{ - c_tag = "Bar West"; - dir = 4 - }, -/obj/machinery/computer/arcade/orion_trail, -/obj/structure/sign/poster/official/foam_force_ad{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) "wrp" = ( /obj/machinery/light{ dir = 8 @@ -58175,167 +60009,74 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/service) -"wuB" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) "wvX" = ( /obj/structure/table/reinforced, /obj/machinery/light, /obj/item/stack/sheet/metal/ten, /turf/open/floor/plasteel/white, /area/science/circuit) -"wwn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"wwB" = ( -/turf/closed/wall/r_wall, -/area/hallway/primary/central) -"wwC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 25 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"wyM" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"wAB" = ( -/obj/structure/chair/office/light, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) "wBd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, /turf/closed/wall, /area/hallway/secondary/service) -"wCa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" +"wCs" = ( +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"wDR" = ( -/obj/structure/sign/poster/official/help_others{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"wEp" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"wFk" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"wFX" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness) -"wGP" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-8" +/turf/open/floor/plasteel/white/side{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 +/area/maintenance/fore) +"wDQ" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, -/area/crew_quarters/dorms) +/area/hallway/primary/port) "wHz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"wJz" = ( -/obj/machinery/light{ - dir = 8 - }, +"wJq" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space) +"wLe" = ( /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"wLT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port) -"wNM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +"wNd" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"wSg" = ( +/obj/machinery/airalarm{ + pixel_y = 23 }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"wOT" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/structure/chair/sofa/left, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"wTu" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"wTC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) "wUY" = ( /obj/structure/table, /obj/item/stack/packageWrap, @@ -58343,73 +60084,91 @@ /obj/item/hand_labeler, /turf/open/floor/plasteel, /area/hallway/secondary/service) -"wVs" = ( -/obj/structure/table/wood, -/obj/item/instrument/trumpet, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"wXP" = ( -/obj/machinery/button/door{ - id = "maintdiy"; - name = "Shutters Control Button"; - pixel_x = -6; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"wZB" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"xbu" = ( -/obj/structure/chair/comfy/black{ +"wVp" = ( +/obj/machinery/camera{ + c_tag = "Locker Room South"; dir = 8 }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"xcg" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"wWo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"wWF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"wZk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"wZI" = ( +/obj/effect/spawner/lootdrop/keg, /turf/open/floor/plating, -/area/space/nearstation) -"xdb" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"xdV" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" +/area/maintenance/starboard/fore) +"xah" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 }, /turf/open/floor/wood, -/area/crew_quarters/theatre) +/area/library) +"xbZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/prison) +"xcw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "xgF" = ( /obj/structure/chair/stool/bar, /turf/open/floor/wood{ icon_state = "wood-broken5" }, /area/maintenance/bar) -"xhx" = ( -/obj/structure/cable{ - icon_state = "1-2" +"xgY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"xgZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/turf/open/floor/wood, -/area/bridge/meeting_room) +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/brig) "xhV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -58430,63 +60189,68 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) -"xkk" = ( -/obj/structure/piano, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +"xlX" = ( +/obj/machinery/door/firedoor, +/turf/open/space/basic, +/area/space) +"xqV" = ( +/obj/structure/table/wood, +/obj/item/instrument/piano_synth, /turf/open/floor/wood, /area/crew_quarters/theatre) -"xlN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"xwI" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/vending/wardrobe/curator_wardrobe, +/turf/open/floor/carpet, +/area/library) +"xyp" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/vault, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"xzw" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"xpx" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"xqW" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, +/area/hallway/primary/central) +"xzU" = ( +/obj/structure/reagent_dispensers/keg/semen, /turf/open/floor/plating, -/area/security/brig) -"xzh" = ( -/obj/effect/turf_decal/stripes/line{ +/area/maintenance/bar) +"xCs" = ( +/obj/structure/chair/sofa, +/obj/structure/window{ dir = 1 }, -/turf/open/floor/plating, -/area/space/nearstation) -"xzy" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xCE" = ( +/obj/structure/table/wood/fancy/black, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "xEu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -58498,46 +60262,81 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"xIn" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"xLZ" = ( -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"xMl" = ( -/obj/structure/chair/sofa{ - dir = 1 - }, -/obj/structure/window, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"xNY" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) -"xWM" = ( -/obj/structure/grille/broken, +"xIU" = ( +/obj/item/chair/wood, /turf/open/floor/plating, -/area/space/nearstation) -"xXY" = ( -/obj/structure/closet/lasertag/red, -/obj/item/clothing/under/pj/red, -/obj/item/clothing/under/pj/red, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"xYO" = ( -/obj/structure/sign/poster/contraband/red_rum{ +/area/maintenance/port) +"xNd" = ( +/obj/machinery/door/airlock{ + desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; + id_tag = "PrivateStudy"; + name = "Private Study" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/library) +"xPX" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"xWW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/starboard/fore) +"xXW" = ( +/obj/structure/mirror{ pixel_y = 32 }, -/turf/open/floor/plasteel, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"xZr" = ( +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, /area/hallway/primary/starboard) +"xZN" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/nuke_storage"; + dir = 1; + name = "Vault APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"yar" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "ycu" = ( /obj/structure/cable{ icon_state = "2-4" @@ -58549,18 +60348,47 @@ /obj/machinery/suit_storage_unit/rd, /turf/open/floor/plasteel, /area/science/mixing) -"yiN" = ( -/obj/effect/turf_decal/tile/green{ +"ydZ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ dir = 1 }, -/obj/effect/turf_decal/tile/green{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, -/obj/effect/turf_decal/tile/green{ - dir = 8 +/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ + pixel_x = -3; + pixel_y = 5 }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/crew_quarters/bar) +"yeR" = ( +/obj/structure/sign/poster/contraband/space_up{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"yfs" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; + dir = 4; + name = "Detective's Office APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"yhO" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) (1,1,1) = {" aaa @@ -64582,11 +66410,11 @@ aaa aaa aaa aaa -fsk +pnS aaa aaa aaa -fsk +pnS aaa aaa aaa @@ -64599,7 +66427,7 @@ aaa aaa aaa aaa -hoo +wJq aaa aaa aaa @@ -64833,9 +66661,9 @@ aaa aaa aaa aaa -fsk +pnS aaa -fsk +pnS aaa aaa aaa @@ -64847,9 +66675,9 @@ gXs aaa aaa aaa -fsk +pnS aaa -fsk +pnS aaa aaa aaa @@ -65096,11 +66924,11 @@ gXs aaa aaa gXs -jmC +viT gXs gXs gXs -jmC +viT gXs aaa aaa @@ -65346,11 +67174,11 @@ aaa aaa aaa aaa -jmC -jmC +viT +viT gXs aag -jmC +viT gXs gXs aaa @@ -65360,11 +67188,11 @@ aaa aaa gXs gXs -jmC -jmC -klu +viT +viT +pNO aag -jmC +viT aaa aaa aaa @@ -65603,11 +67431,11 @@ aaa aaa aaa aaa -xcg -lLt +kyA +maK aaa -lLt -jNo +maK +hIi gXs aoV aaa @@ -65617,11 +67445,11 @@ aaa aaa aaa gXs -xcg -lLt +kyA +maK aaa -lLt -jNo +maK +hIi aaa aaa aaa @@ -65860,11 +67688,11 @@ aaa aaa aaa aaa -xzh +uFF aaa cpe aaa -vDq +eYr aaa aaa aaa @@ -65874,11 +67702,11 @@ aaa aaa aaa aaa -xzh +uFF aaa cwV aaa -vDq +eYr aaa aaa aaa @@ -66116,7 +67944,7 @@ aaa aaa aaa aae -lCL +kMg gXs aaa aaa @@ -66373,7 +68201,7 @@ aaa aaa aaa aaa -lCL +kMg gXs aaa aaa @@ -66630,7 +68458,7 @@ aaa aaa aaa aaa -lCL +kMg gXs aaa aaa @@ -66887,7 +68715,7 @@ aaa aaa aaa aaa -lCL +kMg gXs aaa cqq @@ -67144,7 +68972,7 @@ aaf aaf aaf aaa -lCL +kMg arB asE cyb @@ -67917,7 +69745,7 @@ apN apN apN apJ -iyC +hUC ayk awW aAD @@ -67941,7 +69769,7 @@ aaa aaa aaa arB -est +dqG ayk awW aAD @@ -69217,7 +71045,7 @@ aaa awW aOh ayl -tTW +cPO aRY awW aaa @@ -70513,7 +72341,7 @@ awW arB awZ aym -vrM +lre awW aaf aaa @@ -71794,7 +73622,7 @@ aUO aUy aWm aWf -ohX +vAP czK bhN bcl @@ -72812,7 +74640,7 @@ aHy ayl aKk aLA -dTe +iRI aNf aLA aQD @@ -74838,7 +76666,7 @@ ady ady ady ady -rKc +rMI ajq ajW akB @@ -74882,7 +76710,7 @@ aXQ aXQ aPz aPz -rFc +dSI aPz bhQ bjj @@ -75136,11 +76964,11 @@ aPA aXQ aZt aXQ -gdu +ljN aPz -kJY -ihC -oMY +eTc +xIU +hKX bhQ bjj bkF @@ -75396,10 +77224,10 @@ aXQ bbL aPz bdJ -gFD +fFp bgr -nQr -tUm +niE +mDU bkF aaa aaa @@ -75654,7 +77482,7 @@ aZw aPz bct bfa -vdH +ftK bhQ bjk bkE @@ -75909,10 +77737,10 @@ baO aZo baw aPz -cwP +wdQ cBn bgs -wLT +pKz bjk bkF aaa @@ -76213,7 +78041,7 @@ ccb ccb ccb aaa -snG +fcu aaa ccb ccb @@ -76408,7 +78236,7 @@ bxk aDo aDo aIX -nIE +osd aLE aLE aOp @@ -76422,7 +78250,7 @@ aQN aQN aQN aQN -kWI +jKM bbO aPA bgt @@ -76470,7 +78298,7 @@ aaa aaf aaa aaa -kKw +uUC aaa aaa aaf @@ -76485,7 +78313,7 @@ aaa aaa aaa aaa -hoo +wJq aaa aaa aaa @@ -76674,7 +78502,7 @@ aQN aQN aTz aUp -job +rAJ aXr aZx aQN @@ -76727,7 +78555,7 @@ aaf aaf aaf aaf -kKw +uUC aaf aaf aaf @@ -76936,7 +78764,7 @@ aXv aYS aQN aQN -kWI +jKM bbO aPA aSg @@ -77179,18 +79007,18 @@ aDo aDo aDo aIY -nIE +osd aLE aLE aOl aPA -lhg +siG aQN aTC aUs -phY +qIZ aXt -ksn +taU aQN aQN aPA @@ -77445,9 +79273,9 @@ aQV aQN aTC aUu -eRk +rTD aXt -ksn +taU aQN aQN aZB @@ -77700,11 +79528,11 @@ aOl aPA aQU aQN -hzw -qlr -pPE +unN +qXl +pdg aXw -jiR +oVS aQN aQN aZA @@ -78197,7 +80025,7 @@ alU ali ali atO -axo +axm ayz ayz ayz @@ -78208,14 +80036,14 @@ aBR aBR aBR aBR -aLm +aLJ aLE aOl aPA -xIn +jDh aQN aTD -mIS +gDv aUZ aYU aYU @@ -78456,14 +80284,14 @@ aaf avY axo arP -fLd -cRD +iCE +joc aGD -tru +wbB aCr -qBc -iFL -qBc +eDv +rkR +eDv aKu aLM aLF @@ -78473,14 +80301,14 @@ aPG aPG aPG aPG -jsy +puG aQW aQW aQW aQW -cVu +wVp aPA -oBp +jOF aYb aZE bjp @@ -78713,15 +80541,15 @@ aaa avY axo arP -qwe -ioB +usD +fZD aGr aHI -xdV -ePO -phu -qBc -aKu +kmw +qIT +trl +eDv +aKt aLL bDe aOl @@ -78971,14 +80799,14 @@ avY axo arP aCh -qQJ -iYz +oSk +dCk aHK aCr -tUw -mqa -qBc -aKu +lUd +wab +eDv +aKt aLN aLE aOl @@ -78991,13 +80819,13 @@ aWu aYc aZD aZD -uhm +hVk aZD aZD bff -iRJ +vGp aZE -fyM +voH bjr ama bmh @@ -79056,18 +80884,18 @@ bLv bLv bLv aaa -prP -prP -prP -prP -prP -prP -prP -prP -prP +uXD +uXD +uXD +uXD +uXD +uXD +uXD +uXD +uXD aaa aaa -hoo +wJq aaa aaa aaa @@ -79228,14 +81056,14 @@ avZ axp ayC azH -wyM +eJz aGv aCr aCr -tUw -mqa -qBc -aKu +lUd +wab +eDv +aKv aLN aLE aOl @@ -79245,7 +81073,7 @@ aRa aTF aPG aSX -eRn +ffm aZF aZF aZF @@ -79313,7 +81141,7 @@ cqK crl bLv aaa -prP +uXD ctv ctv ctv @@ -79321,7 +81149,7 @@ ctv ctv ctv ctv -prP +uXD aaa aaa aaa @@ -79482,16 +81310,16 @@ aGh aqR aqR awb -eLH -ayA -fHK -hRX +djB +wCs +eWl +eyC aBV -pNH -sfa -ioX -aHG -aJe +hot +nzc +jRs +aBU +aMr aKw aLP aMR @@ -79570,15 +81398,15 @@ cAQ crm bLv aaa -prP -prP -prP -prP -prP -prP -prP -prP -prP +uXD +uXD +uXD +uXD +uXD +uXD +uXD +uXD +uXD aaa aaa aaa @@ -79742,14 +81570,14 @@ awa axq ayD azI -gwi +dyS aBU -xkk -upX -qJZ -doP -qBc -aKu +nGN +gvC +lUd +tPS +eDv +aKb aLN aMQ aNT @@ -79795,7 +81623,7 @@ aoV bCq bHE bHE -puG +iQA cdb bCq bVE @@ -79837,9 +81665,9 @@ gXs aaa aaa aaa -prP -prP -prP +uXD +uXD +uXD aaa aaa aaa @@ -79996,17 +81824,17 @@ aaa aaa aag avY -jLM -ayD -oeJ +hKI +ayA +fLb aMr -qOf +sxe aDv -lwp -tUw -jly -qBc -aKu +gvC +lUd +tPS +eDv +aKt aLN aMS aOt @@ -80094,9 +81922,9 @@ gXs aaa aaa aaa -prP +uXD ctv -prP +uXD aaa aaa aaa @@ -80253,21 +82081,21 @@ aaa aaa aag avY -jLM -ayD -wVs +hKI +ayA +dLh aMr aMr aOH -lwp -vNh -qHB -qBc -aKu +gvC +tku +joq +eDv +aKt aLN aMS aOi -sqa +wDQ aPK aSl aTH @@ -80322,7 +82150,7 @@ mrR dKP odx rBq -ouD +xzU bCq bUs bLv @@ -80341,19 +82169,19 @@ aaf aaa aaf gXs -sYv +muq crn bij bij bij bij bij -hWn +vbc btG aaa -prP +uXD ctv -prP +uXD aaa aaa aaa @@ -80511,16 +82339,16 @@ aaa aag avY axs -ayD -sjm -eNK -iEx +ayF +xqV +vOw +eIe aOH -qBc -qBc -tAV -qBc -aKu +eDv +eDv +fXH +eDv +aKx aLN aMS aOi @@ -80549,7 +82377,7 @@ bbR btu bbR bOL -fnJ +lNz byF bwW bGm @@ -80591,26 +82419,26 @@ cjJ cjJ cjJ cjJ -gVX -reZ -reZ +oJs +uGq +uGq bij crn bij bij -sZR -ued +ilO +udS bnT bph bsc -fhP bsc -eXm +bsc +mdQ btG gXs -prP +uXD ctv -prP +uXD aaa aaa aaa @@ -80851,12 +82679,12 @@ cov cpj cpS cjJ -xLZ -ivF +jUc +mdQ btG -wAB -vVP -mwO +uOn +eeD +srw bnV bph bih @@ -80865,9 +82693,9 @@ bii bsc btG aaa -prP +uXD ctv -prP +uXD aaa aaa aaa @@ -81043,8 +82871,8 @@ aPK aSn aTK aPK -vRX -hwu +yfs +lev asW baW bLE @@ -81107,14 +82935,14 @@ cnN cox cpl cpU -ipc -edH -edH -nWq -edH -wZB -fby -qwB +epP +oLI +oLI +gro +oLI +oLI +qZv +wWF bph big bgN @@ -81122,9 +82950,9 @@ bkZ bsc btG aaa -prP +uXD ctv -prP +uXD aaa aaa aaa @@ -81261,7 +83089,7 @@ aaa acd acd acd -jHM +eMV acd acd aaa @@ -81305,7 +83133,7 @@ aYi aqW aqW bbQ -qpA +sno apd aZH aZK @@ -81365,12 +83193,12 @@ cow cpk cpT cjJ -xLZ -oNQ +jUc +qwZ btG -sZa -jhF -qmM +qPJ +nlN +lQR bnV bph bii @@ -81379,9 +83207,9 @@ bih bsc btG aaa -prP +uXD ctv -prP +uXD aaa aaa aaa @@ -81516,10 +83344,10 @@ abc abc afu abc -suI -qMu -kJr -dxB +iSB +kBF +knR +eWv acd aaa aaa @@ -81620,25 +83448,25 @@ clG cnP coz cpn -dbn -dbn +lzY +lzY bgO -hjw +sWr bgO -nTE -pTn -jnm +trk +bsb +iaq bnW bph bsc -mQR +ncB bsc -wNM +qwZ btG gXs -prP +uXD ctv -prP +uXD aaa aaa aaa @@ -81773,11 +83601,11 @@ aea aeH aft abc -woX -kdm -rvZ -vUR -jHM +fyr +xbZ +svt +dQy +eMV aaa aaa aiU @@ -81883,19 +83711,19 @@ aaf aaa aaa gXs -gtL +szF bgO bgO bgO bgO bgO bgO -vgp +wZk btG aaa -gSH +eMb ctv -prP +uXD aaa aaa aaa @@ -82019,7 +83847,7 @@ aaa aaa gXs gXs -dbM +sbs abc abu abu @@ -82031,10 +83859,10 @@ aeJ afw abc abc -kdm +xbZ aay -vUR -qlF +dQy +uiR aaf aaf aiU @@ -82102,7 +83930,7 @@ bCq bHD bJe bCq -czi +vnw bHE bHE bHE @@ -82150,7 +83978,7 @@ aaa aaa aaa aaa -prP +uXD ctv aaT aaa @@ -82288,9 +84116,9 @@ aeI afv agf abc -kdm +xbZ aay -vUR +dQy aiT aiT aiV @@ -82323,7 +84151,7 @@ aKA aLN aMS aOz -iMG +mMb aPQ aSa aSr @@ -82333,7 +84161,7 @@ aYZ bLE aqW aqW -hfe +vQS apd beA bqp @@ -82341,7 +84169,7 @@ cNG cNJ bLF aZK -haz +qdm bbR bqt cBq @@ -82407,8 +84235,8 @@ aaa aaa aaa aaa -prP -prP +uXD +uXD aaT aaa aaa @@ -82532,8 +84360,8 @@ aaa aaa aaa aai -jSa -uVt +oNN +lJX abe abw acc @@ -82545,9 +84373,9 @@ aeL afy agh abc -tOd -vRr -tLl +qYi +dEZ +dIH aiT ajs akb @@ -82789,7 +84617,7 @@ aaa aaa gXs aai -gIO +rgv aay abd abv @@ -82802,9 +84630,9 @@ aeK afx agg abc -orw -jMK -riA +qRq +npV +lyB aiU ajr aka @@ -83045,11 +84873,11 @@ aaa aaa aaf aaf -aai +ctv acd -wgb +tYn abg -jtU +qKZ aby aby aby @@ -83059,10 +84887,10 @@ aeN afA afA abc -vWw -wFk -oXL -cXx +nTu +fLX +rfE +hYH aju akd akK @@ -83129,14 +84957,14 @@ bCn bGq bGq bGq -tdF +tyg bLw bGq bGq bGq bLw bGq -tdF +tyg bTD bUx bVI @@ -83151,7 +84979,7 @@ bVI bVI bVI bTA -xlN +sOO bHE bHE bHE @@ -83166,25 +84994,25 @@ cpV cqw cqO crp -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaT +aaT +aaT +aaa aaa aaa aaa aaa -hvS aaa aaa aaa @@ -83305,7 +85133,7 @@ aai aai abf aat -tHx +vKR abx acd acC @@ -83314,12 +85142,12 @@ adF aef aeM afz -jSD +ogU aav -sjT -pLt -pQr -new +ueP +dfH +oAV +jSk ajt akc akJ @@ -83423,20 +85251,20 @@ cgR cgR cqN cro -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cEl +cEE +cEl +cFm +csx +cFm +cFm +csx +csv +aaa +aaa +aaT +ctv +aaT aaa aaa aaa @@ -83632,7 +85460,7 @@ bqw aJq aJq aYl -ppY +ovG aLX aJq aJq @@ -83680,20 +85508,20 @@ ciN cji cDZ crr -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +crJ +crT +crJ +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +ctv +aaT aaa aaa aaa @@ -83816,7 +85644,7 @@ aai aan aaw aaB -kfE +ncI aaJ aat abh @@ -83937,20 +85765,20 @@ cgR cDB cqP crq -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +crZ +crT +crZ +cFo +css +cFm +cFm +css +csv +aaa +aaa +aaT +ctv +aaT aaa aaa aaa @@ -84071,9 +85899,9 @@ aag aaa aak aap -fuo +rfu aaD -aau +aat aat aat aat @@ -84146,7 +85974,7 @@ bqy cBr bqy buK -pNI +mnP aJw aJq aJq @@ -84178,7 +86006,7 @@ bWB bWB cec bVI -iOt +mFJ ccw chY ciX @@ -84194,20 +86022,20 @@ cgR cqx cgR crp -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +crJ +crT +crJ +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +ctv +aaT aaa aaa aaa @@ -84330,9 +86158,9 @@ aaj aao aax aaC -aaA aat aat +adO aat aei acd @@ -84451,20 +86279,20 @@ cpX cqz cqR ccw -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +crH +crT +crZ +cFo +css +cFm +cFm +css +csv +aaa +aaa +aaT +ctv +aaT aaa aaa aaa @@ -84585,12 +86413,12 @@ aag aaa aal aar -phH +gks aaF aat -aat +aaO aaW -aat +qvo abB acf abM @@ -84664,7 +86492,7 @@ bwi bmr aMm aJq -otF +xzw bCs bCs bEY @@ -84705,28 +86533,28 @@ coa coJ clJ clJ -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cig +cig +ccw +crJ +crT +crJ +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -84842,12 +86670,12 @@ aag aaf aaj aaq -eOy +iGV aaE aat aaN aaV -rtT +itP aat acd abL @@ -84926,7 +86754,7 @@ bCs bDv bEX bFb -hKF +ope bFa bKt bLx @@ -84960,30 +86788,30 @@ ccw ccw cnZ coH -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cpt +cpZ +cig +cqS +ccw +crH +crT +crZ +cFo +css +cFm +cFm +css +csv +aaa +aaa +aaT +ctv +aaT +aaa +aaa +aaf +aaa +aaa aaa aaa aaa @@ -85098,13 +86926,13 @@ aaa aag aaa aal +aau aat aat aat aat -jeR -neC -jgv +rKZ +aat abD acd acd @@ -85122,9 +86950,9 @@ agj auj akl akO -uko -uko -xqW +pet +pet +hMk anw anz aox @@ -85217,30 +87045,30 @@ cmG cnt cob coL -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cDo +cgR +cqA +cqT +csg +crJ +crU +csb +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +aaT +aaT +gXs +aaf +aaf +aaf +aaa aaa aaa aaa @@ -85360,7 +87188,7 @@ aat aat aat aat -hRz +aat aat abC acd @@ -85382,7 +87210,7 @@ akN alw amg amR -anz +anw anR aow apg @@ -85404,7 +87232,7 @@ aGq aHO aJl ayW -neb +gYR aJq aOE aJn @@ -85417,7 +87245,7 @@ aYq aZO aZC baK -qBe +bbC bbC bdI bgK @@ -85473,31 +87301,31 @@ cTc cTe cfG cgw -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +coK +cpu +cMm +ccw +ccw +ccw +crK +cEK +csa +csj +csa +csa +cGr +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa aaa aaa aaa @@ -85674,10 +87502,10 @@ aYs aZQ bbi bde -nLf bcd bcd -xhx +bcd +gFY bcd bcd bcd @@ -85730,31 +87558,31 @@ clJ cmF cgR cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +chF +ciO +cqc +cqc +cqc +cEd +cEr +cEL +cFb +cFu +cFI +cGd +cGs +cGr +ccw +ccw +ccw +ccw +ccw +ccw +aaa +eRz +aaT +eRz +aaa aaa aaa aaa @@ -85869,14 +87697,14 @@ aaa aag aaf aai -cMk -cMk +qxb +qxb aaG -cMk +qxb aaP aaX -unu -lwY +vhc +fSL acd acD acY @@ -85932,7 +87760,7 @@ aZP bbh bcc bdd -gjf +nyF bfr bgM bif @@ -85986,32 +87814,32 @@ cTa ceZ clQ cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +dGY +coM +cpv +cqb +cqb +cqb +cqb +cEs +cqb +cqb +cAp +cqb +cAo +cGt +cgx +jMY +csd +cHa +csd +uhH +ccw +aaa +aaT +ctv +aaT +aaa aaa aaa aaa @@ -86150,10 +87978,10 @@ aiz ajg akl akR -uko -uko -xqW -anz +pet +pet +hMk +anw anz aov aph @@ -86188,22 +88016,22 @@ aYu aYt bbk bbk -bfu +bbk bbk bfs -pUl +ove aZM aZM aaf aaf -lCL +kMg aaf -lCL +kMg aaf -lCL +kMg aaf -lCL -wwB +kMg +rLg aXf aJq bBi @@ -86243,32 +88071,32 @@ cTb cTd ckF ckF -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cgK +cDg +cDp +cqe +cqB +cqB +cEe +csP +cAl +cFc +cAq +cFJ +cSH +cGu +cGH +fsQ +fsQ +cGR +csd +csd +ccw +aaa +aaT +ctv +aaT +aaa aaa aaa aaa @@ -86390,7 +88218,7 @@ aaa aaf aai abi -vdz +szH ach acK adf @@ -86448,19 +88276,19 @@ bce bdf beb aYv -kTz -kDD +tVp +lNn aaf aaf -lCL -lCL +kMg +kMg aaf -wwB -wwB -wwB -wwB -wwB -wwB +rLg +rLg +rLg +rLg +rLg +rLg aXf aJq byU @@ -86500,32 +88328,32 @@ cnA cev cfg cgU -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cgJ +chG +cpx +cqd +cDC +cqU +cEf +cEt +cEM +csA +cEg +cFK +cGe +cGv +cGI +cGS +cHb +cHg +cHn +oDF +ccw +aaf +aaT +ctv +aaT +aaf aaa aaa aaa @@ -86705,19 +88533,19 @@ aZR bbm bec bfu -sdL +nnb aBa aBa aBa aBa aBa aBa -wwB -bsb -lTq -tMS -eND -wEp +rLg +gGD +tVQ +wcX +dBt +kFf aXf aJq bBi @@ -86757,32 +88585,32 @@ cig cig cTf cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +ccw +cDh +cpy +cDv +cDD +cqU +cMD +cEu +cEz +cEz +cMD +cFL +cGf +kQq +cMm +ciZ +cHc +cAu +cAu +ciZ +ccw +aaa +aaT +ctv +aaT +aaa aaa aaa aaa @@ -86911,7 +88739,7 @@ cpg acv adi adi -pQD +fwD aeW agQ ahv @@ -86924,11 +88752,11 @@ akP aly amj amR -anz +anw anz aov aph -oOb +gzJ ard ard ard @@ -86962,7 +88790,7 @@ aZR aZR aZR bft -srq +oaP aBa aBT aDs @@ -86971,13 +88799,13 @@ aGb aBa bqD bsa -oeQ +vfe bsa bsa -wEp +kFf byS aJq -idX +yar bCs bCs bCs @@ -87014,32 +88842,32 @@ ckI clJ cmL cBO -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +ccw +chV +cpx +cqf +cqD +cMD +crs +cEv +cEv +cFe +cMD +cFM +czE +kQq +ccw +cGT +csd +csd +csd +csd +ccw +aaf +aaT +ctv +aaT +aaa aaa aaa aaa @@ -87168,7 +88996,7 @@ acl cxA acL adi -vpz +vtO agp agT ahx @@ -87178,12 +89006,12 @@ ajc ajI akl akT -fGl -uko -xqW +aww +pet +hMk anw anz -lYU +oZl apk anw anw @@ -87194,7 +89022,7 @@ avj awl axC ayY -uZM +rJv azZ azZ azZ @@ -87219,16 +89047,16 @@ bbm bdh bee bfv -vLD +nDn aBb -cSn +pnx aDr aEM aGa aHF bqF bsa -nmx +iFt buQ buQ bxI @@ -87271,34 +89099,34 @@ ckK clJ cmL cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cgL +chX +cpx +cqh +cqF +cra +crI +cEw +cEw +cEw +cFw +cFN +csH +csR +cMm +cGU +csd +csd +cHo +csd +ccw aaa -hoo +aaT +ctv +aaT +aaa +aaa +aae aaa aaa aaa @@ -87476,13 +89304,13 @@ bcf bdg bed bfv -kvZ -fGC -qvM +sVN +dqD +wTu alu aEM aGd -nMx +xyp bqE bqE bqE @@ -87528,32 +89356,32 @@ ckI clJ cmL cnv -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cMm +chX +cpx +cqg +cqE +cqZ +crt +cMH +cAm +cMH +cMN +cFO +cSI +cSI +cMm +cGV +csd +cGV +noK +csd +ccw +aaa +aaT +ctv +aaT +aaa aaa aaa aaa @@ -87708,7 +89536,7 @@ avk awk axE ayZ -ncj +uqO aBu aAa aAa @@ -87733,18 +89561,18 @@ bbm bdh bef bfv -smn +jTp aBc -jXg +xZN aDt aEO aGc aHF aKG bsf -kxc -kxc -kxc +lrF +lrF +lrF bxK bwh bAh @@ -87785,32 +89613,32 @@ cfb ccw cmN cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cgL +chX +cpx +cqj +cSG +crb +cru +cEx +cEx +cEx +cAP +cFP +csI +cAt +cMm +csd +csd +csd +cHp +csd +ccw +aaf +aaT +ctv +aaT +aaa aaa aaa aaa @@ -87954,7 +89782,7 @@ aml amT anw anz -ilJ +ltC apl aqc aqc @@ -87990,19 +89818,19 @@ aZR aZR aZR bfw -rzg +uJI aBa aBW bjy aEP -nOS +iEc aBa bqG bsa -jDY +mRj bsa bsa -wEp +kFf bwb aJq bBr @@ -88042,32 +89870,32 @@ cfb clM cfz cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +ccw +cii +cpx +cqi +cMD +cAP +crv +cEy +cEy +cFh +cMD +cFM +czE +kQq +ccw +cGT +csd +csd +csd +csd +ccw +aaf +aaT +ctv +aaT +aaa aaa aaa aaa @@ -88211,7 +90039,7 @@ amn amV anw anz -rsX +uWs aod aqf ahT @@ -88247,19 +90075,19 @@ aZR bbm beh bfx -spX +kDw aBa aBa aBa aBa aBa aBa -mte -bsg -lTq -tMS -fZD -wEp +czD +gGD +tVQ +wcX +ekY +kFf aJq aJq bBu @@ -88299,32 +90127,32 @@ cfb cfa cje cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +ccw +cDi +cDr +cDw +cDE +cEa +cMD +cEz +cEz +cEz +cMD +cFR +cSJ +kQq +cMm +ciZ +cHd +cHj +cHd +ciZ +ccw +aaa +aaT +ctv +aaT +aaa aaa aaa aaa @@ -88504,19 +90332,19 @@ bcg aZU beg aYB -ptV -fjy +tVp +lNn aaf aaf -lCL -lCL +kMg +kMg aaf -wwB -wwB -wwB -wwB -wwB -wwB +rLg +rLg +rLg +rLg +rLg +rLg aJq aJq bBt @@ -88556,32 +90384,32 @@ ckL cmF cje cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cMm +chX +cpD +cDw +cDF +cEa +cEg +cEA +cET +cFj +cEf +cFS +cGg +mBv +cGI +cGS +cHe +cHe +cHr +oDF +ccw +aaf +aaT +ctv +aaT +aaf aaa aaa aaa @@ -88721,9 +90549,9 @@ ajJ akr akX alC -iqw +xgZ amX -elw +lUR anz aoB aod @@ -88758,22 +90586,22 @@ aYC aYA bbp bbp -bfx +bbp bbp bfz -tAb +maz aZV aZV aaf aaf -lCL +kMg aaf -lCL +kMg aaf -lCL +kMg aaf -lCL -wwB +kMg +rLg aJq aJq aXf @@ -88813,32 +90641,32 @@ ceq clQ cje cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cMm +cDj +cDs +cql +cDG +cDG +cEh +cEB +cEU +cFk +cAs +cFT +cSK +cGx +cGK +nzh +nzh +cGY +csd +csd +ccw +aaf +aaT +ctv +aaT +aaa aaa aaa aaa @@ -88980,9 +90808,9 @@ akW aiG amo amW -uYE +eWV anz -rsX +uWs aod aqe arf @@ -89016,9 +90844,9 @@ aZV bbo bch bdi -bbw bfy bgS +ffU bik aZV aZV @@ -89033,7 +90861,7 @@ bsh bqH aJq aJq -unY +vqa bCv bDJ bCt @@ -89070,32 +90898,32 @@ ckO ckH cja cny -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +gUz +cip +cnx +cDx +cqb +cqb +cqb +cEC +cqb +cqb +cAr +cqb +cGh +cGC +cey +ijc +csd +cEk +csd +udp +ccw +aaf +aaT +ctv +aaT +aaa aaa aaa aaa @@ -89233,9 +91061,9 @@ adR aiQ ajI akt -akQ -agj -agj +amS +aiX +aiX aiX anw anz @@ -89272,10 +91100,10 @@ aYD aZX baf bdk -jwi bek bfB bgU +pVa bdk bjF blc @@ -89327,32 +91155,32 @@ cfb clR cgR cgR -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cMm +cir +cDt +cDy +cqC +crc +cEi +cED +crc +crc +cFy +cBR +cGi +cGD +cGL +ccw +ccw +ccw +ccw +ccw +ccw +aaa +aaT +aaT +aaT +aaa aaa aaa aaa @@ -89490,10 +91318,10 @@ cBV ajf ajK aks -akY -aly -amj aiX +nuI +anw +anw anw anz aoC @@ -89515,7 +91343,7 @@ vHj eVC dgz aJv -ioG +nqP aMg bHt aOE @@ -89530,10 +91358,10 @@ aZW aZG bej bdj -bej bfA bgT -bil +fDV +bej bej blb bmy @@ -89584,32 +91412,32 @@ ces clN ccm ckF -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cDe +cDk +coc +cqa +cig +ccw +ccw +czF +csd +csd +cFz +cFU +cGj +cGE +cGM +cGZ +aag +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa aaa aaa aaa @@ -89745,13 +91573,13 @@ ahC aia aiP aiR -olv -akv -ala -aww -afM +eJk +akl aiX -uVq +akz +anz +anz +anz anz aoF apo @@ -89762,8 +91590,8 @@ atj aul auR atj -kcj -ghJ +gnM +fRa atj aAX azc @@ -89786,10 +91614,10 @@ aPR aZV baq baQ -dTJ +kCq bcQ -bfC bgV +mpA bim bjG aZV @@ -89844,29 +91672,29 @@ cgU cgU cis cjN -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cDz +cDH +cMm +csd +crM +crV +crV +cFA +csd +cGk +ccw +aag +aag +aag +aaf +aaf +aaf +aaf +gXs +aaf +aaf +aaf +aaf aaa aaa aaa @@ -90004,10 +91832,10 @@ adR aiG ajL aku -akS -alw -amp aiX +alE +anA +anA anA anz aoE @@ -90022,8 +91850,8 @@ avt axL bbl azT -nlt -dwc +gxH +tEy aDG aFd auk @@ -90046,7 +91874,7 @@ baP bbZ bcP cBo -bgS +ffU bbw bbw aZV @@ -90076,7 +91904,7 @@ bOV bQj bRw bSF -gVY +pmf bTP bRA bWQ @@ -90101,29 +91929,29 @@ cfI cgQ cjS cjN -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cqm +cgR +crd +cEk +crL +cEW +cse +cse +csu +cGl +ccw +aaa +aaa +aaf +aaa +aaf +ctv +aaT +aaa +aaa +aaf +aaa +aaa aaa aaa aaa @@ -90275,11 +92103,11 @@ arf arf arf arf -ukP -oma +dHP +djq awr awr -wwn +wWo aAh aAh aAh @@ -90316,7 +92144,7 @@ btL buY buY bqH -neb +gYR aJq aXf bCv @@ -90333,7 +92161,7 @@ bOV bQo bRz bSH -cJn +kcg bTP bRA bWQ @@ -90358,29 +92186,29 @@ ccw ccw cDl cjN -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI -cgI +cjh +cDI +ccw +ccw +ccw +ccw +ccw +cMm +cMm +cMm +ccw +aaf +aaf +aaf +aaf +aaf +ctv +aaT +aaa +aaa +aaf +aaa +aaa aaa aaa aaa @@ -90536,7 +92364,7 @@ avv awu awr aAd -uDW +qKJ aAh aDL aAh @@ -90590,7 +92418,7 @@ bOV bQj bRy bSG -gVY +pmf bUK bVT bWR @@ -90793,7 +92621,7 @@ awp axN awr awr -kSh +oTI aAh aDQ aAh @@ -90801,7 +92629,7 @@ aGl aAh aBy aAh -pTR +uOb aJq aOE aJn @@ -90814,7 +92642,7 @@ aYF aZV bbw bcn -qUm +jNS ben bfE bgX @@ -91044,13 +92872,13 @@ aqe arf ari asu -kyi +gTx aun avR -oma -dHb +djq +vMd awr -uya +mPj aAh aDM aGx @@ -91303,18 +93131,18 @@ arf arf arf arf -ukP +dHP axP azb aAi -wGP +sTt aCn -rOm -wwC +mvB +ipU aGm aHV aDM -nrR +urH aJq aJq aJq @@ -91345,9 +93173,9 @@ bva bwu bwu bwu -ihm +pgY bBB -rhb +pAE bzs bFp bGJ @@ -91563,8 +93391,8 @@ arf awq axO aza -jtk -pqR +moa +uhG aAh aAh aAh @@ -91813,7 +93641,7 @@ ajo aps aqk arf -vGX +dsV blU aHw avn @@ -91821,14 +93649,14 @@ awv axX aze awr -hMx +uuT aAh aDU aBz aBz aAh -isy -uzk +tsY +tTt aJq aJq aJq @@ -92072,7 +93900,7 @@ aqj arf ark asu -epV +mOL aun awt awr @@ -92081,10 +93909,10 @@ azX aAZ aCe aDT -mEN -mEN -dzy -fyq +mwm +mwm +qzE +fPz aAh aJC aJC @@ -92341,18 +94169,18 @@ aDP aBx aBx aAh -kCk -qIf +oNq +jtY aMq adq aQb aPZ aRu -wpo +iWm aKR -tIC +gJR aXi -maC +jRc baa aJC bcq @@ -92592,7 +94420,7 @@ awy awr awr avG -udi +tQu aAh aAh aAh @@ -92602,13 +94430,13 @@ aAh aAh aKR aKR -pxD +fey aPY -xMl +fOB aRx aKR -jzD -tuN +hFk +xCs aPY aZZ aQg @@ -92849,24 +94677,24 @@ awA axT axW aAl -tAE +vEA aJC aDR aFl -rLr +oaT aHZ aJC aKJ -rLR +yeR aKR -hSU -kay +eBm +yhO aQd aQa aKR -xbu -hSU -lwj +ndo +eBm +gbb bac aJC aYV @@ -93090,7 +94918,7 @@ aif aif aif bkV -fvk +thY alK aif aif @@ -93098,19 +94926,19 @@ anc anD aoI arf -myt +iTd asN aur avy -tWR +neT axS azk aAk -eUd +oxA aJC aDY aDY -rLr +oaT aKR aJk aKR @@ -93126,7 +94954,7 @@ aKR aKR bab aJC -xYO +jtp aYV ber bfF @@ -93338,13 +95166,13 @@ abp afo abp abp -hlY +iHq ahn aiA aiA aiA ahn -hYW +qaZ anF aod ahn @@ -93355,15 +95183,15 @@ ahn ahn ahn arf -iES -jdT +pUo +sPA aut arf aXF awr awr aAn -wcy +dQz aJC aEc aFk @@ -93373,19 +95201,19 @@ aJC aKr aKR aKR -fbm -fbm -hzR +pIA +pIA +jcN aKR aKR aKR -fbm +pIA aKR aKR bbx aYV aYV -wDR +qVa bfF bhd bis @@ -93591,11 +95419,11 @@ aaf aaf aaf abp -unE +rmC afp -unE +rmC abp -nea +fEo ahn aaa aaf @@ -93605,39 +95433,39 @@ ahn anE aod aoK -sgV +fBj aqp ahn -ukS -tQk -cVp -jdT -jdT -jdT -rMc +kMO +oaB +itE +sPA +sPA +sPA +xCE aun avz awr awr aAn -fSr +tTh aJC aJC -gjC -lxx +kiH +qeZ aJC aJC aKq aKR aNF -egS -ghs -lMY +lmT +gzA +qet aSH aKR -dMX -igT -moq +dSM +mTi +hmv aKR aQg aYV @@ -93663,7 +95491,7 @@ bvj bvj bvd bFu -hcd +thl bvj bvd bKH @@ -93865,19 +95693,19 @@ aoL apy aqq ahn -dhx -mfb +ttp +cJl arf -unl +uNs ast -jdT +sPA auv arf avA axW azo aAp -lYZ +qPl aBC aCt aEA @@ -93888,13 +95716,13 @@ aKN aKR aKR aOJ -fvW -dtE +nNY +hIJ aKR aKR aUg bFC -moq +hmv aKR bbx aYV @@ -93902,9 +95730,9 @@ aYV bet bfH bhf -slp +qqY bhh -slp +qqY bmJ bof bpu @@ -94130,11 +95958,11 @@ arf arf arf arf -hkg -eNW +fpd +imi azf aAo -lMx +coj aBB aBB aBB @@ -94144,12 +95972,12 @@ cNE aKM aMu aMu -poa -hdb +ese +sfY aMu aMu aMu -uTq +mdp aSq aKR bad @@ -94161,7 +95989,7 @@ bfG bhe bit bjS -nGS +kQg bli boe bli @@ -94376,24 +96204,24 @@ aag aag aag arf -iep -gQn +xXW +gYK arf -myt -qNs -lMx -sjw +iTd +uVo +coj +mcQ clO asZ aua -dcG +sfO awB att azh -vYa -vYa -gKk -vbY +mgT +mgT +uJq +fcc alP aGI aId @@ -94407,7 +96235,7 @@ aMx aMx aMx aMx -eqm +hvD aKR aZb aJC @@ -94618,11 +96446,11 @@ aaa aaa aaa aaa -xzh +uFF aaa aqG aaa -vDq +eYr aaa aaa aaa @@ -94633,24 +96461,24 @@ aaa aaa aaa arf -pZv -tQk -cVp -jdT -ier +duc +oaB +itE +sPA +oIx arf arm -vYa +mgT aya -vYa -vYa +mgT +mgT auB atZ azg azp -vYa +mgT aCu -dgh +gmc alP aGH aIc @@ -94875,11 +96703,11 @@ aaa aaa aaa aaa -lCB -lNB +oBB +ixv aaa -lNB -rUQ +ixv +rrJ aaa aaa aaa @@ -94893,21 +96721,21 @@ arf arf arf arf -iES -jYI +pUo +xgY aqs -hVw -vYa -vYa -vYa -vYa -pSf -vYa +gfn +mgT +mgT +mgT +mgT +vBb +mgT ayb -ndC -vYa +fJA +mgT aCv -frE +cFF alP aGJ aIe @@ -94921,7 +96749,7 @@ aXj aVy aSY aVy -oNb +ydZ acN bah aJC @@ -95132,11 +96960,11 @@ aaa aaa aaa aaa -jmC -jmC +viT +viT gXs -jmC -jmC +viT +viT aaa aaa aaa @@ -95149,22 +96977,22 @@ aaa aaa aaa arf -ewZ -jdT -tOU +jav +sPA +eDq arf -fQF -qbx -qux -vYa -vYa -pSf -vYa +bHg +iTD +lBk +mgT +mgT +vBb +mgT ayb -ndC -vYa -vys -tCi +fJA +mgT +mHW +sBu alP aGJ aIe @@ -95174,11 +97002,11 @@ aKQ aNu aJC aPw -kwy +eqs aQc aSZ aQc -vjq +jxp acN bag aJC @@ -95406,22 +97234,22 @@ aaa aaa aaa arf -qoP -prU -fOc +wSg +vgX +rak arf -oSO -sAI -fJa -vYa -svw -ntf -jvN -lBE -xpx -vYa +lqe +jYg +jde +mgT +pbw +neq +mTj +qGM +ulP +mgT aCu -hgX +vbP alP aGA aHS @@ -95443,7 +97271,7 @@ aYV aYV bet bfH -dok +liD bhh bhg bln @@ -95647,9 +97475,9 @@ aaa aaa aaa aaa -hho +oqa aaa -hho +oqa aaa aaa aaa @@ -95667,18 +97495,18 @@ arf arf arf arf -mTp -qEv -kRk -mXB -qAQ -pzk -vYa -sMa -iEI -jeT -rTQ -vHM +mbl +iiH +udn +vBN +fLn +vXW +mgT +cIW +kmf +uip +jil +ttF alP aGL aHM @@ -95923,18 +97751,18 @@ aaa aaa aaa gXs -kHJ -rEV -rEV -kQZ -fVU -vpm -vpm -fVU -nel -wCa -wCa -lFl +jMa +qMf +qMf +kte +wgV +odR +odR +wgV +kCK +cmm +cmm +dKg arj alP aGL @@ -96158,7 +97986,7 @@ aaa aaa aaa aaa -aaa +xlX aaa aaa aaa @@ -96209,7 +98037,7 @@ aVz aVz aYJ aJI -sIe +xZr aYV aYV aYV @@ -96726,7 +98554,7 @@ baj bbz aYV bdp -itT +pWO bfK bfK bfK @@ -96979,7 +98807,7 @@ aVD aVE aXm aVz -egQ +gIT bbz aYV bdp @@ -97465,17 +99293,17 @@ aaa aaa aaa aaa -haX -rEV -rEV -rEV -nie -vpm -vpm -wFX -wCa -wCa -wCa +mHC +qMf +qMf +qMf +sXo +odR +odR +ioS +cmm +cmm +cmm aCy arj alP @@ -97493,7 +99321,7 @@ aTO cCq aVz aVz -fPs +guh bbz aYV bdp @@ -97726,14 +99554,14 @@ aaa aaa aaa arj -cRz +kOA avD awC ayb -mbD -nmS -oFk -xXY +jYD +ruS +ukL +lAY vpY alP aGJ @@ -97779,7 +99607,7 @@ bCR bqQ bGX bCR -oDy +pMv bRN bIK bPq @@ -97985,13 +99813,13 @@ aaf arj auz avC -kOf +oGS aya -vYa -vYa -oYc -vYa -vYa +mgT +mgT +rmY +mgT +mgT gOZ aGJ avI @@ -98242,7 +100070,7 @@ alO arj arj arj -eOv +csp gOZ cVb cVb @@ -98754,10 +100582,10 @@ cxW anf aqv ayf -fIn -ego +hxw +dKe awE -dMu +pGr cVb vCb wUY @@ -99010,8 +100838,8 @@ aag alO anf alO -kSB -pAl +gqR +pQA alP anf aCG @@ -99027,11 +100855,11 @@ aIq aKK aMy aIp -jaa +rXv aQm -wOT -htr -htr +eaD +vAZ +vAZ aVK aRJ aRJ @@ -99273,10 +101101,10 @@ alP awF aCG alP -olw +uTQ aBE aCz -trY +fXo aCJ aGT aIn @@ -99286,10 +101114,10 @@ aMt aIp aOW aQm -dRC +ktc aSS aUj -pHo +uao aRJ aYQ cBg @@ -99523,7 +101351,7 @@ aoN apA aof arq -hdp +qnd atv auD alP @@ -99543,14 +101371,14 @@ aMA aIp aOX aQm -dRC +ktc aST aUk -pHo +uao aRJ aYQ bam -yiN +oAc aYV aYV aYV @@ -99767,10 +101595,10 @@ adU adU adU adU -ssL -rsv -rsv -rsv +xWW +sCo +sCo +sCo acx amv ane @@ -99800,14 +101628,14 @@ aMz aNQ aOX aQm -tFt -tsr -tsr -xzy +pmj +lrH +lrH +rEQ aRJ aYR ban -qje +efo aYV aYV bez @@ -100051,7 +101879,7 @@ aaa aFq aGX aIp -vzS +lwn aKU aME aNN @@ -100064,7 +101892,7 @@ aXo aXo aYO bap -qje +efo aYV bci beB @@ -100293,7 +102121,7 @@ aof aof aof aof -qkC +gBY aoP atw auF @@ -100301,7 +102129,7 @@ alP aoP auF azr -kel +juV atw alP alP @@ -100315,13 +102143,13 @@ aNQ aOZ aOX aOX -hZH +ohe aUz aVM aOX aYT bam -ory +qcu baR bcb bdl @@ -100378,7 +102206,7 @@ bAw bAw clp aag -jmC +viT aaa aaa aaa @@ -100556,7 +102384,7 @@ aty auF alP aAt -kuY +lHE alP alP alP @@ -100807,7 +102635,7 @@ aaa aaa apC anf -kel +juV alP atx auF @@ -100816,7 +102644,7 @@ auD auF apE aAs -khA +trM alP aCG aFr @@ -100869,15 +102697,15 @@ bOx bPx bJN bRT -aad +bEm bEm bJN bRT -aad +bEm bEm bJN bRT -aad +bEm bEm bDb cfr @@ -101069,12 +102897,12 @@ alP apE auG alP -rgF +hSS auF apE anf anf -jRy +kwj aCG aDZ aFu @@ -101338,8 +103166,8 @@ bbE aIr bav aLf -dkk -kLR +nvw +oWe aRO aQp aRN @@ -101403,11 +103231,11 @@ cQB czY cOT aaa -jmC -jmC -jmC -jmC -jmC +viT +viT +viT +viT +viT aaa aaa aaa @@ -101580,12 +103408,12 @@ apC alP alP alP -tuj +dHx auH avF awI ayc -mlr +nOD asw asw aCD @@ -101596,7 +103424,7 @@ aIu aJQ aIt aIt -kLR +oWe aRO aIt aRN @@ -101851,9 +103679,9 @@ anf aFu aIs aJP -wuB +xah aIt -nsJ +xNd aYW aYW aYW @@ -101920,10 +103748,10 @@ aaa aaa aaa aaa -ikx -mwb -xWM -rxH +tpb +rnY +oSW +vPl aaa aaa aaa @@ -102108,9 +103936,9 @@ aFu aFu aIw aJS -tqt +wTC aNP -jFy +kMY aOS aOS aOS @@ -102174,14 +104002,14 @@ cQB cAa cOT gXs -xNY -kvb +lDF +kTe aaa aaa -ikx -ikx -ikx -rxH +tpb +tpb +tpb +vPl aaa aaa aaa @@ -102358,7 +104186,7 @@ awJ anf alP aAv -gCe +wZI aCE aDZ aFu @@ -102367,7 +104195,7 @@ aIv aJR aIt aIt -kLR +oWe aRO aIt aPd @@ -102431,14 +104259,14 @@ czU czZ cOT aaa -jmC -dbM -dbM -ikx -ikx -ikx -thr -mwb +viT +sbs +sbs +tpb +tpb +tpb +gqp +rnY aaa aaa aaa @@ -102624,7 +104452,7 @@ aIx aJF aQq aNS -kLR +oWe aRO aIt aPd @@ -102688,14 +104516,14 @@ cgm czY cOT gXs -xNY -kvb -gJg -dbM -dbM +lDF +kTe +nxN +sbs +sbs aaa aaa -gJg +nxN aaa aaa aaa @@ -102885,12 +104713,12 @@ aFu aPf aQq aRP -kHK +oIt aIt aIt aWd aXV -iWa +pWH bbD aYV aXq @@ -102947,10 +104775,10 @@ cNW aaa aaa aaa -gJg -gJg -mwb -ikx +nxN +nxN +rnY +tpb gXs aaa aaa @@ -103121,8 +104949,8 @@ alO anf anf arw -ftv -sLr +uiT +cII anf alP awL @@ -103395,7 +105223,7 @@ aIy aJG cAz aFw -iWk +eAE aPg aQr aFu @@ -103462,10 +105290,10 @@ aaa aaa aaa aaa -jmC -jmC -jmC -jmC +viT +viT +viT +viT aaa aaa aaa @@ -103632,10 +105460,10 @@ aaa aaa gXs alP -qxc +pRx ayf -nuV -iOV +eUR +imK aFn aFn aBB @@ -103652,7 +105480,7 @@ aFw aLo aLb aFw -eMQ +xwI aYW aYW aRQ @@ -103886,13 +105714,13 @@ aaa aaa aaa aaa -fzd -fzd -fzd -fzd -tNJ -fzd -fzd +uBW +uBW +uBW +uBW +oFY +uBW +uBW atB alP alP @@ -103909,7 +105737,7 @@ aIz aJM aLa aFw -tGG +kwW aYW aQs aFu @@ -103953,15 +105781,15 @@ bOx bPI bJN bEm -abz +bEm bUi bJN bEm -abz +bEm bUi bJN bEm -abz +bEm bUi bDb aaf @@ -104143,21 +105971,21 @@ aaa aaa aaa aaa -fzd -xdb -mCq -wJz -mHC -tWs -lmi -ghY -sxX -ghY -jBZ +uBW +mKU +wLe +shX +mJU +cyi +tcE +dIA +pNj +dIA +nhn avI asA apE -vHv +fIK aCG aEf aFw @@ -104400,12 +106228,12 @@ aaa aaa aaa aaa -tIk -mCq -mCq -mCq -mCq -pjh +lfx +wLe +wLe +wLe +wLe +gGK asB asB asB @@ -104496,7 +106324,7 @@ cOe cBT aag gXs -jmC +viT aaa aaa aaa @@ -104657,12 +106485,12 @@ aaa aaa aaa aaa -tIk -mCq -mCq -mCq -mCq -dSv +lfx +wLe +wLe +wLe +wLe +sEJ asB atD auJ @@ -104914,12 +106742,12 @@ aaa aaa aaa aaa -fzd -mCq -mCq -mCq -mCq -mCq +uBW +wLe +wLe +wLe +wLe +wLe asB atC auI @@ -105003,7 +106831,7 @@ cNW cNW cNW cOe -qXH +xPX csy cko cAf @@ -105171,12 +106999,12 @@ aaa aaa aaa aaa -tIk -mCq -mCq -mCq -mCq -mCq +lfx +wLe +wLe +wLe +wLe +wLe asB atE auI @@ -105428,18 +107256,18 @@ aaa aaa aaa aaa -tIk -mCq -mCq -mCq -mCq -mCq +lfx +wLe +wLe +wLe +wLe +wLe asB asB asB avL awR -hRT +kuT azu aAz asB @@ -105513,7 +107341,7 @@ cgp chv ciJ cbf -lLI +xcw clr bnt cOe @@ -105685,12 +107513,12 @@ aaa aaa aaa aaa -fzd -wXP -mCq -nXa -mCq -nyH +uBW +kgf +wLe +pnl +wLe +oKy asB atG auL @@ -105942,12 +107770,12 @@ aaa aaa aaa aaa -fzd -fzd -fzd -fzd -fzd -fzd +uBW +uBW +uBW +uBW +uBW +uBW asB atF auK @@ -106233,9 +108061,9 @@ aXB aZh baB aCR -riB +fkx bdx -dfI +izL bgc bgc biX @@ -106549,13 +108377,13 @@ cOe cOe cOe sQX -jzi -jzi -jzi -jzi -jzi -jzi -jzi +tDE +tDE +tDE +tDE +tDE +tDE +tDE aaS aaS aba @@ -107307,7 +109135,7 @@ cbZ bSl cmo cNW -vOq +sPj cNW chC ciL @@ -108607,17 +110435,17 @@ cpi cpi cpi cqJ -ggg +gnW crk crk crk crk crk -pFt +phP cqJ -ggg +gnW crk -pFt +phP cpi cpi ctB @@ -108873,7 +110701,7 @@ crF aaa aaa aaa -hik +jvm aaa aaa aaa @@ -109612,7 +111440,7 @@ cNW cNW cNW cNW -vFt +dok clt cac cbh @@ -109878,7 +111706,7 @@ cbf cbf ceT cNW -kCW +wNd chH cNW aaf diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index c59e0698f9..b47944146f 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1449,6 +1449,26 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) +"agv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "agB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -56068,6 +56088,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "bRx" = ( @@ -120782,6 +120804,17 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"dWi" = ( +/obj/structure/table, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/security/prison) "dWm" = ( /obj/structure/reagent_dispensers/virusfood{ pixel_x = -32 @@ -126368,22 +126401,18 @@ }, /turf/open/floor/plasteel/dark, /area/library) +"euu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "exE" = ( /obj/machinery/air_sensor/atmos/toxins_mixing_tank, /turf/open/floor/engine/vacuum, /area/science/mixing) -"eCJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "eCM" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -126394,6 +126423,27 @@ }, /turf/open/floor/plasteel/white, /area/science/misc_lab) +"eHb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"eIC" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "eJc" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/closed/wall/r_wall, @@ -126435,13 +126485,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) -"ePi" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "eTv" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -126494,6 +126537,24 @@ }, /turf/open/floor/plasteel, /area/medical/medbay/central) +"flG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/arcade{ + icon_state = "arcade"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) "fno" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -126519,16 +126580,6 @@ /obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, /area/science/mixing) -"fCs" = ( -/obj/machinery/door/window/northright{ - name = "Coffin Storage" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/closet/crate/coffin, -/turf/open/floor/plating, -/area/chapel/office) "fFK" = ( /obj/machinery/ore_silo, /obj/effect/turf_decal/tile/neutral{ @@ -126547,22 +126598,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/circuit) -"fLh" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) "fLR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -126579,31 +126614,6 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"fXF" = ( -/obj/machinery/button/crematorium{ - id = "cremawheat"; - pixel_x = -26; - req_access_txt = "27" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/table, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/turf/open/floor/plasteel/dark, -/area/chapel/office) "gbV" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 @@ -126616,56 +126626,49 @@ }, /turf/open/floor/engine, /area/science/mixing) -"giN" = ( -/obj/structure/window/reinforced{ +"gkl" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/closet/crate/coffin, -/turf/open/floor/plating, -/area/chapel/office) -"gmj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/science/circuit) -"gut" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/chapel/office) -"gBd" = ( +"gmj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/circuit) +"gug" = ( +/obj/machinery/light/small, /turf/open/floor/plasteel, /area/security/prison) -"gKo" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +"gER" = ( +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /turf/open/floor/plasteel, -/area/maintenance/port/fore) +/area/maintenance/port/aft) "gKr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/circuit/green, /area/science/research/abandoned) -"gLe" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/grape, -/turf/open/floor/plasteel, -/area/hydroponics/garden/abandoned{ - name = "Maintenance Garden" - }) "gNw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/table/glass, @@ -126723,13 +126726,6 @@ /obj/item/clothing/mask/muzzle, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"gVZ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "gXn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -126740,6 +126736,10 @@ }, /turf/open/floor/plasteel, /area/maintenance/department/electrical) +"hds" = ( +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) "hdH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -126757,10 +126757,21 @@ dir = 10 }, /area/science/circuit) -"hix" = ( -/obj/structure/sign/warning/vacuum, -/turf/closed/wall/r_wall, -/area/chapel/office) +"hig" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "hrP" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -126782,13 +126793,19 @@ }, /turf/open/floor/plasteel, /area/maintenance/port/aft) -"hsy" = ( -/obj/machinery/vr_sleeper, -/obj/structure/cable/white{ - icon_state = "4-8" +"hsc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "hFo" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -126820,6 +126837,9 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"hJk" = ( +/turf/open/space, +/area/space) "hNZ" = ( /obj/structure/chair/office/light{ dir = 8 @@ -126839,50 +126859,30 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/medical/medbay/central) -"hTX" = ( +"hUt" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/turf/open/floor/plasteel, +/area/maintenance/port/aft) "iaF" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/research) -"iho" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall, -/area/medical/surgery) "ijB" = ( /obj/structure/reagent_dispensers/keg/aphro/strong, /obj/item/reagent_containers/glass/beaker, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"ioW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/computer/arcade{ - icon_state = "arcade"; - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) "iwL" = ( /obj/machinery/status_display{ pixel_x = 32 @@ -126941,6 +126941,37 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"iUn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"iZm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/arcade{ + icon_state = "arcade"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) "jdO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -126965,6 +126996,13 @@ }, /turf/open/floor/plasteel, /area/science/research/abandoned) +"jie" = ( +/obj/machinery/vr_sleeper, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) "jjN" = ( /obj/structure/table/reinforced, /obj/machinery/camera{ @@ -127062,6 +127100,10 @@ /obj/machinery/chem_master, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) +"jPL" = ( +/obj/structure/sign/warning/vacuum, +/turf/closed/wall/r_wall, +/area/chapel/office) "jRy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -127082,6 +127124,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/science/mixing) +"jTP" = ( +/obj/machinery/door/window/northleft{ + name = "Mass Driver" + }, +/obj/machinery/mass_driver{ + id = "chapelgun"; + name = "Holy Driver" + }, +/turf/open/floor/plating, +/area/chapel/office) "kam" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -127090,48 +127142,11 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"kiJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"ktV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/computer/arcade{ - icon_state = "arcade"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) -"kqa" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/obj/item/storage/crayons, -/obj/item/storage/crayons, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"krb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/chapel/office) "kvf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -127158,19 +127173,6 @@ }, /turf/open/floor/plasteel, /area/maintenance/port) -"kKn" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window{ - req_one_access_txt = "48,50" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) "kLu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -127186,11 +127188,27 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) +"kTU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/r_wall, +/area/chapel/office) +"lag" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "lak" = ( /turf/open/floor/plasteel/white/side{ dir = 10 }, /area/science/circuit) +"lem" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grape, +/turf/open/floor/plasteel, +/area/hydroponics/garden/abandoned{ + name = "Maintenance Garden" + }) "loI" = ( /obj/machinery/autolathe, /obj/machinery/door/window/southleft{ @@ -127222,6 +127240,13 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"lva" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "lyU" = ( /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ dir = 8 @@ -127277,20 +127302,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"lLY" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/closet/crate/coffin, -/turf/open/floor/plasteel/dark, -/area/chapel/office) "lOY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -127349,16 +127360,38 @@ dir = 1 }, /area/science/circuit) -"mbd" = ( -/obj/structure/cable/white{ - icon_state = "4-8" +"lYm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" }, /turf/open/floor/plasteel, /area/maintenance/port/aft) +"mhH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "mkm" = ( /obj/machinery/atmospherics/components/binary/valve, /obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ @@ -127377,21 +127410,9 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) -"mpP" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +"mqT" = ( /turf/open/floor/plasteel, -/area/maintenance/port/fore) +/area/security/prison) "mvm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -127418,23 +127439,31 @@ /obj/item/assembly/signaler, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"mPj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 +"mIQ" = ( +/obj/machinery/button/crematorium{ + id = "cremawheat"; + pixel_x = -26; + req_access_txt = "27" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/turf/open/floor/plating, -/area/chapel/office) -"mPH" = ( /obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/security/prison) +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "mQE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -127458,35 +127487,38 @@ }, /turf/open/floor/engine, /area/science/mixing) -"nbW" = ( -/obj/structure/grille, -/turf/open/space, -/area/space/nearstation) "nyN" = ( /obj/machinery/vending/kink, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"nFW" = ( -/obj/machinery/door/poddoor{ - id = "chapelgun"; - name = "Chapel Launcher Door" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/chapel/office) -"nNX" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "nSh" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"oHk" = ( +"nUj" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"nZa" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window{ + req_one_access_txt = "48,50" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"oDr" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -127499,7 +127531,7 @@ }, /obj/machinery/computer/arcade{ icon_state = "arcade"; - dir = 1 + dir = 4 }, /turf/open/floor/plasteel/dark, /area/maintenance/starboard/fore) @@ -127601,39 +127633,6 @@ }, /turf/open/floor/wood, /area/bridge/showroom/corporate) -"oZY" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"pfC" = ( -/obj/machinery/seed_extractor, -/obj/item/reagent_containers/glass/bucket, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hydroponics/garden/abandoned{ - name = "Maintenance Garden" - }) -"pgU" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/lime{ - pixel_x = 6 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden/abandoned{ - name = "Maintenance Garden" - }) "pmQ" = ( /obj/structure/table/reinforced, /obj/machinery/newscaster{ @@ -127644,22 +127643,6 @@ dir = 1 }, /area/science/circuit) -"pnK" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/keycard_auth{ - pixel_x = -25 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) "poI" = ( /obj/structure/bed, /obj/item/tank/internals/anesthetic, @@ -127691,6 +127674,36 @@ }, /turf/open/floor/plating, /area/science/research/abandoned) +"pDQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"pLz" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/medical/surgery) +"pPt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "pQm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -127708,47 +127721,7 @@ }, /turf/open/floor/plasteel, /area/science/research/abandoned) -"qhc" = ( -/obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, -/obj/item/integrated_electronics/debugger, -/obj/item/integrated_electronics/wirer, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/circuit) -"qnx" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"qoc" = ( -/obj/machinery/door/window/northleft{ - name = "Mass Driver" - }, -/obj/machinery/mass_driver{ - id = "chapelgun"; - name = "Holy Driver" - }, -/turf/open/floor/plating, -/area/chapel/office) -"qpq" = ( -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/circuit) -"qAV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) -"qBG" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"ray" = ( +"qbg" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -127769,6 +127742,42 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) +"qhc" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/circuit) +"qkw" = ( +/obj/effect/landmark/barthpot, +/turf/open/floor/wood, +/area/library) +"qnx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"qpq" = ( +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/circuit) +"qzY" = ( +/obj/machinery/door/window/northright{ + name = "Coffin Storage" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/plating, +/area/chapel/office) +"qBG" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) "rhO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -127777,42 +127786,23 @@ dir = 9 }, /area/science/circuit) -"rqh" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "rCv" = ( /turf/open/floor/plasteel/white/side{ dir = 6 }, /area/science/circuit) -"rIi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"rTc" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"rKU" = ( +/obj/machinery/vr_sleeper, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/structure/cable/white{ - icon_state = "2-4" +/turf/open/floor/plating{ + icon_state = "platingdmg2" }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/area/security/prison) "rUD" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -127854,57 +127844,66 @@ /obj/effect/decal/remains/xeno, /turf/open/floor/engine/vacuum, /area/science/mixing) -"sfL" = ( -/turf/open/space, -/area/space) +"siB" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/plating, +/area/chapel/office) "svv" = ( /obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) -"sww" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/r_wall, -/area/chapel/office) -"sCQ" = ( -/obj/effect/turf_decal/tile/neutral{ +"sBk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"sVX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 }, -/obj/effect/turf_decal/tile/neutral{ +/area/maintenance/port/aft) +"tma" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/brown{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/effect/turf_decal/tile/brown{ + dir = 8 }, -/obj/machinery/airalarm{ - dir = 2; - pixel_y = 22 +/obj/machinery/keycard_auth{ + pixel_x = -25 }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/turf/open/floor/plasteel, +/area/quartermaster/qm) "tmi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plasteel, /area/science/circuit) +"tra" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "twt" = ( /obj/machinery/vr_sleeper, /obj/effect/turf_decal/tile/neutral{ @@ -127912,7 +127911,7 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"tBE" = ( +"tzT" = ( /obj/structure/cable/white{ icon_state = "1-2" }, @@ -127945,22 +127944,16 @@ /obj/machinery/chem_heater, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"tVN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +"umo" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/turf/open/floor/plasteel, +/area/security/prison) "upk" = ( /obj/machinery/door/airlock/public/glass{ name = "Holodeck Access" @@ -127993,31 +127986,10 @@ }, /turf/open/floor/plasteel/white, /area/science/misc_lab) -"usi" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/obj/machinery/vr_sleeper, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, +"uNx" = ( +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel, /area/security/prison) -"uuP" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/chapel/office) "uNP" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ @@ -128050,6 +128022,15 @@ /obj/item/clothing/under/color/grey, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"vph" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "vAb" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -128059,14 +128040,27 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"vAW" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/security/prison) "wei" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/circuit) +"wjb" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/lime{ + pixel_x = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/abandoned{ + name = "Maintenance Garden" + }) +"wsI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "wAA" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall/r_wall, @@ -128082,10 +128076,28 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/misc_lab) -"wIf" = ( -/obj/item/twohanded/required/kirbyplants/random, +"wJf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"wQz" = ( +/obj/machinery/seed_extractor, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/security/prison) +/area/hydroponics/garden/abandoned{ + name = "Maintenance Garden" + }) "xaf" = ( /obj/machinery/door/airlock/public/glass{ name = "Holodeck Access" @@ -128104,20 +128116,14 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"xdZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +"xdG" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/maintenance/port/aft) +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/chapel/office) "xmt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -128127,10 +128133,6 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"xuu" = ( -/obj/effect/landmark/barthpot, -/turf/open/floor/wood, -/area/library) "xwK" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -157115,7 +157117,7 @@ arB aug alg alg -eCJ +pDQ aKg alf aMO @@ -157372,7 +157374,7 @@ aAb aAb aAb aAb -gKo +vph aKh alf aMN @@ -157630,7 +157632,7 @@ aCv aFJ aAb aIH -nNX +eIC alf aMP aDw @@ -158144,7 +158146,7 @@ aEB aFL aAb aIH -ePi +lva avm arB arB @@ -158396,7 +158398,7 @@ alf aAb aBj aCv -pfC +wQz aEC aFM aAb @@ -158527,7 +158529,7 @@ edL eep eff aad -rqh +lag aaa ajr aaa @@ -158653,7 +158655,7 @@ alg aAb aBk aCv -gLe +lem aEC aFN aAb @@ -158784,7 +158786,7 @@ edM eeq dLY aad -nbW +hds aaa aad aaa @@ -158915,7 +158917,7 @@ aED aFO aHm aII -qAV +euu aLz aMR aOq @@ -159172,7 +159174,7 @@ aEE aFP aHn aIJ -gVZ +wsI aLz aMS aOr @@ -159424,12 +159426,12 @@ ayX aAb aBn aCx -pgU +wjb aCv aFQ aAb -mpP -gVZ +hig +wsI aLz aMT aOs @@ -159802,7 +159804,7 @@ dXz dYt dON dOl -rKU +gER eaX dYu ect @@ -160058,8 +160060,8 @@ dON dON dON dON -xdZ -mbd +sBk +nUj ebc ebQ ecu @@ -160200,7 +160202,7 @@ aAb aAb aAb aIL -ePi +lva aLz aLz aLz @@ -160321,12 +160323,12 @@ dZN dZN dZN dZN -hix +jPL dZN dZN dLY aad -rqh +lag aad aad aaa @@ -160457,7 +160459,7 @@ aEG aFS aHp aIM -tBE +tzT aLB aFS aEG @@ -160572,20 +160574,20 @@ dWJ dLW dYu dZg -fLh -oZY +lYm +hUt dZN -gut -krb -ray -qoc -mPj -nFW +hsc +gkl +qbg +jTP +ktV +xdG aaa -sfL +hJk aaa aaa -sfL +hJk aaa aaa aaa @@ -160761,7 +160763,7 @@ caG chU cjt ckR -xuu +qkw cnR cpv cqQ @@ -160831,12 +160833,12 @@ dTw dTw dZN dZN -sww -sVX -hTX -hTX -fCs -giN +kTU +agv +eHb +eHb +qzY +siB dTw aad aad @@ -161080,17 +161082,17 @@ dRB dSz dTx dUi -lLY +iUn dVN -lLY +iUn dXB dYv dTw dZO -fXF -sCQ -tVN -uuP +mIQ +pPt +mhH +tra dTw dTw dTw @@ -161343,7 +161345,7 @@ dUj dXC dYw dZh -rIi +wJf eau edr ebS @@ -168165,7 +168167,7 @@ aCP avQ aFe aGp -kKn +nZa aJg aKF aLP @@ -170722,7 +170724,7 @@ aox apu aqy arb -ioW +flG aig auA avU @@ -171489,7 +171491,7 @@ akU alI amE anz -kiJ +oDr apw aqA apy @@ -172007,7 +172009,7 @@ aiC apy apy apu -oHk +iZm atw auD avW @@ -174932,7 +174934,7 @@ dkv dma dma dma -iho +pLz dsI dro dvz @@ -175368,7 +175370,7 @@ aaa aaa aad aQR -pnK +tma aUq aVR aXF @@ -179471,7 +179473,7 @@ aaa aaa aaa aaa -rqh +lag aFm aIc aFm @@ -179728,9 +179730,9 @@ aaa aaa aaa aaa -rqh +lag aFm -kqa +umo bbt aFm aMc @@ -179985,10 +179987,10 @@ aaa aaa aaa aaa -rqh +lag aFm -hsy -vAW +jie +gug aFm aKV aNy @@ -180244,10 +180246,10 @@ ajr ajr aad aFm -usi -gBd -wIf -gBd +rTc +mqT +uNx +mqT aNz aPh aQZ @@ -180501,7 +180503,7 @@ ajr aad aad aFn -mPH +dWi aJA aJA aMe diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 3516d61080..f2eab05785 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -3528,6 +3528,7 @@ pixel_x = -22 }, /obj/structure/rack, +/obj/item/storage/fancy/donut_box, /obj/item/gun/energy/e_gun/dragnet, /obj/item/gun/energy/e_gun/dragnet, /obj/effect/turf_decal/tile/neutral{ @@ -4003,7 +4004,8 @@ dir = 8 }, /obj/structure/rack, -/obj/item/storage/fancy/donut_box, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "ahJ" = ( @@ -27115,10 +27117,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 2 }, -/obj/structure/sign/departments/custodian{ - pixel_x = 32; - pixel_y = -32 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "baI" = ( @@ -83446,10 +83444,6 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) -"iCn" = ( -/obj/machinery/vr_sleeper, -/turf/open/floor/plasteel, -/area/security/prison) "iLj" = ( /obj/structure/table, /turf/open/floor/plating, @@ -83468,16 +83462,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) -"jhu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Recreation Module" - }, -/turf/open/floor/plasteel, -/area/security/prison) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -83535,6 +83519,16 @@ "krD" = ( /turf/closed/wall, /area/science/circuit) +"kwg" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permahydro"; + name = "Recreation Module" + }, +/turf/open/floor/plasteel, +/area/security/prison) "kwI" = ( /obj/item/wrench, /obj/item/clothing/suit/apron, @@ -83595,6 +83589,10 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"kRT" = ( +/obj/machinery/vr_sleeper, +/turf/open/floor/plasteel, +/area/security/prison) "kVo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -83614,6 +83612,13 @@ /obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) +"lmg" = ( +/obj/machinery/computer/arcade{ + icon_state = "arcade"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) "lsv" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -83662,10 +83667,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"lWL" = ( -/obj/machinery/smartfridge/organ/preloaded, -/turf/closed/wall, -/area/medical/surgery) "lWY" = ( /obj/machinery/door/airlock/hatch{ name = "Telecomms Server Room" @@ -83787,6 +83788,13 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/engine/cult, /area/library) +"oba" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "obb" = ( /obj/structure/target_stake, /obj/effect/turf_decal/stripes/line{ @@ -84055,20 +84063,6 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) -"ram" = ( -/obj/machinery/computer/arcade{ - icon_state = "arcade"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"roa" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -84082,17 +84076,6 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) -"rLV" = ( -/obj/structure/table, -/obj/item/folder, -/obj/item/paper/guides/jobs/hydroponics, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/item/pen, -/obj/item/storage/crayons, -/turf/open/floor/plasteel, -/area/security/prison) "rMS" = ( /obj/machinery/status_display/supply, /turf/closed/wall, @@ -84288,6 +84271,15 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"uHA" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) "uJU" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -84372,6 +84364,10 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space) +"vPN" = ( +/obj/machinery/smartfridge/organ/preloaded, +/turf/closed/wall, +/area/medical/surgery) "wdu" = ( /obj/structure/grille, /obj/structure/lattice, @@ -84444,6 +84440,17 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/misc_lab) +"xcb" = ( +/obj/structure/table, +/obj/item/folder, +/obj/item/paper/guides/jobs/hydroponics, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/pen, +/obj/item/storage/crayons, +/turf/open/floor/plasteel, +/area/security/prison) "xeC" = ( /obj/machinery/light, /turf/open/floor/plasteel/dark, @@ -84500,15 +84507,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) -"xIi" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) "xVl" = ( /turf/closed/wall, /area/hallway/secondary/service) @@ -104239,7 +104237,7 @@ cia cia cpX cia -lWL +vPN cia ceu dyg @@ -106712,11 +106710,11 @@ aaa aaf aaf aay -rLV -xIi +xcb +uHA abC -jhu -xIi +kwg +uHA abC abC acr @@ -106970,10 +106968,10 @@ aaf aaa aax abl -roa -ram +oba +lmg aax -iCn +kRT aaR aaR aaI diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 99c536bd3c..de42e1ac63 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -3571,6 +3571,14 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Wt" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/laborcamp/security) +"Wz" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "WA" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -3622,6 +3630,26 @@ }, /turf/open/floor/plasteel, /area/mine/production) +"WF" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/laborcamp) +"WH" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/eva) +"WI" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/production) +"WJ" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall/r_wall, +/area/mine/maintenance) +"WK" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/closed/wall, +/area/mine/living_quarters) (1,1,1) = {" aa @@ -3878,7 +3906,7 @@ aj aj aj aj -aj +Wz "} (2,1,1) = {" aa @@ -8723,7 +8751,7 @@ aq WB aq bi -aq +WF WC aq bZ @@ -8984,7 +9012,7 @@ az az aq ca -ca +Wt ca aj aj @@ -12074,7 +12102,7 @@ ai cQ dk dA -cQ +WJ ed er eM @@ -13106,7 +13134,7 @@ dR ef es dZ -cM +WK fg cM cM @@ -20292,9 +20320,9 @@ bt bH bV cq -bf -bq +WH bq +WI db bP bP diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index b9462f214d..be4128208a 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2812,6 +2812,7 @@ /obj/structure/table, /obj/item/storage/box/firingpins, /obj/item/storage/box/firingpins, +/obj/item/key/security, /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Armory APC"; @@ -3847,7 +3848,8 @@ "akN" = ( /obj/effect/landmark/event_spawn, /obj/structure/rack, -/obj/item/key/security, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/dark, /area/security/armory) "akO" = ( @@ -24559,6 +24561,12 @@ /obj/machinery/shieldwallgen, /turf/open/floor/plating, /area/maintenance/department/cargo) +"bfQ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "bfY" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/effect/turf_decal/tile/neutral, @@ -40134,14 +40142,6 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) -"bNE" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/chapel/monastery) "bNF" = ( /obj/item/stack/medical/bruise_pack, /turf/open/floor/plasteel/dark, @@ -46926,6 +46926,16 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) +"ceG" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/rack, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/chapel/monastery) "ceH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -51962,6 +51972,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/library/lounge) +"cxW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "cxX" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -53143,9 +53159,6 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) -"dpc" = ( -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "dps" = ( /obj/machinery/status_display/ai, /turf/closed/wall, @@ -53378,6 +53391,18 @@ /obj/machinery/shieldwallgen/xenobiologyaccess, /turf/open/floor/plating, /area/maintenance/department/engine) +"dQj" = ( +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Sergeant-at-Armsky"; + on = 1; + weaponscheck = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "dSp" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ dir = 1 @@ -53388,12 +53413,35 @@ /obj/item/chair, /turf/open/floor/wood, /area/maintenance/department/engine) +"dTz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main/monastery) "dTV" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"dUI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "dVI" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -53424,12 +53472,6 @@ }, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"dYe" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "dZj" = ( /obj/machinery/atmospherics/pipe/manifold/green/visible, /obj/machinery/airalarm/engine{ @@ -53453,6 +53495,10 @@ }, /turf/open/floor/plating, /area/lawoffice) +"ebT" = ( +/mob/living/simple_animal/hostile/retaliate/goose, +/turf/open/floor/wood, +/area/maintenance/department/crew_quarters/dorms) "edl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53505,13 +53551,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) -"eit" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "eiV" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -53519,20 +53558,26 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"ejJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "ekU" = ( /obj/effect/decal/cleanable/cobweb{ icon_state = "cobweb2" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"ekV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "elk" = ( /obj/structure/chair/office/dark, /turf/open/floor/wood, /area/lawoffice) -"epg" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) "epj" = ( /obj/machinery/cryopod{ dir = 8 @@ -53721,16 +53766,6 @@ icon_state = "platingdmg3" }, /area/maintenance/department/science) -"eNc" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/structure/rack, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/chapel/monastery) "eNq" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -53755,6 +53790,12 @@ }, /turf/closed/wall, /area/maintenance/department/security/brig) +"eQa" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/department/chapel/monastery) "eQN" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -53809,12 +53850,6 @@ }, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"eVT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "eWi" = ( /obj/structure/cable{ icon_state = "0-4" @@ -53902,6 +53937,9 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"ffK" = ( +/turf/open/space/basic, +/area/hallway/secondary/entry) "fhM" = ( /obj/item/storage/secure/safe{ pixel_x = -22 @@ -53928,6 +53966,16 @@ }, /turf/open/floor/plasteel/white, /area/science/explab) +"fjC" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/rack, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/chapel/monastery) "fjD" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 @@ -54153,6 +54201,17 @@ }, /turf/open/floor/engine, /area/engine/supermatter) +"fCC" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Monastery Transit" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/hallway/secondary/entry) "fFv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/firealarm{ @@ -54612,6 +54671,14 @@ /obj/item/clothing/glasses/welding, /turf/open/floor/plasteel/dark, /area/science/lab) +"gFw" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/chapel/monastery) "gGy" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -54725,6 +54792,17 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"gOI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Monastery Transit" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/chapel/dock) "gPV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -54748,14 +54826,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/cargo) -"gTy" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/lattice, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "gUb" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -54787,6 +54857,14 @@ /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) +"haq" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Monastery Transit" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/chapel/dock) "haA" = ( /obj/structure/table, /obj/item/stack/sheet/metal/fifty, @@ -54996,14 +55074,12 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port) -"hCb" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Monastery Transit" +"hCR" = ( +/obj/machinery/light/small, +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/turf/open/floor/plasteel/white{ - heat_capacity = 1e+006 - }, -/area/hallway/secondary/entry) +/area/maintenance/department/chapel/monastery) "hDG" = ( /obj/machinery/door/airlock/engineering{ name = "Auxillary Base Construction"; @@ -55387,6 +55463,9 @@ "iqc" = ( /turf/open/floor/plasteel/stairs/right, /area/maintenance/department/crew_quarters/dorms) +"irD" = ( +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "irM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -55426,18 +55505,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"ivO" = ( -/mob/living/simple_animal/bot/secbot{ - arrest_type = 1; - health = 45; - icon_state = "secbot1"; - idcheck = 1; - name = "Sergeant-at-Armsky"; - on = 1; - weaponscheck = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/armory) "iwe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/blue{ @@ -55575,21 +55642,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"iLR" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) "iPj" = ( /obj/machinery/igniter{ id = "xenoigniter"; @@ -55620,19 +55672,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"iPH" = ( -/obj/machinery/vr_sleeper{ - icon_state = "sleeper"; - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) "iPO" = ( /obj/machinery/door/poddoor/shutters{ id = "aux_base_shutters"; @@ -55685,12 +55724,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/cargo) -"iXx" = ( -/obj/machinery/light/small, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/chapel/monastery) "jcT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -55711,6 +55744,13 @@ dir = 1 }, /area/hallway/secondary/exit/departure_lounge) +"jfr" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "jgr" = ( /obj/machinery/door/airlock/grunge{ name = "Library" @@ -55973,10 +56013,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/science) -"jSa" = ( -/obj/machinery/door/airlock/maintenance, -/turf/open/floor/plating, -/area/chapel/main/monastery) "jTh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -55998,6 +56034,14 @@ }, /turf/open/floor/carpet, /area/lawoffice) +"jTN" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "jTU" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable/yellow{ @@ -56167,16 +56211,16 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"koE" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "kpK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /turf/open/floor/plating, /area/maintenance/department/engine) +"kqV" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "krU" = ( /obj/structure/chair{ dir = 4 @@ -56190,6 +56234,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"kuT" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/engine) "kvj" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -56247,6 +56295,15 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"kzK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) "kAa" = ( /obj/structure/chair{ dir = 8 @@ -56350,23 +56407,9 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"kGe" = ( -/obj/structure/transit_tube/horizontal, -/obj/structure/sign/departments/holy{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"kIc" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Monastery Transit" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white{ - heat_capacity = 1e+006 - }, +"kGc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, /area/hallway/secondary/entry) "kIo" = ( /obj/structure/table, @@ -56402,6 +56445,16 @@ /obj/structure/closet, /turf/open/floor/plating, /area/maintenance/department/cargo) +"kLT" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/chapel/monastery) "kNf" = ( /obj/machinery/door/window/northleft{ base_state = "right"; @@ -56469,11 +56522,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"kSb" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space) "kSF" = ( /obj/structure/cable{ icon_state = "1-4" @@ -56511,12 +56559,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"kVy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "kWQ" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/structure/cable/yellow{ @@ -56530,23 +56572,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"kXx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-10" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main/monastery) "kYM" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -56683,12 +56708,20 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) -"lxI" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +"ltB" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/area/maintenance/department/chapel/monastery) +/turf/open/floor/plasteel/dark, +/area/security/prison) +"lxm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/chapel/dock) "lzJ" = ( /obj/structure/closet/crate/bin, /turf/open/floor/carpet, @@ -56994,11 +57027,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) -"mgU" = ( -/obj/effect/landmark/carpspawn, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "mhl" = ( /obj/machinery/power/emitter, /obj/machinery/light{ @@ -57032,6 +57060,12 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"mjk" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "mjn" = ( /obj/machinery/jukebox, /turf/open/floor/plasteel/dark, @@ -57155,6 +57189,15 @@ /obj/item/gun/ballistic/shotgun/toy, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"mwl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) "mwG" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -57163,6 +57206,12 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) +"mxu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "mxy" = ( /obj/machinery/power/terminal{ dir = 4 @@ -57296,14 +57345,6 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/department/science) -"mSY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white{ - heat_capacity = 1e+006 - }, -/area/chapel/dock) "mTS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -57313,12 +57354,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"mVD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "mVM" = ( /turf/open/floor/plating/airless, /area/space/nearstation) @@ -57396,12 +57431,6 @@ /obj/item/chair/stool, /turf/open/floor/carpet, /area/maintenance/department/crew_quarters/dorms) -"nho" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "nih" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/costume, @@ -57441,6 +57470,11 @@ /obj/item/stack/spacecash/c10, /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) +"nog" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/chapel/monastery) "noC" = ( /obj/machinery/vending/kink, /turf/open/floor/wood, @@ -57672,11 +57706,6 @@ }, /turf/open/floor/engine, /area/science/explab) -"nKo" = ( -/obj/structure/lattice, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "nLl" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -57803,12 +57832,20 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) +"nYM" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "nZw" = ( /obj/machinery/door/airlock/abandoned{ name = "Backup Laboratory" }, /turf/open/floor/plating, /area/maintenance/department/cargo) +"obh" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "obj" = ( /obj/structure/cable{ icon_state = "4-8" @@ -57833,10 +57870,6 @@ initial_gas_mix = "o2=0.01;n2=0.01" }, /area/maintenance/department/science) -"odM" = ( -/obj/effect/landmark/barthpot, -/turf/open/floor/carpet, -/area/library/lounge) "oep" = ( /obj/structure/table/glass, /obj/item/paper_bin, @@ -57869,6 +57902,14 @@ }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"ogn" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space/nearstation) "ohR" = ( /obj/item/chair, /turf/open/floor/plating, @@ -57962,15 +58003,13 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"ovB" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 +"ovg" = ( +/obj/structure/transit_tube/horizontal, +/obj/structure/sign/departments/holy{ + pixel_x = -32 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) +/turf/open/floor/plating, +/area/hallway/secondary/entry) "ovM" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -58007,10 +58046,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/storage/primary) -"ozO" = ( -/obj/machinery/door/airlock/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/engine) "oAw" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -58380,12 +58415,6 @@ }, /turf/open/floor/plating, /area/science/explab) -"peE" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "pfz" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -58418,23 +58447,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"phS" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"pia" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/rack, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/chapel/monastery) "pjH" = ( /obj/structure/cable{ icon_state = "1-2" @@ -58486,17 +58498,6 @@ }, /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/exit/departure_lounge) -"ppY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass{ - name = "Monastery Transit" - }, -/turf/open/floor/plasteel/white{ - heat_capacity = 1e+006 - }, -/area/chapel/dock) "prQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -58511,6 +58512,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/engine/supermatter) +"pua" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) "puw" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, @@ -58560,9 +58576,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/medical/chemistry) -"pyw" = ( -/turf/open/space/basic, -/area/hallway/secondary/entry) "pBD" = ( /obj/structure/cable{ icon_state = "0-8" @@ -58589,6 +58602,12 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"pDd" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "pDP" = ( /obj/machinery/vending/assist, /obj/effect/turf_decal/tile/neutral{ @@ -58653,6 +58672,14 @@ /obj/structure/closet/crate, /turf/open/floor/plating, /area/maintenance/department/cargo) +"pKg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/hallway/secondary/entry) "pMG" = ( /obj/structure/sink{ dir = 8; @@ -58901,10 +58928,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"qni" = ( -/obj/machinery/smartfridge/organ/preloaded, -/turf/closed/wall, -/area/medical/surgery) "qnT" = ( /obj/machinery/iv_drip, /turf/open/floor/plating, @@ -59176,11 +59199,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"qWo" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/department/chapel/monastery) "qWG" = ( /obj/structure/closet/emcloset/anchored, /turf/open/floor/plating, @@ -59967,22 +59985,6 @@ }, /turf/open/space, /area/space/nearstation) -"tbF" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/lattice, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"tbY" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "tcY" = ( /obj/structure/cable{ icon_state = "4-8" @@ -60114,19 +60116,6 @@ }, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"tnP" = ( -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "tnY" = ( /obj/machinery/button/door{ id = "aux_base_shutters"; @@ -60305,6 +60294,11 @@ icon_state = "panelscorched" }, /area/maintenance/department/engine) +"tSk" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "tSL" = ( /turf/open/floor/plating{ icon_state = "panelscorched" @@ -60331,6 +60325,25 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) +"tZk" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Monastery Transit" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/hallway/secondary/entry) +"tZu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) +"uau" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "uaC" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -60363,6 +60376,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/science/mixing) +"ucT" = ( +/obj/effect/landmark/carpspawn, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) "udl" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -60537,15 +60555,6 @@ /obj/machinery/light, /turf/open/floor/plasteel, /area/science/explab) -"utg" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) "uug" = ( /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -60606,10 +60615,6 @@ /obj/machinery/field/generator, /turf/open/floor/plating, /area/maintenance/department/engine) -"uxI" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "uxP" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -60704,6 +60709,16 @@ }, /turf/closed/wall/r_wall, /area/engine/engineering) +"uJI" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"uKS" = ( +/obj/machinery/smartfridge/organ/preloaded, +/turf/closed/wall, +/area/medical/surgery) "uLF" = ( /obj/structure/cable{ icon_state = "1-4" @@ -60740,6 +60755,10 @@ /obj/effect/turf_decal/plaque, /turf/open/floor/plating, /area/maintenance/department/engine) +"uNP" = ( +/obj/effect/landmark/barthpot, +/turf/open/floor/carpet, +/area/library/lounge) "uQR" = ( /obj/item/ammo_casing/shotgun/beanbag, /turf/open/floor/plating, @@ -60753,6 +60772,11 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"uTY" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/chapel/monastery) "uUQ" = ( /obj/machinery/door/airlock/maintenance{ name = "Engineering Maintenance"; @@ -60779,6 +60803,19 @@ /obj/item/stamp/law, /turf/open/floor/carpet, /area/lawoffice) +"uWP" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "uXG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60801,13 +60838,14 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard) -"uZb" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced{ - dir = 8 - }, +"uYk" = ( /obj/structure/window/reinforced, -/turf/open/space, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space/basic, /area/space/nearstation) "vay" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -60815,22 +60853,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) -"vaB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) -"vco" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) -"veF" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/space/basic, -/area/space) "veM" = ( /obj/machinery/suit_storage_unit/rd, /obj/machinery/light{ @@ -60958,6 +60980,11 @@ initial_gas_mix = "o2=0.01;n2=0.01" }, /area/maintenance/department/science) +"vsc" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space) "vsk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -61050,12 +61077,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"vxZ" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "vzz" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -61128,6 +61149,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"vFZ" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/hallway/secondary/entry) "vGg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -61451,6 +61479,19 @@ }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"wxa" = ( +/obj/machinery/vr_sleeper{ + icon_state = "sleeper"; + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) "wxb" = ( /obj/structure/cable{ icon_state = "4-8" @@ -61498,14 +61539,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) -"wDe" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Monastery Transit" - }, -/turf/open/floor/plasteel/white{ - heat_capacity = 1e+006 - }, -/area/chapel/dock) "wDl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/corner, @@ -61708,10 +61741,6 @@ icon_state = "platingdmg3" }, /area/maintenance/department/science) -"wUc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "wUf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -61722,6 +61751,10 @@ icon_state = "panelscorched" }, /area/maintenance/department/security/brig) +"wUW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "wVC" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Sci"; @@ -61746,25 +61779,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/security/brig) -"wYJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) "wYK" = ( /obj/machinery/power/supermatter_crystal/engine, /turf/open/floor/engine, /area/engine/supermatter) -"wZs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white{ - heat_capacity = 1e+006 - }, -/area/hallway/secondary/entry) "xah" = ( /obj/structure/cable{ icon_state = "1-2" @@ -61823,14 +61841,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/lawoffice) -"xeN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/hallway/secondary/entry) -"xgh" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) "xgG" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -61861,6 +61871,10 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"xhW" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) "xja" = ( /obj/machinery/light/small{ dir = 4 @@ -61884,10 +61898,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"xjg" = ( -/mob/living/simple_animal/hostile/retaliate/goose, -/turf/open/floor/wood, -/area/maintenance/department/crew_quarters/dorms) "xjK" = ( /obj/item/radio/intercom{ name = "Station Intercom (General)"; @@ -62120,6 +62130,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, /area/lawoffice) +"xNw" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/chapel/main/monastery) "xNx" = ( /obj/structure/lattice, /obj/structure/disposalpipe/junction/flip, @@ -62162,10 +62176,13 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plasteel/freezer, /area/storage/emergency/port) -"xSd" = ( -/obj/machinery/light/small, +"xRE" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, /turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/area/maintenance/disposal) "xSX" = ( /obj/machinery/airalarm/unlocked{ pixel_y = 23 @@ -62179,16 +62196,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"xVt" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/structure/rack, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/chapel/monastery) "xWl" = ( /obj/item/pen, /obj/item/paper_bin{ @@ -62200,11 +62207,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"xYV" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/chapel/monastery) "ybX" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, @@ -79925,7 +79927,7 @@ ckT xhj xhj cwK -odM +uNP xhj cxn xhj @@ -80376,7 +80378,7 @@ aaa aaa aaa aaa -pyw +ffK bsl btL aZx @@ -80392,11 +80394,11 @@ aaa aaa aaa aaa -koE +xhW aqG bGE bKf -mSY +lxm bMw bNy bNw @@ -80633,7 +80635,7 @@ aaa aaa aaa aaa -pyw +ffK aZx bcX aZx @@ -80648,12 +80650,12 @@ aaa aaa aaa aaa -koE -koE +xhW +xhW aqG bGE bKf -mSY +lxm bMx bNz bHM @@ -80904,13 +80906,13 @@ aaa aaa aaa aaa -koE -koE -koE +xhW +xhW +xhW aqG bGE -wDe -ppY +haq +gOI bHM bNA bHM @@ -80947,7 +80949,7 @@ cvc cho cvk cdx -kXx +dTz csS cfm cwe @@ -81160,11 +81162,11 @@ bVp bVp bVp bVp -eit -gTy -eit -eit -tbF +jfr +jTN +jfr +jfr +uYk aZx bIY bLs @@ -81205,7 +81207,7 @@ ciF cuQ cfm cfm -jSa +xNw cfm cwe ckp @@ -81424,7 +81426,7 @@ aZx aZx aZx bIY -wZs +pKg aZx amC aaa @@ -81433,7 +81435,7 @@ aby aby abI bSn -uZb +ogn cqS bNs bQe @@ -81670,18 +81672,18 @@ aaa aaa bGI aZx -tbY -wYJ -xeN -xeN -xeN -wYJ -xeN -eVT -dpc -vxZ +vFZ +tZu +uau +uau +uau +tZu +uau +dUI +irD +mjk bIY -nho +mxu aZx amB aht @@ -81691,7 +81693,7 @@ aaa abI abI abI -uZb +ogn bNs bNs bNs @@ -81719,7 +81721,7 @@ chr chL cfm cfN -xSd +obh cfN cfN cfN @@ -81927,18 +81929,18 @@ aaa aaa bGI aZx -mVD -dpc -dpc -dpc -wUc -vaB -vaB -vaB -vaB -vaB -vaB -kVy +cxW +irD +irD +irD +ejJ +kGc +kGc +kGc +kGc +kGc +kGc +ekV aZx amC aaa @@ -81949,7 +81951,7 @@ aaa aaa abI aaa -veF +uJI bQR bNs bNs @@ -82184,8 +82186,8 @@ aaa aaa bGI aZx -mVD -dpc +cxW +irD aZx aZx aZx @@ -82441,19 +82443,19 @@ aaa aaa aqG aZx -mVD -dpc +cxW +irD aZx -koE -koE -koE -koE -koE -koE -koE -koE -koE -koE +xhW +xhW +xhW +xhW +xhW +xhW +xhW +xhW +xhW +xhW amD aaa aht @@ -82695,11 +82697,11 @@ bon aZx aaa aaa -koE +xhW aqG aZx -mVD -dpc +cxW +irD aZx bBV bDf @@ -82955,12 +82957,12 @@ aZx aZx aZx aZx -mVD -uxI +cxW +nYM bAI -epg +kqV abI -koE +xhW abI aaa bva @@ -83004,7 +83006,7 @@ cfN cfN cfN cfN -iXx +hCR cjm cfN cfN @@ -83134,7 +83136,7 @@ abI aen aet aeH -peE +bfQ afo afG aeU @@ -83212,8 +83214,8 @@ bbR bbR bbR aZx -kIc -hCb +fCC +tZk bAJ bBX bBX @@ -83261,9 +83263,9 @@ cfN cfN cfN cfN -xYV +nog cjm -koE +xhW aaa aaa aaa @@ -83390,8 +83392,8 @@ adR aaa aem aeu -tnP -dYe +uWP +ltB aeH afH aeH @@ -83471,7 +83473,7 @@ baK aZx bxY bzz -kGe +ovg bBX bDg bEj @@ -83518,10 +83520,10 @@ cfN cfN cfN cfN -qWo +uTY cjm cjm -koE +xhW aaa aaa aaa @@ -83761,22 +83763,22 @@ bIZ cba cbT bDi -ozO +kuT cwA cwA cwA cwA -vco +pDd cwA cwA cwA cwA -xYV -bNE -xYV -qWo -lxI -xVt +nog +gFw +nog +uTY +eQa +ceG cjm aht aaa @@ -83904,8 +83906,8 @@ adR aaa aem aeW -ovB -utg +mwl +kzK afr agy agc @@ -84021,19 +84023,19 @@ ccO bIZ cjm cjm -xgh -xgh +wUW +wUW cjm cjm cjm -xgh -xgh +wUW +wUW cjm cjm cjm cjm -eNc -pia +fjC +kLT cjm aht aaa @@ -84161,9 +84163,9 @@ adR aaa aem aeX -iLR -iPH -iPH +pua +wxa +wxa agy agd agp @@ -84276,10 +84278,10 @@ bva bNK bva bva -koE -mgU -kSb -kSb +xhW +ucT +vsc +vsc aht aht mau @@ -84545,11 +84547,11 @@ aaa aaa aaa aaa -kSb -kSb -koE -koE -nKo +vsc +vsc +xhW +xhW +tSk aaa aaa aaa @@ -85205,7 +85207,7 @@ aiM ajh ajR akN -ivO +dQj amj amX anH @@ -92217,7 +92219,7 @@ bFU bFU bIn bJt -qni +uKS bFU bFU bFU @@ -99335,7 +99337,7 @@ cBk jhD cBo alQ -xjg +ebT cBw noC aiS @@ -108107,7 +108109,7 @@ aaa aLm aLm aNU -phS +xRE dqY aRv sZh @@ -108364,7 +108366,7 @@ aaa aLm aME eFG -phS +xRE dqY aRw sqQ @@ -108621,7 +108623,7 @@ aaa aLo aMF aNV -phS +xRE cvf aQn sqQ @@ -108878,7 +108880,7 @@ aaa aLo aMG aNX -phS +xRE xer aRy aSn diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 6129d263fd..7e095329af 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2108,6 +2108,10 @@ }, /turf/closed/indestructible/riveted, /area/space) +"fy" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/tdome/arena_source) "fz" = ( /turf/open/floor/plasteel, /area/tdome/arena_source) @@ -4826,7 +4830,7 @@ pixel_x = 25; specialfunctions = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "mb" = ( /obj/structure/table/reinforced, @@ -6425,7 +6429,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "oX" = ( /obj/structure/bookcase/random, @@ -6796,7 +6800,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "pH" = ( /obj/structure/table/wood, @@ -7312,7 +7316,7 @@ color = "#596479"; dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "qQ" = ( /obj/machinery/door/airlock/centcom{ @@ -8698,7 +8702,7 @@ damtype = "stamina"; force = 30 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "tX" = ( /obj/machinery/door/airlock{ @@ -8713,7 +8717,7 @@ /area/centcom/supplypod) "tZ" = ( /obj/structure/chair/wood/normal, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "uc" = ( /obj/effect/turf_decal/tile/green{ @@ -9326,7 +9330,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "vt" = ( /obj/structure/rack, @@ -9334,7 +9338,7 @@ damtype = "stamina"; force = 30 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "vu" = ( /obj/structure/chair/stool, @@ -10359,7 +10363,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/grass, /area/centcom/holding) "yg" = ( /obj/structure/chair, @@ -10607,7 +10611,7 @@ /obj/structure/table/wood/bar, /obj/structure/safe/floor, /obj/item/seeds/cherry/bomb, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "yN" = ( /obj/structure/table/reinforced, @@ -11054,9 +11058,6 @@ }, /turf/open/floor/plating, /area/syndicate_mothership) -"zT" = ( -/turf/open/indestructible/boss/air, -/area/centcom/holding) "zU" = ( /obj/structure/closet/crate/freezer, /turf/open/floor/plasteel/cafeteria, @@ -11341,7 +11342,7 @@ pixel_y = 25; specialfunctions = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "AD" = ( /obj/machinery/door/airlock/centcom{ @@ -11582,12 +11583,12 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "Bs" = ( /obj/structure/table/wood, /obj/machinery/computer/libraryconsole/bookmanagement, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Bu" = ( /obj/structure/table/wood, @@ -12464,11 +12465,11 @@ /obj/machinery/vr_sleeper{ dir = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "CV" = ( /obj/structure/chair/stool, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "CX" = ( /obj/structure/closet/secure_closet/security, @@ -12662,16 +12663,12 @@ /obj/machinery/vr_sleeper{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Dk" = ( /obj/structure/table, /turf/open/floor/plasteel/cafeteria, /area/syndicate_mothership) -"Dl" = ( -/obj/structure/mineral_door/paperframe, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "Do" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -13478,21 +13475,21 @@ /obj/structure/table/wood, /obj/item/instrument/piano_synth, /obj/item/instrument/guitar, -/turf/open/indestructible/hotelwood, +/turf/open/floor/carpet/black, /area/centcom/holding) "Fb" = ( /obj/structure/piano, /obj/machinery/light{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/carpet/black, /area/centcom/holding) "Fc" = ( /obj/structure/sign/barsign{ pixel_y = 32 }, /obj/structure/chair/stool, -/turf/open/indestructible/hotelwood, +/turf/open/floor/carpet/black, /area/centcom/holding) "Fg" = ( /obj/structure/flora/grass/brown, @@ -13509,11 +13506,11 @@ /obj/machinery/light{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Fj" = ( /obj/machinery/vending/cigarette, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Fm" = ( /obj/machinery/shower{ @@ -13801,7 +13798,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "FX" = ( /turf/open/floor/plasteel/stairs, @@ -13975,7 +13972,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Gu" = ( /obj/machinery/door/airlock/silver{ @@ -14348,7 +14345,7 @@ /obj/structure/chair/wood/wings{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Ha" = ( /obj/effect/turf_decal/tile/brown{ @@ -14434,7 +14431,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/grass, /area/centcom/holding) "Hn" = ( /obj/structure/sink{ @@ -14656,7 +14653,7 @@ /area/space) "HH" = ( /obj/machinery/light, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "HI" = ( /obj/structure/sink{ @@ -14780,7 +14777,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "HR" = ( /obj/structure/sink{ @@ -15120,6 +15117,10 @@ }, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) +"Is" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/tdome/arena) "It" = ( /turf/open/floor/plasteel, /area/tdome/arena) @@ -16219,7 +16220,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "KU" = ( /obj/structure/closet/emcloset, @@ -16576,7 +16577,7 @@ /obj/effect/mob_spawn/human/ghostcafe{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Mt" = ( /obj/structure/window/reinforced{ @@ -16585,7 +16586,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "Mu" = ( /obj/machinery/light{ @@ -16601,7 +16602,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "Mv" = ( /obj/structure/table/reinforced, @@ -16617,7 +16618,7 @@ damtype = "stamina"; force = 30 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "My" = ( /obj/docking_port/stationary{ @@ -16686,11 +16687,11 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "MM" = ( /obj/structure/window/reinforced, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "MP" = ( /obj/machinery/light{ @@ -16702,7 +16703,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/carpet/black, /area/centcom/holding) "MS" = ( /obj/structure/table, @@ -16749,7 +16750,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "Nk" = ( /obj/machinery/door/airlock/centcom{ @@ -16771,7 +16772,7 @@ /obj/item/storage/fancy/candle_box, /obj/item/storage/fancy/candle_box, /obj/item/storage/box/lights/mixed, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Nn" = ( /obj/structure/closet/secure_closet/hydroponics{ @@ -16787,7 +16788,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "Nu" = ( /turf/open/floor/wood, @@ -16805,7 +16806,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Nz" = ( /obj/effect/turf_decal/tile/brown{ @@ -16825,7 +16826,7 @@ /obj/item/reagent_containers/medspray/synthflesh, /obj/item/reagent_containers/medspray/synthflesh, /obj/item/reagent_containers/medspray/synthflesh, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "NF" = ( /obj/structure/ladder/unbreakable/binary, @@ -16857,13 +16858,13 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "NT" = ( /obj/structure/window/paperframe{ CanAtmosPass = 0 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "NU" = ( /obj/machinery/door/airlock/centcom{ @@ -16933,7 +16934,7 @@ /area/centcom/control) "Ol" = ( /obj/structure/table/wood/fancy, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Om" = ( /obj/effect/turf_decal/tile/brown, @@ -17002,7 +17003,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "OH" = ( /obj/effect/spawner/structure/window/reinforced, @@ -17012,7 +17013,7 @@ /obj/structure/mineral_door/paperframe{ name = "Dojo" }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "OM" = ( /obj/machinery/light{ @@ -17035,7 +17036,7 @@ /obj/item/clothing/under/kilt, /obj/structure/closet, /obj/item/clothing/under/roman, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "OV" = ( /obj/machinery/light{ @@ -17059,14 +17060,14 @@ /area/centcom/supplypod) "Ph" = ( /obj/structure/closet/crate/bin, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Pl" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "Pn" = ( /turf/closed/indestructible/fakedoor{ @@ -17077,7 +17078,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "Pq" = ( /obj/structure/urinal{ @@ -17118,7 +17119,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "PD" = ( /turf/open/floor/plasteel/cafeteria, @@ -17130,7 +17131,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "PG" = ( /obj/structure/table/reinforced, @@ -17149,7 +17150,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "PJ" = ( /obj/effect/turf_decal/stripes/line{ @@ -17159,7 +17160,7 @@ /area/syndicate_mothership) "PL" = ( /obj/machinery/autolathe, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "PM" = ( /obj/machinery/vending/clothing{ @@ -17179,7 +17180,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "PP" = ( /obj/machinery/door/airlock/external{ @@ -17213,7 +17214,7 @@ /area/holodeck/rec_center/firingrange) "PX" = ( /obj/machinery/computer/arcade/battle, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "PY" = ( /obj/effect/turf_decal/tile/green{ @@ -17226,7 +17227,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "PZ" = ( /obj/effect/turf_decal/delivery, @@ -17255,7 +17256,7 @@ /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ausbushes/palebush, /obj/structure/window/reinforced/fulltile, -/turf/open/indestructible/hotelwood, +/turf/open/floor/grass, /area/centcom/holding) "Qm" = ( /obj/singularity/wizard/mapped, @@ -17310,7 +17311,7 @@ pixel_y = -25; specialfunctions = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "QH" = ( /obj/machinery/chem_master/condimaster{ @@ -17328,7 +17329,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "QI" = ( /obj/structure/toilet{ @@ -17345,7 +17346,7 @@ /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ausbushes/palebush, /obj/structure/window/reinforced/fulltile, -/turf/open/indestructible/hotelwood, +/turf/open/floor/grass, /area/centcom/holding) "QN" = ( /obj/machinery/light{ @@ -17400,7 +17401,7 @@ /area/holodeck/rec_center/basketball) "Ra" = ( /obj/machinery/door/window/eastright, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "Rb" = ( /obj/effect/turf_decal/stripes/corner{ @@ -17420,7 +17421,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "Re" = ( /obj/structure/mineral_door/paperframe, @@ -17440,7 +17441,7 @@ /obj/structure/chair/wood/normal{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Rj" = ( /obj/machinery/vending/hydroseeds, @@ -17454,7 +17455,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "Rl" = ( /obj/structure/mirror{ @@ -17468,7 +17469,7 @@ /obj/structure/chair/wood/wings{ dir = 3 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Ro" = ( /obj/structure/closet{ @@ -17487,14 +17488,14 @@ /obj/item/tank/internals/plasmaman/belt/full, /obj/item/tank/internals/plasmaman/belt/full, /obj/item/tank/internals/plasmaman/belt/full, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Rq" = ( /obj/machinery/light{ dir = 1; light_color = "#cee5d2" }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Ru" = ( /obj/structure/fireplace, @@ -17541,7 +17542,7 @@ pixel_x = -3; pixel_y = 3 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "RR" = ( /turf/open/floor/plasteel, @@ -17555,13 +17556,13 @@ damtype = "stamina"; force = 30 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "RX" = ( /obj/structure/chair/comfy/brown{ color = "#596479" }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "RZ" = ( /obj/effect/turf_decal/tile/bar, @@ -17581,7 +17582,7 @@ /turf/open/floor/plasteel/dark, /area/syndicate_mothership) "Sd" = ( -/turf/open/indestructible/hotelwood, +/turf/open/floor/carpet/black, /area/centcom/holding) "Sf" = ( /obj/structure/chair{ @@ -17615,7 +17616,7 @@ /obj/machinery/defibrillator_mount/loaded{ pixel_y = 28 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Sw" = ( /obj/machinery/hydroponics/constructable, @@ -17632,7 +17633,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "Sy" = ( /obj/effect/turf_decal/tile/brown{ @@ -17714,7 +17715,7 @@ /obj/item/wallframe/newscaster, /obj/item/paper_bin, /obj/item/pen/fountain, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "SV" = ( /obj/effect/turf_decal/tile/bar, @@ -17736,11 +17737,11 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "SY" = ( /obj/structure/table/wood, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "SZ" = ( /obj/machinery/door/airlock/wood{ @@ -17751,7 +17752,7 @@ /area/centcom/holding) "Tb" = ( /obj/structure/closet/crate/freezer/blood, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Tc" = ( /obj/machinery/button/door{ @@ -17761,7 +17762,7 @@ pixel_y = -25; specialfunctions = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Tj" = ( /obj/effect/turf_decal/tile/bar, @@ -17776,7 +17777,7 @@ /obj/item/candle/infinite{ pixel_y = 6 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "To" = ( /turf/open/indestructible/airblock, @@ -17787,7 +17788,7 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/storage/toolbox/mechanical, /obj/item/multitool, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Tr" = ( /obj/structure/closet/chefcloset, @@ -17799,7 +17800,7 @@ /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ausbushes/palebush, /obj/structure/window/reinforced/fulltile, -/turf/open/indestructible/hotelwood, +/turf/open/floor/grass, /area/centcom/holding) "Tw" = ( /obj/structure/closet{ @@ -17816,7 +17817,7 @@ /obj/item/clothing/head/helmet/space/plasmaman, /obj/item/clothing/head/helmet/space/plasmaman, /obj/item/clothing/head/helmet/space/plasmaman, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Tz" = ( /obj/effect/light_emitter, @@ -17846,7 +17847,7 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "TM" = ( /mob/living/simple_animal/bot/medbot{ @@ -17855,7 +17856,7 @@ radio_key = null; stationary_mode = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "TO" = ( /obj/effect/turf_decal/tile/bar, @@ -17875,11 +17876,11 @@ /area/syndicate_mothership) "Ud" = ( /obj/effect/landmark/holding_facility, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Uf" = ( /obj/structure/closet/secure_closet, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Ug" = ( /obj/machinery/door/poddoor/shuttledock{ @@ -17898,7 +17899,7 @@ damtype = "stamina"; force = 30 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Uj" = ( /obj/machinery/door/airlock/centcom{ @@ -17933,7 +17934,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/plasteel/white, /area/centcom/holding) "Un" = ( /obj/machinery/door/airlock/centcom{ @@ -17977,11 +17978,11 @@ desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here."; name = "Personal ID-Locked Closet" }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "UE" = ( /obj/structure/chair/stool/bar, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "UG" = ( /obj/structure/flora/tree/pine, @@ -18026,11 +18027,11 @@ /obj/structure/chair/wood/wings{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "UV" = ( /obj/machinery/computer/arcade, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "UW" = ( /obj/effect/turf_decal/tile/brown{ @@ -18114,7 +18115,7 @@ /obj/structure/flora/ausbushes/palebush, /obj/structure/window/reinforced/fulltile, /obj/machinery/light, -/turf/open/indestructible/hotelwood, +/turf/open/floor/grass, /area/centcom/holding) "Vv" = ( /obj/structure/table, @@ -18164,7 +18165,7 @@ damtype = "stamina"; force = 30 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "VO" = ( /turf/closed/indestructible/riveted, @@ -18200,7 +18201,7 @@ /area/space) "Wb" = ( /obj/machinery/door/window/westleft, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "Wc" = ( /obj/machinery/door/airlock/centcom{ @@ -18232,10 +18233,6 @@ }, /turf/open/floor/plating, /area/syndicate_mothership) -"Wl" = ( -/obj/machinery/door/airlock/wood, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "Wr" = ( /turf/open/floor/plasteel/dark, /area/centcom/supplypod) @@ -18246,12 +18243,6 @@ }, /turf/open/floor/wood, /area/centcom/holding) -"Ww" = ( -/obj/structure/bodycontainer/crematorium{ - dir = 4 - }, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "WC" = ( /obj/structure/table/reinforced, /obj/item/pen, @@ -18292,7 +18283,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 32 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "WN" = ( /obj/machinery/button/door{ @@ -18302,7 +18293,7 @@ pixel_y = 25; specialfunctions = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "WO" = ( /obj/effect/turf_decal/tile/brown, @@ -18346,11 +18337,11 @@ /obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/palebush, /obj/structure/window/reinforced/fulltile, -/turf/open/indestructible/hotelwood, +/turf/open/floor/grass, /area/centcom/holding) "Xe" = ( /obj/machinery/vending/autodrobe, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Xg" = ( /obj/effect/turf_decal/tile/red{ @@ -18364,6 +18355,9 @@ }, /turf/open/floor/holofloor, /area/holodeck/rec_center/basketball) +"Xk" = ( +/turf/open/floor/wood, +/area/centcom/holding) "Xl" = ( /obj/structure/closet/syndicate/personal, /obj/effect/turf_decal/stripes/line{ @@ -18374,7 +18368,7 @@ "Xn" = ( /obj/structure/bed, /obj/item/bedsheet/random, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Xo" = ( /obj/machinery/vending/dinnerware, @@ -18399,7 +18393,7 @@ /area/centcom/supplypod/loading/four) "Xs" = ( /obj/structure/chair/comfy/brown, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Xt" = ( /obj/machinery/door/airlock/centcom{ @@ -18422,7 +18416,13 @@ /area/holodeck/rec_center/firingrange) "Xw" = ( /obj/structure/table/wood/fancy/royalblue, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, +/area/centcom/holding) +"Xx" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, /area/centcom/holding) "Xy" = ( /obj/machinery/door/airlock/external{ @@ -18444,7 +18444,7 @@ pixel_y = 25; specialfunctions = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "XE" = ( /obj/machinery/door/airlock/centcom{ @@ -18461,12 +18461,12 @@ /obj/structure/chair/wood/wings{ dir = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "XT" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/sashimi, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "XU" = ( /obj/machinery/computer/secure_data{ @@ -18477,7 +18477,7 @@ "XX" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/bottle/sake, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "XY" = ( /obj/machinery/door/poddoor/shutters{ @@ -18494,7 +18494,7 @@ pixel_y = -25; specialfunctions = 4 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Yc" = ( /obj/effect/turf_decal/stripes/line, @@ -18512,12 +18512,12 @@ /obj/machinery/defibrillator_mount/loaded{ pixel_y = 28 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Yf" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/chawanmushi, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Yg" = ( /obj/effect/turf_decal/stripes/corner{ @@ -18529,7 +18529,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Yi" = ( /obj/structure/dresser, @@ -18537,13 +18537,13 @@ /area/syndicate_mothership) "Ym" = ( /obj/machinery/computer/arcade/orion_trail, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Yo" = ( /obj/machinery/light{ dir = 8 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Ys" = ( /obj/structure/table/reinforced, @@ -18585,7 +18585,7 @@ /area/centcom/holding) "YL" = ( /obj/machinery/vending/clothing, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "YN" = ( /obj/structure/window/reinforced{ @@ -18598,7 +18598,7 @@ /obj/structure/chair/comfy/brown{ dir = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "YQ" = ( /obj/structure/table, @@ -18609,7 +18609,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "YV" = ( /obj/machinery/light{ @@ -18620,7 +18620,10 @@ damtype = "stamina"; force = 30 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, +/area/centcom/holding) +"YW" = ( +/turf/open/floor/plating, /area/centcom/holding) "Za" = ( /obj/machinery/door/airlock/wood{ @@ -18635,7 +18638,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-10" }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Zi" = ( /turf/open/floor/plasteel, @@ -18674,7 +18677,7 @@ radio_key = null; stationary_mode = 1 }, -/turf/open/indestructible/hotelwood, +/turf/open/floor/wood, /area/centcom/holding) "Zz" = ( /obj/effect/landmark/start/nukeop_leader, @@ -18746,7 +18749,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/indestructible/boss/air, +/turf/open/floor/carpet/black, /area/centcom/holding) "ZV" = ( /obj/effect/turf_decal/tile/brown, @@ -43129,13 +43132,13 @@ Rm Tn UT yd -Sd -Sd +Xk +Xk XM NT UV CV -Sd +Xk NT CT oV @@ -43145,15 +43148,15 @@ CT oV CT Nd -Sd -Ww -Sd +Xk +Xk +Xk Nd aa Nd Uf -Sd -Sd +Xk +Xk Nd aa aa @@ -43382,35 +43385,35 @@ Pq ZW ZW Za -Sd -Sd -Sd +Xk +Xk +Xk Tu -Sd -Sd +Xk +Xk Tn NT RQ -Sd -Sd +Xk +Xk NT -Sd -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk +Xk Nd Gs -Sd +Xk HH Nd aa Nd MJ -Sd -Sd +Xk +YW Nd aa aa @@ -43639,35 +43642,35 @@ Pa ZW ZW Nd -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk GY NT UV CV -Sd +Xk NT Dj PF Dj -Sd +Xk Dj PF Dj Nd -Sd -Sd -Sd +Xk +Xk +Xk Nd aa Nd ma -Sd -Sd +YW +Xk Nd aa aa @@ -43896,17 +43899,17 @@ SB ZW Nw Nd -Sd -Sd -Sd +Xk +Xk +Xk Ph -Sd +Xk Tu Vu Nd Gs -Sd -Sd +Xk +Xk Nd Nd Nd @@ -44153,34 +44156,34 @@ Nd Nd Nd Nd -Sd -Sd +Xk +Xk XM QL -Sd -Sd +Xk +Xk XM NT PX CV -Sd +Xk NT -Sd +Xk Yo -Sd -Sd -Sd +Xk +Xk +Xk Yo -Sd +Xk Nd -Sd -Sd +Xk +Xk Yo -Sd -Sd +Xk +Xk Yo -Sd -Sd +Xk +Xk WE Nd aa @@ -44406,38 +44409,38 @@ Nd Nd py Nd -Sd +Xk Yo -Sd -Wl -Sd -Sd +Xk +XL +Xk +Xk Tn Tu -Sd -Sd +Xk +Xk Tn NT Zh -Sd -Sd -Dl -Sd -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Re +Xk +Xk +Xk +Xk +Xk +Xk +Xk Qu -Sd -Sd -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk +Xk +Xk Zu Nd aa @@ -44656,45 +44659,45 @@ aa aa Nd PL -Sd +Xk Yo -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk Yh -Sd +Xk Nd Nd Nd Gs -Sd +Xk GY Tu -Sd -Sd +Xk +Xk GY NT Ym CV -Sd +Xk NT -Sd -MR -Sd -Sd -Sd -MR -Sd +Xk +Xx +Xk +Xk +Xk +Xx +Xk Nd -Sd -Sd -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk +Xk +Xk PM Nd aa @@ -44913,7 +44916,7 @@ aa aa Nd Tq -Sd +Xk MG YN Nd @@ -44924,17 +44927,17 @@ Nd Nd Fa KT -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk HH Nd -Sd -Sd -Sd +Xk +Xk +Xk Nd Nd Nd @@ -45169,8 +45172,8 @@ aa aa aa Nd -Sd -Sd +Xk +Xk Rh Mm Nd @@ -45181,17 +45184,17 @@ Nd Fb Sd KT -Sd -Sd +Xk +Xk Sd Sd Sd Sd Sd Re -Sd -Sd -Sd +Xk +Xk +Xk NT vt YV @@ -45204,8 +45207,8 @@ UD tZ SY Nd -Sd -Sd +Xk +Xk Nd SY Ri @@ -45426,8 +45429,8 @@ aa aa aa Nd -Sd -Sd +Xk +Xk Rh ZT Nd @@ -45438,8 +45441,8 @@ Nd Fc Sd KT -Sd -Sd +Xk +Xk Sd Sd Sd @@ -45448,24 +45451,24 @@ Sd Nd Gs Zx -Sd +Xk OL -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk Nd Gs -Sd -Sd +Xk +Xk lS -Sd -Sd +Xk +Xk RP -Sd -Sd +Xk +Xk HH Nd aa @@ -45695,34 +45698,34 @@ Nd MR Sd FW -Sd -Sd +Xk +Xk Sd Sd Sd Sd Sd Re -Sd -Sd -Sd +Xk +Xk +Xk NT So XM -Sd +Xk XM XM -Sd +Xk Nd Xn -Sd +Xk Ya Nd -Sd -Sd +Xk +Xk Nd XD -Sd +Xk Xn Nd aa @@ -45941,9 +45944,9 @@ aa aa Nd yM -Sd +Xk Yo -Sd +Xk Nd SG Fh @@ -45952,12 +45955,12 @@ Nd Nd Sd FX -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk HH Nd WM @@ -45969,14 +45972,14 @@ Po Wb Po ZU -Sd +Xk Nd Nd Nd Nd Nd -Sd -Sd +Xk +Xk Nd Nd Nd @@ -46198,9 +46201,9 @@ aa aa Nd OG -Sd -Sd -Sd +Xk +Xk +Xk Nd zX Fh @@ -46210,30 +46213,30 @@ Nd Nd Nd Gs -Sd +Xk XM Tu -Sd -Sd +Xk +Xk XM NT -Sd +Xk Ud Ud NT YU -zT -zT -zT -MM Sd +Sd +Sd +MM +Xk Nd UD tZ SY Nd -Sd -Sd +Xk +Xk Nd SY Ri @@ -46455,9 +46458,9 @@ aa aa Nd TK -Sd -Sd -Sd +Xk +Xk +Xk Nd QA Fh @@ -46466,12 +46469,12 @@ ED Yo Yf UE -Sd -Sd +Xk +Xk Tn Xd -Sd -Sd +Xk +Xk Tn NT Ro @@ -46479,21 +46482,21 @@ Ud Ud NT YU -zT -zT -zT +Sd +Sd +Sd MM TM Nd Gs -Sd -Sd +Xk +Xk uh -Sd -Sd +Xk +Xk zW -Sd -Sd +Xk +Xk HH Nd aa @@ -46712,23 +46715,23 @@ aa aa Nd YL -Sd -Sd -Sd +Xk +Xk +Xk Nd Xo Fh Fh py -Sd +Xk SY UE -Sd -Sd +Xk +Xk GY Tu -Sd -Sd +Xk +Xk GY NT Tw @@ -46736,21 +46739,21 @@ Ud Ud NT YU -zT -zT -zT -MM Sd +Sd +Sd +MM +Xk Nd Xn -Sd +Xk Tc Nd -Sd -Sd +Xk +Xk Nd AC -Sd +Xk Xn Nd aa @@ -46969,22 +46972,22 @@ aa aa Nd Xe -Sd -Sd -Sd +Xk +Xk +Xk Nd TB Fh Fh BV -Sd +Xk XT UE -Sd -Sd -Sd +Xk +Xk +Xk Ph -Sd +Xk Qk Vu Nd @@ -46997,7 +47000,7 @@ PA Ra PA Pl -Sd +Xk Nd Nd Nd @@ -47226,42 +47229,42 @@ aa aa Nd Ny -Sd -Sd -Sd +Xk +Xk +Xk Nd Vz Fh YJ QT -Sd +Xk SY UE -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk XM NT -Sd -Sd -Sd +Xk +Xk +Xk NT Ye GY -Sd +Xk GY GY -Sd +Xk Nd Xs Ol YO Nd -Sd -Sd +Xk +Xk Nd RX Xw @@ -47484,44 +47487,44 @@ aa Nd Bs Ri -Sd -Sd +Xk +Xk XL Fh Fh Fh XL -Sd +Xk XX UE -Sd -Sd -Sd +Xk +Xk +Xk Tu -Sd -Sd +Xk +Xk Tn NT -Sd -Sd -Sd +Xk +Xk +Xk OL -Sd -Sd -Sd -Sd -Sd -Sd +Xk +Xk +Xk +Xk +Xk +Xk Nd Gs -Sd -Sd +Xk +Xk SZ -Sd -Sd +Xk +Xk Ws -Sd -Sd +Xk +Xk HH Nd aa @@ -47740,8 +47743,8 @@ aa aa Nd SU -Sd -MR +Xk +Xx Nm Nd SN @@ -47755,13 +47758,13 @@ Fi Tn UT Hm -Sd -Sd +Xk +Xk GY NT -Sd +Xk Ms -Sd +Xk NT vt Mx @@ -47774,8 +47777,8 @@ Ru Of QF Nd -Sd -Sd +Xk +Xk Nd WN Ur @@ -48029,12 +48032,12 @@ Nd Nd Kf WV -Sd +Xk Nd Nd Nd Nd -Sd +Xk zY Rv Nd @@ -60353,14 +60356,14 @@ GM HW HW Il -IF +Is IE IX Jh Jh Js IE -IF +Is JI JP JZ @@ -63951,14 +63954,14 @@ GM HW HW Il -IF +Is IJ IY Jk Jk Jt IJ -IF +Is JI JP Kc @@ -78175,14 +78178,14 @@ fa fn fr fx -fF +fy fE fL fN fN fS fE -fF +fy ab aa aa @@ -81773,14 +81776,14 @@ dA dA dA fx -fF +fy fJ fM fQ fQ fT fJ -fF +fy ab aa aa diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index b0cc9030cb..7b2dd8663c 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -177,7 +177,6 @@ #define COMSIG_MOB_PRE_PLAYER_CHANGE "mob_pre_player_change" //sent to the target mob from base of /mob/transfer_ckey() and /mind/transfer_to(): (our_character, their_character) // #define COMPONENT_STOP_MIND_TRANSFER 1 #define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" //from base of /mob/update_sight(): () -#define COMSIG_MOB_ON_NEW_MIND "mob_on_new_mind" //called when a new mind is assigned to a mob: () #define COMSIG_MOB_SAY "mob_say" // from /mob/living/say(): (proc args list) #define COMPONENT_UPPERCASE_SPEECH 1 // used to access COMSIG_MOB_SAY argslist diff --git a/code/__DEFINES/dynamic.dm b/code/__DEFINES/dynamic.dm deleted file mode 100644 index 45c1ba9cb2..0000000000 --- a/code/__DEFINES/dynamic.dm +++ /dev/null @@ -1,14 +0,0 @@ -#define CURRENT_LIVING_PLAYERS 1 -#define CURRENT_LIVING_ANTAGS 2 -#define CURRENT_DEAD_PLAYERS 3 -#define CURRENT_OBSERVERS 4 - -#define NO_ASSASSIN (1<<0) -#define WAROPS_ALWAYS_ALLOWED (1<<1) - -#define ONLY_RULESET (1<<0) -#define HIGHLANDER_RULESET (1<<1) -#define TRAITOR_RULESET (1<<2) -#define MINOR_RULESET (1<<3) - -#define RULESET_STOP_PROCESSING 1 diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 73e900226e..1b42217fe1 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -38,6 +38,8 @@ require only minor tweaks. #define ZTRAIT_SPACE_RUINS "Space Ruins" #define ZTRAIT_LAVA_RUINS "Lava Ruins" #define ZTRAIT_ISOLATED_RUINS "Isolated Ruins" //Placing ruins on z levels with this trait will use turf reservation instead of usual placement. +// prevents certain turfs from being stripped by a singularity +#define ZTRAIT_PLANET "Planet" // number - bombcap is multiplied by this before being applied to bombs #define ZTRAIT_BOMBCAP_MULTIPLIER "Bombcap Multiplier" @@ -58,18 +60,11 @@ require only minor tweaks. // CROSSLINKED - mixed in with the cross-linked space pool #define CROSSLINKED "Cross" -// string - type path of the z-level's baseturf (defaults to space) -#define ZTRAIT_BASETURF "Baseturf" - // default trait definitions, used by SSmapping #define ZTRAITS_CENTCOM list(ZTRAIT_CENTCOM = TRUE) #define ZTRAITS_STATION list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_STATION = TRUE) #define ZTRAITS_SPACE list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_SPACE_RUINS = TRUE) -#define ZTRAITS_LAVALAND list(\ - ZTRAIT_MINING = TRUE, \ - ZTRAIT_LAVA_RUINS = TRUE, \ - ZTRAIT_BOMBCAP_MULTIPLIER = 5, \ - ZTRAIT_BASETURF = /turf/open/lava/smooth/lava_land_surface) +#define ZTRAITS_LAVALAND list(ZTRAIT_MINING = TRUE, ZTRAIT_LAVA_RUINS = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 5) #define ZTRAITS_REEBE list(ZTRAIT_REEBE = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 0.5) #define DL_NAME "name" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index d595abd3ec..d89743d2d2 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -427,7 +427,6 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S //Dummy mob reserve slots #define DUMMY_HUMAN_SLOT_PREFERENCES "dummy_preference_preview" -#define DUMMY_HUMAN_SLOT_HOLOFORM "dummy_holoform_generation" #define DUMMY_HUMAN_SLOT_ADMIN "admintools" #define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation" @@ -530,10 +529,4 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define CRYOMOBS 'icons/obj/cryo_mobs.dmi' -#define CUSTOM_HOLOFORM_DELAY 10 SECONDS //prevents spamming to make lag. it's pretty expensive to do this. - -#define HOLOFORM_FILTER_AI "FILTER_AI" -#define HOLOFORM_FILTER_PAI "FILTER_PAI" -#define HOLOFORM_FILTER_STATIC "FILTER_STATIC" - #define CANT_REENTER_ROUND -1 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index b7a5975ad5..4f66482f51 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -172,7 +172,7 @@ #define TRAIT_AUTO_CATCH_ITEM "auto_catch_item" #define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman. #define TRAIT_FREESPRINT "free_sprinting" -#define TRAIT_NO_ALCOHOL "alcohol_intolerance" + // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/__DEFINES/vote.dm b/code/__DEFINES/vote.dm deleted file mode 100644 index 8fb2e6deab..0000000000 --- a/code/__DEFINES/vote.dm +++ /dev/null @@ -1,6 +0,0 @@ -#define PLURALITY_VOTING 0 -#define APPROVAL_VOTING 1 -#define RANKED_CHOICE_VOTING 2 -#define SCORE_VOTING 3 - -GLOBAL_LIST_INIT(vote_score_options,list("Bad","Poor","Acceptable","Good","Great")) diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 3ee77d3edc..c259831f94 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -157,8 +157,6 @@ WRITE_LOG(GLOB.config_error_log, text) SEND_TEXT(world.log, text) -/proc/log_mapping(text) - WRITE_LOG(GLOB.world_map_error_log, text) /* For logging round startup. */ /proc/start_log(log) diff --git a/code/__HELPERS/custom_holoforms.dm b/code/__HELPERS/custom_holoforms.dm deleted file mode 100644 index 0e97314f1f..0000000000 --- a/code/__HELPERS/custom_holoforms.dm +++ /dev/null @@ -1,62 +0,0 @@ -// Generates a holoform appearance -// Equipment list is slot = path. -/proc/generate_custom_holoform_from_prefs(datum/preferences/prefs, list/equipment_by_slot, list/inhand_equipment, copy_job = FALSE, apply_loadout = FALSE) - ASSERT(prefs) - var/mob/living/carbon/human/dummy/mannequin = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_HOLOFORM) - prefs.copy_to(mannequin) - if(apply_loadout && prefs.parent) - SSjob.equip_loadout(prefs.parent.mob, mannequin, bypass_prereqs = TRUE) - if(copy_job) - var/datum/job/highest = prefs.get_highest_job() - if(highest && !istype(highest, /datum/job/ai) && !istype(highest, /datum/job/cyborg)) - highest.equip(mannequin, TRUE, preference_source = prefs.parent) - - if(length(equipment_by_slot)) - for(var/slot in equipment_by_slot) - var/obj/item/I = new equipment_by_slot[slot] - mannequin.equip_to_slot_if_possible(I, slot, TRUE, TRUE, TRUE, TRUE) - if(length(inhand_equipment)) - for(var/path in inhand_equipment) - var/obj/item/I = new path - mannequin.equip_to_slot_if_possible(I, SLOT_HANDS, TRUE, TRUE, TRUE, TRUE) - - - var/icon/combined = new - for(var/d in GLOB.cardinals) - mannequin.setDir(d) - COMPILE_OVERLAYS(mannequin) - CHECK_TICK - var/icon/capture = getFlatIcon(mannequin) - CHECK_TICK - combined.Insert(capture, dir = d) - CHECK_TICK - - unset_busy_human_dummy(DUMMY_HUMAN_SLOT_HOLOFORM) - return combined - -/proc/process_holoform_icon_filter(icon/I, filter_type, clone = TRUE) - if(clone) - I = icon(I) //Clone - switch(filter_type) - if(HOLOFORM_FILTER_AI) - I = getHologramIcon(I) - if(HOLOFORM_FILTER_STATIC) - I = getStaticIcon(I) - if(HOLOFORM_FILTER_PAI) - I = getPAIHologramIcon(I) - return I - -//Errors go to user. -/proc/generate_custom_holoform_from_prefs_safe(datum/preferences/prefs, mob/user) - if(user) - if(user.client.prefs.last_custom_holoform > world.time - CUSTOM_HOLOFORM_DELAY) - to_chat(user, "You are attempting to set your custom holoform too fast!") - return - return generate_custom_holoform_from_prefs(prefs, null, null, TRUE, TRUE) - -//Prompts this client for custom holoform parameters. -/proc/user_interface_custom_holoform(client/C) - var/datum/preferences/target_prefs = C.prefs - ASSERT(target_prefs) - //In the future, maybe add custom path allowances a la admin create outfit but for now.. - return generate_custom_holoform_from_prefs_safe(target_prefs, C.mob) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 65c7145d8f..222002f512 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -444,8 +444,12 @@ candidates -= M /proc/pollGhostCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE) - var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(/datum/element/ghost_role_eligibility) - var/list/candidates = eligibility.get_all_ghost_role_eligible() + var/list/candidates = list() + + for(var/mob/dead/observer/G in GLOB.player_list) + if(G.can_reenter_round(TRUE)) + candidates += G + return pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates) /proc/pollCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE, list/group = null) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 1af3143d9d..5fb64004c0 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -939,7 +939,7 @@ world I.pixel_y++ add_overlay(I)//And finally add the overlay. -/proc/getHologramIcon(icon/A, safety = TRUE)//If safety is on, a new icon is not created. +/proc/getHologramIcon(icon/A, safety=1)//If safety is on, a new icon is not created. var/icon/flat_icon = safety ? A : new(A)//Has to be a new icon to not constantly change the same icon. flat_icon.ColorTone(rgb(125,180,225))//Let's make it bluish. flat_icon.ChangeOpacity(0.5)//Make it half transparent. @@ -947,14 +947,6 @@ world flat_icon.AddAlphaMask(alpha_mask)//Finally, let's mix in a distortion effect. return flat_icon -/proc/getPAIHologramIcon(icon/A, safety = TRUE) - var/icon/flat_icon = safety? A : new(A) - flat_icon.SetIntensity(0.75, 1, 0.75) - flat_icon.ChangeOpacity(0.7) - var/icon/alpha_mask = new('icons/effects/effects.dmi', "scanlineslow")//Scanline effect. - flat_icon.AddAlphaMask(alpha_mask)//Finally, let's mix in a distortion effect. - return flat_icon - //What the mob looks like as animated static //By vg's ComicIronic /proc/getStaticIcon(icon/A, safety = TRUE) diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm index 3e6e88c8fa..55ee069321 100644 --- a/code/__HELPERS/level_traits.dm +++ b/code/__HELPERS/level_traits.dm @@ -12,3 +12,6 @@ #define is_reserved_level(z) SSmapping.level_trait(z, ZTRAIT_RESERVED) #define is_away_level(z) SSmapping.level_trait(z, ZTRAIT_AWAY) + +// If true, the singularity cannot strip away asteroid turf on this Z +#define is_planet_level(z) SSmapping.level_trait(z, ZTRAIT_PLANET) diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index 5ca3513e66..8e5da083e3 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -28,8 +28,6 @@ GLOBAL_VAR(world_job_debug_log) GLOBAL_PROTECT(world_job_debug_log) GLOBAL_VAR(world_virus_log) GLOBAL_PROTECT(world_virus_log) -GLOBAL_VAR(world_map_error_log) -GLOBAL_PROTECT(world_map_error_log) GLOBAL_LIST_EMPTY(bombers) GLOBAL_PROTECT(bombers) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index ec3593ee9d..af31e2b5a5 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -23,8 +23,6 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE) //BSA unlocked by head ID swipes GLOBAL_LIST_EMPTY(player_details) // ckey -> /datum/player_details -GLOBAL_LIST_EMPTY(clientless_round_timeouts) // ckey -> time that ckey can rejoin round - // All religion stuff GLOBAL_VAR(religion) GLOBAL_VAR(deity) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 14954524fa..a5d27819b8 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -14,7 +14,6 @@ var/list/modes // allowed modes var/list/gamemode_cache var/list/votable_modes // votable modes - var/list/storyteller_cache var/list/mode_names var/list/mode_reports var/list/mode_false_report_weight @@ -38,7 +37,6 @@ CRASH("/datum/controller/configuration/Load() called more than once!") InitEntries() LoadModes() - storyteller_cache = typecacheof(/datum/dynamic_storyteller, TRUE) if(fexists("[directory]/config.txt") && LoadEntries("config.txt") <= 1) var/list/legacy_configs = list("game_options.txt", "dbconfig.txt", "comms.txt") for(var/I in legacy_configs) @@ -229,7 +227,6 @@ for(var/T in gamemode_cache) // I wish I didn't have to instance the game modes in order to look up // their information, but it is the only way (at least that I know of). - // for future reference: just use initial() lol var/datum/game_mode/M = new T() if(M.config_tag) @@ -320,14 +317,6 @@ return new T return new /datum/game_mode/extended() -/datum/controller/configuration/proc/pick_storyteller(storyteller_name) - for(var/T in storyteller_cache) - var/datum/dynamic_storyteller/S = T - var/name = initial(S.name) - if(name && name == storyteller_name) - return T - return /datum/dynamic_storyteller/classic - /datum/controller/configuration/proc/get_runnable_modes() var/list/datum/game_mode/runnable_modes = new var/list/probabilities = Get(/datum/config_entry/keyed_list/probability) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index b95ef43d37..61b5788ef8 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -386,8 +386,6 @@ config_entry_value = 72000 min_val = 0 -/datum/config_entry/flag/pai_custom_holoforms - /datum/config_entry/number/marauder_delay_non_reebe config_entry_value = 1800 min_val = 0 diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 2a59558bcd..1bfdc79d27 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -315,7 +315,7 @@ SUBSYSTEM_DEF(air) var/starting_ats = active_turfs.len sleep(world.tick_lag) var/timer = world.timeofday - log_mapping("There are [starting_ats] active turfs at roundstart caused by a difference of the air between the adjacent turfs. You can see its coordinates using \"Mapping -> Show roundstart AT list\" verb (debug verbs required).") + warning("There are [starting_ats] active turfs at roundstart, this is a mapping error caused by a difference of the air between the adjacent turfs. You can see its coordinates using \"Mapping -> Show roundstart AT list\" verb (debug verbs required)") for(var/turf/T in active_turfs) GLOB.active_turfs_startlist += T diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 7597a9229a..af7ae825f4 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -658,7 +658,7 @@ SUBSYSTEM_DEF(job) message_admins(msg) CRASH(msg) -/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff, bypass_prereqs = FALSE) +/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff) var/mob/the_mob = N if(!the_mob) the_mob = M // cause this doesn't get assigned if player is a latejoiner @@ -671,7 +671,7 @@ SUBSYSTEM_DEF(job) if(!G) continue var/permitted = TRUE - if(!bypass_prereqs && G.restricted_roles && G.restricted_roles.len && !(M.mind.assigned_role in G.restricted_roles)) + if(G.restricted_roles && G.restricted_roles.len && !(M.mind.assigned_role in G.restricted_roles)) permitted = FALSE if(G.donoritem && !G.donator_ckey_check(the_mob.client.ckey)) permitted = FALSE diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index e43c8f21a2..8329493818 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -13,14 +13,13 @@ SUBSYSTEM_DEF(persistence) var/list/saved_messages = list() var/list/saved_modes = list(1,2,3) var/list/saved_dynamic_rules = list(list(),list(),list()) - var/list/saved_storytellers = list("foo","bar","baz","foo again","bar again") + var/list/saved_threat_levels = list(1,1,1) var/list/saved_maps var/list/saved_trophies = list() var/list/spawned_objects = list() var/list/antag_rep = list() var/list/antag_rep_change = list() var/list/picture_logging_information = list() - var/list/saved_votes = list() var/list/obj/structure/sign/picture_frame/photo_frames var/list/obj/item/storage/photo_album/photo_albums @@ -30,12 +29,9 @@ SUBSYSTEM_DEF(persistence) LoadChiselMessages() LoadTrophies() LoadRecentModes() - LoadRecentStorytellers() - LoadRecentRulesets() + LoadRecentThreats() LoadRecentMaps() LoadPhotoPersistence() - for(var/client/C in GLOB.clients) - LoadSavedVote(C.ckey) if(CONFIG_GET(flag/use_antag_rep)) LoadAntagReputation() LoadRandomizedRecipes() @@ -173,23 +169,14 @@ SUBSYSTEM_DEF(persistence) return saved_modes = json["data"] -/datum/controller/subsystem/persistence/proc/LoadRecentRulesets() - var/json_file = file("data/RecentRulesets.json") +/datum/controller/subsystem/persistence/proc/LoadRecentThreats() + var/json_file = file("data/RecentThreatLevels.json") if(!fexists(json_file)) return var/list/json = json_decode(file2text(json_file)) if(!json) return - saved_dynamic_rules = json["data"] - -/datum/controller/subsystem/persistence/proc/LoadRecentStorytellers() - var/json_file = file("data/RecentStorytellers.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_storytellers = json["data"] + saved_threat_levels = json["data"] /datum/controller/subsystem/persistence/proc/LoadRecentMaps() var/json_file = file("data/RecentMaps.json") @@ -210,15 +197,6 @@ SUBSYSTEM_DEF(persistence) return antag_rep = json_decode(json) -/datum/controller/subsystem/persistence/proc/LoadSavedVote(var/ckey) - var/json_file = file("data/player_saves/[copytext(ckey,1,2)]/[ckey]/SavedVotes.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_votes[ckey] = json["data"] - /datum/controller/subsystem/persistence/proc/SetUpTrophies(list/trophy_items) for(var/A in GLOB.trophy_cases) var/obj/structure/displaycase/trophy/T = A @@ -252,7 +230,7 @@ SUBSYSTEM_DEF(persistence) CollectRoundtype() if(istype(SSticker.mode, /datum/game_mode/dynamic)) var/datum/game_mode/dynamic/mode = SSticker.mode - CollectStoryteller(mode) + CollectThreatLevel(mode) CollectRulesets(mode) RecordMaps() SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. @@ -410,16 +388,13 @@ SUBSYSTEM_DEF(persistence) fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) -/datum/controller/subsystem/persistence/proc/CollectStoryteller(var/datum/game_mode/dynamic/mode) - saved_storytellers.len = 5 - saved_storytellers[5] = saved_storytellers[4] - saved_storytellers[4] = saved_storytellers[3] - saved_storytellers[3] = saved_storytellers[2] - saved_storytellers[2] = saved_storytellers[1] - saved_storytellers[1] = mode.storyteller.name - var/json_file = file("data/RecentStorytellers.json") +/datum/controller/subsystem/persistence/proc/CollectThreatLevel(var/datum/game_mode/dynamic/mode) + saved_threat_levels[3] = saved_threat_levels[2] + saved_threat_levels[2] = saved_threat_levels [1] + saved_threat_levels[1] = mode.threat_level + var/json_file = file("data/RecentThreatLevels.json") var/list/file_data = list() - file_data["data"] = saved_storytellers + file_data["data"] = saved_threat_levels fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) @@ -427,9 +402,8 @@ SUBSYSTEM_DEF(persistence) saved_dynamic_rules[3] = saved_dynamic_rules[2] saved_dynamic_rules[2] = saved_dynamic_rules[1] saved_dynamic_rules[1] = list() - for(var/r in mode.executed_rules) - var/datum/dynamic_ruleset/rule = r - saved_dynamic_rules[1] += rule.config_tag + for(var/datum/dynamic_ruleset/ruleset in mode.executed_rules) + saved_dynamic_rules[1] += ruleset.config_tag var/json_file = file("data/RecentRulesets.json") var/list/file_data = list() file_data["data"] = saved_dynamic_rules @@ -499,11 +473,3 @@ SUBSYSTEM_DEF(persistence) fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) - -/datum/controller/subsystem/persistence/proc/SaveSavedVotes() - for(var/ckey in saved_votes) - var/json_file = file("data/player_saves/[copytext(ckey,1,2)]/[ckey]/SavedVotes.json") - var/list/file_data = list() - file_data["data"] = saved_votes[ckey] - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index a52bcf4607..0b9284a144 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -17,7 +17,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) /datum/controller/subsystem/processing/quirks/Initialize(timeofday) if(!quirks.len) SetupQuirks() - quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Alcohol Intolerance"),list("Alcohol Intolerance","Drunken Resilience")) + quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion")) return ..() /datum/controller/subsystem/processing/quirks/proc/SetupQuirks() @@ -46,8 +46,8 @@ PROCESSING_SUBSYSTEM_DEF(quirks) badquirk = TRUE if(badquirk) cli.prefs.save_character() - if (!silent && LAZYLEN(cut)) - to_chat(to_chat_target || user, "Some quirks have been cut from your character because of these quirks conflicting with your job assignment: [english_list(cut)].") + if(!silent && LAZYLEN(cut)) + to_chat(to_chat_target || user, "All of your non-neutral character quirks have been cut due to these quirks conflicting with your job assignment: [english_list(cut)].") /datum/controller/subsystem/processing/quirks/proc/quirk_path_by_name(name) return quirks[name] @@ -66,7 +66,6 @@ PROCESSING_SUBSYSTEM_DEF(quirks) /datum/controller/subsystem/processing/quirks/proc/filter_quirks(list/our_quirks, datum/job/job) var/list/cut = list() var/list/banned_names = list() - var/pointscut = 0 for(var/i in job.blacklisted_quirks) var/name = quirk_name_by_path(i) if(name) @@ -76,17 +75,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) for(var/i in blacklisted) our_quirks -= i cut += i - pointscut += quirk_points_by_name(i) - if (pointscut != 0) - for (var/i in shuffle(our_quirks)) - if (quirk_points_by_name(i) < pointscut || (pointscut < 0) ? quirk_points_by_name(i) <= 0 : quirk_points_by_name(i) >= 0) - continue - else - our_quirks -= i - cut += i - pointscut += quirk_points_by_name(i) - if (pointscut >= 0) //with how it works, it needs to be above zero, not below, as points for positive is positive, and negative is negative, we only want it to break if it's above zero, ie. we cut more positive than negative - break + /* //Code to automatically reduce positive quirks until balance is even. var/points_used = total_points(our_quirks) if(points_used > 0) @@ -102,11 +91,10 @@ PROCESSING_SUBSYSTEM_DEF(quirks) */ //Nah, let's null all non-neutrals out. - if (pointscut != 0)// only if the pointscutting didn't work. - if(cut.len) - for(var/i in our_quirks) - if(quirk_points_by_name(i) != 0) - //cut += i -- Commented out: Only show the ones that triggered the quirk purge. - our_quirks -= i + if(cut.len) + for(var/i in our_quirks) + if(quirk_points_by_name(i) != 0) + //cut += i -- Commented out: Only show the ones that triggered the quirk purge. + our_quirks -= i return cut diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index b406a8ccad..fe40b3f01f 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -37,7 +37,7 @@ SUBSYSTEM_DEF(shuttle) var/points = 5000 //number of trade-points we have var/centcom_message = "" //Remarks from CentCom on how well you checked the last order. var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentCom, associated with their potencies - var/passive_supply_points_per_minute = 500 + var/passive_supply_points_per_minute = 750 var/list/supply_packs = list() var/list/shoppinglist = list() diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 45c8e3c8fe..974d870a8a 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -483,10 +483,7 @@ SUBSYSTEM_DEF(ticker) SSticker.timeLeft = 900 SSticker.modevoted = TRUE var/dynamic = CONFIG_GET(flag/dynamic_voting) - if(dynamic) - SSvote.initiate_vote("dynamic","server",hideresults=TRUE,votesystem=SCORE_VOTING,forced=TRUE,vote_time = 2 MINUTES) - else - SSvote.initiate_vote("roundtype","server",hideresults=TRUE,votesystem=PLURALITY_VOTING,forced=TRUE, vote_time = 2 MINUTES) + SSvote.initiate_vote(dynamic ? "dynamic" : "roundtype","server",TRUE) /datum/controller/subsystem/ticker/Recover() current_state = SSticker.current_state diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 573c89a5af..dee10e4998 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -1,5 +1,3 @@ -#define VOTE_COOLDOWN 10 - SUBSYSTEM_DEF(vote) name = "Vote" wait = 10 @@ -10,17 +8,13 @@ SUBSYSTEM_DEF(vote) var/initiator = null var/started_time = null - var/end_time = 0 + var/time_remaining = 0 var/mode = null - var/vote_system = PLURALITY_VOTING var/question = null var/list/choices = list() - var/list/choice_descs = list() // optional descriptions var/list/voted = list() var/list/voting = list() - var/list/saved = list() var/list/generated_actions = list() - var/next_pop = 0 var/obfuscated = FALSE//CIT CHANGE - adds obfuscated/admin-only votes @@ -28,30 +22,28 @@ SUBSYSTEM_DEF(vote) /datum/controller/subsystem/vote/fire() //called by master_controller if(mode) - if(end_time < world.time) + time_remaining = round((started_time + CONFIG_GET(number/vote_period) - world.time)/10) + + if(time_remaining < 0) result() - SSpersistence.SaveSavedVotes() for(var/client/C in voting) C << browse(null, "window=vote;can_close=0") reset() - else if(next_pop < world.time) + else var/datum/browser/client_popup for(var/client/C in voting) - client_popup = new(C, "vote", "Voting Panel", nwidth=600,nheight=700) + client_popup = new(C, "vote", "Voting Panel") client_popup.set_window_options("can_close=0") client_popup.set_content(interface(C)) client_popup.open(0) - next_pop = world.time+VOTE_COOLDOWN - /datum/controller/subsystem/vote/proc/reset() initiator = null - end_time = 0 + time_remaining = 0 mode = null question = null choices.Cut() - choice_descs.Cut() voted.Cut() voting.Cut() obfuscated = FALSE //CIT CHANGE - obfuscated votes @@ -92,114 +84,17 @@ SUBSYSTEM_DEF(vote) . += option return . -/datum/controller/subsystem/vote/proc/calculate_condorcet_votes(var/blackbox_text) - // https://en.wikipedia.org/wiki/Schulze_method#Implementation - var/list/d[][] = new/list(choices.len,choices.len) // the basic vote matrix, how many times a beats b - for(var/ckey in voted) - var/list/this_vote = voted[ckey] - for(var/a in 1 to choices.len) - for(var/b in a+1 to choices.len) - var/a_rank = this_vote.Find(a) - var/b_rank = this_vote.Find(b) - a_rank = a_rank ? a_rank : choices.len+1 - b_rank = b_rank ? b_rank : choices.len+1 - if(a_rankopposite_pref) - p[i][j] = d[i][j] - p[j][i] = 0 - else - p[i][j] = 0 - p[j][i] = d[i][j] - for(var/i in 1 to choices.len) - for(var/j in 1 to choices.len) - if(i != j) - for(var/k in 1 to choices.len) // YEAH O(n^3) !! - if(i != k && j != k) - p[j][k] = max(p[j][k],min(p[j][i], p[i][k])) - //one last pass, now that we've done the math - for(var/i in 1 to choices.len) - for(var/j in 1 to choices.len) - if(i != j) - SSblackbox.record_feedback("nested tally","voting",p[i][j],list(blackbox_text,"Shortest Paths",choices[i],choices[j])) - if(p[i][j] >= p[j][i]) - choices[choices[i]]++ // higher shortest path = better candidate, so we add to choices here - // choices[choices[i]] is the schulze ranking, here, rather than raw vote numbers - -/datum/controller/subsystem/vote/proc/calculate_majority_judgement_vote(var/blackbox_text) - // https://en.wikipedia.org/wiki/Majority_judgment - var/list/scores_by_choice = list() - for(var/choice in choices) - scores_by_choice[choice] = list() - for(var/ckey in voted) - var/list/this_vote = voted[ckey] - var/list/pretty_vote = list() - for(var/choice in this_vote) - sorted_insert(scores_by_choice[choice],this_vote[choice],/proc/cmp_numeric_asc) - // START BALLOT GATHERING - pretty_vote += choice - pretty_vote[choice] = GLOB.vote_score_options[this_vote[choice]] - SSblackbox.record_feedback("associative","voting_ballots",1,pretty_vote) - // END BALLOT GATHERING - for(var/score_name in scores_by_choice) - var/list/score = scores_by_choice[score_name] - for(var/indiv_score in score) - SSblackbox.record_feedback("nested tally","voting",1,list(blackbox_text,"Scores",score_name,GLOB.vote_score_options[indiv_score])) - if(score.len == 0) - scores_by_choice -= score_name - while(scores_by_choice.len > 1) - var/highest_median = 0 - for(var/score_name in scores_by_choice) // first get highest median - var/list/score = scores_by_choice[score_name] - if(!score.len) - scores_by_choice -= score_name - continue - var/median = score[max(1,round(score.len/2))] - if(median >= highest_median) - highest_median = median - for(var/score_name in scores_by_choice) // then, remove - var/list/score = scores_by_choice[score_name] - var/median = score[max(1,round(score.len/2))] - if(median < highest_median) - scores_by_choice -= score_name - for(var/score_name in scores_by_choice) // after removals - var/list/score = scores_by_choice[score_name] - if(score.len == 0) - choices[score_name] += 100 // we're in a tie situation--just go with the first one - return - var/median_pos = max(1,round(score.len/2)) - score.Cut(median_pos,median_pos+1) - choices[score_name]++ - /datum/controller/subsystem/vote/proc/announce_result() - var/vote_title_text - var/text - if(question) - text += "[question]" - vote_title_text = "[question]" - else - text += "[capitalize(mode)] Vote" - vote_title_text = "[capitalize(mode)] Vote" - if(vote_system == RANKED_CHOICE_VOTING) - calculate_condorcet_votes(vote_title_text) - if(vote_system == SCORE_VOTING) - calculate_majority_judgement_vote(vote_title_text) var/list/winners = get_result() + var/text var/was_roundtype_vote = mode == "roundtype" || mode == "dynamic" if(winners.len > 0) + if(question) + text += "[question]" + else + text += "[capitalize(mode)] Vote" if(was_roundtype_vote) stored_gamemode_votes = list() - if(!obfuscated && vote_system == RANKED_CHOICE_VOTING) - text += "\nIt should be noted that this is not a raw tally of votes (impossible in ranked choice) but the score determined by the schulze method of voting, so the numbers will look weird!" for(var/i=1,i<=choices.len,i++) var/votes = choices[choices[i]] if(!votes) @@ -221,25 +116,17 @@ SUBSYSTEM_DEF(vote) log_vote(text) remove_action_buttons() to_chat(world, "\n[text]") - switch(vote_system) - if(APPROVAL_VOTING,PLURALITY_VOTING) - for(var/i=1,i<=choices.len,i++) - SSblackbox.record_feedback("nested tally","voting",choices[choices[i]],list(vote_title_text,choices[i])) - if(RANKED_CHOICE_VOTING) - for(var/i=1,i<=voted.len,i++) - var/list/myvote = voted[voted[i]] - for(var/j=1,j<=myvote.len,j++) - SSblackbox.record_feedback("nested tally","voting",1,list(vote_title_text,"[j]\th",choices[myvote[j]])) if(obfuscated) //CIT CHANGE - adds obfuscated votes. this messages admins with the vote's true results var/admintext = "Obfuscated results" - if(vote_system == RANKED_CHOICE_VOTING) - admintext += "\nIt should be noted that this is not a raw tally of votes (impossible in ranked choice) but the score determined by the schulze method of voting, so the numbers will look weird!" for(var/i=1,i<=choices.len,i++) var/votes = choices[choices[i]] admintext += "\n[choices[i]]: [votes]" message_admins(admintext) return . +#define PEACE "calm" +#define CHAOS "chaotic" + /datum/controller/subsystem/vote/proc/result() . = announce_result() var/restart = 0 @@ -265,15 +152,33 @@ SUBSYSTEM_DEF(vote) if("dynamic") if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started. return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") - if(. == "Secret") - GLOB.master_mode = "secret" - SSticker.save_mode(.) - message_admins("The gamemode has been voted for, and has been changed to: [GLOB.master_mode]") - log_admin("Gamemode has been voted for and switched to: [GLOB.master_mode].") - else - GLOB.master_mode = "dynamic" - var/datum/dynamic_storyteller/S = config.pick_storyteller(.) - GLOB.dynamic_storyteller_type = S + GLOB.master_mode = "dynamic" + if("extended" in choices) + if(. == "extended") + GLOB.dynamic_forced_extended = TRUE // we still do the rest of the stuff + choices[PEACE] += choices["extended"] + var/mean = 0 + var/voters = 0 + for(var/client/c in GLOB.clients) + var/vote = c.prefs.preferred_chaos + if(vote) + voters += 1 + switch(vote) + if(CHAOS_NONE) + mean -= 0.1 + if(CHAOS_LOW) + mean -= 0.05 + if(CHAOS_HIGH) + mean += 0.05 + if(CHAOS_MAX) + mean += 0.1 + mean/=voters + if(voted.len != 0) + mean += (choices[PEACE]*-1+choices[CHAOS])/voted.len + GLOB.dynamic_curve_centre = mean*20 + GLOB.dynamic_curve_width = CLAMP(2-abs(mean*5),0.5,4) + to_chat(world,"Dynamic curve centre set to [GLOB.dynamic_curve_centre] and width set to [GLOB.dynamic_curve_width].") + log_admin("Dynamic curve centre set to [GLOB.dynamic_curve_centre] and width set to [GLOB.dynamic_curve_width]") if("map") var/datum/map_config/VM = config.maplist[.] message_admins("The map has been voted for and will change to: [VM.map_name]") @@ -291,58 +196,27 @@ SUBSYSTEM_DEF(vote) else to_chat(world, "Notice:Restart vote will not restart the server automatically because there are active admins on.") message_admins("A restart vote has passed, but there are active admins on with +server, so it has been canceled. If you wish, you may restart the server.") - + return . -/datum/controller/subsystem/vote/proc/submit_vote(vote, score = 0) +/datum/controller/subsystem/vote/proc/submit_vote(vote) if(mode) if(CONFIG_GET(flag/no_dead_vote) && usr.stat == DEAD && !usr.client.holder) return 0 - if(vote && ISINRANGE(vote, 1, choices.len)) - switch(vote_system) - if(PLURALITY_VOTING) - if(usr.ckey in voted) - choices[choices[voted[usr.ckey]]]-- - voted[usr.ckey] = vote - choices[choices[vote]]++ - return vote - else - voted += usr.ckey - voted[usr.ckey] = vote - choices[choices[vote]]++ //check this - return vote - if(APPROVAL_VOTING) - if(usr.ckey in voted) - if(vote in voted[usr.ckey]) - voted[usr.ckey] -= vote - choices[choices[vote]]-- - else - voted[usr.ckey] += vote - choices[choices[vote]]++ - else - voted += usr.ckey - voted[usr.ckey] = list(vote) - choices[choices[vote]]++ - return vote - if(RANKED_CHOICE_VOTING) - if(usr.ckey in voted) - if(vote in voted[usr.ckey]) - voted[usr.ckey] -= vote - else - voted += usr.ckey - voted[usr.ckey] = list() - voted[usr.ckey] += vote - saved -= usr.ckey - if(SCORE_VOTING) - if(!(usr.ckey in voted)) - voted += usr.ckey - voted[usr.ckey] = list() - voted[usr.ckey][choices[vote]] = score - saved -= usr.ckey + if(!(usr.ckey in voted)) + if(vote && 1<=vote && vote<=choices.len) + voted += usr.ckey + voted[usr.ckey] = vote + choices[choices[vote]]++ //check this + return vote + else if(vote && 1<=vote && vote<=choices.len) + choices[choices[voted[usr.ckey]]]-- + voted[usr.ckey] = vote + choices[choices[vote]]++ + return vote return 0 -/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, hideresults, votesystem = PLURALITY_VOTING, forced = FALSE,vote_time = -1)//CIT CHANGE - adds hideresults argument to votes to allow for obfuscated votes - vote_system = votesystem +/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, hideresults)//CIT CHANGE - adds hideresults argument to votes to allow for obfuscated votes if(!mode) if(started_time) var/next_allowed_time = (started_time + CONFIG_GET(number/vote_delay)) @@ -383,17 +257,11 @@ SUBSYSTEM_DEF(vote) if("roundtype") //CIT CHANGE - adds the roundstart secret/extended vote choices.Add("secret", "extended") if("dynamic") - for(var/T in config.storyteller_cache) - var/datum/dynamic_storyteller/S = T - var/recent_rounds = 0 - for(var/i in 1 to SSpersistence.saved_storytellers.len) - if(SSpersistence.saved_storytellers[i] == initial(S.name)) - recent_rounds++ - if(recent_rounds < initial(S.weight)) - choices.Add(initial(S.name)) - choice_descs.Add(initial(S.desc)) - choices.Add("Secret") - choice_descs.Add("Standard secret. Switches mode if it wins.") + var/saved_threats = SSpersistence.saved_threat_levels + if((saved_threats[1]+saved_threats[2]+saved_threats[3])>150) + choices.Add("extended",PEACE,CHAOS) + else + choices.Add(PEACE,CHAOS) if("custom") question = stripped_input(usr,"What is the vote for?") if(!question) @@ -412,11 +280,9 @@ SUBSYSTEM_DEF(vote) if(mode == "custom") text += "\n[question]" log_vote(text) - var/vp = vote_time - if(vp == -1) - vp = CONFIG_GET(number/vote_period) + var/vp = CONFIG_GET(number/vote_period) to_chat(world, "\n[text]\nType vote or click here to place your votes.\nYou have [DisplayTimeText(vp)] to vote.") - end_time = started_time+vp + time_remaining = round(vp/10) for(var/c in GLOB.clients) SEND_SOUND(c, sound('sound/misc/server-ready.ogg')) var/client/C = c @@ -426,11 +292,6 @@ SUBSYSTEM_DEF(vote) C.player_details.player_actions += V V.Grant(C.mob) generated_actions += V - if(forced) - var/datum/browser/popup = new(C, "vote", "Voting Panel",nwidth=600,nheight=700) - popup.set_window_options("can_close=0") - popup.set_content(SSvote.interface(C)) - popup.open(0) return 1 return 0 @@ -450,71 +311,14 @@ SUBSYSTEM_DEF(vote) . += "

Vote: '[question]'

" else . += "

Vote: [capitalize(mode)]

" - switch(vote_system) - if(PLURALITY_VOTING) - . += "

Vote one.

" - if(APPROVAL_VOTING) - . += "

Vote any number of choices.

" - if(RANKED_CHOICE_VOTING) - . += "

Vote by order of preference. Revoting will demote to the bottom. 1 is your favorite, and higher numbers are worse.

" - if(SCORE_VOTING) - . += "

Grade the candidates by how much you like them.

" - . += "

No-votes have no power--your opinion is only heard if you vote!

" - . += "Time Left: [DisplayTimeText(end_time-world.time)]

" - if(RANKED_CHOICE_VOTING) - var/list/myvote = voted[C.ckey] - for(var/i=1,i<=choices.len,i++) - var/vote = (myvote ? (myvote.Find(i)) : 0) - if(vote) - . += "
  • [choices[i]] ([vote])
  • " - else - . += "
  • [choices[i]]
  • " - if(choice_descs.len >= i) - . += "
  • [choice_descs[i]]
  • " - . += "
    " - if(!(C.ckey in saved)) - . += "(Save vote)" - else - . += "(Saved!)" - . += "(Load vote from save)" - . += "(Reset votes)" - if(SCORE_VOTING) - var/list/myvote = voted[C.ckey] - for(var/i=1,i<=choices.len,i++) - . += "
  • [choices[i]]" - for(var/r in 1 to GLOB.vote_score_options.len) - . += " " - if((choices[i] in myvote) && myvote[choices[i]] == r) - . +="([GLOB.vote_score_options[r]])" - else - . +="[GLOB.vote_score_options[r]]" - . += "" - . += "
  • " - if(choice_descs.len >= i) - . += "
  • [choice_descs[i]]
  • " - . += "
    " - if(!(C.ckey in saved)) - . += "(Save vote)" - else - . += "(Saved!)" - . += "(Load vote from save)" - . += "(Reset votes)" + . += "Time Left: [time_remaining] s

    " if(admin) . += "(Cancel Vote) " else @@ -572,31 +376,8 @@ SUBSYSTEM_DEF(vote) if("custom") if(usr.client.holder) initiate_vote("custom",usr.key) - if("reset") - if(usr.ckey in voted) - voted -= usr.ckey - if("save") - if(usr.ckey in voted) - if(!(usr.ckey in SSpersistence.saved_votes)) - SSpersistence.saved_votes[usr.ckey] = list() - SSpersistence.saved_votes[usr.ckey][mode] = voted[usr.ckey] - saved += usr.ckey - if("load") - if(!(usr.ckey in SSpersistence.saved_votes)) - SSpersistence.LoadSavedVote(usr.ckey) - if(!(usr.ckey in SSpersistence.saved_votes)) - SSpersistence.saved_votes[usr.ckey] = list() - if(usr.ckey in voted) - SSpersistence.saved_votes[usr.ckey][mode] = voted[usr.ckey] - else - SSpersistence.saved_votes[usr.ckey][mode] = list() - voted[usr.ckey] = SSpersistence.saved_votes[usr.ckey][mode] - saved += usr.ckey else - if(vote_system == SCORE_VOTING) - submit_vote(round(text2num(href_list["vote"])),round(text2num(href_list["score"]))) - else - submit_vote(round(text2num(href_list["vote"]))) + submit_vote(round(text2num(href_list["vote"]))) usr.vote() /datum/controller/subsystem/vote/proc/remove_action_buttons() @@ -611,7 +392,7 @@ SUBSYSTEM_DEF(vote) set category = "OOC" set name = "Vote" - var/datum/browser/popup = new(src, "vote", "Voting Panel",nwidth=600,nheight=700) + var/datum/browser/popup = new(src, "vote", "Voting Panel") popup.set_window_options("can_close=0") popup.set_content(SSvote.interface(client)) popup.open(0) @@ -638,3 +419,6 @@ SUBSYSTEM_DEF(vote) var/datum/player_details/P = GLOB.player_details[owner.ckey] if(P) P.player_actions -= src + +#undef PEACE +#undef CHAOS diff --git a/code/datums/action.dm b/code/datums/action.dm index cb56c26b91..77aa729eb1 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -141,17 +141,6 @@ current_button.add_overlay(mutable_appearance(icon_icon, button_icon_state)) current_button.button_icon_state = button_icon_state -/datum/action/ghost - icon_icon = 'icons/mob/mob.dmi' - button_icon_state = "ghost" - name = "Ghostize" - desc = "Turn into a ghost and freely come back to your body." - -/datum/action/ghost/Trigger() - if(!..()) - return 0 - var/mob/M = target - M.ghostize(1) //Presets for item actions /datum/action/item_action diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index accc8cadaf..f7ca711421 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -66,7 +66,7 @@ /datum/component/storage/concrete/_insert_physical_item(obj/item/I, override = FALSE) . = TRUE var/atom/real_location = real_location() - if(I.loc != real_location && real_location) + if(I.loc != real_location) I.forceMove(real_location) refresh_mob_views() diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index 9c8622d16e..7e4a561422 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -87,12 +87,3 @@ /datum/component/storage/concrete/pockets/pocketprotector/real_location() // if the component is reparented to a jumpsuit, the items still go in the protector return original_parent - -/datum/component/storage/concrete/pockets/small/rushelmet - max_items = 1 - quickdraw = TRUE - -/datum/component/storage/concrete/pockets/small/rushelmet/Initialize() - . = ..() - can_hold = typecacheof(list(/obj/item/reagent_containers/glass/bottle, - /obj/item/ammo_box/a762)) diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index 17e2b12232..8f9b97db22 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -11,7 +11,7 @@ if(type == /datum/element) return ELEMENT_INCOMPATIBLE if(element_flags & ELEMENT_DETACH) - RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach, override = TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach) /datum/element/proc/Detach(datum/source, force) UnregisterSignal(source, COMSIG_PARENT_QDELETING) @@ -36,4 +36,4 @@ */ /datum/proc/RemoveElement(eletype, ...) var/datum/element/ele = SSdcs.GetElement(arglist(args)) - ele.Detach(src) + ele.Detach(src) \ No newline at end of file diff --git a/code/datums/elements/ghost_role_eligibility.dm b/code/datums/elements/ghost_role_eligibility.dm deleted file mode 100644 index 8ecb579bc8..0000000000 --- a/code/datums/elements/ghost_role_eligibility.dm +++ /dev/null @@ -1,54 +0,0 @@ -/datum/element/ghost_role_eligibility - element_flags = ELEMENT_DETACH - var/list/timeouts = list() - var/list/mob/eligible_mobs = list() - -/datum/element/ghost_role_eligibility/Attach(datum/target,penalize = FALSE) - . = ..() - if(!ismob(target)) - return ELEMENT_INCOMPATIBLE - var/mob/M = target - if(!(M in eligible_mobs)) - eligible_mobs += M - if(penalize) //penalizing them from making a ghost role / midround antag comeback right away. - var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES - var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES - if(world.time < roundstart_quit_limit) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. - penalty += roundstart_quit_limit - world.time - if(penalty) - penalty += world.realtime - if(penalty - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) - penalty = CANT_REENTER_ROUND - if(!(M.ckey in timeouts)) - timeouts += M.ckey - timeouts[M.ckey] = 0 - timeouts[M.ckey] = max(timeouts[M.ckey],penalty) - -/datum/element/ghost_role_eligibility/Detach(mob/M) - . = ..() - if(M in eligible_mobs) - eligible_mobs -= M - -/datum/element/ghost_role_eligibility/proc/get_all_ghost_role_eligible(silent = FALSE) - var/list/candidates = list() - for(var/m in eligible_mobs) - var/mob/M = m - if(M.can_reenter_round(TRUE)) - candidates += M - return candidates - -/mob/proc/can_reenter_round(silent = FALSE) - var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(/datum/element/ghost_role_eligibility) - return eli.can_reenter_round(src,silent) - -/datum/element/ghost_role_eligibility/proc/can_reenter_round(var/mob/M,silent = FALSE) - if(!(M in eligible_mobs)) - return FALSE - if(!(M.ckey in timeouts)) - return TRUE - var/timeout = timeouts[M.ckey] - if(timeout != CANT_REENTER_ROUND && timeout <= world.realtime) - return TRUE - if(!silent && M.client) - to_chat(M, "You are unable to reenter the round[timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(timeout - world.realtime)]" : ""].") - return FALSE diff --git a/code/datums/elements/wuv.dm b/code/datums/elements/wuv.dm deleted file mode 100644 index 84f327500f..0000000000 --- a/code/datums/elements/wuv.dm +++ /dev/null @@ -1,60 +0,0 @@ - -/datum/element/wuv //D'awwwww - element_flags = ELEMENT_BESPOKE - id_arg_index = 2 - //the for the me emote proc call when petted. - var/pet_emote - //whether the emote is visible or audible - var/pet_type - //same as above, except when harmed. "You are going into orbit, you stupid mutt!" - var/punt_emote - //same as pet_type - var/punt_type - //mood typepath for the moodlet signal when petted. - var/pet_moodlet - //same as above but for harm - var/punt_moodlet - -/datum/element/wuv/Attach(datum/target, pet, pet_t, pet_mood, punt, punt_t, punt_mood) - . = ..() - - if(!isliving(target)) - return ELEMENT_INCOMPATIBLE - - pet_emote = pet - pet_type = pet_t - punt_emote = punt - punt_type = punt_t - pet_moodlet = pet_mood - punt_moodlet = punt_mood - - RegisterSignal(target, COMSIG_MOB_ATTACK_HAND, .proc/on_attack_hand) - -/datum/element/wuv/proc/on_attack_hand(datum/source, mob/user) - var/mob/living/L = source - - if(L.stat == DEAD) - return - //we want to delay the effect to be displayed after the mob is petted, not before. - switch(user.a_intent) - if(INTENT_HARM, INTENT_DISARM) - addtimer(CALLBACK(src, .proc/kick_the_dog, source, user), 1) - if(INTENT_HELP) - addtimer(CALLBACK(src, .proc/pet_the_dog, source, user), 1) - -/datum/element/wuv/proc/pet_the_dog(mob/target, mob/user) - if(!QDELETED(target) || !QDELETED(user) || target.stat != CONSCIOUS) - return - new /obj/effect/temp_visual/heart(target.loc) - if(pet_emote) - target.emote("me", pet_type, pet_emote) - if(pet_moodlet && !CHECK_BITFIELD(target.flags_1, HOLOGRAM_1)) //prevents unlimited happiness petting park exploit. - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, target, pet_moodlet, target) - -/datum/element/wuv/proc/kick_the_dog(mob/target, mob/user) - if(!QDELETED(target) || !QDELETED(user) || target.stat != CONSCIOUS) - return - if(punt_emote) - target.emote("me", punt_type, punt_emote) - if(punt_moodlet && !CHECK_BITFIELD(target.flags_1, HOLOGRAM_1)) - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, target, punt_moodlet, target) diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 599c492d4c..f0fca5db5a 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -136,10 +136,9 @@ /datum/emote/sound var/sound //Sound to play when emote is called var/vary = FALSE //used for the honk borg emote - var/volume = 50 mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon) /datum/emote/sound/run_emote(mob/user, params) . = ..() if(.) - playsound(user.loc, sound, volume, vary) + playsound(user.loc, sound, 50, vary) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 5c92c83fb5..a0aa729a8d 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -140,7 +140,6 @@ L.client.prefs.chat_toggles ^= CHAT_OOC SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character) - SEND_SIGNAL(new_character, COMSIG_MOB_ON_NEW_MIND) /datum/mind/proc/store_memory(new_text) if((length(memory) + length(new_text)) <= MAX_MESSAGE_LEN) @@ -748,7 +747,6 @@ else mind = new /datum/mind(key) SSticker.minds += mind - SEND_SIGNAL(src, COMSIG_MOB_ON_NEW_MIND) if(!mind.name) mind.name = real_name mind.current = src diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 98a8eade59..94fd08535f 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -23,13 +23,10 @@ mood_change = 3 timeout = 3000 -/datum/mood_event/pet_animal - description = "Animals are adorable! I can't stop petting them!\n" - mood_change = 2 - timeout = 5 MINUTES - -/datum/mood_event/pet_animal/add_effects(mob/animal) - description = "\The [animal.name] is adorable! I can't stop petting [animal.p_them()]!\n" +/datum/mood_event/pet_corgi + description = "Corgis are adorable! I can't stop petting them!\n" + mood_change = 3 + timeout = 3000 /datum/mood_event/honk description = "Maybe clowns aren't so bad after all. Honk!\n" diff --git a/code/datums/ruins/station.dm b/code/datums/ruins/station.dm index 624081156a..156356788f 100644 --- a/code/datums/ruins/station.dm +++ b/code/datums/ruins/station.dm @@ -10,21 +10,6 @@ suffix = "Box/Engine/engine_sm.dmm" name = "Engine SM" -/datum/map_template/ruin/station/box/engine/onebythree - id = "engine_sm_1x3" - suffix = "Box/Engine/engine_sm_1x3.dmm" - name = "Engine SM 1x3" - -/datum/map_template/ruin/station/box/engine/fivebyfive - id = "engine_sm_5x5" - suffix = "Box/Engine/engine_sm_5x5.dmm" - name = "Engine SM 5x5" - -/datum/map_template/ruin/station/box/engine/threesm - id = "engine_sm_3x" - suffix = "Box/Engine/engine_sm_3x.dmm" - name = "Engine SM 3x" - /datum/map_template/ruin/station/box/engine/singulo id = "engine_singulo" suffix = "Box/Engine/engine_singulo.dmm" diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index e712a38df1..911929896b 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -121,21 +121,3 @@ mob_trait = TRAIT_EXHIBITIONIST gain_text = "You feel like exposing yourself to the world." lose_text = "Indecent exposure doesn't sound as charming to you anymore." - -/datum/quirk/alcohol_intolerance - name = "Alcohol Intolerance" - desc = "You take toxin damage from alcohol rather than getting drunk." - value = 0 - mob_trait = TRAIT_NO_ALCOHOL - medical_record_text = "Patient's body does not react properly to ethyl alcohol." - -/datum/quirk/alcohol_intolerance/add() - var/mob/living/carbon/human/H = quirk_holder - var/datum/species/species = H.dna.species - species.disliked_food |= ALCOHOL - -/datum/quirk/alcohol_intolerance/remove() - var/mob/living/carbon/human/H = quirk_holder - if(H) - var/datum/species/species = H.dna.species - species.disliked_food &= ~ALCOHOL diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 36b701aae1..773c12b6af 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -47,7 +47,7 @@ /atom/New(loc, ...) //atom creation method that preloads variables at creation if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() - world.preloader_load(src) + GLOB._preloader.load(src) if(datum_flags & DF_USE_TAG) GenerateTag() diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 821c819664..0890d81dfb 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -1,3 +1,14 @@ +#define CURRENT_LIVING_PLAYERS 1 +#define CURRENT_LIVING_ANTAGS 2 +#define CURRENT_DEAD_PLAYERS 3 +#define CURRENT_OBSERVERS 4 + +#define ONLY_RULESET 1 +#define HIGHLANDER_RULESET 2 +#define TRAITOR_RULESET 4 +#define MINOR_RULESET 8 + +#define RULESET_STOP_PROCESSING 1 // -- Injection delays GLOBAL_VAR_INIT(dynamic_latejoin_delay_min, (10 MINUTES)) @@ -41,8 +52,6 @@ GLOBAL_LIST_EMPTY(dynamic_forced_roundstart_ruleset) // Forced threat level, setting this to zero or higher forces the roundstart threat to the value. GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) -GLOBAL_VAR_INIT(dynamic_storyteller_type, null) - /datum/game_mode/dynamic name = "dynamic mode" config_tag = "dynamic" @@ -51,8 +60,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) announce_text = "Dynamic mode!" // This needs to be changed maybe reroll_friendly = FALSE; - // Current storyteller - var/datum/dynamic_storyteller/storyteller = null + // Threat logging vars /// The "threat cap", threat shouldn't normally go above this and is used in ruleset calculations var/threat_level = 0 @@ -156,7 +164,6 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) dat += "Threat to Spend: [threat] \[Adjust\] \[View Log\]
    " dat += "
    " - dat += "Storyteller: [storyteller.name]
    " dat += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width].
    " dat += "On average, [peaceful_percentage]% of the rounds are more peaceful.
    " dat += "Forced extended: [GLOB.dynamic_forced_extended ? "On" : "Off"]
    " @@ -171,7 +178,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) dat += "[DR.ruletype] - [DR.name]
    " else dat += "none.
    " - dat += "
    Injection Timers: ([storyteller.get_injection_chance(TRUE)]% chance)
    " + dat += "
    Injection Timers: ([get_injection_chance(TRUE)]% chance)
    " dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)] seconds"] \[Now!\]
    " dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)] seconds"] \[Now!\]
    " dat += "Event: [(event_injection_cooldown-world.time)>60*10 ? "[round((event_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(event_injection_cooldown-world.time)] seconds"] \[Now!\]
    " @@ -329,9 +336,6 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) SSblackbox.record_feedback("tally","dynamic_threat",peaceful_percentage,"Percent of same-vote rounds that are more peaceful") /datum/game_mode/dynamic/can_start() - storyteller = new GLOB.dynamic_storyteller_type // this is where all the initialization happens - storyteller.on_start() - SSblackbox.record_feedback("text","dynamic_storyteller",1,storyteller.name) message_admins("Dynamic mode parameters for the round:") message_admins("Centre is [GLOB.dynamic_curve_centre], Width is [GLOB.dynamic_curve_width], Forced extended is [GLOB.dynamic_forced_extended ? "Enabled" : "Disabled"], No stacking is [GLOB.dynamic_no_stacking ? "Enabled" : "Disabled"].") message_admins("Stacking limit is [GLOB.dynamic_stacking_limit], Classic secret is [GLOB.dynamic_classic_secret ? "Enabled" : "Disabled"], High population limit is [GLOB.dynamic_high_pop_limit].") @@ -341,12 +345,19 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) if(GLOB.dynamic_forced_threat_level >= 0) threat_level = round(GLOB.dynamic_forced_threat_level, 0.1) threat = threat_level - SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Threat level (forced)") + SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Threat level (forced by admins)") else generate_threat() - storyteller.start_injection_cooldowns() + var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_latejoin_delay_max + GLOB.dynamic_first_latejoin_delay_min) + latejoin_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_first_latejoin_delay_min, GLOB.dynamic_first_latejoin_delay_max)) + world.time + var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_midround_delay_min + GLOB.dynamic_first_midround_delay_max) + midround_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time + + var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) + event_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time) + log_game("DYNAMIC: Dynamic Mode initialized with a Threat Level of... [threat_level]!") initial_threat_level = threat_level return TRUE @@ -380,7 +391,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) log_game("DYNAMIC: [roundstart_rules.len] rules.") return TRUE SSblackbox.record_feedback("tally","dynamic",roundstart_rules.len,"Roundstart rules considered") - SSblackbox.record_feedback("tally","dynamic",roundstart_pop_ready,"Players readied up") + SSblackbox.record_feedback("tally","dynamic",roundstart_rules.len,"Players readied up") if(GLOB.dynamic_forced_roundstart_ruleset.len > 0) rigged_roundstart() else @@ -418,7 +429,13 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) if (GLOB.dynamic_forced_extended) log_game("DYNAMIC: Starting a round of forced extended.") return TRUE - var/list/drafted_rules = storyteller.roundstart_draft() + var/list/drafted_rules = list() + for (var/datum/dynamic_ruleset/roundstart/rule in roundstart_rules) + if (rule.acceptable(roundstart_pop_ready, threat_level) && threat >= rule.cost) // If we got the population and threat required + rule.candidates = candidates.Copy() + rule.trim_candidates() + if (rule.ready() && rule.candidates.len > 0) + drafted_rules[rule] = rule.weight if(!drafted_rules.len) message_admins("Not enough threat level for roundstart antags!") log_game("DYNAMIC: Not enough threat level for roundstart antags!") @@ -636,6 +653,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) if (rule.persistent) current_rules += rule return TRUE + rule.clean_up() stack_trace("The [rule.ruletype] rule \"[rule.name]\" failed to execute.") return FALSE @@ -649,41 +667,62 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) current_rules -= rule SSblackbox.record_feedback("tally","dynamic",1,"Rulesets finished") SSblackbox.record_feedback("associative","dynamic_rulesets_finished",1,rule.get_blackbox_info()) - - storyteller.do_process() - + if (midround_injection_cooldown < world.time) if (GLOB.dynamic_forced_extended) return // Somehow it managed to trigger midround multiple times so this was moved here. // There is no way this should be able to trigger an injection twice now. - midround_injection_cooldown = storyteller.get_midround_cooldown() + world.time + var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_midround_delay_max + GLOB.dynamic_midround_delay_min) + midround_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max)) + world.time) // Time to inject some threat into the round if(EMERGENCY_ESCAPED_OR_ENDGAMED) // Unless the shuttle is gone return - if((world.realtime - SSshuttle.realtimeofstart) > SSshuttle.auto_call) // no rules after shuttle is auto-called - return message_admins("DYNAMIC: Checking for midround injection.") log_game("DYNAMIC: Checking for midround injection.") update_playercounts() - if (prob(storyteller.get_injection_chance())) + if (get_injection_chance()) SSblackbox.record_feedback("tally","dynamic",1,"Attempted midround injections") - var/list/drafted_rules = storyteller.midround_draft() + var/cur_threat_frac = threat/threat_level + var/list/drafted_rules = list() + var/antag_num = current_players[CURRENT_LIVING_ANTAGS].len + for (var/datum/dynamic_ruleset/midround/rule in midround_rules) + // if there are antags OR the rule is an antag rule, antag_acceptable will be true. + if (rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && threat >= rule.cost) + // Classic secret : only autotraitor/minor roles + if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))) + continue + rule.trim_candidates() + if (rule.ready()) + if(!antag_num) + drafted_rules[rule] = round(rule.get_weight() + (rule.cost * cur_threat_frac)) + else + drafted_rules[rule] = rule.get_weight() + else if(threat < rule.cost) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend") if (drafted_rules.len > 0) SSblackbox.record_feedback("tally","dynamic",1,"Successful midround injections") picking_midround_latejoin_rule(drafted_rules) - // get_injection_chance can do things on fail + else + midround_injection_cooldown = (midround_injection_cooldown + world.time)/2 if(event_injection_cooldown < world.time) SSblackbox.record_feedback("tally","dynamic",1,"Attempted event injections") - event_injection_cooldown = storyteller.get_event_cooldown() + world.time + var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) + event_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time) message_admins("DYNAMIC: Doing event injection.") log_game("DYNAMIC: Doing event injection.") update_playercounts() - var/list/drafted_rules = storyteller.event_draft() + var/list/drafted_rules = list() + for(var/datum/dynamic_ruleset/event/rule in events) + if(rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && threat >= rule.cost) + if(rule.ready()) + drafted_rules[rule] = rule.get_weight() + else if(threat < rule.cost) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend") if(drafted_rules.len > 0) SSblackbox.record_feedback("tally","dynamic",1,"Successful event injections") picking_midround_latejoin_rule(drafted_rules) @@ -709,6 +748,31 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) continue current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow) +/// Gets the chance for latejoin and midround injection, the dry_run argument is only used for forced injection. +/datum/game_mode/dynamic/proc/get_injection_chance(dry_run = FALSE) + if(forced_injection) + forced_injection = !dry_run + return 100 + var/chance = 0 + // If the high pop override is in effect, we reduce the impact of population on the antag injection chance + var/high_pop_factor = (current_players[CURRENT_LIVING_PLAYERS].len >= GLOB.dynamic_high_pop_limit) + var/max_pop_per_antag = max(5,15 - round(threat_level/10) - round(current_players[CURRENT_LIVING_PLAYERS].len/(high_pop_factor ? 10 : 5))) + if (!current_players[CURRENT_LIVING_ANTAGS].len) + chance += 80 // No antags at all? let's boost those odds! + else + var/current_pop_per_antag = current_players[CURRENT_LIVING_PLAYERS].len / current_players[CURRENT_LIVING_ANTAGS].len + if (current_pop_per_antag > max_pop_per_antag) + chance += min(50, 25+10*(current_pop_per_antag-max_pop_per_antag)) + else + chance += 25-10*(max_pop_per_antag-current_pop_per_antag) + if (current_players[CURRENT_DEAD_PLAYERS].len > current_players[CURRENT_LIVING_PLAYERS].len) + chance -= 30 // More than half the crew died? ew, let's calm down on antags + if (threat > 70) + chance += 15 + if (threat < 30) + chance -= 15 + return round(max(0,chance)) + /// Removes type from the list /datum/game_mode/dynamic/proc/remove_from_list(list/type_list, type) for(var/I in type_list) @@ -739,8 +803,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) return if(EMERGENCY_ESCAPED_OR_ENDGAMED) // No more rules after the shuttle has left return - if((world.realtime - SSshuttle.realtimeofstart) > SSshuttle.auto_call) // no rules after shuttle is auto-called - return + update_playercounts() if (forced_latejoin_rule) @@ -751,12 +814,28 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) picking_midround_latejoin_rule(list(forced_latejoin_rule), forced = TRUE) forced_latejoin_rule = null - else if (latejoin_injection_cooldown < world.time && prob(storyteller.get_injection_chance())) + else if (latejoin_injection_cooldown < world.time && prob(get_injection_chance())) SSblackbox.record_feedback("tally","dynamic",1,"Attempted latejoin injections") - var/list/drafted_rules = storyteller.latejoin_draft(newPlayer) + var/list/drafted_rules = list() + for (var/datum/dynamic_ruleset/latejoin/rule in latejoin_rules) + if (rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && threat >= rule.cost) + // Classic secret : only autotraitor/minor roles + if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))) + continue + // No stacking : only one round-ender, unless threat level > stacking_limit. + if (threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) + if(rule.flags & HIGHLANDER_RULESET && highlander_executed) + continue + + rule.candidates = list(newPlayer) + rule.trim_candidates() + if (rule.ready()) + drafted_rules[rule] = rule.get_weight() + if (drafted_rules.len > 0 && picking_midround_latejoin_rule(drafted_rules)) SSblackbox.record_feedback("tally","dynamic",1,"Successful latejoin injections") - latejoin_injection_cooldown = storyteller.get_latejoin_cooldown() + world.time + var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_latejoin_delay_max + GLOB.dynamic_latejoin_delay_min) + latejoin_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max)) + world.time /// Refund threat, but no more than threat_level. /datum/game_mode/dynamic/proc/refund_threat(regain) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index 2f143f7233..7f6ea088a1 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -80,13 +80,9 @@ /// Delay for when execute will get called from the time of post_setup (roundstart) or process (midround/latejoin). /// Make sure your ruleset works with execute being called during the game when using this, and that the clean_up proc reverts it properly in case of faliure. var/delay = 0 - /// List of tags for use in storytellers. - var/list/property_weights = list() /// Whether or not recent-round weight values are taken into account for this ruleset. /// Weight reduction uses the same values as secret's recent-round mode weight reduction. var/always_max_weight = FALSE - /// Weight reduction by recent-rounds. Saved on new. - var/weight_mult = 1 /datum/dynamic_ruleset/New() ..() @@ -100,11 +96,13 @@ var/high_population_requirements = CONFIG_GET(keyed_list/dynamic_high_population_requirement) var/list/repeated_mode_adjust = CONFIG_GET(number_list/repeated_mode_adjust) if(config_tag in weights) + var/weight_mult = 1 if(!always_max_weight && SSpersistence.saved_dynamic_rules.len == 3 && repeated_mode_adjust.len == 3) var/saved_dynamic_rules = SSpersistence.saved_dynamic_rules for(var/i in 1 to 3) if(config_tag in saved_dynamic_rules[i]) weight_mult -= (repeated_mode_adjust[i]/100) + weight = weights[config_tag] * weight_mult if(config_tag in costs) cost = costs[config_tag] if(config_tag in requirementses) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm index 23e94c4065..b6cd313bfc 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm @@ -58,7 +58,6 @@ cost = 10 blocking_rules = list(/datum/dynamic_ruleset/roundstart/nuclear,/datum/dynamic_ruleset/midround/from_ghosts/nuclear) requirements = list(70,60,50,50,40,40,40,30,20,15) - property_weights = list("story_potential" = 1, "trust" = 1, "chaos" = 1) high_population_requirement = 15 /datum/dynamic_ruleset/event/pirates/ready(forced = FALSE) @@ -82,7 +81,6 @@ cost = 10 requirements = list(70,60,50,50,40,40,40,30,20,15) high_population_requirement = 15 - property_weights = list("chaos" = 1, "valid" = 1) ////////////////////////////////////////////// // // @@ -102,7 +100,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) // yes, can happen on fake-extended high_population_requirement = 5 repeatable = TRUE - property_weights = list("chaos" = 1, "extended" = 2) /datum/dynamic_ruleset/event/ventclog/ready() if(mode.threat_level > 30 && mode.threat >= 5 && prob(20)) @@ -136,11 +133,10 @@ required_enemies = list(1,1,0,0,0,0,0,0,0,0) weight = 4 // no repeatable weight decrease. too variable to be unfun multiple times in one round - cost = 1 + cost = 3 requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("story_potential" = 1, "extended" = 1) always_max_weight = TRUE ////////////////////////////////////////////// @@ -160,7 +156,6 @@ repeatable_weight_decrease = 2 requirements = list(60,50,40,30,30,30,30,30,30,30) high_population_requirement = 30 - property_weights = list("extended" = -2) /datum/dynamic_ruleset/event/meteor_wave/ready() if(mode.threat_level > 40 && mode.threat >= 25 && prob(20)) @@ -195,7 +190,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("extended" = 1) /datum/dynamic_ruleset/event/anomaly_flux name = "Anomaly: Hyper-Energetic Flux" @@ -209,7 +203,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 10 repeatable = TRUE - property_weights = list("extended" = 1) /datum/dynamic_ruleset/event/anomaly_gravitational name = "Anomaly: Gravitational" @@ -221,7 +214,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("extended" = 1) /datum/dynamic_ruleset/event/anomaly_pyroclastic name = "Anomaly: Pyroclastic" @@ -235,7 +227,6 @@ requirements = list(10,10,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE - property_weights = list("extended" = 1) /datum/dynamic_ruleset/event/anomaly_vortex name = "Anomaly: Vortex" @@ -249,7 +240,6 @@ requirements = list(10,10,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE - property_weights = list("extended" = 1) ////////////////////////////////////////////// // // @@ -269,7 +259,6 @@ requirements = list(10,10,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE - property_weights = list("extended" = -1, "chaos" = 1) /datum/dynamic_ruleset/event/carp_migration name = "Carp Migration" @@ -281,7 +270,6 @@ requirements = list(10,10,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE - property_weights = list("extended" = 1) /datum/dynamic_ruleset/event/communications_blackout name = "Communications Blackout" @@ -295,7 +283,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("extended" = 1, "chaos" = 1) /datum/dynamic_ruleset/event/processor_overload name = "Processor Overload" @@ -309,7 +296,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("extended" = 1, "chaos" = 1) always_max_weight = TRUE /datum/dynamic_ruleset/event/space_dust @@ -324,7 +310,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("extended" = 1) always_max_weight = TRUE /datum/dynamic_ruleset/event/major_dust @@ -339,7 +324,6 @@ requirements = list(10,10,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE - property_weights = list("extended" = 1) /datum/dynamic_ruleset/event/electrical_storm name = "Electrical Storm" @@ -353,7 +337,6 @@ requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("extended" = 1) /datum/dynamic_ruleset/event/heart_attack name = "Random Heart Attack" @@ -367,7 +350,6 @@ requirements = list(101,101,101,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE - property_weights = list("extended" = 1) always_max_weight = TRUE /datum/dynamic_ruleset/event/radiation_storm @@ -380,4 +362,3 @@ required_enemies = list(1,1,1,1,1,1,1,1,1,1) requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 - property_weights = list("extended" = 1,"chaos" = 1) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index f4e9971a05..fe9347d9d5 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -69,15 +69,8 @@ high_population_requirement = 15 repeatable = TRUE flags = TRAITOR_RULESET - property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 1) always_max_weight = TRUE -/datum/dynamic_ruleset/latejoin/infiltrator/execute() - . = ..() - for(var/datum/mind/M in assigned) - log_admin("[M.name] was made into a traitor by dynamic.") - message_admins("[M.name] was made into a traitor by dynamic.") - ////////////////////////////////////////////// // // // REVOLUTIONARY PROVOCATEUR // @@ -101,7 +94,6 @@ requirements = list(101,101,70,40,40,40,40,40,40,40) high_population_requirement = 40 flags = HIGHLANDER_RULESET - property_weights = list("trust" = -2, "chaos" = 2, "extended" = -2, "valid" = 2, "conversion" = 1) var/required_heads_of_staff = 3 var/finished = FALSE var/datum/team/revolution/revolution @@ -131,8 +123,6 @@ revolution.update_objectives() revolution.update_heads() SSshuttle.registerHostileEnvironment(src) - log_admin("[M.name] was made into a revolutionary by dynamic.") - message_admins("[M.name] was made into a revolutionary by dynamic.") return TRUE else log_game("DYNAMIC: [ruletype] [name] discarded [M.name] from head revolutionary due to ineligibility.") @@ -197,31 +187,30 @@ ////////////////////////////////////////////// // // -// BLOODSUCKERS // +// VAMPIRE // // // ////////////////////////////////////////////// -/datum/dynamic_ruleset/latejoin/bloodsucker - name = "Bloodsucker Infiltrator" - config_tag = "latejoin_bloodsucker" - antag_datum = ANTAG_DATUM_BLOODSUCKER - antag_flag = ROLE_TRAITOR +/* +/datum/dynamic_ruleset/latejoin/vampire + name = "vampire" + config_tag = "vampire_latejoin" + antag_flag = ROLE_VAMPIRE + antag_datum = ANTAG_DATUM_VAMPIRE + protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain") restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") required_candidates = 1 - weight = 3 - cost = 10 - property_weights = list("story_potential" = 2, "extended" = 2, "trust" = -2, "valid" = 1) - requirements = list(70,65,60,55,50,45,40,35,30,30) - high_population_requirement = 30 + weight = 5 + cost = 15 + requirements = list(80,70,60,50,40,20,20,15,15,15) repeatable = TRUE + high_population_requirement = 15 -/datum/dynamic_ruleset/latejoin/bloodsucker/execute() +/datum/dynamic_ruleset/latejoin/vampire/pre_execute() var/mob/M = pick(candidates) + candidates -= M assigned += M.mind - M.mind.special_role = antag_flag - if(mode.make_bloodsucker(M.mind)) - mode.bloodsuckers += M - log_admin("[M.name] was made into a bloodsucker by dynamic.") - message_admins("[M.name] was made into a bloodsucker by dynamic.") + M.mind.restricted_roles = restricted_roles + M.mind.special_role = ROLE_VAMPIRE return TRUE +*/ diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 92a02f5920..91ac73d142 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -17,10 +17,10 @@ var/list/living_antags = list() var/list/dead_players = list() var/list/list_observers = list() - var/list/ghost_eligible = list() /datum/dynamic_ruleset/midround/from_ghosts weight = 0 + required_type = /mob/dead/observer /// Whether the ruleset should call generate_ruleset_body or not. var/makeBody = TRUE @@ -34,8 +34,6 @@ living_players = trim_list(mode.current_players[CURRENT_LIVING_PLAYERS]) living_antags = trim_list(mode.current_players[CURRENT_LIVING_ANTAGS]) list_observers = trim_list(mode.current_players[CURRENT_OBSERVERS]) - var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(/datum/element/ghost_role_eligibility) - ghost_eligible = trim_list(eligibility.get_all_ghost_role_eligible()) /datum/dynamic_ruleset/midround/proc/trim_list(list/L = list()) var/list/trimmed_list = L.Copy() @@ -72,25 +70,6 @@ continue return trimmed_list -/datum/dynamic_ruleset/midround/from_ghosts/trim_list(list/L = list()) - var/list/trimmed_list = L.Copy() - for(var/mob/M in trimmed_list) - if (!M.client) // Are they connected? - trimmed_list.Remove(M) - continue - if(!mode.check_age(M.client, minimum_required_age)) - trimmed_list.Remove(M) - continue - if(antag_flag_override) - if(!(antag_flag_override in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag_override)) - trimmed_list.Remove(M) - continue - else - if(!(antag_flag in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag)) - trimmed_list.Remove(M) - continue - return trimmed_list - // You can then for example prompt dead players in execute() to join as strike teams or whatever // Or autotator someone @@ -112,15 +91,11 @@ return FALSE return TRUE -/datum/dynamic_ruleset/midround/from_ghosts/ready(forced = FALSE) - if (required_candidates > ghost_eligible.len) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") - return FALSE - return ..() - - /datum/dynamic_ruleset/midround/from_ghosts/execute() - var/application_successful = send_applications(ghost_eligible) + var/list/possible_candidates = list() + possible_candidates.Add(dead_players) + possible_candidates.Add(list_observers) + var/application_successful = send_applications(possible_candidates) return assigned.len > 0 && application_successful /// This sends a poll to ghosts if they want to be a ghost spawn from a ruleset. @@ -133,12 +108,8 @@ candidates = pollGhostCandidates("The mode is looking for volunteers to become a [name]", antag_flag, SSticker.mode, antag_flag, poll_time = 300) - if(!candidates || candidates.len < required_candidates) + if(!candidates || candidates.len <= required_candidates) message_admins("The ruleset [name] did not receive enough applications.") - if(candidates) - message_admins("Only received [candidates.len], needed [required_candidates].") - else - message_admins("There were no candidates.") log_game("DYNAMIC: The ruleset [name] did not receive enough applications.") return FALSE @@ -209,7 +180,6 @@ repeatable = TRUE high_population_requirement = 15 flags = TRAITOR_RULESET - property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 1) always_max_weight = TRUE /datum/dynamic_ruleset/midround/autotraitor/acceptable(population = 0, threat = 0) @@ -244,8 +214,6 @@ living_players -= M var/datum/antagonist/traitor/newTraitor = new M.mind.add_antag_datum(newTraitor) - log_admin("[M] was made into a traitor by dynamic.") - message_admins("[M] was made into a traitor by dynamic.") return TRUE @@ -269,7 +237,6 @@ requirements = list(101,101,70,50,50,50,40,30,30,30) high_population_requirement = 30 required_type = /mob/living/silicon/ai - property_weights = list("story_potential" = 2, "trust" = 1, "chaos" = 2) var/ion_announce = 33 var/removeDontImproveChance = 10 @@ -294,8 +261,6 @@ var/datum/antagonist/traitor/AI = new M.mind.special_role = antag_flag M.mind.add_antag_datum(AI) - log_admin("[M] was made into a malf AI by dynamic.") - message_admins("[M] was made into a malf AI by dynamic.") if(prob(ion_announce)) priority_announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", "ionstorm") if(prob(removeDontImproveChance)) @@ -324,10 +289,12 @@ requirements = list(90,90,70,50,50,50,50,40,30,30) high_population_requirement = 30 repeatable = TRUE - property_weights = list("story_potential" = 2, "trust" = 1, "chaos" = 2, "extended" = -2) var/datum/mind/wizard /datum/dynamic_ruleset/midround/from_ghosts/wizard/ready(forced = FALSE) + if (required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE if(GLOB.wizardstart.len == 0) log_admin("Cannot accept Wizard ruleset. Couldn't find any wizard spawn points.") message_admins("Cannot accept Wizard ruleset. Couldn't find any wizard spawn points.") @@ -370,7 +337,6 @@ cost = 35 requirements = list(90,90,90,80,70,60,50,40,40,40) high_population_requirement = 40 - property_weights = list("story_potential" = 2, "trust" = 2, "chaos" = 2, "extended" = -2, "valid" = 2) var/operative_cap = list(2,2,3,3,4,5,5,5,5,5) var/datum/team/nuclear/nuke_team flags = HIGHLANDER_RULESET @@ -388,6 +354,12 @@ required_candidates = operative_cap[indice_pop] return ..() +/datum/dynamic_ruleset/midround/from_ghosts/nuclear/ready(forced = FALSE) + if (required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE + return ..() + /datum/dynamic_ruleset/midround/from_ghosts/nuclear/finish_setup(mob/new_character, index) new_character.mind.special_role = "Nuclear Operative" new_character.mind.assigned_role = "Nuclear Operative" @@ -418,7 +390,12 @@ requirements = list(101,101,101,80,60,50,50,50,50,50) high_population_requirement = 50 repeatable = TRUE - property_weights = list("story_potential" = -1, "trust" = 2, "chaos" = 2, "extended" = -2, "valid" = 2) + +/datum/dynamic_ruleset/midround/from_ghosts/blob/ready(forced = FALSE) + if (required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE + return ..() /datum/dynamic_ruleset/midround/from_ghosts/blob/generate_ruleset_body(mob/applicant) var/body = applicant.become_overmind() @@ -444,9 +421,14 @@ high_population_requirement = 50 repeatable_weight_decrease = 2 repeatable = TRUE - property_weights = list("story_potential" = -1, "trust" = 1, "chaos" = 2, "extended" = -2, "valid" = 2) var/list/vents = list() +/datum/dynamic_ruleset/midround/from_ghosts/xenomorph/ready(forced = FALSE) + if (required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE + return ..() + /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/execute() // 50% chance of being incremented by one required_candidates += prob(50) @@ -494,7 +476,6 @@ high_population_requirement = 50 repeatable_weight_decrease = 2 repeatable = TRUE - property_weights = list("story_potential" = 1, "trust" = 1, "extended" = 1, "valid" = 2, "integrity" = 2) var/list/spawn_locs = list() /datum/dynamic_ruleset/midround/from_ghosts/nightmare/execute() @@ -540,9 +521,14 @@ weight = 4 cost = 5 requirements = list(30,30,20,20,15,10,10,10,10,5) // yes, it can even happen in "extended"! - property_weights = list("story_potential" = 1, "extended" = 1, "valid" = -2) high_population_requirement = 5 +/datum/dynamic_ruleset/midround/from_ghosts/sentient_disease/ready(forced = FALSE) + if (required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE + return ..() + /datum/dynamic_ruleset/midround/from_ghosts/sentient_disease/generate_ruleset_body(mob/applicant) var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center()) applicant.transfer_ckey(virus, FALSE) @@ -569,18 +555,17 @@ cost = 5 requirements = list(30,30,30,30,20,15,15,15,15,15) high_population_requirement = 15 - property_weights = list("story_potential" = -2, "extended" = -1) var/list/spawn_locs = list() -/datum/dynamic_ruleset/midround/from_ghosts/revenant/acceptable(population = 0,threat = 0) +/datum/dynamic_ruleset/midround/from_ghosts/revenant/ready(forced = FALSE) var/deadMobs = 0 for(var/mob/M in GLOB.dead_mob_list) deadMobs++ if(deadMobs < REVENANT_SPAWN_THRESHOLD) return FALSE - return ..() - -/datum/dynamic_ruleset/midround/from_ghosts/revenant/ready(forced = FALSE) + if(required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE for(var/mob/living/L in GLOB.dead_mob_list) //look for any dead bodies var/turf/T = get_turf(L) if(T && is_station_level(T.z)) @@ -622,11 +607,13 @@ weight = 4 cost = 15 requirements = list(101,101,101,90,80,70,60,50,40,30) - property_weights = list("story_potential" = -2, "extended" = -2, "integrity" = 2, "valid" = 2, "trust" = 2) high_population_requirement = 30 var/list/spawn_locs = list() /datum/dynamic_ruleset/midround/from_ghosts/slaughter_demon/ready(forced = FALSE) + if(required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) if(isturf(L.loc)) spawn_locs += L.loc @@ -672,11 +659,13 @@ blocking_rules = list(/datum/dynamic_ruleset/roundstart/nuclear,/datum/dynamic_ruleset/midround/from_ghosts/nuclear) high_population_requirement = 15 var/datum/team/abductor_team/team - property_weights = list("story_potential" = 1, "extended" = -2, "valid" = 1, "trust" = -1, "chaos" = 2) repeatable_weight_decrease = 4 repeatable = TRUE /datum/dynamic_ruleset/midround/from_ghosts/abductors/ready(forced = FALSE) + if(required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE team = new /datum/team/abductor_team if(team.team_number > ABDUCTOR_MAX_TEAMS) return FALSE @@ -710,11 +699,13 @@ cost = 15 requirements = list(101,101,101,90,80,70,60,50,40,30) high_population_requirement = 30 - property_weights = list("story_potential" = 1, "extended" = -2, "valid" = 2) var/list/spawn_locs = list() var/spawn_loc /datum/dynamic_ruleset/midround/from_ghosts/ninja/ready(forced = FALSE) + if(required_candidates > (dead_players.len + list_observers.len)) + SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") + return FALSE if(!spawn_loc) var/list/spawn_locs = list() for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) @@ -754,3 +745,31 @@ #undef ABDUCTOR_MAX_TEAMS #undef REVENANT_SPAWN_THRESHOLD + +////////////////////////////////////////////// +// // +// BLOODSUCKERS // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/latejoin/bloodsucker + name = "Bloodsucker Infiltrator" + config_tag = "latejoin_bloodsucker" + antag_datum = ANTAG_DATUM_BLOODSUCKER + antag_flag = ROLE_TRAITOR + restricted_roles = list("AI", "Cyborg") + protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + required_candidates = 1 + weight = 3 + cost = 10 + requirements = list(90,80,70,60,55,50,45,40,35,30) + high_population_requirement = 30 + repeatable = TRUE + +/datum/dynamic_ruleset/latejoin/bloodsucker/execute() + var/mob/M = pick(candidates) + assigned += M.mind + M.mind.special_role = antag_flag + if(mode.make_bloodsucker(M.mind)) + mode.bloodsuckers += M + return TRUE diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index abd40a1756..e5bb0af464 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -21,7 +21,6 @@ requirements = list(50,50,50,50,50,50,50,50,50,50) high_population_requirement = 40 antag_cap = list(1,1,1,1,2,2,2,2,3,3) - property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 1, "valid" = 1) always_max_weight = TRUE var/autotraitor_cooldown = 450 // 15 minutes (ticks once per 2 sec) @@ -62,7 +61,6 @@ requirements = list(101,101,101,101,101,101,101,101,101,101) high_population_requirement = 101 antag_cap = list(2,2,2,2,2,2,2,2,2,2) // Can pick 3 per team, but rare enough it doesn't matter. - property_weights = list("story_potential" = 1, "trust" = -1, "extended" = 1, "valid" = 1) var/list/datum/team/brother_team/pre_brother_teams = list() var/const/min_team_size = 2 @@ -110,7 +108,6 @@ cost = 15 scaling_cost = 15 requirements = list(101,101,101,101,101,101,101,101,101,101) - property_weights = list("trust" = -2, "valid" = 2) high_population_requirement = 10 antag_cap = list(1,1,1,1,1,2,2,2,2,3) var/team_mode_probability = 30 @@ -163,7 +160,6 @@ cost = 30 requirements = list(101,101,101,60,50,50,50,50,50,50) high_population_requirement = 50 - property_weights = list("story_potential" = 2, "trust" = 1, "chaos" = 2, "extended" = -2, "valid" = 2) var/list/roundstart_wizards = list() /datum/dynamic_ruleset/roundstart/wizard/acceptable(population=0, threat=0) @@ -226,7 +222,6 @@ weight = 3 cost = 30 requirements = list(101,101,101,80,70,60,50,50,50,50) - property_weights = list("story_potential" = -1, "trust" = -1, "chaos" = 1, "conversion" = 1, "extended" = -2, "valid" = 2) high_population_requirement = 50 flags = HIGHLANDER_RULESET antag_cap = list(2,2,2,3,3,4,4,4,4,4) @@ -288,7 +283,6 @@ high_population_requirement = 50 flags = HIGHLANDER_RULESET antag_cap = list(1,1,2,3,4,5,5,5,5,5) - property_weights = list("story_potential" = 2, "trust" = 2, "chaos" = 2, "extended" = -2, "valid" = 2) var/datum/team/nuclear/nuke_team /datum/dynamic_ruleset/roundstart/nuclear/ready(forced = FALSE) @@ -379,7 +373,6 @@ flags = HIGHLANDER_RULESET // I give up, just there should be enough heads with 35 players... minimum_players = 35 - property_weights = list("trust" = -2, "chaos" = 2, "extended" = -2, "valid" = 2, "conversion" = 1) var/datum/team/revolution/revolution var/finished = FALSE @@ -497,7 +490,6 @@ weight = 3 cost = 0 requirements = list(101,101,101,101,101,101,101,101,101,101) - property_weights = list("extended" = 2) high_population_requirement = 101 /datum/dynamic_ruleset/roundstart/extended/pre_execute() @@ -525,7 +517,6 @@ high_population_requirement = 50 flags = HIGHLANDER_RULESET antag_cap = list(2,3,3,4,4,4,4,4,4,4) - property_weights = list("trust" = 2, "chaos" = 2, "extended" = -2, "conversion" = 1, "valid" = 2) var/ark_time /datum/dynamic_ruleset/roundstart/clockcult/pre_execute() @@ -625,8 +616,6 @@ antag_leader_datum = /datum/antagonist/nukeop/leader/clownop requirements = list(101,101,101,101,101,101,101,101,101,101) high_population_requirement = 101 - property_weights = list("trust" = 2, "chaos" = 2, "extended" = -2, "story_potential" = 2, "valid" = 2) - /datum/dynamic_ruleset/roundstart/nuclear/clown_ops/pre_execute() . = ..() @@ -658,7 +647,6 @@ requirements = list(101,101,101,101,101,101,101,101,101,101) high_population_requirement = 101 antag_cap = list(1,1,1,2,2,2,3,3,3,4) - property_weights = list("extended" = 1) /datum/dynamic_ruleset/roundstart/devil/pre_execute() var/num_devils = antag_cap[indice_pop] @@ -710,7 +698,6 @@ cost = 0 requirements = list(101,101,101,101,101,101,101,101,101,101) high_population_requirement = 101 - property_weights = list("extended" = -2, "chaos" = 2, "conversion" = 1, "valid" = 2) var/players_per_carrier = 30 var/monkeys_to_win = 1 var/escaped_monkeys = 0 @@ -772,7 +759,6 @@ cost = 0 requirements = list(101,101,101,101,101,101,101,101,101,101) high_population_requirement = 101 - property_weights = list("extended" = -2, "chaos" = 2, "trust" = 2) var/meteordelay = 2000 var/nometeors = 0 var/rampupdelta = 5 @@ -813,8 +799,7 @@ weight = 2 cost = 15 scaling_cost = 10 - property_weights = list("story_potential" = 1, "extended" = 1, "trust" = -2, "valid" = 1) - requirements = list(70,65,60,55,50,50,50,50,50,50) + requirements = list(90,80,70,60,50,50,50,50,50,50) high_population_requirement = 50 antag_cap = list(1,1,1,1,1,2,2,2,2,2) diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm deleted file mode 100644 index afa6ed8ba7..0000000000 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ /dev/null @@ -1,235 +0,0 @@ -/datum/dynamic_storyteller - var/name = "none" - var/desc = "A coder's idiocy." - var/list/property_weights = list() - var/curve_centre = 0 - var/curve_width = 1.8 - var/forced_threat_level = -1 - var/flags = 0 - var/weight = 3 // how many rounds need to have been recently played for this storyteller to be left out of the vote - var/datum/game_mode/dynamic/mode = null - -/** -Property weights are: -"story_potential" -- essentially how many different ways the antag can be played. -"trust" -- How much it makes the crew trust each other. Negative values means they're suspicious. Team antags are like this. -"chaos" -- How chaotic it makes the round. Has some overlap with "valid" and somewhat contradicts "extended". -"valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to - let everyone into the armory, wizard moving around and being a nuisance, nightmare busting lights. -"extended" -- How much the antag is conducive to a long round. Nukies and cults are bad for this; Wizard is less bad; and so on. -"conversion" -- Basically a bool. Conversion antags, well, convert. It's its own class for a good reason. -*/ - -/datum/dynamic_storyteller/New() - ..() - if (istype(SSticker.mode, /datum/game_mode/dynamic)) - mode = SSticker.mode - GLOB.dynamic_curve_centre = curve_centre - GLOB.dynamic_curve_width = curve_width - GLOB.dynamic_forced_threat_level = forced_threat_level - -/datum/dynamic_storyteller/proc/start_injection_cooldowns() - var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_latejoin_delay_max + GLOB.dynamic_first_latejoin_delay_min) - mode.latejoin_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_first_latejoin_delay_min, GLOB.dynamic_first_latejoin_delay_max)) + world.time - - var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_midround_delay_min + GLOB.dynamic_first_midround_delay_max) - mode.midround_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time - - var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - mode.event_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time) - -/datum/dynamic_storyteller/proc/do_process() - return - -/datum/dynamic_storyteller/proc/on_start() - return - -/datum/dynamic_storyteller/proc/get_midround_cooldown() - var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_midround_delay_max + GLOB.dynamic_midround_delay_min) - return round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max)) - -/datum/dynamic_storyteller/proc/get_event_cooldown() - var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - return round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) - -/datum/dynamic_storyteller/proc/get_latejoin_cooldown() - var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_latejoin_delay_max + GLOB.dynamic_latejoin_delay_min) - return round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max)) - -/datum/dynamic_storyteller/proc/get_injection_chance(dry_run = FALSE) - if(mode.forced_injection) - mode.forced_injection = !dry_run - return 100 - var/chance = 0 - // If the high pop override is in effect, we reduce the impact of population on the antag injection chance - var/high_pop_factor = (mode.current_players[CURRENT_LIVING_PLAYERS].len >= GLOB.dynamic_high_pop_limit) - var/max_pop_per_antag = max(5,15 - round(mode.threat_level/10) - round(mode.current_players[CURRENT_LIVING_PLAYERS].len/(high_pop_factor ? 10 : 5))) - if (!mode.current_players[CURRENT_LIVING_ANTAGS].len) - chance += 80 // No antags at all? let's boost those odds! - else - var/current_pop_per_antag = mode.current_players[CURRENT_LIVING_PLAYERS].len / mode.current_players[CURRENT_LIVING_ANTAGS].len - if (current_pop_per_antag > max_pop_per_antag) - chance += min(50, 25+10*(current_pop_per_antag-max_pop_per_antag)) - else - chance += 25-10*(max_pop_per_antag-current_pop_per_antag) - if (mode.current_players[CURRENT_DEAD_PLAYERS].len > mode.current_players[CURRENT_LIVING_PLAYERS].len) - chance -= 30 // More than half the crew died? ew, let's calm down on antags - if (mode.threat > 70) - chance += 15 - if (mode.threat < 30) - chance -= 15 - return round(max(0,chance)) - -/datum/dynamic_storyteller/proc/roundstart_draft() - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/roundstart/rule in mode.roundstart_rules) - if (rule.acceptable(mode.roundstart_pop_ready, mode.threat_level) && mode.threat >= rule.cost) // If we got the population and threat required - rule.candidates = mode.candidates.Copy() - rule.trim_candidates() - if (rule.ready() && rule.candidates.len > 0) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) // just treat it as 0 if it's not in there - property_weight += rule.property_weights[property] * property_weights[property] - drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult - return drafted_rules - -/datum/dynamic_storyteller/proc/midround_draft() - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/midround/rule in mode.midround_rules) - // if there are antags OR the rule is an antag rule, antag_acceptable will be true. - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && mode.threat >= rule.cost) - // Classic secret : only autotraitor/minor roles - if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))) - continue - rule.trim_candidates() - if (rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) - property_weight += rule.property_weights[property] * property_weights[property] - drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult - else if(mode.threat < rule.cost) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend") - return drafted_rules - -/datum/dynamic_storyteller/proc/latejoin_draft(mob/living/carbon/human/newPlayer) - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/latejoin/rule in mode.latejoin_rules) - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && mode.threat >= rule.cost) - // Classic secret : only autotraitor/minor roles - if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))) - continue - // No stacking : only one round-ender, unless threat level > stacking_limit. - if (mode.threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) - if(rule.flags & HIGHLANDER_RULESET && mode.highlander_executed) - continue - - rule.candidates = list(newPlayer) - rule.trim_candidates() - if (rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) - property_weight += rule.property_weights[property] * property_weights[property] - drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult - else if(mode.threat < rule.cost) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend") - return drafted_rules - -/datum/dynamic_storyteller/proc/event_draft() - var/list/drafted_rules = list() - for(var/datum/dynamic_ruleset/event/rule in mode.events) - if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && mode.threat >= rule.cost) - if(rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) - property_weight += rule.property_weights[property] * property_weights[property] - drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult - else if(mode.threat < rule.cost) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend") - return drafted_rules - - -/datum/dynamic_storyteller/cowabunga - name = "Chaotic" - curve_centre = 10 - desc = "Chaos: high. Variation: high. Likely antags: clock cult, revs, wizard." - property_weights = list("extended" = -1, "chaos" = 10) - weight = 2 - flags = WAROPS_ALWAYS_ALLOWED - var/refund_cooldown - -/datum/dynamic_storyteller/cowabunga/get_midround_cooldown() - return ..() / 4 - -/datum/dynamic_storyteller/cowabunga/get_latejoin_cooldown() - return ..() / 4 - -/datum/dynamic_storyteller/cowabunga/do_process() - if(refund_cooldown < world.time) - mode.refund_threat(10) - mode.log_threat("Cowabunga it is. Refunded 10 threat. Threat is now [mode.threat].") - refund_cooldown = world.time + 300 SECONDS - -/datum/dynamic_storyteller/team - name = "Teamwork" - desc = "Chaos: high. Variation: low. Likely antags: nukies, clockwork cult, wizard, blob, xenomorph." - curve_centre = 2 - curve_width = 1.5 - weight = 2 - flags = WAROPS_ALWAYS_ALLOWED - property_weights = list("valid" = 3, "trust" = 5) - -/datum/dynamic_storyteller/team/get_injection_chance(dry_run = FALSE) - return (mode.current_players[CURRENT_LIVING_ANTAGS].len ? 0 : ..()) - -/datum/dynamic_storyteller/conversion - name = "Conversion" - desc = "Chaos: high. Variation: medium. Likely antags: cults, bloodsuckers, revs." - curve_centre = 3 - curve_width = 1 - weight = 2 - flags = WAROPS_ALWAYS_ALLOWED - property_weights = list("valid" = 1, "conversion" = 20) - -/datum/dynamic_storyteller/classic - name = "Random" - desc = "Chaos: varies. Variation: highest. No special weights attached." - weight = 6 - curve_width = 4 - -/datum/dynamic_storyteller/memes - name = "Story" - desc = "Chaos: varies. Variation: high. Likely antags: abductors, nukies, wizard, traitor." - curve_width = 4 - property_weights = list("story_potential" = 10) - -/datum/dynamic_storyteller/suspicion - name = "Intrigue" - desc = "Chaos: low. Variation: high. Likely antags: traitor, bloodsucker. Rare: revs, blood cult." - curve_width = 4 - property_weights = list("trust" = -5) - -/datum/dynamic_storyteller/liteextended - name = "Calm" - desc = "Chaos: low. Variation: medium. Likely antags: bloodsuckers, traitors, sentient disease, revenant." - curve_centre = -5 - curve_width = 0.5 - flags = NO_ASSASSIN - weight = 2 - property_weights = list("extended" = 1, "chaos" = -1, "valid" = -1, "story_potential" = 1, "conversion" = -10) - -/datum/dynamic_storyteller/liteextended/get_injection_chance(dry_run = FALSE) - return ..()/2 - -/datum/dynamic_storyteller/extended - name = "Extended" - desc = "Chaos: none. Variation: none. Likely antags: none." - curve_centre = -20 - weight = 2 - curve_width = 0.5 - -/datum/dynamic_storyteller/extended/on_start() - GLOB.dynamic_forced_extended = TRUE diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index b0c7299b34..520721560a 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -14,7 +14,7 @@ circuit = /obj/item/circuitboard/machine/sleeper req_access = list(ACCESS_CMO) //Used for reagent deletion and addition of non medicines var/efficiency = 1 - var/min_health = 30 + var/min_health = -25 var/list/available_chems var/controls_inside = FALSE var/list/possible_chems = list( diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index e9d3006b06..98dd91d3bd 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -491,4 +491,4 @@ //Attacks/effects. /obj/machinery/cryopod/blob_act() - return //Sorta gamey, but we don't really want these to be destroyed. + return //Sorta gamey, but we don't really want these to be destroyed. \ No newline at end of file diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 03c1bb3bc8..52b52eb288 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -180,7 +180,7 @@ limit-- while(!FoundDoor && limit) if (!FoundDoor) - log_mapping("[src] at [AREACOORD(src)] failed to find a valid airlock to cyclelink with!") + log_world("### MAP WARNING, [src] at [AREACOORD(src)] failed to find a valid airlock to cyclelink with!") return FoundDoor.cyclelinkedairlock = src cyclelinkedairlock = FoundDoor diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 65f7602215..1c25c7b242 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -7,51 +7,26 @@ GLOBAL_LIST_EMPTY(doppler_arrays) icon_state = "tdoppler" density = TRUE var/integrated = FALSE - var/list_limit = 100 - var/cooldown = 10 - var/next_announce = 0 var/max_dist = 150 verb_say = "states coldly" - var/list/message_log = list() /obj/machinery/doppler_array/Initialize() . = ..() GLOB.doppler_arrays += src /obj/machinery/doppler_array/ComponentInitialize() - . = ..() AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,null,null,CALLBACK(src,.proc/rot_message)) /obj/machinery/doppler_array/Destroy() GLOB.doppler_arrays -= src return ..() -/obj/machinery/doppler_array/ui_interact(mob/user) +/obj/machinery/doppler_array/examine(mob/user) . = ..() - if(stat) - return FALSE + . += "Its dish is facing to the [dir2text(dir)]." - var/list/dat = list() - for(var/i in 1 to LAZYLEN(message_log)) - dat += "Log recording #[i]: [message_log[i]]

    " - dat += "Delete logs
    " - dat += "
    " - dat += "(Refresh)
    " - dat += "" - var/datum/browser/popup = new(user, "computer", name, 400, 500) - popup.set_content(dat.Join(" ")) - popup.open() - -/obj/machinery/doppler_array/Topic(href, href_list) - if(..()) - return - if(href_list["delete_log"]) - LAZYCLEARLIST(message_log) - if(href_list["refresh"]) - updateUsrDialog() - - updateUsrDialog() - return +/obj/machinery/doppler_array/process() + return PROCESS_KILL /obj/machinery/doppler_array/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/wrench)) @@ -71,18 +46,15 @@ GLOBAL_LIST_EMPTY(doppler_arrays) to_chat(user, "You adjust [src]'s dish to face to the [dir2text(dir)].") playsound(src, 'sound/items/screwdriver2.ogg', 50, 1) -/obj/machinery/doppler_array/proc/sense_explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, - took, orig_dev_range, orig_heavy_range, orig_light_range) +/obj/machinery/doppler_array/proc/sense_explosion(turf/epicenter,devastation_range,heavy_impact_range,light_impact_range, + took,orig_dev_range,orig_heavy_range,orig_light_range) if(stat & NOPOWER) return FALSE var/turf/zone = get_turf(src) + if(zone.z != epicenter.z) return FALSE - if(next_announce > world.time) - return FALSE - next_announce = world.time + cooldown - var/distance = get_dist(epicenter, zone) var/direct = get_dir(zone, epicenter) @@ -108,19 +80,8 @@ GLOBAL_LIST_EMPTY(doppler_arrays) else for(var/message in messages) say(message) - if(LAZYLEN(message_log) > list_limit) - say("Storage buffer is full! Clearing buffers...") - LAZYCLEARLIST(message_log) - LAZYADD(message_log, messages.Join(" ")) return TRUE -/obj/machinery/doppler_array/examine(mob/user) - . = ..() - . += "Its dish is facing to the [dir2text(dir)]." - -/obj/machinery/doppler_array/process() - return PROCESS_KILL - /obj/machinery/doppler_array/power_change() if(stat & BROKEN) icon_state = "[initial(icon_state)]-broken" diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 8f7fce8e3e..71f39608b5 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -256,6 +256,7 @@ return return ..() + /obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() if(.) //damage received diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index b1783ba940..1e7d720ee9 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -500,7 +500,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ else return FALSE -/obj/machinery/holopad/proc/move_hologram(mob/living/user, turf/new_turf, direction) +/obj/machinery/holopad/proc/move_hologram(mob/living/user, turf/new_turf) if(LAZYLEN(masters) && masters[user]) var/obj/effect/overlay/holo_pad_hologram/holo = masters[user] var/transfered = FALSE @@ -512,8 +512,6 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ transfered = TRUE //All is good. holo.forceMove(new_turf) - if(direction) - holo.setDir(direction) if(!transfered) update_holoray(user,new_turf) return TRUE diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index ca8e8cecd9..36708fcf90 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -262,14 +262,14 @@ occupant_message("Deconstructing [W]...") if(do_after_cooldown(W)) chassis.spark_system.start() - W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + W.ScrapeAway() playsound(W, 'sound/items/deconstruct.ogg', 50, 1) else if(isfloorturf(target)) var/turf/open/floor/F = target occupant_message("Deconstructing [F]...") if(do_after_cooldown(target)) chassis.spark_system.start() - F.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + F.ScrapeAway() playsound(F, 'sound/items/deconstruct.ogg', 50, 1) else if (istype(target, /obj/machinery/door/airlock)) occupant_message("Deconstructing [target]...") @@ -282,7 +282,7 @@ var/turf/open/space/S = target occupant_message("Building Floor...") if(do_after_cooldown(S)) - S.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + S.PlaceOnTop(/turf/open/floor/plating) playsound(S, 'sound/items/deconstruct.ogg', 50, 1) chassis.spark_system.start() else if(isfloorturf(target)) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 416644cada..9c3df5395f 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -107,7 +107,7 @@ //Wrapper procs that handle sanity and user feedback /atom/movable/proc/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE) - if(!in_range(user, src) || !isturf(user.loc) || user.incapacitated() || M.anchored || !user.can_buckle_others(M, src)) + if(!in_range(user, src) || !isturf(user.loc) || user.incapacitated() || M.anchored) return FALSE add_fingerprint(user) diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index b6deaa1d06..10ee73915c 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -123,7 +123,7 @@ if(metal) var/turf/T = get_turf(src) if(isspaceturf(T)) //Block up any exposed space - T.PlaceOnTop(/turf/open/floor/plating/foam, flags = CHANGETURF_INHERIT_AIR) + T.PlaceOnTop(/turf/open/floor/plating/foam) for(var/direction in GLOB.cardinals) var/turf/cardinal_turf = get_step(T, direction) if(get_area(cardinal_turf) != get_area(T)) //We're at an area boundary, so let's block off this turf! diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index c1833ba44a..10a2b2c807 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -260,8 +260,9 @@ var/position = vending_names_paths.Find(build_path) position = (position == vending_names_paths.len) ? 1 : (position + 1) var/typepath = vending_names_paths[position] - set_type(typepath) + to_chat(user, "You set the board to \"[vending_names_paths[typepath]]\".") + set_type(typepath) else return ..() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index ccffa413a6..d97c07bf87 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -700,10 +700,10 @@ GLOBAL_LIST_EMPTY(PDAs) U << browse(null, "window=pda") return -/obj/item/pda/proc/remove_id(mob/user) - if(issilicon(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) +/obj/item/pda/proc/remove_id() + if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return - do_remove_id(user) + do_remove_id(usr) /obj/item/pda/proc/do_remove_id(mob/user) if(!id) @@ -827,23 +827,23 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/pda/proc/create_message(mob/living/U, obj/item/pda/P) send_message(U,list(P)) -/obj/item/pda/AltClick(mob/user) +/obj/item/pda/AltClick() . = ..() if(id) - remove_id(user) + remove_id() playsound(src, 'sound/machines/terminal_eject_disc.ogg', 50, 1) else - remove_pen(user) + remove_pen() playsound(src, 'sound/machines/button4.ogg', 50, 1) return TRUE -/obj/item/pda/CtrlClick(mob/user) +/obj/item/pda/CtrlClick() ..() if(isturf(loc)) //stops the user from dragging the PDA by ctrl-clicking it. return - remove_pen(user) + remove_pen() /obj/item/pda/verb/verb_toggle_light() set category = "Object" @@ -857,7 +857,7 @@ GLOBAL_LIST_EMPTY(PDAs) set src in usr if(id) - remove_id(usr) + remove_id() else to_chat(usr, "This PDA does not have an ID in it!") @@ -896,7 +896,7 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/pda/proc/id_check(mob/user, obj/item/card/id/I) if(!I) if(id && (src in user.contents)) - remove_id(user) + remove_id() return TRUE else var/obj/item/card/id/C = user.get_active_held_item() diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 3ee4a14a91..7dc2f1d60b 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -8,8 +8,7 @@ w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT var/mob/living/silicon/pai/pai - resistance_flags = FIRE_PROOF | ACID_PROOF - max_integrity = 200 + resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE /obj/item/paicard/suicide_act(mob/living/user) user.visible_message("[user] is staring sadly at [src]! [user.p_they()] can't keep living without real human intimacy!") @@ -46,8 +45,6 @@ dat += "Radio Uplink
    " dat += "Transmit: [(pai.radio.wires.is_cut(WIRE_TX)) ? "Disabled" : "Enabled"]
    " dat += "Receive: [(pai.radio.wires.is_cut(WIRE_RX)) ? "Disabled" : "Enabled"]
    " - if(pai.radio_short) - dat += "Reset radio short: \[RESET\]
    " else dat += "Radio Uplink
    " dat += "Radio firmware not loaded. Please install a pAI personality to load firmware.
    " @@ -85,6 +82,7 @@ pai.master = M.real_name pai.master_dna = M.dna.unique_enzymes to_chat(pai, "You have been bound to a new master.") + pai.emittersemicd = FALSE if(href_list["wipe"]) var/confirm = input("Are you CERTAIN you wish to delete the current personality? This action cannot be undone.", "Personality Wipe") in list("Yes", "No") if(confirm == "Yes") @@ -98,8 +96,6 @@ var/wire = text2num(href_list["wires"]) if(pai.radio) pai.radio.wires.cut(wire) - if(href_list["reset_radio_short"]) - pai.unshort_radio() if(href_list["setlaws"]) var/newlaws = copytext(sanitize(input("Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", pai.laws.supplied[1]) as message),1,MAX_MESSAGE_LEN) if(newlaws && pai) diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index 724cfc8f9d..66897fa722 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -20,10 +20,10 @@ /obj/item/grenade/flashbang/proc/flashbang_mobs(turf/source, range) var/list/banged = get_hearers_in_view(range, source) var/list/flashed = viewers(range, source) - for(var/mob/living/l in banged) - bang(l, source) - for(var/mob/living/l in flashed) - flash(l, source) + for(var/i in banged) + bang(i, source) + for(var/i in flashed) + flash(i, source) /obj/item/grenade/flashbang/proc/bang(mob/living/M, turf/source) if(M.stat == DEAD) //They're dead! diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index c6c5547e54..7a83893f8b 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -479,10 +479,10 @@ possessed = TRUE - var/list/mob/candidates = pollGhostCandidates("Do you want to play as the spirit of [user.real_name]'s blade?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the spirit of [user.real_name]'s blade?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE) if(LAZYLEN(candidates)) - var/mob/C = pick(candidates) + var/mob/dead/observer/C = pick(candidates) var/mob/living/simple_animal/shade/S = new(src) S.real_name = name S.name = name diff --git a/code/game/objects/items/powerfist.dm b/code/game/objects/items/powerfist.dm index 648f465a22..27ed0f82e3 100644 --- a/code/game/objects/items/powerfist.dm +++ b/code/game/objects/items/powerfist.dm @@ -50,6 +50,7 @@ if(tank) updateTank(tank, 1, user) + /obj/item/melee/powerfist/proc/updateTank(obj/item/tank/internals/thetank, removing = 0, mob/living/carbon/human/user) if(removing) if(!tank) @@ -70,42 +71,26 @@ /obj/item/melee/powerfist/attack(mob/living/target, mob/living/user) - if(!tank) - to_chat(user, "\The [src] can't operate without a source of gas!") - return - var/datum/gas_mixture/gasused = tank.air_contents.remove(gasperfist * fisto_setting) - var/turf/T = get_turf(src) - if(!T) - return - T.assume_air(gasused) - T.air_update_turf() - if(!gasused) - to_chat(user, "\The [src]'s tank is empty!") - target.apply_damage((force / 5), BRUTE) - playsound(loc, 'sound/weapons/punch1.ogg', 50, 1) - target.visible_message("[user]'s powerfist lets out a dull thunk as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "[user]'s punches you!") - return - if(gasused.total_moles() < gasperfist * fisto_setting) - to_chat(user, "\The [src]'s piston-ram lets out a weak hiss, it needs more gas!") - playsound(loc, 'sound/weapons/punch4.ogg', 50, 1) - target.apply_damage((force / 2), BRUTE) - target.visible_message("[user]'s powerfist lets out a weak hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "[user]'s punch strikes with force!") - return - target.apply_damage(force * fisto_setting, BRUTE) - target.visible_message("[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "You cry out in pain as [user]'s punch flings you backwards!") - new /obj/effect/temp_visual/kinetic_blast(target.loc) - playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) - playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) + if(!tank) + to_chat(user, "\The [src] can't operate without a source of gas!") + return + if(tank && !tank.air_contents.remove(gasperfist * fisto_setting)) + to_chat(user, "\The [src]'s piston-ram lets out a weak hiss, it needs more gas!") + playsound(loc, 'sound/effects/refill.ogg', 50, 1) + return + target.apply_damage(force * fisto_setting, BRUTE) + target.visible_message("[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ + "You cry out in pain as [user]'s punch flings you backwards!") + new /obj/effect/temp_visual/kinetic_blast(target.loc) + playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) + playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) - var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) - target.throw_at(throw_target, 5 * fisto_setting, 0.5 + (fisto_setting / 2)) + target.throw_at(throw_target, 5 * fisto_setting, 0.2) - log_combat(user, target, "power fisted", src) + log_combat(user, target, "power fisted", src) - user.changeNext_move(CLICK_CD_MELEE * click_delay) + user.changeNext_move(CLICK_CD_MELEE * click_delay) - return + return diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b20f412620..4fc31ea674 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -398,64 +398,39 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ * Cardboard */ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ - new/datum/stack_recipe("box", /obj/item/storage/box), \ - new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ - new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ - new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \ - new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ - new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ - new/datum/stack_recipe("folder", /obj/item/folder), \ - // holy fuck why are there so many boxes - new/datum/stack_recipe_list("fancy boxes", list ( \ - new /datum/stack_recipe("donut box", /obj/item/storage/fancy/donut_box), \ - new /datum/stack_recipe("egg box", /obj/item/storage/fancy/egg_box), \ - new /datum/stack_recipe("donk-pockets box", /obj/item/storage/box/donkpockets), \ - new /datum/stack_recipe("monkey cube box", /obj/item/storage/box/monkeycubes), \ - new /datum/stack_recipe("box (internals)", /obj/item/storage/box/otwo), \ - null, \ - new /datum/stack_recipe("security-styled box", /obj/item/storage/box/seclooking), \ - new /datum/stack_recipe("buckshot shell box", /obj/item/storage/box/lethalshot), \ - new /datum/stack_recipe("rubber shot shell box", /obj/item/storage/box/rubbershot), \ - new /datum/stack_recipe("beanbag shell box", /obj/item/storage/box/beanbag), \ - new /datum/stack_recipe("slug shell box", /obj/item/storage/box/lethalslugs), \ - new /datum/stack_recipe("stunslug shell box", /obj/item/storage/box/stunslug), \ - new /datum/stack_recipe("tech shell box", /obj/item/storage/box/techsslug), \ - new /datum/stack_recipe("incendiary ammo box", /obj/item/storage/box/fireshot), \ - new /datum/stack_recipe("loose ammo box", /obj/item/storage/box/ammoshells), \ - new /datum/stack_recipe("firing pins box", /obj/item/storage/box/firingpins), \ - null, \ - new /datum/stack_recipe("flashbang box", /obj/item/storage/box/flashbangs), \ - new /datum/stack_recipe("flashes box", /obj/item/storage/box/flashes), \ - new /datum/stack_recipe("handcuffs box", /obj/item/storage/box/handcuffs), \ - new /datum/stack_recipe("ID card box", /obj/item/storage/box/ids), \ - new /datum/stack_recipe("PDA box", /obj/item/storage/box/PDAs), \ - null, \ - new /datum/stack_recipe("pill bottle box", /obj/item/storage/box/pillbottles), \ - new /datum/stack_recipe("beaker box", /obj/item/storage/box/beakers), \ - new /datum/stack_recipe("syringe box", /obj/item/storage/box/syringes), \ - new /datum/stack_recipe("latex gloves box", /obj/item/storage/box/gloves), \ - new /datum/stack_recipe("sterile masks box", /obj/item/storage/box/masks), \ - new /datum/stack_recipe("body bag box", /obj/item/storage/box/bodybags), \ - new /datum/stack_recipe("prescription glasses box", /obj/item/storage/box/rxglasses), \ - null, \ - new /datum/stack_recipe("disk box", /obj/item/storage/box/disks), \ - new /datum/stack_recipe("light tubes box", /obj/item/storage/box/lights/tubes), \ - new /datum/stack_recipe("light bulbs box", /obj/item/storage/box/lights/bulbs), \ - new /datum/stack_recipe("mixed lights box", /obj/item/storage/box/lights/mixed), \ - new /datum/stack_recipe("power cell box", /obj/item/storage/box/cells), \ - new /datum/stack_recipe("mouse traps box", /obj/item/storage/box/mousetraps), \ - new /datum/stack_recipe("candle box", /obj/item/storage/fancy/candle_box), \ - null, \ - new /datum/stack_recipe("box (brown)", /obj/item/storage/box/brown), \ - new /datum/stack_recipe("box (green)", /obj/item/storage/box/green), \ - new /datum/stack_recipe("box (blue)", /obj/item/storage/box/blue), \ - new /datum/stack_recipe("box (red)", /obj/item/storage/box/red), \ - new /datum/stack_recipe("box (yellow)", /obj/item/storage/box/yellow), \ - new /datum/stack_recipe("box (pink)", /obj/item/storage/box/pink), \ - new /datum/stack_recipe("box (purple)", /obj/item/storage/box/purple), \ - )), - null, \ -)) + new/datum/stack_recipe("box", /obj/item/storage/box), \ + new/datum/stack_recipe("sec box", /obj/item/storage/box/seclooking), \ + new/datum/stack_recipe("light tubes", /obj/item/storage/box/lights/tubes), \ + new/datum/stack_recipe("light bulbs", /obj/item/storage/box/lights/bulbs), \ + new/datum/stack_recipe("mouse traps", /obj/item/storage/box/mousetraps), \ + new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ + new/datum/stack_recipe("power cell", /obj/item/storage/box/cells), \ + new/datum/stack_recipe("02", /obj/item/storage/box/otwo), \ + null, \ + new/datum/stack_recipe("lethal ammo box", /obj/item/storage/box/lethalshot), \ + new/datum/stack_recipe("rubber shot ammo box", /obj/item/storage/box/rubbershot), \ + new/datum/stack_recipe("bean bag ammo box", /obj/item/storage/box/beanbag), \ + new/datum/stack_recipe("12g ammo box", /obj/item/storage/box/lethalslugs), \ + new/datum/stack_recipe("stun slug ammo box", /obj/item/storage/box/stunslug), \ + new/datum/stack_recipe("tech shell ammo box", /obj/item/storage/box/techsslug), \ + new/datum/stack_recipe("incendiary ammo box", /obj/item/storage/box/fireshot), \ + new/datum/stack_recipe("firing pins", /obj/item/storage/box/firingpins), \ + new/datum/stack_recipe("loose ammo", /obj/item/storage/box/ammoshells), \ + null, \ + new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ + new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ + new/datum/stack_recipe("folder", /obj/item/folder), \ + new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \ + new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ + null, \ + new/datum/stack_recipe("colored brown", /obj/item/storage/box/brown), \ + new/datum/stack_recipe("colored green", /obj/item/storage/box/green), \ + new/datum/stack_recipe("colored red", /obj/item/storage/box/blue), \ + new/datum/stack_recipe("colored blue", /obj/item/storage/box/red), \ + new/datum/stack_recipe("colored yellow", /obj/item/storage/box/yellow), \ + new/datum/stack_recipe("colored pink", /obj/item/storage/box/pink), \ + new/datum/stack_recipe("colored purple", /obj/item/storage/box/purple), \ + )) /obj/item/stack/sheet/cardboard //BubbleWrap //it's cardboard you fuck name = "cardboard" @@ -481,7 +456,7 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ var/atom/droploc = drop_location() if(use(1)) playsound(I, 'sound/items/bikehorn.ogg', 50, 1, -1) - to_chat(user, "You stamp the cardboard! It's a clown box! Honk!") + to_chat(user, "You stamp the cardboard! Its a clown box! Honk!") if (amount >= 0) new/obj/item/storage/box/clown(droploc) //bugfix else @@ -546,30 +521,31 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ */ GLOBAL_LIST_INIT(brass_recipes, list ( \ new/datum/stack_recipe("wall gear", /obj/structure/destructible/clockwork/wall_gear, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ - null, \ + null, new/datum/stack_recipe("brass pinion airlock", /obj/machinery/door/airlock/clockwork, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass pinion airlock - windowed", /obj/machinery/door/airlock/clockwork/brass, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass windoor", /obj/machinery/door/window/clockwork, 2, time = 30, on_floor = TRUE, window_checks = TRUE), \ - null, \ + null, new/datum/stack_recipe("brass reflector", /obj/structure/destructible/clockwork/reflector, 10, time = 100, one_per_turf = TRUE, on_floor = TRUE, window_checks = TRUE), \ - null, \ + null, new/datum/stack_recipe("brass window - directional", /obj/structure/window/reinforced/clockwork/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ new/datum/stack_recipe("brass window - fulltile", /obj/structure/window/reinforced/clockwork/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ new/datum/stack_recipe("brass chair", /obj/structure/chair/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass bar stool", /obj/structure/chair/stool/bar/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass stool", /obj/structure/chair/stool/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass table frame", /obj/structure/table_frame/brass, 1, time = 5, one_per_turf = TRUE, on_floor = TRUE), \ - null, \ + null, new/datum/stack_recipe("sender - pressure sensor", /obj/structure/destructible/clockwork/trap/trigger/pressure_sensor, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("sender - mech sensor", /obj/structure/destructible/clockwork/trap/trigger/pressure_sensor/mech, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("sender - lever", /obj/structure/destructible/clockwork/trap/trigger/lever, 1, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("sender - repeater", /obj/structure/destructible/clockwork/trap/trigger/repeater, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ - null, \ + null, new/datum/stack_recipe("receiver - brass skewer", /obj/structure/destructible/clockwork/trap/brass_skewer, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE, placement_checks = STACK_CHECK_ADJACENT), \ new/datum/stack_recipe("receiver - steam vent", /obj/structure/destructible/clockwork/trap/steam_vent, 3, time = 30, one_per_turf = TRUE, on_floor = TRUE, placement_checks = STACK_CHECK_CARDINALS), \ new/datum/stack_recipe("receiver - power nullifier", /obj/structure/destructible/clockwork/trap/power_nullifier, 5, time = 20, one_per_turf = TRUE, on_floor = TRUE, placement_checks = STACK_CHECK_CARDINALS), \ - null, \ + null, new/datum/stack_recipe("brass flask", /obj/item/reagent_containers/food/drinks/bottle/holyoil/empty), \ + )) /obj/item/stack/tile/brass @@ -697,8 +673,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ merge_type = /obj/item/stack/sheet/bone GLOBAL_LIST_INIT(plastic_recipes, list( - new /datum/stack_recipe("see-through plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ - new /datum/stack_recipe("opaque plastic flaps", /obj/structure/plasticflaps/opaque, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ + new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ new /datum/stack_recipe("water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/empty), \ new /datum/stack_recipe("large water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty,3), \ new /datum/stack_recipe("large trash cart", /obj/structure/closet/crate/bin,50),\ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 4180681754..e8bd50f19b 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -192,15 +192,9 @@ var/obj/O if(R.max_res_amount > 1) //Is it a stack? O = new R.result_type(usr.drop_location(), R.res_amount * multiplier) - else if(ispath(R.result_type, /turf)) - var/turf/T = usr.drop_location() - if(!isturf(T)) - return - T.PlaceOnTop(R.result_type, flags = CHANGETURF_INHERIT_AIR) else O = new R.result_type(usr.drop_location()) - if(O) - O.setDir(usr.dir) + O.setDir(usr.dir) use(R.req_amount * multiplier) //START: oh fuck i'm so sorry @@ -445,4 +439,4 @@ /datum/stack_recipe_list/New(title, recipes) src.title = title - src.recipes = recipes + src.recipes = recipes \ No newline at end of file diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 7664da6ce4..fcf28b48ee 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -131,8 +131,7 @@ /obj/item/storage/bag/ore/dropped() . = ..() - if(listeningTo) - UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) + UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) listeningTo = null /obj/item/storage/bag/ore/proc/Pickup_ores(mob/living/user) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 70c3a5dd4b..1e37de2581 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -225,31 +225,16 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) STR.max_items = 10 /obj/item/storage/toolbox/artistic/PopulateContents() - new /obj/item/storage/crayons(src) - new /obj/item/crowbar(src) - new /obj/item/stack/cable_coil/red(src) - new /obj/item/stack/cable_coil/yellow(src) - new /obj/item/stack/cable_coil/blue(src) - new /obj/item/stack/cable_coil/green(src) - new /obj/item/stack/cable_coil/pink(src) - new /obj/item/stack/cable_coil/orange(src) - new /obj/item/stack/cable_coil/cyan(src) - new /obj/item/stack/cable_coil/white(src) - -/obj/item/storage/toolbox/ammo - name = "ammo box" - desc = "It contains a few clips." - icon_state = "ammobox" - item_state = "ammobox" - -/obj/item/storage/toolbox/ammo/PopulateContents() - new /obj/item/ammo_box/a762(src) - new /obj/item/ammo_box/a762(src) - new /obj/item/ammo_box/a762(src) - new /obj/item/ammo_box/a762(src) - new /obj/item/ammo_box/a762(src) - new /obj/item/ammo_box/a762(src) - new /obj/item/ammo_box/a762(src) + new/obj/item/storage/crayons(src) + new/obj/item/crowbar(src) + new/obj/item/stack/cable_coil/red(src) + new/obj/item/stack/cable_coil/yellow(src) + new/obj/item/stack/cable_coil/blue(src) + new/obj/item/stack/cable_coil/green(src) + new/obj/item/stack/cable_coil/pink(src) + new/obj/item/stack/cable_coil/orange(src) + new/obj/item/stack/cable_coil/cyan(src) + new/obj/item/stack/cable_coil/white(src) /obj/item/storage/toolbox/gold_real name = "golden toolbox" @@ -329,4 +314,4 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) generate_rubber_toolbox_icon() icon = GLOB.rubber_toolbox_icons[icon_state] . = ..() - AddComponent(/datum/component/bouncy) + AddComponent(/datum/component/bouncy) \ No newline at end of file diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 6972587263..b5c8f6b631 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -36,7 +36,7 @@ . = ..() if(preload_cell_type) if(!ispath(preload_cell_type,/obj/item/stock_parts/cell)) - log_mapping("[src] at [AREACOORD(src)] had an invalid preload_cell_type: [preload_cell_type].") + log_world("### MAP WARNING, [src] at [AREACOORD(src)] had an invalid preload_cell_type: [preload_cell_type].") else cell = new preload_cell_type(src) update_icon() diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index d7891feaa0..dd7d46d0d7 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -872,7 +872,7 @@ user.visible_message("[user] blasts \the [target] with \the [src]!") playsound(target, 'sound/magic/disintegrate.ogg', 100, 1) W.break_wall() - W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + W.ScrapeAway() return //HF blade diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 9fa4d730b6..e61a17b4ec 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -88,28 +88,6 @@ else return ..() -/obj/structure/chair/alt_attack_hand(mob/living/user) - if(Adjacent(user) && istype(user)) - if(!item_chair || !user.can_hold_items() || !has_buckled_mobs() || buckled_mobs.len > 1 || dir != user.dir || flags_1 & NODECONSTRUCT_1) - return TRUE - if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - to_chat(user, "You can't do that right now!") - return TRUE - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) - to_chat(user, "You're too exhausted for that.") - return TRUE - var/mob/living/poordude = buckled_mobs[1] - if(!istype(poordude)) - return TRUE - user.visible_message("[user] pulls [src] out from under [poordude].", "You pull [src] out from under [poordude].") - var/C = new item_chair(loc) - user.put_in_hands(C) - poordude.Knockdown(20)//rip in peace - user.adjustStaminaLoss(5) - unbuckle_all_mobs(TRUE) - qdel(src) - return TRUE - /obj/structure/chair/attack_tk(mob/user) if(!anchored || has_buckled_mobs() || !isturf(user.loc)) ..() diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 8b078802f0..771b4bc04e 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -237,12 +237,6 @@ start_showpiece_type = /obj/item/clothing/mask/facehugger/lamarr req_access = list(ACCESS_RD) -/obj/structure/displaycase/clown - desc = "In the event of clown, honk glass." - alert = TRUE - start_showpiece_type = /obj/item/bikehorn - req_access = list(ACCESS_CENT_GENERAL) - /obj/structure/displaycase/trophy name = "trophy display case" desc = "Store your trophies of accomplishment in here, and they will stay forever." diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 705ca9a884..fd6030453c 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -626,13 +626,7 @@ O.equip(new_spawn, FALSE, new_spawn.client) SSjob.equip_loadout(null, new_spawn, FALSE) SSquirks.AssignQuirks(new_spawn, new_spawn.client, TRUE, TRUE, null, FALSE, new_spawn) - new_spawn.AddElement(/datum/element/ghost_role_eligibility) - ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, GHOSTROLE_TRAIT) ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT) - to_chat(new_spawn,"You maybe sharing your cafe with some ninja-captured individuals, so make sure to only interact with the ghosts you hear as a ghost!") - to_chat(new_spawn,"You can turn yourself into a ghost and freely reenter your body with the ghost action.") - var/datum/action/ghost/G = new(new_spawn) - G.Grant(new_spawn) /datum/outfit/ghostcafe name = "ID, jumpsuit and shoes" diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 205e87329b..c0519f2504 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -84,7 +84,7 @@ /obj/structure/grille/attack_animal(mob/user) . = ..() - if(!shock(user, 70) && !QDELETED(src)) //Last hit still shocks but shouldn't deal damage to the grille) + if(!shock(user, 70)) take_damage(rand(5,10), BRUTE, "melee", 1) /obj/structure/grille/attack_paw(mob/user) diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index a7eaea0d16..b946a06432 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -60,7 +60,7 @@ to_chat(user, "You build a floor.") var/turf/T = src.loc if(isspaceturf(T)) - T.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + T.PlaceOnTop(/turf/open/floor/plating) qdel(src) return TRUE return FALSE diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm index f2c4e628e0..bd657fe1e8 100644 --- a/code/game/objects/structures/stairs.dm +++ b/code/game/objects/structures/stairs.dm @@ -102,13 +102,13 @@ /obj/structure/stairs/proc/force_open_above() var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP) if(T && !istype(T)) - T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf(/turf/open/openspace) /obj/structure/stairs/proc/on_multiz_new(turf/source, dir) if(dir == UP) var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP) if(T && !istype(T)) - T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf(/turf/open/openspace) /obj/structure/stairs/intercept_zImpact(atom/movable/AM, levels = 1) . = ..() diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 0bb081625b..99f8875aef 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -182,17 +182,6 @@ else return ..() -/obj/structure/table/alt_attack_hand(mob/user) - if(user && Adjacent(user) && !user.incapacitated()) - user.setClickCooldown(CLICK_CD_MELEE) - if(istype(user) && user.a_intent == INTENT_HARM) - user.visible_message("[user] slams [user.p_their()] palms down on [src].", "You slam your palms down on [src].") - playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) - else - user.visible_message("[user] slaps [user.p_their()] hands on [src].", "You slap your hands on [src].") - playsound(src, 'sound/weapons/tap.ogg', 50, 1) - user.do_attack_animation(src) - return TRUE /obj/structure/table/deconstruct(disassembled = TRUE, wrench_disassembly = 0) if(!(flags_1 & NODECONSTRUCT_1)) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index e2e0f703f7..76c8f7f11f 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -5,8 +5,6 @@ icon_state = "toilet00" density = FALSE anchored = TRUE - can_buckle = TRUE - buckle_lying = 0 var/open = FALSE //if the lid is up var/cistern = 0 //if the cistern bit is open var/w_items = 0 //the combined w_class of all the items in the cistern @@ -684,4 +682,4 @@ else playsound(loc, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(loc, 'sound/items/welder.ogg', 80, 1) + playsound(loc, 'sound/items/welder.ogg', 80, 1) \ No newline at end of file diff --git a/code/game/turfs/baseturf_skipover.dm b/code/game/turfs/baseturf_skipover.dm index 4df8c86e62..644714f8ed 100644 --- a/code/game/turfs/baseturf_skipover.dm +++ b/code/game/turfs/baseturf_skipover.dm @@ -10,9 +10,4 @@ /turf/baseturf_skipover/shuttle name = "Shuttle baseturf skipover" - desc = "Acts as the bottom of the shuttle, if this isn't here the shuttle floor is broken through." - -/turf/baseturf_bottom - name = "Z-level baseturf placeholder" - desc = "Marker for z-level baseturf, usually resolves to space." - baseturfs = /turf/baseturf_bottom + desc = "Acts as the bottom of the shuttle, if this isn't here the shuttle floor is broken through." \ No newline at end of file diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index bc4cd8df33..6a055bbd35 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -1,7 +1,6 @@ // This is a list of turf types we dont want to assign to baseturfs unless through initialization or explicitly GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( /turf/open/space, - /turf/baseturf_bottom ))) /turf/proc/empty(turf_type=/turf/open/space, baseturf_type, list/ignore_typecache, flags) @@ -57,20 +56,12 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( // Creates a new turf // new_baseturfs can be either a single type or list of types, formated the same as baseturfs. see turf.dm /turf/proc/ChangeTurf(path, list/new_baseturfs, flags) - switch(path) - if(null) - return - if(/turf/baseturf_bottom) - path = SSmapping.level_trait(z, ZTRAIT_BASETURF) || /turf/open/space - if (!ispath(path)) - path = text2path(path) - if (!ispath(path)) - warning("Z-level [z] has invalid baseturf '[SSmapping.level_trait(z, ZTRAIT_BASETURF)]'") - path = /turf/open/space - if(/turf/open/space/basic) - // basic doesn't initialize and this will cause issues - // no warning though because this can happen naturaly as a result of it being built on top of - path = /turf/open/space + if(!path) + return + if(path == /turf/open/space/basic) + // basic doesn't initialize and this will cause issues + // no warning though because this can happen naturaly as a result of it being built on top of + path = /turf/open/space if(!GLOB.use_preloader && path == type && !(flags & CHANGETURF_FORCEOP)) // Don't no-op if the map loader requires it to be reconstructed return src if(flags & CHANGETURF_SKIP) @@ -137,15 +128,16 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( /turf/open/ChangeTurf(path, list/new_baseturfs, flags) if ((flags & CHANGETURF_INHERIT_AIR) && ispath(path, /turf/open)) SSair.remove_from_active(src) - var/datum/gas_mixture/stashed_air = new() - stashed_air.copy_from(air) + var/stashed_air = air + air = null // so that it doesn't get deleted . = ..() - if (!.) // changeturf failed or didn't do anything - QDEL_NULL(stashed_air) + if (!. || . == src) // changeturf failed or didn't do anything + air = stashed_air return var/turf/open/newTurf = . - newTurf.air.copy_from(stashed_air) - QDEL_NULL(stashed_air) + if (!istype(newTurf.air, /datum/gas_mixture/immutable/space)) + QDEL_NULL(newTurf.air) + newTurf.air = stashed_air SSair.add_to_active(newTurf) else if(ispath(path,/turf/closed)) @@ -223,7 +215,7 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( newT.assemble_baseturfs(initial(fake_turf_type.baseturfs)) // The baseturfs list is created like roundstart if(!length(newT.baseturfs)) newT.baseturfs = list(baseturfs) - newT.baseturfs -= GLOB.blacklisted_automated_baseturfs + newT.baseturfs -= newT.baseturfs & GLOB.blacklisted_automated_baseturfs newT.baseturfs.Insert(1, old_baseturfs) // The old baseturfs are put underneath return newT if(!length(baseturfs)) @@ -323,5 +315,5 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( SSair.add_to_active(src) /turf/proc/ReplaceWithLattice() - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() new /obj/structure/lattice(locate(x, y, z)) diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 9e593cafce..6297cadc63 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -23,7 +23,7 @@ icon = 'icons/turf/walls.dmi' explosion_block = 50 -/turf/closed/indestructible/TerraformTurf(path, new_baseturf, flags, defer_change = FALSE, ignore_air = FALSE) +/turf/closed/indestructible/TerraformTurf(path, defer_change = FALSE, ignore_air = FALSE) return /turf/closed/indestructible/acid_act(acidpwr, acid_volume, acid_id) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 577c45a7f0..4bdb13effc 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -58,7 +58,7 @@ /turf/open/indestructible/singularity_act() return -/turf/open/indestructible/TerraformTurf(path, new_baseturf, flags, defer_change = FALSE, ignore_air = FALSE) +/turf/open/indestructible/TerraformTurf(path, defer_change = FALSE, ignore_air = FALSE) return /turf/open/indestructible/sound diff --git a/code/game/turfs/openspace/openspace.dm b/code/game/turfs/openspace/openspace.dm index 66507e7053..e68aabcd08 100644 --- a/code/game/turfs/openspace/openspace.dm +++ b/code/game/turfs/openspace/openspace.dm @@ -106,7 +106,7 @@ qdel(L) playsound(src, 'sound/weapons/genhit.ogg', 50, 1) to_chat(user, "You build a floor.") - PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + PlaceOnTop(/turf/open/floor/plating) else to_chat(user, "You need one floor tile to build a floor!") else diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index dab0c1c376..0a7b507488 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -38,7 +38,7 @@ switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, "You build a floor.") - PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + PlaceOnTop(/turf/open/floor/plating) return TRUE return FALSE @@ -70,7 +70,7 @@ playsound(src, 'sound/weapons/genhit.ogg', 50, 1) to_chat(user, "You build a floor.") // Create a floor, which has this chasm underneath it - PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + PlaceOnTop(/turf/open/floor/plating) else to_chat(user, "You need one floor tile to build a floor!") else diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 3f46994da9..d14a4c7385 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -62,29 +62,29 @@ if(severity != 1 && shielded && target != src) return if(target == src) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() return if(target != null) severity = 3 switch(severity) if(1) - ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) + ScrapeAway(2) if(2) switch(pick(1,2;75,3)) if(1) if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor)) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() ReplaceWithLattice() else - ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) + ScrapeAway(2) if(prob(33)) new /obj/item/stack/sheet/metal(src) if(2) - ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) + ScrapeAway(2) if(3) if(prob(80)) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() else break_tile() hotspot_expose(1000,CELL_VOLUME) @@ -135,7 +135,7 @@ burnt = 1 /turf/open/floor/proc/make_plating() - return ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + return ScrapeAway() /turf/open/floor/ChangeTurf(path, new_baseturf, flags) if(!isfloorturf(src)) @@ -213,15 +213,15 @@ /turf/open/floor/narsie_act(force, ignore_mobs, probability = 20) . = ..() if(.) - ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) + ChangeTurf(/turf/open/floor/engine/cult) /turf/open/floor/ratvar_act(force, ignore_mobs) . = ..() if(.) - ChangeTurf(/turf/open/floor/clockwork, flags = CHANGETURF_INHERIT_AIR) + ChangeTurf(/turf/open/floor/clockwork) /turf/open/floor/acid_melt() - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() /turf/open/floor/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) @@ -267,7 +267,7 @@ A.autoclose = TRUE return TRUE if(RCD_DECONSTRUCT) - if(ScrapeAway(flags = CHANGETURF_INHERIT_AIR) == src) + if(ScrapeAway() == src) return FALSE to_chat(user, "You deconstruct [src].") return TRUE diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 8e0eace9cd..ae67edf073 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -11,7 +11,7 @@ name = "plating" icon_state = "plating" intact = FALSE - baseturfs = /turf/baseturf_bottom + baseturfs = /turf/open/space footstep = FOOTSTEP_PLATING barefootstep = FOOTSTEP_HARD_BAREFOOT clawfootstep = FOOTSTEP_HARD_CLAW @@ -61,7 +61,7 @@ to_chat(user, "You begin reinforcing the floor...") if(do_after(user, 30, target = src)) if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine)) - PlaceOnTop(/turf/open/floor/engine, flags = CHANGETURF_INHERIT_AIR) + PlaceOnTop(/turf/open/floor/engine) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) R.use(2) to_chat(user, "You reinforce the floor.") @@ -76,7 +76,7 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR) + var/turf/open/floor/T = PlaceOnTop(W.turf_type) if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow var/obj/item/stack/tile/light/L = W var/turf/open/floor/light/F = T @@ -117,7 +117,7 @@ qdel(L) to_chat(user, "You reinforce the foamed plating with tiling.") playsound(src, 'sound/weapons/Genhit.ogg', 50, TRUE) - ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + ChangeTurf(/turf/open/floor/plating) else playsound(src, 'sound/weapons/tap.ogg', 100, TRUE) //The attack sound is muffled by the foam itself user.changeNext_move(CLICK_CD_MELEE) @@ -125,7 +125,7 @@ if(prob(I.force * 20 - 25)) user.visible_message("[user] smashes through [src]!", \ "You smash through [src] with [I]!") - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() else to_chat(user, "You hit [src], to no effect!") @@ -136,13 +136,13 @@ /turf/open/floor/plating/foam/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) if(passed_mode == RCD_FLOORWALL) to_chat(user, "You build a floor.") - ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + ChangeTurf(/turf/open/floor/plating) return TRUE return FALSE /turf/open/floor/plating/foam/ex_act() ..() - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() /turf/open/floor/plating/foam/tool_act(mob/living/user, obj/item/I, tool_type) return diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index ecc8ee5e8d..9f2da57312 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -76,6 +76,11 @@ for(var/obj/item/stack/ore/O in src) SEND_SIGNAL(W, COMSIG_PARENT_ATTACKBY, O) +/turf/open/floor/plating/asteroid/singularity_act() + if(is_planet_level(z)) + return ..() + ScrapeAway() + /turf/open/floor/plating/asteroid/ex_act(severity, target) . = SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target) contents_explosion(severity, target) @@ -127,7 +132,6 @@ /turf/open/floor/plating/asteroid/airless initial_gas_mix = AIRLESS_ATMOS - baseturfs = /turf/open/floor/plating/asteroid/airless turf_type = /turf/open/floor/plating/asteroid/airless diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index 28ffbbd1ff..b04f89f8be 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -43,7 +43,7 @@ return TRUE if(floor_tile) new floor_tile(src, 2) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() return TRUE /turf/open/floor/engine/acid_act(acidpwr, acid_volume) @@ -56,23 +56,23 @@ if(severity != 1 && shielded && target != src) return if(target == src) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() return switch(severity) if(1) if(prob(80)) if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor)) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() ReplaceWithLattice() else - ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) + ScrapeAway(2) else if(prob(50)) - ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) + ScrapeAway(2) else - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() if(2) if(prob(50)) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() /turf/open/floor/engine/singularity_pull(S, current_size) ..() diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 2f8ae0cb93..362b410cbb 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -54,7 +54,7 @@ switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, "You build a floor.") - PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + PlaceOnTop(/turf/open/floor/plating) return TRUE return FALSE diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 5278374abd..f38f13e657 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -125,7 +125,7 @@ qdel(L) playsound(src, 'sound/weapons/genhit.ogg', 50, 1) to_chat(user, "You build a floor.") - PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + PlaceOnTop(/turf/open/floor/plating) else to_chat(user, "You need one floor tile to build a floor!") else @@ -212,7 +212,7 @@ switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, "You build a floor.") - PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + PlaceOnTop(/turf/open/floor/plating) return TRUE return FALSE diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index d280ba408b..d618e457b0 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -9,7 +9,7 @@ // A list will be created in initialization that figures out the baseturf's baseturf etc. // In the case of a list it is sorted from bottom layer to top. // This shouldn't be modified directly, use the helper procs. - var/list/baseturfs = /turf/baseturf_bottom + var/list/baseturfs = /turf/open/space var/temperature = T20C var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed @@ -391,7 +391,7 @@ continue if(O.invisibility == INVISIBILITY_MAXIMUM) O.singularity_act() - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + ScrapeAway() return(2) /turf/proc/can_have_cabling() @@ -564,4 +564,4 @@ //Whatever happens after high temperature fire dies out or thermite reaction works. //Should return new turf /turf/proc/Melt() - return ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + return ScrapeAway() diff --git a/code/game/world.dm b/code/game/world.dm index 4043f15f6f..25b8c4d9f3 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -108,7 +108,6 @@ GLOBAL_VAR(restart_counter) GLOB.world_href_log = "[GLOB.log_directory]/hrefs.log" GLOB.sql_error_log = "[GLOB.log_directory]/sql.log" GLOB.world_qdel_log = "[GLOB.log_directory]/qdel.log" - GLOB.world_map_error_log = "[GLOB.log_directory]/map_errors.log" GLOB.world_runtime_log = "[GLOB.log_directory]/runtime.log" GLOB.query_debug_log = "[GLOB.log_directory]/query_debug.log" GLOB.world_job_debug_log = "[GLOB.log_directory]/job_debug.log" diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 03670009f8..839292871c 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -16,16 +16,8 @@ if (text2num(computer_id) == 2147483647) //this cid causes stickybans to go haywire log_access("Failed Login (invalid cid): [key] [address]-[computer_id]") return list("reason"="invalid login data", "desc"="Error: Could not check ban status, Please try again. Error message: Your computer provided an invalid Computer ID.)") - - if (type == "world") - return ..() //shunt world topic banchecks to purely to byond's internal ban system - + var/admin = 0 var/ckey = ckey(key) - var/client/C = GLOB.directory[ckey] - if (C && ckey == C.ckey && computer_id == C.computer_id && address == C.address) - return //don't recheck connected clients. - - var/admin = FALSE if(GLOB.admin_datums[ckey] || GLOB.deadmins[ckey]) admin = 1 @@ -134,6 +126,7 @@ bannedckey = ban["ckey"] var/newmatch = FALSE + var/client/C = GLOB.directory[ckey] var/cachedban = SSstickyban.cache[bannedckey] //rogue ban in the process of being reverted. diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 1cecbbd0e5..895f8c9f88 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -693,7 +693,7 @@ var/prev_dynamic_voting = CONFIG_GET(flag/dynamic_voting) CONFIG_SET(flag/dynamic_voting,!prev_dynamic_voting) if (!prev_dynamic_voting) - to_chat(world, "Vote is now a ranked choice of dynamic storytellers.") + to_chat(world, "Vote is now between extended and dynamic chaos.") else to_chat(world, "Vote is now between extended and secret.") log_admin("[key_name(usr)] [prev_dynamic_voting ? "disabled" : "enabled"] dynamic voting.") diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index acd320856a..2b8d365e15 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -35,9 +35,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( /client/proc/cmd_admin_grantfullaccess, /client/proc/cmd_admin_areatest_all, /client/proc/cmd_admin_areatest_station, - #ifdef TESTING - /client/proc/see_dirty_varedits, - #endif /client/proc/cmd_admin_test_atmos_controllers, /client/proc/cmd_admin_rejuvenate, /datum/admins/proc/show_traitor_panel, @@ -87,24 +84,8 @@ GLOBAL_PROTECT(admin_verbs_debug_mapping) SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Camera Range") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Camera Range") -#ifdef TESTING -GLOBAL_LIST_EMPTY(dirty_vars) -/client/proc/see_dirty_varedits() - set category = "Mapping" - set name = "Dirty Varedits" - - var/list/dat = list() - dat += "

    Abandon all hope ye who enter here



    " - for(var/thing in GLOB.dirty_vars) - dat += "[thing]
    " - CHECK_TICK - var/datum/browser/popup = new(usr, "dirty_vars", "Dirty Varedits", 900, 750) - popup.set_content(dat.Join()) - popup.open() -#endif - /client/proc/sec_camera_report() set category = "Mapping" set name = "Camera Report" diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 7675f858ee..09a8f692d8 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -137,9 +137,9 @@ /datum/admins/proc/makeWizard() - var/list/mob/candidates = pollGhostCandidates("Do you wish to be considered for the position of a Wizard Foundation 'diplomat'?", ROLE_WIZARD, null) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for the position of a Wizard Foundation 'diplomat'?", ROLE_WIZARD, null) - var/mob/selected = pick_n_take(candidates) + var/mob/dead/observer/selected = pick_n_take(candidates) var/mob/living/carbon/human/new_character = makeBody(selected) new_character.mind.make_Wizard() @@ -214,9 +214,9 @@ /datum/admins/proc/makeNukeTeam() var/datum/game_mode/nuclear/temp = new - var/list/mob/candidates = pollGhostCandidates("Do you wish to be considered for a nuke team being sent in?", ROLE_OPERATIVE, temp) - var/list/mob/chosen = list() - var/mob/theghost = null + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for a nuke team being sent in?", ROLE_OPERATIVE, temp) + var/list/mob/dead/observer/chosen = list() + var/mob/dead/observer/theghost = null if(candidates.len) var/numagents = 5 @@ -378,7 +378,7 @@ ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" ? TRUE : FALSE ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ? TRUE : FALSE - var/list/mob/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc] ?", "deathsquad", null) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc] ?", "deathsquad", null) var/teamSpawned = FALSE if(candidates.len > 0) @@ -404,7 +404,7 @@ numagents-- continue // This guy's unlucky, not enough spawn points, we skip him. var/spawnloc = spawnpoints[numagents] - var/mob/chosen_candidate = pick(candidates) + var/mob/dead/observer/chosen_candidate = pick(candidates) candidates -= chosen_candidate if(!chosen_candidate.key) continue diff --git a/code/modules/antagonists/blob/blob/powers.dm b/code/modules/antagonists/blob/blob/powers.dm index aeb1392432..73c0776ad7 100644 --- a/code/modules/antagonists/blob/blob/powers.dm +++ b/code/modules/antagonists/blob/blob/powers.dm @@ -166,7 +166,7 @@ if(!can_buy(40)) return - var/list/mob/candidates = pollGhostCandidates("Do you want to play as a [blob_reagent_datum.name] blobbernaut?", ROLE_BLOB, null, ROLE_BLOB, 50) //players must answer rapidly + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as a [blob_reagent_datum.name] blobbernaut?", ROLE_BLOB, null, ROLE_BLOB, 50) //players must answer rapidly if(LAZYLEN(candidates)) //if we got at least one candidate, they're a blobbernaut now. B.max_integrity = initial(B.max_integrity) * 0.25 //factories that produced a blobbernaut have much lower health B.obj_integrity = min(B.obj_integrity, B.max_integrity) @@ -181,7 +181,7 @@ blobber.update_icons() blobber.adjustHealth(blobber.maxHealth * 0.5) blob_mobs += blobber - var/mob/C = pick(candidates) + var/mob/dead/observer/C = pick(candidates) C.transfer_ckey(blobber) SEND_SOUND(blobber, sound('sound/effects/blobattack.ogg')) SEND_SOUND(blobber, sound('sound/effects/attackblob.ogg')) diff --git a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm index 501bcdc1c4..0365ae63af 100644 --- a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm +++ b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm @@ -139,7 +139,7 @@ var/new_thing_type = fabrication_values["new_obj_type"] if(isturf(target)) //if our target is a turf, we're just going to ChangeTurf it and assume it'll work out. var/turf/T = target - T.ChangeTurf(new_thing_type, flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf(new_thing_type) else if(new_thing_type) if(fabrication_values["dir_in_new"]) diff --git a/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm b/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm index d823f19d4a..32b1b61dd1 100644 --- a/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm +++ b/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm @@ -59,7 +59,7 @@ if(anchored) T.PlaceOnTop(/turf/closed/wall/clockwork) else - T.PlaceOnTop(/turf/open/floor/clockwork, flags = CHANGETURF_INHERIT_AIR) + T.PlaceOnTop(/turf/open/floor/clockwork) new /obj/structure/falsewall/brass(T) qdel(src) else diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 6f340b9271..f38f379abe 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -239,9 +239,9 @@ var/turf/T = safepick(validturfs) if(T) if(istype(T, /turf/open/floor/plating)) - T.PlaceOnTop(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) + T.PlaceOnTop(/turf/open/floor/engine/cult) else - T.ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf(/turf/open/floor/engine/cult) else var/turf/open/floor/engine/cult/F = safepick(cultturfs) if(F) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index b5ce5538e9..0a223f8b10 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -76,10 +76,9 @@ GLOBAL_VAR_INIT(war_declared, FALSE) CONFIG_SET(number/shuttle_refuel_delay, max(CONFIG_GET(number/shuttle_refuel_delay), CHALLENGE_SHUTTLE_DELAY)) if(istype(SSticker.mode, /datum/game_mode/dynamic)) var/datum/game_mode/dynamic/mode = SSticker.mode - if(!(mode.storyteller.flags & WAROPS_ALWAYS_ALLOWED)) - var/threat_spent = CONFIG_GET(number/dynamic_warops_cost) - mode.spend_threat(threat_spent) - mode.log_threat("Nuke ops spent [threat_spent] on war ops.") + var/threat_spent = CONFIG_GET(number/dynamic_warops_cost) + mode.spend_threat(threat_spent) + mode.log_threat("Nuke ops spent [threat_spent] on war ops.") SSblackbox.record_feedback("amount", "nuclear_challenge_mode", 1) qdel(src) @@ -102,13 +101,12 @@ GLOBAL_VAR_INIT(war_declared, FALSE) return FALSE if(istype(SSticker.mode, /datum/game_mode/dynamic)) var/datum/game_mode/dynamic/mode = SSticker.mode - if(!(mode.storyteller.flags & WAROPS_ALWAYS_ALLOWED)) - if(mode.threat_level < CONFIG_GET(number/dynamic_warops_requirement)) - to_chat(user, "Due to the dynamic space in which the station resides, you are too deep into Nanotrasen territory to reasonably go loud.") - return FALSE - else if(mode.threat < CONFIG_GET(number/dynamic_warops_cost)) - to_chat(user, "Due to recent threats on the station, Nanotrasen is looking too closely for a war declaration to be wise.") - return FALSE + if(mode.threat_level < CONFIG_GET(number/dynamic_warops_requirement)) + to_chat(user, "Due to the dynamic space in which the station resides, you are too deep into Nanotrasen territory to reasonably go loud.") + return FALSE + else if(mode.threat < CONFIG_GET(number/dynamic_warops_cost)) + to_chat(user, "Due to recent threats on the station, Nanotrasen is looking too closely for a war declaration to be wise.") + return FALSE return TRUE /obj/item/nuclear_challenge/clownops diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 40d1712bc3..ac19df3631 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -80,8 +80,6 @@ if(istype(SSticker.mode,/datum/game_mode/dynamic)) mode = SSticker.mode is_dynamic = TRUE - if(mode.storyteller.flags & NO_ASSASSIN) - is_hijacker = FALSE if(GLOB.joined_player_list.len>=GLOB.dynamic_high_pop_limit) is_hijacker = (prob(10) && mode.threat_level > CONFIG_GET(number/dynamic_hijack_high_population_requirement)) else @@ -182,7 +180,7 @@ destroy_objective.owner = owner destroy_objective.find_target() add_objective(destroy_objective) - else if(prob(30) || (mode.storyteller.flags & NO_ASSASSIN)) + else if(prob(30)) var/datum/objective/maroon/maroon_objective = new maroon_objective.owner = owner maroon_objective.find_target() diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm index 6bafba9abc..07ee17a1bd 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -61,6 +61,8 @@ //Actually transfer the gas var/datum/gas_mixture/removed = air2.remove(transfer_moles) + removed.react(src) + update_parents() return removed diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index db8a8e90ad..38178a4339 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -57,10 +57,10 @@ if(item.parent) var/static/pipenetwarnings = 10 if(pipenetwarnings > 0) - log_mapping("build_pipeline(): [item.type] added to a pipenet while still having one. (pipes leading to the same spot stacking in one turf) Nearby: ([item.x], [item.y], [item.z]).") + warning("build_pipeline(): [item.type] added to a pipenet while still having one. (pipes leading to the same spot stacking in one turf) Nearby: ([item.x], [item.y], [item.z])") pipenetwarnings -= 1 if(pipenetwarnings == 0) - log_mapping("build_pipeline(): further messages about pipenets will be suppressed") + warning("build_pipeline(): further messages about pipenets will be suppressed") members += item possible_expansions += item diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm index 329c77ba14..d0c78d21b3 100644 --- a/code/modules/atmospherics/machinery/other/meter.dm +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -56,7 +56,7 @@ pixel_y = (new_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y /obj/machinery/meter/process_atmos() - if(!(target?.flags_1 & INITIALIZED_1)) + if(!target) icon_state = "meterX" return 0 diff --git a/code/modules/buildmode/submodes/basic.dm b/code/modules/buildmode/submodes/basic.dm index fe3d831d81..4f7b176691 100644 --- a/code/modules/buildmode/submodes/basic.dm +++ b/code/modules/buildmode/submodes/basic.dm @@ -22,9 +22,9 @@ if(istype(object,/turf) && left_click && !alt_click && !ctrl_click) var/turf/T = object if(isspaceturf(object)) - T.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + T.PlaceOnTop(/turf/open/floor/plating) else if(isplatingturf(object)) - T.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR) + T.PlaceOnTop(/turf/open/floor/plasteel) else if(isfloorturf(object)) T.PlaceOnTop(/turf/closed/wall) else if(iswallturf(object)) @@ -35,7 +35,7 @@ log_admin("Build Mode: [key_name(c)] deleted [object] at [AREACOORD(object)]") if(isturf(object)) var/turf/T = object - T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + T.ScrapeAway() else if(isobj(object)) qdel(object) return diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index 259ea2d7e3..58677814a6 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -93,12 +93,9 @@ /datum/supply_pack/security/armory/trackingimp name = "Tracking Implants Crate" - desc = "Contains four tracking implants and three tracking speedloaders of tracing .38 ammo. Requires Armory access to open." - cost = 1100 - contains = list(/obj/item/storage/box/trackimp, - /obj/item/ammo_box/c38/trac, - /obj/item/ammo_box/c38/trac, - /obj/item/ammo_box/c38/trac) + desc = "Contains four tracking implants. Requires Armory access to open." + cost = 1050 + contains = list(/obj/item/storage/box/trackimp) crate_name = "tracking implant crate" /datum/supply_pack/security/armory/fire @@ -175,32 +172,6 @@ /obj/item/storage/box/beanbag) crate_name = "riot shotgun crate" -/datum/supply_pack/security/armory/russian - name = "Russian Surplus Crate" - desc = "Hello Comrade, we have the most modern russian military equipment the black market can offer, for the right price of course. Sadly we couldnt remove the lock so it requires Armory access to open." - cost = 5000 - contraband = TRUE - contains = list(/obj/item/reagent_containers/food/snacks/rationpack, - /obj/item/ammo_box/a762, - /obj/item/storage/toolbox/ammo, - /obj/item/clothing/suit/armor/vest/russian, - /obj/item/clothing/head/helmet/rus_helmet, - /obj/item/clothing/shoes/russian, - /obj/item/clothing/gloves/combat, - /obj/item/clothing/under/syndicate/rus_army, - /obj/item/clothing/under/soviet, - /obj/item/clothing/mask/russian_balaclava, - /obj/item/clothing/head/helmet/rus_ushanka, - /obj/item/clothing/suit/armor/vest/russian_coat, - /obj/item/gun/ballistic/shotgun/boltaction, - /obj/item/gun/ballistic/shotgun/boltaction) - crate_name = "surplus military crate" - -/datum/supply_pack/security/armory/russian/fill(obj/structure/closet/crate/C) - for(var/i in 1 to 10) - var/item = pick(contains) - new item(C) - /datum/supply_pack/security/armory/swat name = "SWAT Crate" desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open." @@ -252,7 +223,7 @@ /obj/item/ammo_box/magazine/wt550m9) crate_name = "auto rifle ammo crate" -/datum/supply_pack/security/armory/wt550ammo_nonlethal // Takes around 12 shots to stamcrit someone +/datum/supply_pack/security/armory/wt550ammo_nonlethal // Takes around 12 shots to stun crit someone name = "WT-550 Semi-Auto SMG Non-Lethal Ammo Crate" desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." cost = 1000 diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index 747e820f52..30153ef077 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -23,21 +23,6 @@ crate_name = "Biker Kit" crate_type = /obj/structure/closet/crate/large -/datum/supply_pack/emergency/bio - name = "Biological Emergency Crate" - desc = "This crate holds 2 full bio suits which will protect you from viruses, along with a bio bag and two spaceacillin syringes." - cost = 2000 - contains = list(/obj/item/clothing/head/bio_hood, - /obj/item/clothing/head/bio_hood, - /obj/item/clothing/suit/bio_suit, - /obj/item/clothing/suit/bio_suit, - /obj/item/storage/bag/bio, - /obj/item/reagent_containers/syringe/antiviral, - /obj/item/reagent_containers/syringe/antiviral, - /obj/item/clothing/gloves/color/latex/nitrile, - /obj/item/clothing/gloves/color/latex/nitrile) - crate_name = "bio suit crate" - /datum/supply_pack/emergency/equipment name = "Emergency Bot/Internals Crate" desc = "Explosions got you down? These supplies are guaranteed to patch up holes, in stations and people alike! Comes with two floorbots, two medbots, five oxygen masks and five small oxygen tanks." @@ -127,8 +112,8 @@ crate_type = /obj/structure/closet/crate/internals /datum/supply_pack/emergency/soft_suit - name = "Emergency Space Suit" - desc = "Are there bombs going off left and right? Are there meteors shooting around the station? Well then! Here's two fragile space suits for emergencies. Comes with air and masks." + name = "Emergency Space Suit " + desc = "Are there bombs going off left and right? Are there meteors shooting around the station? Well then! Here's two fragile space suit for emergencies. Comes with air and masks." cost = 1200 contains = list(/obj/item/tank/internals/air, /obj/item/tank/internals/air, @@ -141,18 +126,6 @@ crate_name = "emergency crate" crate_type = /obj/structure/closet/crate/internals -/datum/supply_pack/emergency/bomb - name = "Explosive Emergency Crate" - desc = "Science gone bonkers? Beeping behind the airlock? Buy now and be the hero the station des... I mean needs! (Time not included.)" - cost = 1500 - contains = list(/obj/item/clothing/head/bomb_hood, - /obj/item/clothing/suit/bomb_suit, - /obj/item/clothing/mask/gas, - /obj/item/screwdriver, - /obj/item/wirecutters, - /obj/item/multitool) - crate_name = "bomb suit crate" - /datum/supply_pack/emergency/firefighting name = "Firefighting Crate" desc = "Only you can prevent station fires. Partner up with two firefighter suits, gas masks, flashlights, large oxygen tanks, extinguishers, and hardhats!" @@ -334,3 +307,4 @@ /obj/item/reagent_containers/spray/plantbgone) crate_name = "weed control crate" crate_type = /obj/structure/closet/crate/secure/hydroponics + diff --git a/code/modules/cargo/packs/livestock.dm b/code/modules/cargo/packs/livestock.dm index ebfb96ec23..1b55c0540a 100644 --- a/code/modules/cargo/packs/livestock.dm +++ b/code/modules/cargo/packs/livestock.dm @@ -25,20 +25,6 @@ new /obj/item/reagent_containers/food/snacks/grown/wheat(.) -/datum/supply_pack/critter/parrot - name = "Bird Crate" - desc = "Contains five expert telecommunication birds." - cost = 4000 - contains = list(/mob/living/simple_animal/parrot) - crate_name = "parrot crate" - -/datum/supply_pack/critter/parrot/generate() - . = ..() - for(var/i in 1 to 4) - new /mob/living/simple_animal/parrot(.) - if(prob(1)) - new /mob/living/simple_animal/parrot/clock_hawk(.) - /datum/supply_pack/critter/butterfly name = "Butterflies Crate" desc = "Not a very dangerous insect, but they do give off a better image than, say, flies or cockroaches."//is that a motherfucking worm reference diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index a60afe4f7a..1e5097fd11 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -57,27 +57,6 @@ crate_name = "blood freezer" crate_type = /obj/structure/closet/crate/freezer -/datum/supply_pack/medical/chemical - name = "Chemical Starter Kit Crate" - desc = "Contains twelve different chemicals, for all the fun experiments you can make." - cost = 1700 - contains = list(/obj/item/reagent_containers/glass/bottle/hydrogen, - /obj/item/reagent_containers/glass/bottle/carbon, - /obj/item/reagent_containers/glass/bottle/nitrogen, - /obj/item/reagent_containers/glass/bottle/oxygen, - /obj/item/reagent_containers/glass/bottle/fluorine, - /obj/item/reagent_containers/glass/bottle/phosphorus, - /obj/item/reagent_containers/glass/bottle/silicon, - /obj/item/reagent_containers/glass/bottle/chlorine, - /obj/item/reagent_containers/glass/bottle/radium, - /obj/item/reagent_containers/glass/bottle/sacid, - /obj/item/reagent_containers/glass/bottle/ethanol, - /obj/item/reagent_containers/glass/bottle/potassium, - /obj/item/clothing/glasses/science, - /obj/item/reagent_containers/dropper, - /obj/item/storage/box/beakers) - crate_name = "chemical crate" - /datum/supply_pack/medical/defibs name = "Defibrillator Crate" desc = "Contains two defibrillators for bringing the recently deceased back to life." @@ -250,7 +229,7 @@ /datum/supply_pack/medical/anitvirus name = "Virus Containment Crate" - desc = "Viro let out a death plague Mk II again? Someone didn't wash their hands? Old plagues born anew? Well, this crate is for you! Hope you cure it before it breaks out of the station... This crate needs medical access to open and has two bio suits, a box of needles and beakers, five spaceacillin needles, and a medibot." + desc = "Viro let out a death plague Mk II again? Someone didnt wash their hands? Old plagues born anew? Well this crate is for you! Hope you cure it before it breaks out of the station... This crate needs medical access to open and has two bio suits, a box of needles and beakers, five spaceacillin needles, and a medibot." cost = 3000 access = ACCESS_MEDICAL contains = list(/mob/living/simple_animal/bot/medbot, @@ -266,4 +245,4 @@ /obj/item/storage/box/syringes, /obj/item/storage/box/beakers) crate_name = "virus containment unit crate" - crate_type = /obj/structure/closet/crate/secure/plasma + crate_type = /obj/structure/closet/crate/secure/plasma \ No newline at end of file diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index f8656ef761..29133b78d2 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -281,7 +281,8 @@ /obj/item/storage/book/bible/booze, /obj/item/storage/book/bible/booze, /obj/item/clothing/suit/hooded/chaplain_hoodie, - /obj/item/clothing/suit/hooded/chaplain_hoodie) + /obj/item/clothing/suit/hooded/chaplain_hoodie + ) crate_name = "religious supplies crate" /datum/supply_pack/misc/funeral diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index dd0f987d25..4a90af6fd0 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -47,26 +47,6 @@ /obj/item/storage/fancy/donut_box) crate_name = "candy crate" -/datum/supply_pack/organic/randomized/chef - name = "Excellent Meat Crate" - desc = "The best cuts in the whole galaxy." - cost = 2000 - contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime, - /obj/item/reagent_containers/food/snacks/meat/slab/killertomato, - /obj/item/reagent_containers/food/snacks/meat/slab/bear, - /obj/item/reagent_containers/food/snacks/meat/slab/xeno, - /obj/item/reagent_containers/food/snacks/meat/slab/spider, - /obj/item/reagent_containers/food/snacks/meat/rawbacon, - /obj/item/reagent_containers/food/snacks/spiderleg, - /obj/item/reagent_containers/food/snacks/carpmeat, - /obj/item/reagent_containers/food/snacks/meat/slab/human) - crate_name = "food crate" - -/datum/supply_pack/organic/randomized/chef/fill(obj/structure/closet/crate/C) - for(var/i in 1 to 15) - var/item = pick(contains) - new item(C) - /datum/supply_pack/organic/exoticseeds name = "Exotic Seeds Crate" desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!" @@ -112,26 +92,6 @@ /obj/item/reagent_containers/food/snacks/grown/banana) crate_name = "food crate" -/datum/supply_pack/organic/randomized/chef/fruits - name = "Fruit Crate" - desc = "Rich in vitamins, may contain oranges." - cost = 1500 - contains = list(/obj/item/reagent_containers/food/snacks/grown/citrus/lime, - /obj/item/reagent_containers/food/snacks/grown/citrus/orange, - /obj/item/reagent_containers/food/snacks/grown/banana, - /obj/item/reagent_containers/food/snacks/grown/watermelon, - /obj/item/reagent_containers/food/snacks/grown/apple, - /obj/item/reagent_containers/food/snacks/grown/berries, - /obj/item/reagent_containers/food/snacks/grown/citrus/lemon, - /obj/item/reagent_containers/food/snacks/grown/pineapple, - /obj/item/reagent_containers/food/snacks/grown/cherries, - /obj/item/reagent_containers/food/snacks/grown/grapes, - /obj/item/reagent_containers/food/snacks/grown/grapes/green, - /obj/item/reagent_containers/food/snacks/grown/eggplant, - /obj/item/reagent_containers/food/snacks/grown/peach, - /obj/item/reagent_containers/food/snacks/grown/strawberry) - crate_name = "food crate" - /datum/supply_pack/organic/fiestatortilla name = "Fiesta Crate" desc = "Spice up the kitchen with this fiesta themed food order! Contains 8 tortilla based food items, as well as a sombrero, moustache, and cloak!" @@ -151,6 +111,71 @@ /obj/item/reagent_containers/glass/bottle/capsaicin) crate_name = "fiesta crate" +/datum/supply_pack/organic/fruit_1 + name = "Fruit Basic Crate" + desc = "Getting scurvy on the station? Well heres your fixing! Contains three of each - bananas, watermelons, limes, lemons, oranges and even three pineapple." + cost = 2250 + contains = list(/obj/item/reagent_containers/food/snacks/grown/watermelon, + /obj/item/reagent_containers/food/snacks/grown/watermelon, + /obj/item/reagent_containers/food/snacks/grown/watermelon, + /obj/item/reagent_containers/food/snacks/grown/pineapple, + /obj/item/reagent_containers/food/snacks/grown/pineapple, + /obj/item/reagent_containers/food/snacks/grown/pineapple, + /obj/item/reagent_containers/food/snacks/grown/citrus/lime, + /obj/item/reagent_containers/food/snacks/grown/citrus/lime, + /obj/item/reagent_containers/food/snacks/grown/citrus/lime, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange, + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon, + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon, + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana) + crate_name = "fruit crate" + +/datum/supply_pack/organic/fruit_2 + name = "Fruit Delux Crate" + desc = "Getting tired of the basic fruits and want to have something a bit more decadent! This crate is for you! Contains three of each - bunches of berries, apples, pineapples, cherries, green & red grapes, eggplants, bananas, peaches, and lastly seven strawberry. Includes one serving tray." + cost = 3500 + contains = list(/obj/item/reagent_containers/food/snacks/grown/berries, + /obj/item/reagent_containers/food/snacks/grown/berries, + /obj/item/reagent_containers/food/snacks/grown/berries, + /obj/item/reagent_containers/food/snacks/grown/apple, + /obj/item/reagent_containers/food/snacks/grown/apple, + /obj/item/reagent_containers/food/snacks/grown/apple, + /obj/item/reagent_containers/food/snacks/grown/pineapple, + /obj/item/reagent_containers/food/snacks/grown/pineapple, + /obj/item/reagent_containers/food/snacks/grown/pineapple, + /obj/item/reagent_containers/food/snacks/grown/cherries, + /obj/item/reagent_containers/food/snacks/grown/cherries, + /obj/item/reagent_containers/food/snacks/grown/cherries, + /obj/item/reagent_containers/food/snacks/grown/grapes, + /obj/item/reagent_containers/food/snacks/grown/grapes, + /obj/item/reagent_containers/food/snacks/grown/grapes, + /obj/item/reagent_containers/food/snacks/grown/grapes/green, + /obj/item/reagent_containers/food/snacks/grown/grapes/green, + /obj/item/reagent_containers/food/snacks/grown/grapes/green, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/eggplant, + /obj/item/reagent_containers/food/snacks/grown/eggplant, + /obj/item/reagent_containers/food/snacks/grown/eggplant, + /obj/item/reagent_containers/food/snacks/grown/peach, + /obj/item/reagent_containers/food/snacks/grown/peach, + /obj/item/reagent_containers/food/snacks/grown/peach, + /obj/item/reagent_containers/food/snacks/grown/strawberry, + /obj/item/reagent_containers/food/snacks/grown/strawberry, + /obj/item/reagent_containers/food/snacks/grown/strawberry, + /obj/item/reagent_containers/food/snacks/grown/strawberry, + /obj/item/reagent_containers/food/snacks/grown/strawberry, + /obj/item/reagent_containers/food/snacks/grown/strawberry, + /obj/item/reagent_containers/food/snacks/grown/strawberry, + /obj/item/storage/bag/tray) + crate_name = "fruit crate" + /datum/supply_pack/organic/grill name = "Grilling Starter Kit" desc = "Hey dad I'm Hungry. Hi Hungry I'm THE NEW GRILLING STARTER KIT ONLY 5000 BUX GET NOW! Contains a cooking grill and five fuel coal sheets." @@ -258,19 +283,6 @@ considered \[REDACTED\] and returned at your leisure. Note that objects the anomaly produces are specifically attuned exactly to the individual opening the anomaly; regardless \ of species, the individual will find the object edible and it will taste great according to their personal definitions, which vary significantly based on person and species.") -/datum/supply_pack/organic/randomized/chef/vegetables - name = "Vegetables Crate" - desc = "Grown in vats." - cost = 1300 - contains = list(/obj/item/reagent_containers/food/snacks/grown/chili, - /obj/item/reagent_containers/food/snacks/grown/corn, - /obj/item/reagent_containers/food/snacks/grown/tomato, - /obj/item/reagent_containers/food/snacks/grown/potato, - /obj/item/reagent_containers/food/snacks/grown/carrot, - /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle, - /obj/item/reagent_containers/food/snacks/grown/onion, - /obj/item/reagent_containers/food/snacks/grown/pumpkin) - crate_name = "food crate" ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Hydroponics ///////////////////////////////////// @@ -360,8 +372,6 @@ /obj/item/hatchet, /obj/item/cultivator, /obj/item/plant_analyzer, - /obj/item/clothing/gloves/botanic_leather, - /obj/item/clothing/suit/apron, /obj/item/flashlight, /obj/item/seeds/carrot, /obj/item/seeds/carrot, diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index f14bc37371..981e343045 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -54,7 +54,7 @@ /datum/supply_pack/science/robotics/mecha_odysseus name = "Circuit Crate (Odysseus)" desc = "Ever wanted to build your own giant medical robot? Well, now you can! Contains the Odysseus main control board and Odysseus peripherals board. Requires Robotics access to open." - cost = 1500 + cost = 2500 access = ACCESS_ROBOTICS contains = list(/obj/item/circuitboard/mecha/odysseus/peripherals, /obj/item/circuitboard/mecha/odysseus/main) @@ -64,7 +64,7 @@ /datum/supply_pack/science/robotics/mecha_ripley name = "Circuit Crate (Ripley APLU)" desc = "Rip apart rocks and xenomorphs alike with the Ripley APLU. Contains the Main Ripley control board, as well as the Ripley Peripherals board. Requires Robotics access to open." - cost = 1200 + cost = 3000 access = ACCESS_ROBOTICS contains = list(/obj/item/book/manual/ripley_build_and_repair, /obj/item/circuitboard/mecha/ripley/main, @@ -153,13 +153,6 @@ crate_name = "robotics assembly crate" crate_type = /obj/structure/closet/crate/secure/science -/datum/supply_pack/science/rped - name = "RPED crate" - desc = "Need to rebuild the ORM but science got annihilated after a bomb test? Buy this for the most advanced parts NT can give you." - cost = 1500 - contains = list(/obj/item/storage/part_replacer/cargo) - crate_name = "\improper RPED crate" - /datum/supply_pack/science/shieldwalls name = "Shield Generator Crate" desc = "These high powered Shield Wall Generators are guaranteed to keep any unwanted lifeforms on the outside, where they belong! Contains four shield wall generators. Requires Teleporter access to open." @@ -195,7 +188,7 @@ /datum/supply_pack/science/tablets name = "Tablet Crate" desc = "What's a computer? Contains five cargo tablets." - cost = 1500 + cost = 3000 contains = list(/obj/item/modular_computer/tablet/preset/cargo, /obj/item/modular_computer/tablet/preset/cargo, /obj/item/modular_computer/tablet/preset/cargo, diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 69967d65d1..0bda316ca3 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -11,23 +11,6 @@ access = ACCESS_SECURITY crate_type = /obj/structure/closet/crate/secure/gear -/datum/supply_pack/security/ammo - name = "Ammo Crate - General Purpose" - desc = "Contains two 20-round magazines for the WT-550 Auto Rifle, three boxes of buckshot ammo, three boxes of rubber ammo and special .38 speedloarders. Requires Security access to open." - cost = 2500 - contains = list(/obj/item/ammo_box/magazine/wt550m9, - /obj/item/ammo_box/magazine/wt550m9, - /obj/item/storage/box/lethalshot, - /obj/item/storage/box/lethalshot, - /obj/item/storage/box/lethalshot, - /obj/item/storage/box/rubbershot, - /obj/item/storage/box/rubbershot, - /obj/item/storage/box/rubbershot, - /obj/item/ammo_box/c38/trac, - /obj/item/ammo_box/c38/hotshot, - /obj/item/ammo_box/c38/iceblox) - crate_name = "ammo crate" - /datum/supply_pack/security/armor name = "Armor Crate" desc = "Three vests of well-rounded, decently-protective armor. Requires Security access to open." @@ -163,13 +146,6 @@ /obj/item/storage/box/handcuffs) crate_name = "security supply crate" -/datum/supply_pack/security/vending/security - name = "SecTech Supply Crate" - desc = "Officer Paul bought all the donuts? Then refill the security vendor with ths crate." - cost = 1500 - contains = list(/obj/machinery/vending/security) - crate_name = "SecTech supply crate" - /datum/supply_pack/security/firingpins name = "Standard Firing Pins Crate" desc = "Upgrade your arsenal with 10 standard firing pins. Requires Security access to open." diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm index 01524b1910..8fd5b6eb58 100644 --- a/code/modules/cargo/packs/service.dm +++ b/code/modules/cargo/packs/service.dm @@ -103,7 +103,7 @@ /datum/supply_pack/service/cutlery name = "Kitchen Cutlery Deluxe Set" - desc = "Need to slice and dice away those \"Tomatoes\"? Well we got what you need! From a nice set of knifes, forks, plates, glasses, and a whetstone for when you got some grizzle that is a bit harder to slice then normal." + desc = "Need to slice and dice away those ''Tomatoes''? Well we got what you need! From a nice set of knifes, forks, plates, glasses, and a whetstone for when you got some grizzle that is a bit harder to slice then normal." cost = 10000 contraband = TRUE contains = list(/obj/item/sharpener, //Deluxe for a reason @@ -127,16 +127,6 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass) crate_name = "kitchen cutlery deluxe set" -/datum/supply_pack/service/replacementdb - name = "Replacement Defensive Bar Shotgun" - desc = "Someone stole the Bartender's twin-barreled possession? Give them another one at a significant markup. Comes with one unused double-barrel shotgun, shells not included. Requires bartender access to open." - cost = 2200 - access = ACCESS_BAR - contraband = TRUE - contains = list(/obj/item/gun/ballistic/revolver/doublebarrel) - crate_name = "replacement double-barrel crate" - crate_type = /obj/structure/closet/crate/secure - ////////////////////////////////////////////////////////////////////////////// /////////////////////////////// Janitor ////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 361b2a7517..ae9932e96f 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -80,3 +80,7 @@ var/next_keysend_reset = 0 var/next_keysend_trip_reset = 0 var/keysend_tripped = FALSE + + // stops players from coming back through ghost/midround roles after suicide/cryo + // for a duration set by CONFIG_GET(number/suicide_reenter_round_timer) and CONFIG_GET(number/roundstart_suicide_time_limit) + var/reenter_round_timeout = 0 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7b7cf3413e..96a32d50e6 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -21,10 +21,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/last_ip var/last_id - var/icon/custom_holoform_icon - var/list/cached_holoform_icons - var/last_custom_holoform = 0 - //Cooldowns for saving/loading. These are four are all separate due to loading code calling these one after another var/saveprefcooldown var/loadprefcooldown @@ -2426,11 +2422,3 @@ GLOBAL_LIST_EMPTY(preferences_datums) return else custom_names[name_id] = sanitized_name - -/datum/preferences/proc/get_filtered_holoform(filter_type) - if(!custom_holoform_icon) - return - LAZYINITLIST(cached_holoform_icons) - if(!cached_holoform_icons[filter_type]) - cached_holoform_icons[filter_type] = process_holoform_icon_filter(custom_holoform_icon, filter_type) - return cached_holoform_icons[filter_type] diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6fd1584e75..d9e967e54d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -57,6 +57,7 @@ //No idea what this is but eh -tori var/force_alternate_icon = FALSE + /obj/item/clothing/Initialize() . = ..() if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE)) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index ad450ec7aa..be6e270e45 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -337,28 +337,10 @@ var/datum/action/A = X A.UpdateButtonIcon() + /obj/item/clothing/head/helmet/durathread name = "makeshift helmet" desc = "A hardhat with strips of leather and durathread for additional blunt protection." icon_state = "durathread" item_state = "durathread" armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) - -/obj/item/clothing/head/helmet/rus_helmet - name = "russian helmet" - desc = "It can hold a bottle of vodka." - icon_state = "rus_helmet" - item_state = "rus_helmet" - armor = list("melee" = 30, "bullet" = 25, "laser" = 20,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 20, "fire" = 30, "acid" = 50) - pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/rushelmet - -/obj/item/clothing/head/helmet/rus_ushanka - name = "battle ushanka" - desc = "100% bear." - icon_state = "rus_ushanka" - item_state = "rus_ushanka" - clothing_flags = THICKMATERIAL - body_parts_covered = HEAD - cold_protection = HEAD - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - armor = list("melee" = 10, "bullet" = 5, "laser" = 5,"energy" = 5, "bomb" = 5, "bio" = 50, "rad" = 20, "fire" = -10, "acid" = 0) diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index aa8df7123a..3960bdadeb 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -57,12 +57,3 @@ desc = "Worn by robust fighters who are willing to do anything to win." icon_state = "luchar" item_state = "luchar" - -/obj/item/clothing/mask/russian_balaclava - name = "russian balaclava" - desc = "Protects your face from snow." - icon_state = "rus_balaclava" - item_state = "rus_balaclava" - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - visor_flags_inv = HIDEFACE|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index c81584dbcc..43c99fe7fd 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -327,13 +327,6 @@ lightCycle = 0 active = FALSE -/obj/item/clothing/shoes/russian - name = "russian boots" - desc = "Comfy shoes." - icon_state = "rus_shoes" - item_state = "rus_shoes" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - // kevin is into feet /obj/item/clothing/shoes/wraps name = "gilded leg wraps" @@ -354,4 +347,4 @@ /obj/item/clothing/shoes/wraps/blue name = "blue leg wraps" desc = "Ankle coverings. Hang ten, brother." - icon_state = "bluecuffs" + icon_state = "bluecuffs" \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 324d4bc722..bf52b26ae9 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -627,9 +627,7 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage, /obj/item/construction/rcd, /obj/item/pipe_dispenser) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | IMMUTABLE_SLOW resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - flags_1 = TESLA_IGNORE_1 /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason name = "M.A.S.O.N RIG helmet" @@ -639,13 +637,12 @@ armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 45, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) item_color = "ancient" brightness_on = 16 + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS | SCAN_REAGENTS flash_protect = 5 //We will not be flash by bombs tint = 1 var/obj/machinery/doppler_array/integrated/bomb_radar max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS | SCAN_REAGENTS resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - flags_1 = TESLA_IGNORE_1 /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason/Initialize() . = ..() diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index e536d307ef..19050dc36f 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -248,20 +248,3 @@ max_integrity = 200 resistance_flags = FLAMMABLE armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 5, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) - -/obj/item/clothing/suit/armor/vest/russian - name = "russian vest" - desc = "A bulletproof vest with forest camo. Good thing there's plenty of forests to hide in around here, right?" - icon_state = "rus_armor" - item_state = "rus_armor" - armor = list("melee" = 25, "bullet" = 30, "laser" = 0, "energy" = 15, "bomb" = 10, "bio" = 0, "rad" = 20, "fire" = 20, "acid" = 50) -/obj/item/clothing/suit/armor/vest/russian_coat - name = "russian battle coat" - desc = "Used in extremly cold fronts, made out of real bears." - icon_state = "rus_coat" - item_state = "rus_coat" - clothing_flags = THICKMATERIAL - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - armor = list("melee" = 25, "bullet" = 20, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 50, "rad" = 20, "fire" = -10, "acid" = 50) diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 69db08d19d..4e3e1aa0cc 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -68,18 +68,9 @@ item_color = "syndicate_combat" can_adjust = FALSE -/obj/item/clothing/under/syndicate/rus_army - name = "advanced military tracksuit" - desc = "Military grade tracksuits for frontline squatting." - icon_state = "rus_under" - item_color = "rus_under" - can_adjust = FALSE - armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = NONE - /obj/item/clothing/under/syndicate/baseball name = "major league, number unknown" - desc = "A major league outfit with the number faded number on the back. Seems rather robust for just a game..." + desc = "A major league outfit with the number faded number on the back. Seems rather robust for just a game" icon_state = "syndicatebaseball" item_state = "syndicatebaseball" item_color = "syndicatebaseball" diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm index ea63ee611f..65d96ad150 100644 --- a/code/modules/events/holiday/xmas.dm +++ b/code/modules/events/holiday/xmas.dm @@ -75,7 +75,7 @@ /datum/round_event/santa/start() var/list/candidates = pollGhostCandidates("Santa is coming to town! Do you want to be Santa?", poll_time=150) if(LAZYLEN(candidates)) - var/mob/C = pick(candidates) + var/mob/dead/observer/C = pick(candidates) santa = new /mob/living/carbon/human(pick(GLOB.blobstart)) C.transfer_ckey(santa, FALSE) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index b33be2fa02..92f412dd89 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -439,6 +439,7 @@ desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." icon_state = "tonic" list_reagents = list("tonic" = 50) + foodtype = ALCOHOL /obj/item/reagent_containers/food/drinks/soda_cans/sodawater name = "soda water" diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index 07732a415d..404f3a6061 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -84,6 +84,14 @@ required_temp = 413 mob_react = FALSE +/datum/chemical_reaction/caramel_burned + name = "Caramel burned" + id = "caramel_burned" + results = list("carbon" = 1) + required_reagents = list("caramel" = 1) + required_temp = 483 + mob_react = FALSE + /datum/chemical_reaction/cheesewheel name = "Cheesewheel" id = "cheesewheel" @@ -174,4 +182,4 @@ name = "BBQ Sauce" id = "bbqsauce" results = list("bbqsauce" = 5) - required_reagents = list("ash" = 1, "tomatojuice" = 1, "salglu_solution" = 3, "blackpepper" = 1) + required_reagents = list("ash" = 1, "tomatojuice" = 1, "salglu_solution" = 3, "blackpepper" = 1) \ No newline at end of file diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm index 6f1e19d5e0..c273690571 100644 --- a/code/modules/goonchat/browserOutput.dm +++ b/code/modules/goonchat/browserOutput.dm @@ -8,8 +8,6 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico //On client, created on login /datum/chatOutput var/client/owner //client ref - var/total_checks = 0 - var/last_check = 0 var/loaded = FALSE // Has the client loaded the browser output area? var/list/messageQueue //If they haven't loaded chat, this is where messages will go until they do var/cookieSent = FALSE // Has the client sent a cookie for analysis @@ -152,18 +150,6 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico //Called by client, sent data to investigate (cookie history so far) /datum/chatOutput/proc/analyzeClientData(cookie = "") - //Spam check - if(world.time > last_check + (3 SECONDS)) - last_check = world.time - total_checks = 0 - - total_checks += 1 - - if(total_checks > SPAM_TRIGGER_AUTOMUTE) - message_admins("[key_name(owner)] kicked for goonchat topic spam") - qdel(owner) - return - if(!cookie) return @@ -172,22 +158,13 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico if (connData && islist(connData) && connData.len > 0 && connData["connData"]) connectionHistory = connData["connData"] //lol fuck var/list/found = new() - if(connectionHistory.len > 5) - message_admins("[key_name(src.owner)] was kicked for an invalid ban cookie)") - qdel(owner) - return - - for(var/i in min(connectionHistory.len, 5) to 1 step -1) - if(QDELETED(owner)) - //he got cleaned up before we were done - return + for(var/i in connectionHistory.len to 1 step -1) var/list/row = src.connectionHistory[i] if (!row || row.len < 3 || (!row["ckey"] || !row["compid"] || !row["ip"])) //Passed malformed history object return if (world.IsBanned(row["ckey"], row["ip"], row["compid"], real_bans_only=TRUE)) found = row break - CHECK_TICK //Uh oh this fucker has a history of playing on a banned account!! if (found.len > 0) diff --git a/code/modules/goonchat/browserassets/js/browserOutput.js b/code/modules/goonchat/browserassets/js/browserOutput.js index 823ad107d2..abd05d29ed 100644 --- a/code/modules/goonchat/browserassets/js/browserOutput.js +++ b/code/modules/goonchat/browserassets/js/browserOutput.js @@ -421,8 +421,8 @@ function handleClientData(ckey, ip, compid) { return; //Record already exists } } - //Lets make sure we obey our limit (can connect from server with higher limit) - while (opts.clientData.length >= opts.clientDataLimit) { + + if (opts.clientData.length >= opts.clientDataLimit) { opts.clientData.shift(); } } else { diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index d551222836..889706744a 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -59,7 +59,9 @@ return var/area/AS = get_area(src) if(istype(AS, /area/holodeck)) - log_mapping("Holodeck computer cannot be in a holodeck, This would cause circular power dependency.") + log_world("### MAPPING ERROR") + log_world("Holodeck computer cannot be in a holodeck.") + log_world("This would cause circular power dependency.") qdel(src) return else diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index 0d7ae7107b..295fc816e2 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -117,7 +117,6 @@ anchored = TRUE max_integrity = 30 layer = LATTICE_LAYER - light_power = 0.3 var/hidden_message var/creator_key diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 3e361179de..1f55f18823 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -70,7 +70,7 @@ //initialize things that are normally initialized after map load parsed.initTemplateBounds() smooth_zlevel(world.maxz) - log_game("Z-level [name] loaded at [x],[y],[world.maxz]") + log_game("Z-level [name] loaded at at [x],[y],[world.maxz]") return level @@ -84,13 +84,6 @@ if(T.y+height > world.maxy) return - var/list/border = block(locate(max(T.x-1, 1), max(T.y-1, 1), T.z), - locate(min(T.x+width+1, world.maxx), min(T.y+height+1, world.maxy), T.z)) - for(var/L in border) - var/turf/turf_to_disable = L - SSair.remove_from_active(turf_to_disable) //stop processing turfs along the border to prevent runtimes, we return it in initTemplateBounds() - turf_to_disable.atmos_adjacent_turfs?.Cut() - // Accept cached maps, but don't save them automatically - we don't want // ruins clogging up memory for the whole round. var/datum/parsed_map/parsed = cached_map || new(file(mappath)) @@ -107,7 +100,7 @@ //initialize things that are normally initialized after map load parsed.initTemplateBounds() - log_game("[name] loaded at [T.x],[T.y],[T.z]") + log_game("[name] loaded at at [T.x],[T.y],[T.z]") return bounds /datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE) diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index a7f84fd71f..e2459d780a 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -18,7 +18,7 @@ /obj/effect/baseturf_helper/LateInitialize() if(!baseturf_to_replace) - baseturf_to_replace = typecacheof(list(/turf/open/space,/turf/baseturf_bottom)) + baseturf_to_replace = typecacheof(/turf/open/space) else if(!length(baseturf_to_replace)) baseturf_to_replace = list(baseturf_to_replace = TRUE) else if(baseturf_to_replace[baseturf_to_replace[1]] != TRUE) // It's not associative @@ -45,6 +45,7 @@ thing.PlaceOnBottom(null, baseturf) else if(baseturf_to_replace[thing.baseturfs]) thing.assemble_baseturfs(baseturf) + return else thing.PlaceOnBottom(null, baseturf) @@ -106,16 +107,16 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper/Initialize(mapload) . = ..() if(!mapload) - log_mapping("[src] spawned outside of mapload!") + log_world("### MAP WARNING, [src] spawned outside of mapload!") return var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(airlock) if(airlock.cyclelinkeddir) - log_mapping("[src] at [AREACOORD(src)] tried to set [airlock] cyclelinkeddir, but it's already set!") + log_world("### MAP WARNING, [src] at [AREACOORD(src)] tried to set [airlock] cyclelinkeddir, but it's already set!") else airlock.cyclelinkeddir = dir else - log_mapping("[src] failed to find an airlock at [AREACOORD(src)]") + log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]") /obj/effect/mapping_helpers/airlock/locked @@ -125,16 +126,16 @@ /obj/effect/mapping_helpers/airlock/locked/Initialize(mapload) . = ..() if(!mapload) - log_mapping("[src] spawned outside of mapload!") + log_world("### MAP WARNING, [src] spawned outside of mapload!") return var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(airlock) if(airlock.locked) - log_mapping("[src] at [AREACOORD(src)] tried to bolt [airlock] but it's already locked!") + log_world("### MAP WARNING, [src] at [AREACOORD(src)] tried to bolt [airlock] but it's already locked!") else airlock.locked = TRUE else - log_mapping("[src] failed to find an airlock at [AREACOORD(src)]") + log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]") /obj/effect/mapping_helpers/airlock/unres name = "airlock unresctricted side helper" @@ -143,13 +144,13 @@ /obj/effect/mapping_helpers/airlock/unres/Initialize(mapload) . = ..() if(!mapload) - log_mapping("[src] spawned outside of mapload!") + log_world("### MAP WARNING, [src] spawned outside of mapload!") return var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(airlock) airlock.unres_sides ^= dir else - log_mapping("[src] failed to find an airlock at [AREACOORD(src)]") + log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]") //needs to do its thing before spawn_rivers() is called @@ -163,6 +164,17 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) var/turf/T = get_turf(src) T.flags_1 |= NO_LAVA_GEN_1 +/// Adds the map it is on to the z_is_planet list +/obj/effect/mapping_helpers/planet_z + name = "planet z helper" + layer = POINT_LAYER + +/obj/effect/mapping_helpers/planet_z/Initialize() + . = ..() + var/datum/space_level/S = SSmapping.get_level(z) + S.traits[ZTRAIT_PLANET] = TRUE + + //This helper applies components to things on the map directly. /obj/effect/mapping_helpers/component_injector name = "Component Injector" diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm index 4b61663f66..e6fa2421a0 100644 --- a/code/modules/mapping/preloader.dm +++ b/code/modules/mapping/preloader.dm @@ -8,26 +8,18 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) var/list/attributes var/target_path -/world/proc/preloader_setup(list/the_attributes, path) +/datum/map_preloader/proc/setup(list/the_attributes, path) if(the_attributes.len) GLOB.use_preloader = TRUE - var/datum/map_preloader/preloader_local = GLOB._preloader - preloader_local.attributes = the_attributes - preloader_local.target_path = path + attributes = the_attributes + target_path = path -/world/proc/preloader_load(atom/what) +/datum/map_preloader/proc/load(atom/what) GLOB.use_preloader = FALSE - var/datum/map_preloader/preloader_local = GLOB._preloader - for(var/attribute in preloader_local.attributes) - var/value = preloader_local.attributes[attribute] + for(var/attribute in attributes) + var/value = attributes[attribute] if(islist(value)) value = deepCopyList(value) - #ifdef TESTING - if(what.vars[attribute] == value) - var/message = "[what.type] at [AREACOORD(what)] - VAR: [attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")]" - log_mapping("DIRTY VAR: [message]") - GLOB.dirty_vars += message - #endif what.vars[attribute] = value /area/template_noop diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 9b27691dd3..22be4aa246 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -306,8 +306,8 @@ //first instance the /area and remove it from the members list index = members.len if(members[index] != /area/template_noop) + GLOB._preloader.setup(members_attributes[index])//preloader for assigning set variables on atom creation var/atype = members[index] - world.preloader_setup(members_attributes[index], atype)//preloader for assigning set variables on atom creation var/atom/instance = areaCache[atype] if (!instance) instance = GLOB.areas_by_type[atype] @@ -318,7 +318,7 @@ instance.contents.Add(crds) if(GLOB.use_preloader && instance) - world.preloader_load(instance) + GLOB._preloader.load(instance) //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect @@ -354,7 +354,7 @@ //Instance an atom at (x,y,z) and gives it the variables in attributes /datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop) - world.preloader_setup(attributes, path) + GLOB._preloader.setup(attributes, path) if(crds) if(ispath(path, /turf)) @@ -368,7 +368,7 @@ . = create_atom(path, crds)//first preloader pass if(GLOB.use_preloader && .)//second preloader pass, for those atoms that don't ..() in New() - world.preloader_load(.) + GLOB._preloader.load(.) //custom CHECK_TICK here because we don't want things created while we're sleeping to not initialize if(TICK_CHECK) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 7bef9b652a..ab3b20ac9f 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -926,7 +926,7 @@ timer = world.time + create_delay + 1 if(do_after(user, create_delay, target = T)) var/old_name = T.name - if(T.TerraformTurf(turf_type, flags = CHANGETURF_INHERIT_AIR)) + if(T.TerraformTurf(turf_type)) user.visible_message("[user] turns \the [old_name] into [transform_string]!") message_admins("[ADMIN_LOOKUPFLW(user)] fired the lava staff at [ADMIN_VERBOSEJMP(T)]") log_game("[key_name(user)] fired the lava staff at [AREACOORD(T)].") @@ -937,7 +937,7 @@ qdel(L) else var/old_name = T.name - if(T.TerraformTurf(reset_turf_type, flags = CHANGETURF_INHERIT_AIR)) + if(T.TerraformTurf(reset_turf_type)) user.visible_message("[user] turns \the [old_name] into [reset_string]!") timer = world.time + reset_cooldown playsound(T,'sound/magic/fireball.ogg', 200, 1) diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index 5b664dc01a..7aae26526e 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -27,7 +27,12 @@ /datum/preferences/proc/update_preview_icon(equip_job = TRUE) // Determine what job is marked as 'High' priority, and dress them up as such. - var/datum/job/previewJob = get_highest_job() + var/datum/job/previewJob + var/highest_pref = 0 + for(var/job in job_preferences) + if(job_preferences["[job]"] > highest_pref) + previewJob = SSjob.GetJob(job) + highest_pref = job_preferences["[job]"] if(previewJob) // Silicons only need a very basic preview since there is no customization for them. @@ -52,11 +57,3 @@ parent.show_character_previews(new /mutable_appearance(mannequin)) unset_busy_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES) -/datum/preferences/proc/get_highest_job() - var/highest_pref = 0 - var/datum/job/highest_job - for(var/job in job_preferences) - if(job_preferences["[job]"] > highest_pref) - highest_job = SSjob.GetJob(job) - highest_pref = job_preferences["[job]"] - return highest_job diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm index 1b328dbc69..bf86a97574 100644 --- a/code/modules/mob/dead/observer/login.dm +++ b/code/modules/mob/dead/observer/login.dm @@ -18,3 +18,6 @@ update_icon(preferred_form) updateghostimages() + + client.reenter_round_timeout = max(client.reenter_round_timeout, clientless_round_timeout) + clientless_round_timeout = client.reenter_round_timeout diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f1c4316c65..0846cf1ea1 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -19,6 +19,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) hud_type = /datum/hud/ghost movement_type = GROUND | FLYING var/can_reenter_corpse + var/clientless_round_timeout = 0 //mobs will lack a client as long as their player is disconnected. See client_defines.dm "reenter_round_timeout" var/datum/hud/living/carbon/hud = null // hud var/bootime = 0 var/started_as_observer //This variable is set to 1 when you enter the game as an observer. @@ -134,7 +135,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) AA.onNewMob(src) . = ..() - AddElement(/datum/element/ghost_role_eligibility) + grant_all_languages() /mob/dead/observer/get_photo_description(obj/item/camera/camera) @@ -269,12 +270,23 @@ Works together with spawning an observer, noted above. var/mob/dead/observer/ghost = new(src) // Transfer safety to observer spawning proc. SStgui.on_transfer(src, ghost) // Transfer NanoUIs. ghost.can_reenter_corpse = can_reenter_corpse + if(penalize) //penalizing them from making a ghost role / midround antag comeback right away. + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES + if(world.time < roundstart_quit_limit) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. + penalty += roundstart_quit_limit - world.time + if(penalty) + penalty += world.realtime + if(penalty - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + penalty = CANT_REENTER_ROUND + if(client) + client.reenter_round_timeout = penalty + else //A disconnected player (quite likely for cryopods) + ghost.clientless_round_timeout = penalty if (client && client.prefs && client.prefs.auto_ooc) if (!(client.prefs.chat_toggles & CHAT_OOC)) client.prefs.chat_toggles ^= CHAT_OOC transfer_ckey(ghost, FALSE) - ghost.AddElement(/datum/element/ghost_role_eligibility,penalize) // technically already run earlier, but this adds the penalty - // needs to be done AFTER the ckey transfer, too return ghost /* @@ -331,7 +343,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return ghostize(0, penalize = TRUE) - +/mob/dead/observer/proc/can_reenter_round(silent = FALSE) + var/timeout = clientless_round_timeout + if(client) + timeout = client.reenter_round_timeout + if(timeout != CANT_REENTER_ROUND && timeout <= world.realtime) + return TRUE + if(!silent && client) + to_chat(src, "You are unable to reenter the round[timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(timeout - world.realtime)]" : ""].") + return FALSE /mob/dead/observer/Move(NewLoc, direct) if(updatedir) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 8e1e5aab8d..e1e079cbae 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -14,9 +14,10 @@ var/max_grown = 100 var/time_of_birth - rotate_on_lying = FALSE + rotate_on_lying = 0 bodyparts = list(/obj/item/bodypart/chest/larva, /obj/item/bodypart/head/larva) + //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/larva/Initialize() diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 9629dc3484..a1184613fe 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -40,7 +40,7 @@ var/gib_type = /obj/effect/decal/cleanable/blood/gibs - rotate_on_lying = TRUE + var/rotate_on_lying = 1 var/tinttotal = 0 // Total level of visualy impairing items diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 559c2ebcdd..345279df29 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -22,7 +22,6 @@ muzzle_ignore = TRUE restraint_check = TRUE emote_type = EMOTE_AUDIBLE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/carbon/clap/run_emote(mob/living/user, params) . = ..() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 9cbb5b1a0a..2b1d6afc4f 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -333,7 +333,7 @@ switch (severity) if (1) if(bomb_armor) - b_loss = (350*bomb_armor)+150 + b_loss = 500*bomb_armor var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) throw_at(throw_target, 200, 4) damage_clothes(400*bomb_armor, BRUTE, "bomb") diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 7744a65464..ceadb28115 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -37,16 +37,11 @@ H.dna.features["caps"] = "Round" handle_mutant_bodyparts(H) H.faction |= "mushroom" - mush = new() - mush.teach(H, TRUE) - RegisterSignal(C, COMSIG_MOB_ON_NEW_MIND, .proc/on_new_mind) - -/datum/species/mush/proc/on_new_mind(mob/owner) - mush.teach(owner, TRUE) //make_temporary TRUE as it shouldn't carry over to other mobs on mind transfer_to. + mush = new(null) + mush.teach(H) /datum/species/mush/on_species_loss(mob/living/carbon/C) . = ..() - UnregisterSignal(C, COMSIG_MOB_ON_NEW_MIND) C.faction -= "mushroom" mush.remove(C) QDEL_NULL(mush) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 0155f2575d..66be8058f1 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -1,3 +1,31 @@ +//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. +/mob/living/carbon/update_transform() + var/matrix/ntransform = matrix(transform) //aka transform.Copy() + var/final_pixel_y = pixel_y + var/final_dir = dir + var/changed = 0 + if(lying != lying_prev && rotate_on_lying) + changed++ + ntransform.TurnTo(lying_prev,lying) + if(lying == 0) //Lying to standing + final_pixel_y = get_standard_pixel_y_offset() + else //if(lying != 0) + if(lying_prev == 0) //Standing to lying + pixel_y = get_standard_pixel_y_offset() + final_pixel_y = get_standard_pixel_y_offset(lying) + if(dir & (EAST|WEST)) //Facing east or west + final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass + + if(resize != RESIZE_DEFAULT_SIZE) + changed++ + ntransform.Scale(resize) + resize = RESIZE_DEFAULT_SIZE + + if(changed) + animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) + setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life(). + + /mob/living/carbon var/list/overlays_standing[TOTAL_LAYERS] diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 783e044492..4d2a36907d 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -111,6 +111,4 @@ var/list/diseases = list() // list of all diseases in a mob var/list/disease_resistances = list() - var/drag_slowdown = TRUE //Whether the mob is slowed down when dragging another prone mob - - var/rotate_on_lying = FALSE \ No newline at end of file + var/drag_slowdown = TRUE //Whether the mob is slowed down when dragging another prone mob \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 1694d04b82..0444458841 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -260,6 +260,15 @@ viewalerts = 1 src << browse(dat, "window=aialerts&can_close=0") +/mob/living/silicon/ai/proc/ai_roster() + var/dat = "Crew RosterCrew Roster:

    " + + dat += GLOB.data_core.get_manifest() + dat += "" + + src << browse(dat, "window=airoster") + onclose(src, "airoster") + /mob/living/silicon/ai/proc/ai_call_shuttle() if(control_disabled) to_chat(usr, "Wireless control is disabled!") @@ -672,23 +681,18 @@ "green face" = 'icons/mob/ai.dmi', "xeno queen" = 'icons/mob/alien.dmi', "horror" = 'icons/mob/ai.dmi', - "creature" = 'icons/mob/ai.dmi', - "custom" + "creature" = 'icons/mob/ai.dmi' ) input = input("Please select a hologram:") as null|anything in icon_list if(input) qdel(holo_icon) switch(input) - if("custom") - if(client?.prefs?.custom_holoform_icon) - holo_icon = client.prefs.get_filtered_holoform(HOLOFORM_FILTER_AI) - else - holo_icon = getHologramIcon(icon('icons/mob/ai.dmi', "female")) - else if("xeno queen") + if("xeno queen") holo_icon = getHologramIcon(icon(icon_list[input],"alienq")) else holo_icon = getHologramIcon(icon(icon_list[input], input)) + return /mob/living/silicon/ai/proc/corereturn() set category = "Malfunction" diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 38afaf8313..7477ba7713 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -68,7 +68,7 @@ // Use this when setting the aiEye's location. // It will also stream the chunk that the new loc is in. -/mob/camera/aiEye/proc/setLoc(T, force_update = FALSE, dir) +/mob/camera/aiEye/proc/setLoc(T, force_update = FALSE) if(ai) if(!isturf(ai.loc)) return @@ -88,7 +88,7 @@ //Holopad if(istype(ai.current, /obj/machinery/holopad)) var/obj/machinery/holopad/H = ai.current - H.move_hologram(ai, T, dir) + H.move_hologram(ai, T) if(ai.camera_light_on) ai.light_cameras() if(ai.master_multicam) @@ -139,7 +139,7 @@ for(var/i = 0; i < max(user.sprint, initial); i += 20) var/turf/step = get_turf(get_step(user.eyeobj, direct)) if(step) - user.eyeobj.setLoc(step, null, direct) + user.eyeobj.setLoc(step) user.cooldown = world.timeofday + 5 if(user.acceleration) diff --git a/code/modules/mob/living/silicon/custom_holoform.dm b/code/modules/mob/living/silicon/custom_holoform.dm deleted file mode 100644 index 8ce6e9a29a..0000000000 --- a/code/modules/mob/living/silicon/custom_holoform.dm +++ /dev/null @@ -1,28 +0,0 @@ -/mob/living/silicon/verb/clear_custom_holoform() - set name = "Clear Custom Holoform" - set desc = "Clear your current custom holoform" - set category = "OOC" - - if(!client.prefs) - to_chat(src, "No preferences datum on your client, contact an admin/coder!") - return - client.prefs.custom_holoform_icon = null - client.prefs.cached_holoform_icons = null - to_chat(src, "Holoform removed.") - -/mob/living/silicon/verb/set_custom_holoform() - set name = "Set Custom Holoform" - set desc = "Set your custom holoform using your current preferences slot and a specified set of gear." - set category = "OOC" - - if(!client.prefs) - to_chat(src, "No preferences datum on your client, contact an admin/coder!") - return - if(client.prefs.last_custom_holoform > world.time - CUSTOM_HOLOFORM_DELAY) - to_chat(src, "You are attempting to change custom holoforms too fast!") - var/icon/new_holoform = user_interface_custom_holoform(client) - if(new_holoform) - client.prefs.custom_holoform_icon = new_holoform - client.prefs.cached_holoform_icons = null - client.prefs.last_custom_holoform = world.time - to_chat(src, "Holoform set.") diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 7055838039..7ec63cf415 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -58,12 +58,10 @@ var/canholo = TRUE var/obj/item/card/id/access_card = null var/chassis = "repairbot" - var/dynamic_chassis - var/dynamic_chassis_sit = FALSE //whether we're sitting instead of resting spritewise - var/dynamic_chassis_bellyup = FALSE //whether we're lying down bellyup - var/list/possible_chassis //initialized in initialize. - var/list/dynamic_chassis_icons //ditto. - var/list/chassis_pixel_offsets_x //stupid dogborgs + var/list/possible_chassis = list("cat" = TRUE, "mouse" = TRUE, "monkey" = TRUE, "corgi" = FALSE, + "fox" = FALSE, "repairbot" = TRUE, "rabbit" = TRUE, "borgi" = FALSE , + "parrot" = FALSE, "bear" = FALSE , "mushroom" = FALSE, "crow" = FALSE , + "fairy" = FALSE , "spiderbot" = FALSE) //assoc value is whether it can be picked up. var/static/item_head_icon = 'icons/mob/pai_item_head.dmi' var/static/item_lh_icon = 'icons/mob/pai_item_lh.dmi' var/static/item_rh_icon = 'icons/mob/pai_item_rh.dmi' @@ -71,20 +69,22 @@ var/emitterhealth = 20 var/emittermaxhealth = 20 var/emitterregen = 0.25 - var/emitter_next_use = 0 - var/emitter_emp_cd = 300 var/emittercd = 50 var/emitteroverloadcd = 100 + var/emittersemicd = FALSE - var/radio_short = FALSE - var/radio_short_cooldown = 5 MINUTES - var/radio_short_timerid - + var/overload_ventcrawl = 0 + var/overload_bulletblock = 0 //Why is this a good idea? + var/overload_maxhealth = 0 canmove = FALSE var/silent = FALSE var/brightness_power = 5 - var/icon/custom_holoform_icon +/mob/living/silicon/pai/can_unbuckle() + return FALSE + +/mob/living/silicon/pai/can_buckle() + return FALSE /mob/living/silicon/pai/Destroy() if (loc != card) @@ -118,13 +118,6 @@ pda.owner = text("[]", src) pda.name = pda.owner + " (" + pda.ownjob + ")" - possible_chassis = typelist(NAMEOF(src, possible_chassis), list("cat" = TRUE, "mouse" = TRUE, "monkey" = TRUE, "corgi" = FALSE, - "fox" = FALSE, "repairbot" = TRUE, "rabbit" = TRUE, "borgi" = FALSE , - "parrot" = FALSE, "bear" = FALSE , "mushroom" = FALSE, "crow" = FALSE , - "fairy" = FALSE , "spiderbot" = FALSE)) //assoc value is whether it can be picked up. - dynamic_chassis_icons = typelist(NAMEOF(src, dynamic_chassis_icons), initialize_dynamic_chassis_icons()) - chassis_pixel_offsets_x = typelist(NAMEOF(src, chassis_pixel_offsets_x), default_chassis_pixel_offsets_x()) - . = ..() var/datum/action/innate/pai/software/SW = new @@ -140,7 +133,8 @@ AR.Grant(src) AL.Grant(src) ALM.Grant(src) - emitter_next_use = world.time + 10 SECONDS + emittersemicd = TRUE + addtimer(CALLBACK(src, .proc/emittercool), 600) /mob/living/silicon/pai/Life() if(hacking) @@ -234,7 +228,7 @@ /datum/action/innate/pai/shell/Trigger() ..() if(P.holoform) - P.fold_in(FALSE) + P.fold_in(0) else P.fold_out() @@ -298,132 +292,3 @@ /mob/living/silicon/pai/process() emitterhealth = CLAMP((emitterhealth + emitterregen), -50, emittermaxhealth) - -/mob/living/silicon/pai/proc/short_radio() - if(radio_short_timerid) - deltimer(radio_short_timerid) - radio_short = TRUE - to_chat(src, "Your radio shorts out!") - radio_short_timerid = addtimer(CALLBACK(src, .proc/unshort_radio), radio_short_cooldown, flags = TIMER_STOPPABLE) - -/mob/living/silicon/pai/proc/unshort_radio() - radio_short = FALSE - to_chat(src, "You feel your radio is operational once more.") - if(radio_short_timerid) - deltimer(radio_short_timerid) - -/mob/living/silicon/pai/proc/initialize_dynamic_chassis_icons() - . = list() - var/icon/curr //for inserts - - //This is a horrible system and I wish I was not as lazy and did something smarter, like just generating a new icon in memory which is probably more efficient. - - //Basic /tg/ cyborgs - .["Cyborg - Engineering (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "engineer"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Engineering (loaderborg)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "loaderborg"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Engineering (handyeng)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "handyeng"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Engineering (sleekeng)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "sleekeng"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Engineering (marinaeng)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "marinaeng"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Medical (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "medical"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Medical (marinamed)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "marinamed"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Medical (eyebotmed)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "eyebotmed"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Security (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "sec"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Security (sleeksec)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "sleeksec"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Security (marinasec)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "marinasec"), HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Clown (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "clown"), HOLOFORM_FILTER_PAI, FALSE) - - //Citadel dogborgs - //Engi - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valeeng") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeeng-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeeng-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeeng-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Engineering (dog - valeeng)"] = curr - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "pupdozer") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "pupdozer-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "pupdozer-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "pupdozer-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Engineering (dog - pupdozer)"] = curr - //Med - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "medihound") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "medihound-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "medihound-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "medihound-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Medical (dog - medihound)"] = curr - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "medihounddark") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "medihounddark-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "medihounddark-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "medihounddark-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Medical (dog - medihounddark)"] = curr - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valemed") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valemed-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valemed-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valemed-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Medical (dog - valemed)"] = curr - //Sec - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "k9") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "k9-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "k9-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "k9-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Security (dog - k9)"] = curr - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "k9dark") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "k9dark-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "k9dark-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "k9dark-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Security (dog - k9dark)"] = curr - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valesec") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valesec-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valesec-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valesec-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Security (dog - valesec)"] = curr - //Service - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valeserv") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeserv-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeserv-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeserv-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Service (dog - valeserv)"] = curr - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valeservdark") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeservdark-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeservdark-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valeservdark-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Service (dog - valeservdark)"] = curr - //Sci - curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valesci") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valesci-rest"), "rest") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valesci-sit"), "sit") - curr.Insert(icon('modular_citadel/icons/mob/widerobot.dmi', "valesci-bellyup"), "bellyup") - process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) - .["Cyborg - Science (dog - valesci)"] = curr - //Misc - .["Cyborg - Misc (dog - blade)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/widerobot.dmi', "blade"), HOLOFORM_FILTER_PAI, FALSE) - -/mob/living/silicon/pai/proc/default_chassis_pixel_offsets_x() - . = list() - //Engi - .["Cyborg - Engineering (dog - valeeng)"] = -16 - .["Cyborg - Engineering (dog - pupdozer)"] = -16 - //Med - .["Cyborg - Medical (dog - medihound)"] = -16 - .["Cyborg - Medical (dog - medihounddark)"] = -16 - .["Cyborg - Medical (dog - valemed)"] = -16 - //Sec - .["Cyborg - Security (dog - k9)"] = -16 - .["Cyborg - Security (dog - valesec)"] = -16 - .["Cyborg - Security (dog - k9dark)"] = -16 - //Service - .["Cyborg - Service (dog - valeserv)"] = -16 - .["Cyborg - Service (dog - valeservdark)"] = -16 - //Sci - .["Cyborg - Security (dog - valesci)"] = -16 - //Misc - .["Cyborg - Misc (dog - blade)"] = -16 diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index c727e100d8..5ac841326b 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -8,10 +8,9 @@ return take_holo_damage(50/severity) Knockdown(400/severity) - silent = max((3 MINUTES)/severity, silent) + silent = max(30/severity, silent) if(holoform) fold_in(force = TRUE) - emitter_next_use = world.time + emitter_emp_cd //Need more effects that aren't instadeath or permanent law corruption. /mob/living/silicon/pai/ex_act(severity, target) diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index 6577c26402..164a3e7389 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -12,11 +12,12 @@ . = fold_in(force) return - if(world.time < emitter_next_use) + if(emittersemicd) to_chat(src, "Error: Holochassis emitters recycling. Please try again later.") return FALSE - emitter_next_use = world.time + emittercd + emittersemicd = TRUE + addtimer(CALLBACK(src, .proc/emittercool), emittercd) canmove = TRUE density = TRUE if(istype(card.loc, /obj/item/pda)) @@ -45,17 +46,20 @@ visible_message("[src] folds out its holochassis emitter and forms a holoshell around itself!") holoform = TRUE +/mob/living/silicon/pai/proc/emittercool() + emittersemicd = FALSE + /mob/living/silicon/pai/proc/fold_in(force = FALSE) - emitter_next_use = world.time + (force? emitteroverloadcd : emittercd) + emittersemicd = TRUE + if(!force) + addtimer(CALLBACK(src, .proc/emittercool), emittercd) + else + addtimer(CALLBACK(src, .proc/emittercool), emitteroverloadcd) icon_state = "[chassis]" if(!holoform) . = fold_out(force) return - if(force) - short_radio() - visible_message("[src] shorts out, collapsing back into their storage card, sparks emitted from their radio antenna!") - else - visible_message("[src] deactivates its holochassis emitter and folds back into a compact card!") + visible_message("[src] deactivates its holochassis emitter and folds back into a compact card!") stop_pulling() if(client) client.perspective = EYE_PERSPECTIVE @@ -74,39 +78,28 @@ if(!isturf(loc) && loc != card) to_chat(src, "You can not change your holochassis composite while not on the ground or in your card!") return FALSE - var/list/choices = list("Preset - Basic", "Preset - Dynamic") - if(CONFIG_GET(flag/pai_custom_holoforms)) - choices += "Custom" - var/choicetype = input(src, "What type of chassis do you want to use?") as null|anything in choices - if(!choicetype) + var/choice = input(src, "What would you like to use for your holochassis composite?") as null|anything in possible_chassis + if(!choice) return FALSE - switch(choicetype) - if("Custom") - chassis = "custom" - if("Preset - Basic") - var/choice = input(src, "What would you like to use for your holochassis composite?") as null|anything in possible_chassis - if(!choice) - return FALSE - chassis = choice - if("Preset - Dynamic") - var/choice = input(src, "What would you like to use for your holochassis composite?") as null|anything in dynamic_chassis_icons - if(!choice) - return FALSE - chassis = "dynamic" - dynamic_chassis = choice - resist_a_rest(FALSE, TRUE) - update_icon() + chassis = choice + icon_state = "[chassis]" + if(resting) + icon_state = "[chassis]_rest" to_chat(src, "You switch your holochassis projection composite to [chassis]") /mob/living/silicon/pai/lay_down() - . = ..() - if(loc != card) - visible_message("[src] [resting? "lays down for a moment..." : "perks up from the ground"]") - update_icon() + ..() + update_resting_icon(resting) -/mob/living/silicon/pai/start_pulling(atom/movable/AM, gs) - if(ispAI(AM)) - return ..() +/mob/living/silicon/pai/proc/update_resting_icon(rest) + if(rest) + icon_state = "[chassis]_rest" + else + icon_state = "[chassis]" + if(loc != card) + visible_message("[src] [rest? "lays down for a moment..." : "perks up from the ground"]") + +/mob/living/silicon/pai/start_pulling(atom/movable/AM) return FALSE /mob/living/silicon/pai/proc/toggle_integrated_light() @@ -129,22 +122,3 @@ to_chat(user, "[src]'s current form isn't able to be carried!") return FALSE return ..() - -/mob/living/silicon/pai/verb/toggle_chassis_sit() - set name = "Toggle Chassis Sit" - set category = "IC" - set desc = "Whether or not to try to use a sitting icon versus a resting icon. Takes priority over belly-up resting." - dynamic_chassis_sit = !dynamic_chassis_sit - to_chat(usr, "You are now [dynamic_chassis_sit? "sitting" : "lying down"].") - update_icon() - -/mob/living/silicon/pai/verb/toggle_chassis_bellyup() - set name = "Toggle Chassis Belly Up" - set category = "IC" - set desc = "Whether or not to try to use a belly up icon while resting. Overridden by sitting." - dynamic_chassis_bellyup = !dynamic_chassis_bellyup - to_chat(usr, "You are now lying on your [dynamic_chassis_bellyup? "back" : "front"].") - update_icon() - -/mob/living/silicon/pai/can_buckle_others(mob/living/target, atom/buckle_to) - return ispAI(target) && ..() diff --git a/code/modules/mob/living/silicon/pai/say.dm b/code/modules/mob/living/silicon/pai/say.dm index deedaa1382..9f07900a25 100644 --- a/code/modules/mob/living/silicon/pai/say.dm +++ b/code/modules/mob/living/silicon/pai/say.dm @@ -5,11 +5,4 @@ ..(message) /mob/living/silicon/pai/binarycheck() - return FALSE - -/mob/living/silicon/pai/radio(message, message_mode, list/spans, language) - if((message_mode == "robot") || (message_mode in GLOB.radiochannels)) - if(radio_short) - to_chat(src, "Your radio is shorted out!") - return ITALICS | REDUCE_RANGE - return ..() + return 0 diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 3ea018ccf6..9882d028d1 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -283,10 +283,7 @@ dat += "Refresh
    " // Built-in dat += "Directives
    " - if(radio_short) - dat += "\[RADIO SHORTED - Recalibrating!\]" - else - dat += "Radio Configuration
    " + dat += "Radio Configuration
    " dat += "Screen Display
    " //dat += "Text Messaging
    " dat += "
    " diff --git a/code/modules/mob/living/silicon/pai/update_icon.dm b/code/modules/mob/living/silicon/pai/update_icon.dm deleted file mode 100644 index 9e40b71c5d..0000000000 --- a/code/modules/mob/living/silicon/pai/update_icon.dm +++ /dev/null @@ -1,27 +0,0 @@ -/mob/living/silicon/pai/update_icon() - if(chassis == "custom") //Make sure custom exists if it's set to custom - custom_holoform_icon = client?.prefs?.get_filtered_holoform(HOLOFORM_FILTER_PAI) - if(!custom_holoform_icon) - chassis = pick(possible_chassis - "custom") - if(chassis == "dynamic") //handle dynamic generated icons - icon = dynamic_chassis_icons[dynamic_chassis] - var/list/states = icon_states(icon) - icon_state = "" - if(resting) //The next line is some bullshit but I can make it worse if you want and make it a single line instead of four.. :) - if(dynamic_chassis_sit && ("sit") in states) - icon_state = "sit" - else if(dynamic_chassis_bellyup && ("bellyup") in states) - icon_state = "bellyup" - else if("rest" in states) - icon_state = "rest" - rotate_on_lying = FALSE - else if(chassis == "custom") - icon = custom_holoform_icon - icon_state = "" - rotate_on_lying = TRUE - else - icon = initial(icon) - icon_state = "[chassis][resting? "_rest" : (stat == DEAD? "_dead" : "")]" - rotate_on_lying = FALSE - pixel_x = ((chassis == "dynamic") && chassis_pixel_offsets_x[dynamic_chassis]) || 0 - update_transform() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 86e3ccad24..9202d3a455 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1302,12 +1302,4 @@ /mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_health = 1) if(istype(cell)) - cell.charge -= amount*5 - -/mob/living/silicon/robot/verb/viewmanifest() - set category = "Robot Commands" - set name = "View Crew Manifest" - - if(usr.stat == DEAD) - return //won't work if dead - ai_roster() \ No newline at end of file + cell.charge -= amount*5 \ No newline at end of file diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 699105ac4c..b9cee43138 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -389,15 +389,6 @@ if (aicamera) return aicamera.selectpicture(user) -/mob/living/silicon/proc/ai_roster() - var/dat = "Crew RosterCrew Roster:

    " - - dat += GLOB.data_core.get_manifest() - dat += "" - - src << browse(dat, "window=airoster") - onclose(src, "airoster") - /mob/living/silicon/update_transform() var/matrix/ntransform = matrix(transform) //aka transform.Copy() var/changed = 0 diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index cae707ce46..396c6de166 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -318,9 +318,9 @@ sleep(50) if(mode == BOT_REPAIRING && src.loc == target_turf) if(autotile) //Build the floor and include a tile. - target_turf.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR) + target_turf.PlaceOnTop(/turf/open/floor/plasteel) else //Build a hull plating without a floor tile. - target_turf.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + target_turf.PlaceOnTop(/turf/open/floor/plating) else var/turf/open/floor/F = target_turf @@ -334,7 +334,7 @@ if(mode == BOT_REPAIRING && F && src.loc == F) F.broken = 0 F.burnt = 0 - F.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR) + F.PlaceOnTop(/turf/open/floor/plasteel) if(replacetiles && F.type != initial(tiletype.turf_type) && specialtiles && !isplatingturf(F)) anchored = TRUE @@ -345,7 +345,7 @@ if(mode == BOT_REPAIRING && F && src.loc == F) F.broken = 0 F.burnt = 0 - F.PlaceOnTop(initial(tiletype.turf_type), flags = CHANGETURF_INHERIT_AIR) + F.PlaceOnTop(initial(tiletype.turf_type)) specialtiles -= 1 if(specialtiles == 0) speak("Requesting refill of custom floortiles to continue replacing.") diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 43963b4eef..426de81da0 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -151,8 +151,7 @@ return /mob/living/simple_animal/bot/mulebot/bullet_act(obj/item/projectile/Proj) - . = ..() - if(. && !QDELETED(src)) //Got hit and not blown up yet. + if(..()) if(prob(50) && !isnull(load)) unload(0) if(prob(25)) diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 00f7b8cab7..bda309f7c7 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -38,10 +38,6 @@ . = ..() verbs += /mob/living/proc/lay_down -/mob/living/simple_animal/pet/cat/ComponentInitialize() - . = ..() - AddElement(/datum/element/wuv, "purrs!", EMOTE_AUDIBLE, /datum/mood_event/pet_animal, "hisses!", EMOTE_AUDIBLE) - /mob/living/simple_animal/pet/cat/update_canmove() ..() if(client && stat != DEAD) @@ -233,6 +229,24 @@ stop_automated_movement = 1 walk_to(src,movement_target,0,3) +/mob/living/simple_animal/pet/cat/attack_hand(mob/living/carbon/human/M) + . = ..() + switch(M.a_intent) + if(INTENT_HELP) + wuv(1, M) + if(INTENT_HARM) + wuv(-1, M) + +/mob/living/simple_animal/pet/cat/proc/wuv(change, mob/M) + if(change) + if(change > 0) + if(M && stat != DEAD) + new /obj/effect/temp_visual/heart(loc) + emote("me", EMOTE_VISIBLE, "purrs!") + else + if(M && stat != DEAD) + emote("me", EMOTE_VISIBLE, "hisses!") + /mob/living/simple_animal/pet/cat/cak //I told you I'd do it, Remie name = "Keeki" desc = "It's a cat made out of cake." diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 2371cfd7f1..986e5c9b4d 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -16,11 +16,6 @@ do_footstep = TRUE can_be_held = TRUE - -/mob/living/simple_animal/pet/dog/ComponentInitialize() - . = ..() - AddElement(/datum/element/wuv, "yaps_happily!", EMOTE_AUDIBLE, /datum/mood_event/pet_animal, "growls!", EMOTE_AUDIBLE) - //Corgis and pugs are now under one dog subtype /mob/living/simple_animal/pet/dog/corgi @@ -273,7 +268,7 @@ return if(!item_to_add) user.visible_message("[user] pets [src].","You rest your hand on [src]'s head for a moment.") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, src, /datum/mood_event/pet_animal, src) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi) return if(user && !user.temporarilyRemoveItemFromInventory(item_to_add)) @@ -644,3 +639,22 @@ for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2)) setDir(i) sleep(1) + +/mob/living/simple_animal/pet/dog/attack_hand(mob/living/carbon/human/M) + . = ..() + switch(M.a_intent) + if(INTENT_HELP) + wuv(1,M) + if(INTENT_HARM) + wuv(-1,M) + +/mob/living/simple_animal/pet/dog/proc/wuv(change, mob/M) + if(change) + if(change > 0) + if(M && stat != DEAD) // Added check to see if this mob (the dog) is dead to fix issue 2454 + new /obj/effect/temp_visual/heart(loc) + emote("me", EMOTE_VISIBLE, "yaps happily!") + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi) + else + if(M && stat != DEAD) // Same check here, even though emote checks it as well (poor form to check it only in the help case) + emote("me", EMOTE_VISIBLE, "growls!") diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index 0f7b534d4f..521f458e2f 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -130,7 +130,6 @@ hacked = TRUE visualAppearence = CLOCKDRONE can_be_held = FALSE - mouse_opacity = MOUSE_OPACITY_OPAQUE flavortext = "You are a cogscarab, a tiny building construct of Ratvar. While you're weak and can't recite scripture, \ you have a set of quick tools, as well as a replica fabricator that can create brass and convert objects.

    Work with the servants of Ratvar \ to construct and maintain defenses at the City of Cogs. If there are no servants, use this time to experiment with base designs!" diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 62c8588ac8..1bd434b233 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -424,9 +424,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians var/mob/living/simple_animal/hostile/guardian/G = input(src, "Pick the guardian you wish to reset", "Guardian Reset") as null|anything in guardians if(G) to_chat(src, "You attempt to reset [G.real_name]'s personality...") - var/list/mob/candidates = pollGhostCandidates("Do you want to play as [src.real_name]'s [G.real_name]?", ROLE_PAI, null, FALSE, 100) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as [src.real_name]'s [G.real_name]?", ROLE_PAI, null, FALSE, 100) if(LAZYLEN(candidates)) - var/mob/C = pick(candidates) + var/mob/dead/observer/C = pick(candidates) to_chat(G, "Your user reset you, and your body was taken over by a ghost. Looks like they weren't happy with your performance.") to_chat(src, "Your [G.real_name] has been successfully reset.") message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(G)])") @@ -498,10 +498,10 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians return used = TRUE to_chat(user, "[use_message]") - var/list/mob/candidates = pollGhostCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_HOLOPARASITE) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_HOLOPARASITE) if(LAZYLEN(candidates)) - var/mob/C = pick(candidates) + var/mob/dead/observer/C = pick(candidates) spawn_guardian(user, C.key) else to_chat(user, "[failure_message]") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index c2c9f5a71f..51a9d8d62b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -486,7 +486,10 @@ Difficulty: Very Hard if(isturf(Stuff)) var/turf/T = Stuff if((isspaceturf(T) || isfloorturf(T)) && NewTerrainFloors) - var/turf/open/O = T.ChangeTurf(NewTerrainFloors, flags = CHANGETURF_INHERIT_AIR) + var/turf/open/O = T.ChangeTurf(NewTerrainFloors) + if(O.air) + var/datum/gas_mixture/G = O.air + G.copy_from_turf(O) if(prob(florachance) && NewFlora.len && !is_blocked_turf(O, TRUE)) var/atom/Picked = pick(NewFlora) new Picked(O) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 199def430e..0a8320788e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -240,8 +240,7 @@ obj/structure/elite_tumor/proc/return_elite() INVOKE_ASYNC(src, .proc/fighters_check) //Checks to see if our fighters died. INVOKE_ASYNC(src, .proc/arena_trap) //Gets another arena trap queued up for when this one runs out. INVOKE_ASYNC(src, .proc/border_check) //Checks to see if our fighters got out of the arena somehow. - if(!QDELETED(src)) - addtimer(CALLBACK(src, .proc/arena_checks), 50) + addtimer(CALLBACK(src, .proc/arena_checks), 50) /obj/structure/elite_tumor/proc/fighters_check() if(activator != null && activator.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(activator)) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm index 27ebb71c0e..e3c81b2639 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm @@ -91,5 +91,5 @@ visible_message("The tendril falls inward, the ground around it widening into a yawning chasm!") for(var/turf/T in range(2,src)) if(!T.density) - T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland, flags = CHANGETURF_INHERIT_AIR) + T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland) qdel(src) diff --git a/code/modules/mob/living/update_icons.dm b/code/modules/mob/living/update_icons.dm deleted file mode 100644 index 8bf0dc98a9..0000000000 --- a/code/modules/mob/living/update_icons.dm +++ /dev/null @@ -1,26 +0,0 @@ -//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. -/mob/living/update_transform() - var/matrix/ntransform = matrix(transform) //aka transform.Copy() - var/final_pixel_y = pixel_y - var/final_dir = dir - var/changed = 0 - if(lying != lying_prev && rotate_on_lying) - changed++ - ntransform.TurnTo(lying_prev,lying) - if(lying == 0) //Lying to standing - final_pixel_y = get_standard_pixel_y_offset() - else //if(lying != 0) - if(lying_prev == 0) //Standing to lying - pixel_y = get_standard_pixel_y_offset() - final_pixel_y = get_standard_pixel_y_offset(lying) - if(dir & (EAST|WEST)) //Facing east or west - final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass - - if(resize != RESIZE_DEFAULT_SIZE) - changed++ - ntransform.Scale(resize) - resize = RESIZE_DEFAULT_SIZE - - if(changed) - animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) - setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life(). diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b4c3c93824..427e30f2e2 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -567,9 +567,9 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/proc/is_muzzled() return 0 -/mob/Stat() - ..() - +/mob/Stat(delayoverride) + . = ..() + var/statdelay = delayoverride || 10 if(statpanel("Status")) if (client) stat(null, "Ping: [round(client.lastping, 1)]ms (Average: [round(client.avgping, 1)]ms)") @@ -577,7 +577,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) var/datum/map_config/cached = SSmapping.next_map_config if(cached) stat(null, "Next Map: [cached.map_name]") - stat(null, "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]") + stat(null, "Round ID: [GLOB.round_id || "NULL"]") stat(null, "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]") stat(null, "Round Time: [WORLDTIME2TEXT("hh:mm:ss")]") stat(null, "Station Time: [STATION_TIME_TIMESTAMP("hh:mm:ss")]") @@ -587,8 +587,9 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) if(ETA) stat(null, "[ETA] [SSshuttle.emergency.getTimerStr()]") - if(client && client.holder) + if(client?.holder) if(statpanel("MC")) + statdelay = 0 //It's assumed that if you're doing this you are doing debug stuff, don't do ioditic things. var/turf/T = get_turf(client.eye) stat("Location:", COORD(T)) stat("CPU:", "[world.cpu]") @@ -614,6 +615,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) GLOB.ahelp_tickets.stat_entry() if(length(GLOB.sdql2_queries)) if(statpanel("SDQL2")) + statdelay = 0 //It's assumed that if you're doing this you are doing debug stuff, don't do ioditic things. stat("Access Global SDQL2 List", GLOB.sdql2_vv_statobj) for(var/i in GLOB.sdql2_queries) var/datum/SDQL2_query/Q = i @@ -637,14 +639,13 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) if(A.IsObscured()) continue statpanel(listed_turf.name, null, A) - - if(mind) add_spells_to_statpanel(mind.spell_list) var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) add_stings_to_statpanel(changeling.purchasedpowers) add_spells_to_statpanel(mob_spell_list) + sleep(statdelay) /mob/proc/add_spells_to_statpanel(list/spells) for(var/obj/effect/proc_holder/spell/S in spells) @@ -801,14 +802,11 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) //can the mob be buckled to something by default? /mob/proc/can_buckle() - return TRUE + return 1 //can the mob be unbuckled from something by default? /mob/proc/can_unbuckle() - return TRUE - -/mob/proc/can_buckle_others(mob/living/target, atom/buckle_to) - return TRUE + return 1 //Can the mob interact() with an atom? /mob/proc/can_interact_with(atom/A) @@ -960,4 +958,4 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/setMovetype(newval) . = ..() - update_movespeed(FALSE) \ No newline at end of file + update_movespeed(FALSE) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 8e121dc809..fcc2c6c144 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -65,7 +65,7 @@ if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) - var/efficiency = 0.45 + var/efficiency = 0.00025 + (hot_air.reaction_results["fire"]*0.01) var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 91a2bc515f..054b91f273 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -45,8 +45,8 @@ eject() else var/gasdrained = min(powerproduction_drain*drainratio,loaded_tank.air_contents.gases[/datum/gas/plasma]) - loaded_tank.air_contents.gases[/datum/gas/plasma] -= 2.7 * gasdrained - loaded_tank.air_contents.gases[/datum/gas/tritium] += 2.7 * gasdrained + loaded_tank.air_contents.gases[/datum/gas/plasma] -= gasdrained + loaded_tank.air_contents.gases[/datum/gas/tritium] += gasdrained GAS_GARBAGE_COLLECT(loaded_tank.air_contents.gases) var/power_produced = RAD_COLLECTOR_OUTPUT diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 791db320a2..173d9721a9 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -93,7 +93,7 @@ /obj/item/projectile/magic/door/proc/CreateDoor(turf/T) var/door_type = pick(door_types) var/obj/structure/mineral_door/D = new door_type(T) - T.ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf(/turf/open/floor/plating) D.Open() /obj/item/projectile/magic/door/proc/OpenDoor(var/obj/machinery/door/D) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 077ab1fb7a..fd28ff9c47 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -36,9 +36,7 @@ All effects don't start immediately, but rather get worse over time; the rate is */ /datum/reagent/consumable/ethanol/on_mob_life(mob/living/carbon/C) - if(HAS_TRAIT(C, TRAIT_NO_ALCOHOL)) - C.adjustToxLoss((boozepwr/25)*REM,forced = TRUE) - else if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER) + if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER) var/booze_power = boozepwr if(HAS_TRAIT(C, TRAIT_ALCOHOL_TOLERANCE)) //we're an accomplished drinker booze_power *= 0.7 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index bd6eb4244c..512b8a21a1 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1870,82 +1870,133 @@ reagent_state = LIQUID color = "#b51d05" taste_description = "carpet" // Your tounge feels furry. - var/carpet_type = /turf/open/floor/carpet /datum/reagent/carpet/reaction_turf(turf/T, reac_volume) if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) var/turf/open/floor/F = T - F.PlaceOnTop(carpet_type, flags = CHANGETURF_INHERIT_AIR) + F.PlaceOnTop(/turf/open/floor/carpet) ..() /datum/reagent/carpet/black name = "Liquid Black Carpet" id = "blackcarpet" color = "#363636" - carpet_type = /turf/open/floor/carpet/black + +/datum/reagent/carpet/black/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/black) + ..() /datum/reagent/carpet/blackred name = "Liquid Red Black Carpet" id = "blackredcarpet" color = "#342125" - carpet_type = /turf/open/floor/carpet/blackred + +/datum/reagent/carpet/blackred/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/blackred) + ..() /datum/reagent/carpet/monochrome name = "Liquid Monochrome Carpet" id = "monochromecarpet" color = "#b4b4b4" - carpet_type = /turf/open/floor/carpet/monochrome + +/datum/reagent/carpet/monochrome/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/monochrome) + ..() /datum/reagent/carpet/blue name = "Liquid Blue Carpet" id = "bluecarpet" color = "#1256ff" - carpet_type = /turf/open/floor/carpet/blue + +/datum/reagent/carpet/blue/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/blue) + ..() /datum/reagent/carpet/cyan name = "Liquid Cyan Carpet" id = "cyancarpet" color = "#3acfb9" - carpet_type = /turf/open/floor/carpet/cyan + +/datum/reagent/carpet/cyan/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/cyan) + ..() /datum/reagent/carpet/green name = "Liquid Green Carpet" id = "greencarpet" color = "#619b62" - carpet_type = /turf/open/floor/carpet/green + +/datum/reagent/carpet/green/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/green) + ..() /datum/reagent/carpet/orange name = "Liquid Orange Carpet" id = "orangecarpet" color = "#cc7900" - carpet_type = /turf/open/floor/carpet/orange + +/datum/reagent/carpet/orange/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/orange) + ..() /datum/reagent/carpet/purple name = "Liquid Purple Carpet" id = "purplecarpet" color = "#6d3392" - carpet_type = /turf/open/floor/carpet/purple +/datum/reagent/carpet/purple/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/purple) + ..() /datum/reagent/carpet/red name = "Liquid Red Carpet" id = "redcarpet" color = "#871515" - carpet_type = /turf/open/floor/carpet/red +/datum/reagent/carpet/red/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/red) + ..() /datum/reagent/carpet/royalblack name = "Liquid Royal Black Carpet" id = "royalblackcarpet" color = "#483d05" - carpet_type = /turf/open/floor/carpet/royalblack +/datum/reagent/carpet/royalblack/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/royalblack) + ..() /datum/reagent/carpet/royalblue name = "Liquid Royal Blue Carpet" id = "royalbluecarpet" color = "#24227e" - carpet_type = /turf/open/floor/carpet/royalblue + +/datum/reagent/carpet/royalblue/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/royalblue) + ..() // Virology virus food chems. diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 36621aa662..c170858d98 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -53,7 +53,7 @@ if(isplatingturf(T)) var/turf/open/floor/plating/F = T if(prob(10 + F.burnt + 5*F.broken)) //broken or burnt plating is more susceptible to being destroyed - F.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + F.ScrapeAway() if(isfloorturf(T)) var/turf/open/floor/F = T if(prob(reac_volume)) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index ad349ea926..eaae548d68 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -142,9 +142,9 @@ /datum/chemical_reaction/fermis_plush name = "Fermis plush" id = "fermis_plush" - required_reagents = list("caramel" = 10, "blood" = 10, "stable_plasma" = 10) + required_reagents = list("sugar" = 10, "blood" = 10, "stable_plasma" = 10) mob_react = FALSE - required_temp = 300 + required_temp = 400 /datum/chemical_reaction/fermis_plush/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index 08d07b8a52..59394e6e4b 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -123,11 +123,24 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related /datum/chemical_reaction/randomized/proc/LoadOldRecipe(recipe_data) created = text2num(recipe_data["timestamp"]) - required_reagents = SANITIZE_LIST(recipe_data["required_reagents"]) - required_catalysts = SANITIZE_LIST(recipe_data["required_catalysts"]) + + var/req_reag = unwrap_reagent_list(recipe_data["required_reagents"]) + if(!req_reag) + return FALSE + required_reagents = req_reag + + var/req_catalysts = unwrap_reagent_list(recipe_data["required_catalysts"]) + if(!req_catalysts) + return FALSE + required_catalysts = req_catalysts + required_temp = recipe_data["required_temp"] is_cold_recipe = recipe_data["is_cold_recipe"] - results = SANITIZE_LIST(recipe_data["results"]) + + var/temp_results = unwrap_reagent_list(recipe_data["results"]) + if(!temp_results) + return FALSE + results = temp_results var/containerpath = text2path(recipe_data["required_container"]) if(!containerpath) return FALSE diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index b31b5c600d..618b74fffb 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -19,38 +19,18 @@ var/container_HP = 2 var/cached_icon -/obj/item/reagent_containers/verb/set_APTFT(mob/user) //set amount_per_transfer_from_this - set name = "Set Transfer Amount" - set category = "Object" - var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts - if(N) - amount_per_transfer_from_this = N - to_chat(user, "[src]'s transfer amount is now [amount_per_transfer_from_this] units.") - /obj/item/reagent_containers/Initialize(mapload, vol) . = ..() if(isnum(vol) && vol > 0) volume = vol - if(!possible_transfer_amounts) - src.verbs -= /obj/item/reagent_containers/verb/set_APTFT create_reagents(volume, reagent_flags) if(spawned_disease) var/datum/disease/F = new spawned_disease() var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY","viruses"= list(F)) reagents.add_reagent("blood", disease_amount, data) + add_initial_reagents() -/obj/item/reagent_containers/examine(mob/user) - . = ..() - . += "Currently transferring [amount_per_transfer_from_this] units per use." - if(possible_transfer_amounts && user.Adjacent(src)) - . += "Alt-click it to set its transfer amount." - -/obj/item/reagent_containers/AltClick(mob/user) - . = ..() - if(possible_transfer_amounts && user.Adjacent(src)) - set_APTFT() - /obj/item/reagent_containers/proc/add_initial_reagents() if(list_reagents) reagents.add_reagent_list(list_reagents) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 1b213fed0f..85248250a2 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -115,7 +115,7 @@ icon_state = "beaker" item_state = "beaker" materials = list(MAT_GLASS=500) - possible_transfer_amounts = list(5,10,15,20,25,30,50,60) + possible_transfer_amounts = list(5,10,15,20,25,30,60) beaker_weakness_bitflag = PH_WEAK /obj/item/reagent_containers/glass/beaker/Initialize() @@ -169,7 +169,7 @@ materials = list(MAT_GLASS=2500) volume = 120 amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120) + possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120) container_HP = 3 /obj/item/reagent_containers/glass/beaker/plastic @@ -179,7 +179,7 @@ materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000) volume = 180 amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,180) + possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120,180) /obj/item/reagent_containers/glass/beaker/plastic/Initialize() beaker_weakness_bitflag &= ~PH_WEAK @@ -198,7 +198,7 @@ materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000, MAT_GOLD=1000, MAT_TITANIUM=1000) volume = 240 amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,200,240) + possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120,200,240) /obj/item/reagent_containers/glass/beaker/meta/Initialize() // why the fuck can't you just set the beaker weakness bitflags to nothing? fuck you beaker_weakness_bitflag &= ~PH_WEAK @@ -341,7 +341,6 @@ materials = list(MAT_GLASS=0) volume = 50 amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,50) container_HP = 1 /obj/item/reagent_containers/glass/beaker/waterbottle/Initialize() @@ -358,7 +357,6 @@ list_reagents = list("water" = 100) volume = 100 amount_per_transfer_from_this = 20 - possible_transfer_amounts = list(5,10,15,20,25,30,50,100) container_HP = 1 /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty diff --git a/code/modules/reagents/reagent_containers/hypovial.dm b/code/modules/reagents/reagent_containers/hypovial.dm index 1f83e895bb..482877afcd 100644 --- a/code/modules/reagents/reagent_containers/hypovial.dm +++ b/code/modules/reagents/reagent_containers/hypovial.dm @@ -62,11 +62,11 @@ /obj/item/reagent_containers/glass/bottle/vial/small name = "hypovial" volume = 60 - possible_transfer_amounts = list(1,2,5,10,20) + possible_transfer_amounts = list(1,2,5,10,20,30) /obj/item/reagent_containers/glass/bottle/vial/small/bluespace volume = 120 - possible_transfer_amounts = list(1,2,5,10,20) + possible_transfer_amounts = list(1,2,5,10,20,30,40) name = "bluespace hypovial" icon_state = "hypovialbs" unique_reskin = null @@ -76,7 +76,7 @@ desc = "A large hypovial, for deluxe hypospray models." icon_state = "hypoviallarge" volume = 120 - possible_transfer_amounts = list(1,2,5,10,20) + possible_transfer_amounts = list(1,2,5,10,20,30,40,60) unique_reskin = list("large hypovial" = "hypoviallarge", "large red hypovial" = "hypoviallarge-b", "large blue hypovial" = "hypoviallarge-d", @@ -108,7 +108,7 @@ add_overlay(filling) /obj/item/reagent_containers/glass/bottle/vial/large/bluespace - possible_transfer_amounts = list(1,2,5,10,20) + possible_transfer_amounts = list(1,2,5,10,20,30,40,60) name = "bluespace large hypovial" volume = 240 icon_state = "hypoviallargebs" diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 46ddb1e2ed..7701e58616 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -31,7 +31,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/machinery/conveyor/inverted/Initialize(mapload) . = ..() if(mapload && !(dir in GLOB.diagonals)) - log_mapping("[src] at [AREACOORD(src)] spawned without using a diagonal dir. Please replace with a normal version.") + log_game("### MAPPING ERROR: [src] at [AREACOORD(src)] spawned without using a diagonal dir. Please replace with a normal version.") // Auto conveyour is always on unless unpowered diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index 2be4d106b6..05e4c667f6 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -51,22 +51,6 @@ make_reagents = list() category = list("initial","Food") -/datum/design/enzyme - name = "10u Universal Enzyme" - id = "enzyme" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 30) - make_reagents = list("enzyme" = 10) - category = list("initial","Food") - -/datum/design/flour_sack - name = "Flour Sack" - id = "flour_sack" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 150) - build_path = /obj/item/reagent_containers/food/condiment/flour - category = list("initial","Food") - /datum/design/monkey_cube name = "Monkey Cube" id = "mcube" diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index e29cf28f34..12fe64463d 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -51,56 +51,6 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi alt_sound = 'sound/items/pshoom_2.ogg' component_type = /datum/component/storage/concrete/bluespace/rped -/obj/item/storage/part_replacer/bluespace/tier1 - -/obj/item/storage/part_replacer/bluespace/tier1/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/stock_parts/capacitor(src) - new /obj/item/stock_parts/scanning_module(src) - new /obj/item/stock_parts/manipulator(src) - new /obj/item/stock_parts/micro_laser(src) - new /obj/item/stock_parts/matter_bin(src) - -/obj/item/storage/part_replacer/bluespace/tier2 - -/obj/item/storage/part_replacer/bluespace/tier2/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/stock_parts/capacitor/adv(src) - new /obj/item/stock_parts/scanning_module/adv(src) - new /obj/item/stock_parts/manipulator/nano(src) - new /obj/item/stock_parts/micro_laser/high(src) - new /obj/item/stock_parts/matter_bin/adv(src) - -/obj/item/storage/part_replacer/bluespace/tier3 - -/obj/item/storage/part_replacer/bluespace/tier3/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/stock_parts/capacitor/super(src) - new /obj/item/stock_parts/scanning_module/phasic(src) - new /obj/item/stock_parts/manipulator/pico(src) - new /obj/item/stock_parts/micro_laser/ultra(src) - new /obj/item/stock_parts/matter_bin/super(src) - -/obj/item/storage/part_replacer/bluespace/tier4 - -/obj/item/storage/part_replacer/bluespace/tier4/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/stock_parts/capacitor/quadratic(src) - new /obj/item/stock_parts/scanning_module/triphasic(src) - new /obj/item/stock_parts/manipulator/femto(src) - new /obj/item/stock_parts/micro_laser/quadultra(src) - new /obj/item/stock_parts/matter_bin/bluespace(src) - -/obj/item/storage/part_replacer/cargo //used in a cargo crate - -/obj/item/storage/part_replacer/cargo/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/stock_parts/capacitor(src) - new /obj/item/stock_parts/scanning_module(src) - new /obj/item/stock_parts/manipulator(src) - new /obj/item/stock_parts/micro_laser(src) - new /obj/item/stock_parts/matter_bin(src) - /obj/item/storage/part_replacer/cyborg icon_state = "borgrped" diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm index 76897b5276..caa2ca7adf 100644 --- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm @@ -108,7 +108,7 @@ if (levels.len) dest = locate(T.x, T.y, pick(levels)) - T.ChangeTurf(/turf/open/chasm, flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf(/turf/open/chasm) var/turf/open/chasm/C = T C.set_target(dest) C.drop(user) diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index 38a2d5bddd..3ebded7487 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -31,7 +31,7 @@ if(ispath(summoned_object_type, /turf)) var/turf/O = spawn_place var/N = summoned_object_type - O.ChangeTurf(N, flags = CHANGETURF_INHERIT_AIR) + O.ChangeTurf(N) else var/atom/summoned_object = new summoned_object_type(spawn_place) diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index d97d466e4d..8b8328abbe 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -234,7 +234,7 @@ dancefloor_exists = FALSE for(var/i in 1 to dancefloor_turfs.len) var/turf/T = dancefloor_turfs[i] - T.ChangeTurf(dancefloor_turfs_types[i], flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf(dancefloor_turfs_types[i]) else var/list/funky_turfs = RANGE_TURFS(1, user) for(var/turf/closed/solid in funky_turfs) @@ -248,7 +248,7 @@ var/turf/T = t dancefloor_turfs[i] = T dancefloor_turfs_types[i] = T.type - T.ChangeTurf((i % 2 == 0) ? /turf/open/floor/light/colour_cycle/dancefloor_a : /turf/open/floor/light/colour_cycle/dancefloor_b, flags = CHANGETURF_INHERIT_AIR) + T.ChangeTurf((i % 2 == 0) ? /turf/open/floor/light/colour_cycle/dancefloor_a : /turf/open/floor/light/colour_cycle/dancefloor_b) i++ /datum/effect_system/smoke_spread/transparent/dancefloor_devil diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm index c4a2b4aa7e..8108b121ae 100644 --- a/code/modules/spells/spell_types/godhand.dm +++ b/code/modules/spells/spell_types/godhand.dm @@ -216,4 +216,4 @@ P.original = user P.firer = user P.fire() - return ..() + return ..() \ No newline at end of file diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm index 5f984fa7e3..794ed797ad 100644 --- a/code/modules/spells/spell_types/touch_attacks.dm +++ b/code/modules/spells/spell_types/touch_attacks.dm @@ -78,8 +78,8 @@ hand_path = /obj/item/melee/touch_attack/nuclearfist school = "evocation" - charge_max = 100 + charge_max = 200 clothes_req = 0 - cooldown_min = 20 + cooldown_min = 40 - action_icon_state = "nuclearfist" + action_icon_state = "nuclearfist" \ No newline at end of file diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 31fc90cb04..31f08f0e87 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -22,14 +22,11 @@ SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered) drop_limb() - C.bleed(40) - - if(QDELETED(src)) //Could have dropped into lava/explosion/chasm/whatever - return TRUE if(dam_type == BURN) burn() - return TRUE + return 1 add_mob_blood(C) + C.bleed(40) var/direction = pick(GLOB.cardinals) var/t_range = rand(2,max(throw_range/2, 2)) var/turf/target_turf = get_turf(src) @@ -41,7 +38,7 @@ if(new_turf.density) break throw_at(target_turf, throw_range, throw_speed) - return TRUE + return 1 /obj/item/bodypart/chest/dismember() @@ -152,6 +149,7 @@ LB.brainmob = brainmob brainmob = null LB.brainmob.forceMove(LB) + LB.brainmob.container = LB LB.brainmob.stat = DEAD /obj/item/organ/eyes/transfer_to_limb(obj/item/bodypart/head/LB, mob/living/carbon/human/C) diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 6cf8136c50..208386a93b 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -24,7 +24,6 @@ /obj/item/ssword_kit = 1) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF - refill_canister = /obj/item/vending_refill/security /obj/machinery/vending/security/pre_throw(obj/item/I) if(istype(I, /obj/item/grenade)) @@ -34,6 +33,3 @@ var/obj/item/flashlight/F = I F.on = TRUE F.update_brightness() - -/obj/item/vending_refill/security - icon_state = "snackorange" diff --git a/html/changelog.html b/html/changelog.html index 60412299cf..21cade10d2 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -868,6 +868,2067 @@ _Kathrin's Box Beautification:_
    • Added Departements Winter Coats to the loadout list.
    + +

    04 November 2019

    +

    4dplanner, MMiracles updated:

    +
      +
    • Wizard shapeshift now converts damage taken while transformed
    • +
    • transform spell transfers damage correctly instead of healing most of the time
    • +
    • 0% simplemob health maps to 0 carbon health, 100% simplemob to 100% carbon
    • +
    • transforming to a form with brute resistance no longer heals you
    • +
    • transforming back to a species with brute resistance no longer heals you
    • +
    +

    AdmiralPancakes1 updated:

    +
      +
    • Cryo cell shortcuts: alt-click toggles the doors, ctrl-click toggles the power
    • +
    +

    Alonefromhell updated:

    +
      +
    • Ported Oracle UI, a framework for self-updating and neat UI's
    • +
    • Paper now uses OUI
    • +
    • Bins now use OUI
    • +
    • fixes tootip offset
    • +
    +

    AnalWerewolf updated:

    +
      +
    • Fritz plushie
    • +
    • Donor item
    • +
    +

    Anonymous updated:

    +
      +
    • More crusader armor variants to pick from armament: Teutonic and Hospitaller.
    • +
    +

    Arturlang updated:

    +
      +
    • You can now use CTRL and ALT click on pumps and filters to toggle them on and off and max their output respectively
    • +
    • You can now use RPDs on windows and grilles.
    • +
    • The RD can now suplex a immovable rod. Good fucking luck.
    • +
    • Fixes high alert ERT suit sprites. You can see them now!
    • +
    • Traitor codewords are now highlighted for traitors.
    • +
    • You can now examine pumps filters and mixers to see if you can use CTRL and Alt click on them.
    • +
    • Fixes brain damage/trauma healing nanites so they actually work while there are only traumas.
    • +
    • Advanced toxin filtration nanites now heal slimes
    • +
    +

    Bhijn updated:

    +
      +
    • It's now possible to forcefully eject the occupants of a dogborg's sleeper by using a crowbar on them. This action is instant.
    • +
    • Resist values for dogborg sleepers have been adjusted. The baseline has been decreased from 30 seconds to 15 seconds. Medihound sleepers have a resist timer of 3 seconds. Sechound sleepers retain a resist timer of 30 seconds.
    • +
    • It now takes 10 full seconds to insert people into your sleeper. This should hopefully give people some more room to breathe and react to a dogborg attempting to sleeper someone either for no reason or in a way that violates law 2.
    • +
    • Warp whistles no longer grant permanent invulnerability and invisibility
    • +
    • You can now actually use the resist hotkey to resist out of handcuffs. Woah, revolutionary
    • +
    • the `!tgs poly` command now actually works
    • +
    • Poly now has a 0.01% chance per squawk to speak through the TGS relay.
    • +
    • The point production mode of radiation collectors has been reverted to the original behavior of using all of the stored power every process cycle instead of just 4% of it
    • +
    • Radiation collectors now display the amount of power/research points they're producing per minute rather than per process cycle, which should hopefully clear up a lot of confusion.
    • +
    • Radiation collectors also display what's happening to the gas within them, which should make it a lot more obvious as to how you get tritium.
    • +
    • Security borgs and K9s are now only available during red alert or higher.
    • +
    • Headmins or other folks with access to the server's config can choose the minimum alert level for secborgs to be chosen via the MINIMUM_SECBORG_ALERT config option. See the default game_options.txt for more info.
    • +
    • The server no longer attempts to check if the CID matches the IP of any bans, or if the IP matches any CIDs of any active bans, during client analyzation
    • +
    • Vampires can now only ventcrawl in bat form if their blood level is below the bad blood volume (224 blood total)
    • +
    • Vampires now only take 5 burn per mob life cycle while within chapel areas, down from the original 20 burn per life cycle.
    • +
    • K9 pounces have received a minor rework. It now has an effective cooldown of 2.5 seconds, can now only deal up to 120 staminaloss, deals a maximum of 80 stamloss on hit, has a spoolup of half a second, and now has telegraphing in the form of a quiet noise.
    • +
    • K9s now only have 80 health
    • +
    • Secborgs (but not k9s) now have a hybrid taser. This can be toggled via server config.
    • +
    • The disabler cooler upgrade now applies to all energy-based firearms for borgs
    • +
    • Dogborg jaws are now capable of incapacitating targets if using help intent. This deals a hard stun depending on how much staminaloss the target has, and whether or not they're resting. This behavior can be toggled via server config.
    • +
    • K9 jaws now have 15 force, up from their nerfed 10 force.
    • +
    • Borg flashes regained their ability to cause knockdown. This can be toggled via server config.
    • +
    • The WEAKEN_SECBORG config option will disable the new dogborg jaws mechanic and make secborgs spawn with a standard disabler.
    • +
    • The DISABLE_BORG_FLASH_KNOCKDOWN will disable the ability for borg flashes to knockdown.
    • +
    • Jukeboxes now have 6 audio channels available to them, up from the previous accidental 2 and previously intended 5 channels.
    • +
    • Jukeboxes now work again on clients running versions higher than 512.1459.
    • +
    • People will no longer have their ears consumed by an eldritch god if multiple jukeboxes are active and the first jukebox in the jukebox list stops playing, then tries to play again
    • +
    • Instead of the debug text for invalid jukebox behavior being printed to world, the debug text is now restricted to the runtime panel.
    • +
    +

    BurgerB updated:

    +
      +
    • Tweaked the UI of the loadout to be less cluttered due to an issue with formatting.
    • +
    +

    BurgerBB updated:

    +
      +
    • Adds the bonermeter; a device that measures arousal based statistics.
    • +
    • Added a new input to the electrostimulator that controls the strength of the shock. It accepts negative inputs which reduce arousal. Added a new output to the electrostimulator that displays the amount of arousal gained.
    • +
    • Rebalanced the electro-stimulator to be less spammy by giving it a 2.5 second enforced cooldown per circuit contraption. Increased the complexity of electro stimulator from 10 to 15.
    • +
    • Reworked the Vent Clog event to spray smoke instead of foam, also made it shoot smoke over time instead through each vent instead of all at once.
    • +
    • Increased the spawn area of the City of Cogs (Reebe). This does not affect the area in which builders can build.
    • +
    • Significantly tweaks the Wizard race transformation event to be less unreasonably troublesome.
    • +
    • Adds a new 0 cost trait that makes you immune* to Crocin and Hexacrocin
    • +
    • Tweaks how slurring works so it's more of a gradual change into slurring instead of immediate.
    • +
    • Slurring is now directly proportional to your drunkenness, with other sources of slur being added on top of it.
    • +
    • Bras are now separate from underwear, meaning you can mix and match bras if you're into that.
    • +
    • Men can wear female accessory clothing, and females can wear men accessory clothing. It's not a fetish, mom, it's PROGRESSIVE.
    • +
    • Reorganized accessories into their own files to prevent a massive 1000 line file.
    • +
    • i'm 10% sure that merging this PR will cause preference corruption sooooooooooo I just need to hear from @deathride58 or perhaps someone else on how much damage this could possibly do.
    • +
    • Tweaked penis.
    • +
    • Rebalanced penis.
    • +
    • Added the following reagents to the common list of vent clog reagents: ~~Cooking Oil~~, ~~Frost Oil~~, Sodium Chloride, Corn Oil, Uranium, Carpet, Firefighting Foam, semen, femcum, tear juice, strange reagent, ~~spraytan~~.
    • +
    • Vent Clog smoke emits the same transparent smoke as a smoke machine, including how much it transfers. Vent Clogs also do not trigger in areas deemed "Safe" in code, such as in the dorms or trusted areas where dangerous things shouldn't occur.
    • +
    • Adds additional random brain damage text
    • +
    • Adds penis enlargement pills.
    • +
    • Adds Stun Circuit and Pneumatic Cannon Integrated Circuits
    • +
    • Fixed extinguisher and smoke circuits not accepting any reagents.
    • +
    • Adds a few important clockcult tips.
    • +
    • Added Mech Sensors, a brass-created trap that activates when a mech not controlled by a cultist crosses it.
    • +
    • Added power nullifiers, an emp trap that emps everything in a 3x3 area, with the center suffering a heavy EMP.
    • +
    • Brass Skewers now deal 50 damage to mechs.
    • +
    • Ass slapping only works if you're actually behind the target. Ass slapping now respects disarm blocking. You can no longer face/ass slap someone on an intent other than help, unless they are also face/ass slapping.
    • +
    • Fixed ass and face slapping grammar.
    • +
    • Adds meh effects for ass and face slapping.
    • +
    • "Unwillingly" eating food now sends a warning message instead of a notice. Unable to stuff food down your throat sends a danger message instead of a warning message.
    • +
    • Adds clockwork reflectors, a fragile anti-laser reflection shield object that can be constructed for 10 brass sheets. Upon firing on the object in the direction where it is shielded, it ricochets the bullet off of it relative to the shooting angle.
    • +
    • Renames some windows in the build menu for consistency.
    • +
    • Clockwork Cult walls can no longer be deconstructed by RCDs when heated.
    • +
    • Adds several new toy loot to the arcade machine.
    • +
    • Rebalanced the arcade machine loot. Battlemachines now have a 0.5 second delay instead of a second delay between actions.
    • +
    • Fixed a bug that would not allow the one in a million pulse rifle to spawn.
    • +
    • Adds a new trait "Buns of Steel" that makes you immune to the effects of ass slapping, and temporarily makes the user's arm useless like a stun baton hit. It costs 0 points.
    • +
    • Ass slapping blowback from the Buns of Steel perk now deals 20 stamina damage instead of 50, and no brute damage.
    • +
    • Gamemode voting results are displayed at the end-round screen.
    • +
    • Cloning no longer gives you positive mutations, but a chance for a negative one. Cloning has a chance to "scramble" your visual DNA.
    • +
    • Chestbursters no longer give and remove your brain. They just disembowel and kill you now.
    • +
    • Fixes WarOps miscalculating players.
    • +
    • Activating the nuclear device during war-ops informs the crew of the nuke's position.
    • +
    • The alert level is displayed at the job selection screen.
    • +
    • Central Command informs you when a Meteor Storm is about to hit 5 to 10 minutes before it happens.
    • +
    +

    BurgerLUA updated:

    +
      +
    • Added a new framework for reagents. Reagents can now have a bool that determines if it can be detected by handheld medical analyzers. Currently only the changeling sting chemical does this.
    • +
    • Made changeling transformation string last between 10-15 minutes. Lowered the dna cost of changeling sting from 3 dna to 2 dna. Lowered the chemical cost from 50 to 10. Lowered the loudness from 2 to 1. Changeling sting transformation can be removed via high doses of calomel.
    • +
    • Fixed most reagents having a placeholder color.
    • +
    • Fixed autolathe wires not correctly shocking you when pulsed.
    • +
    • Rebalanced special jetpacks.
    • +
    +

    CalamaBanana updated:

    +
      +
    • Added Deer taur
    • +
    • Added Elf ears to mammals
    • +
    +

    CameronWoof updated:

    +
      +
    • Medihounds now have rollerbeds for non-vore patient transport
    • +
    • The closed O2 crate now uses the same color scheme as the open one
    • +
    • air alarms are green now instead of blue when the atmosphere is ideal
    • +
    • Hexacrocin overdose no longer causes climaxes
    • +
    • Altered the icons for inventory backplates. Sleek! Stylish! New!
    • +
    • Attaching a beaker that contains water to an IV stand no longer causes a visual glitch
    • +
    • Fluid-producing sexual organs no longer start full
    • +
    • Sexual organ fluid capacity decreased from 50 to 15
    • +
    • Sexual organ production rate decreased from 5u to 0.035u per two seconds.
    • +
    • Sexual fluid decals no longer contain reagents
    • +
    • Sexual fluids cannot by synthesized (e.g., by the Odysseus)
    • +
    +

    CdrCross updated:

    +
      +
    • Adds the ability for cloning consoles to read and write record lists to the circuit board, and provides a template for giving other machines local circuit board memory.
    • +
    +

    Cebutris updated:

    +
      +
    • Hugs of the North Star! Get them from the arcades (if you're lucky) and hug your friends at INCREDIBLE hihg speeds!
    • +
    • Tea Aspera now properly contains tea powder
    • +
    • Breasts no longer lactate by default, lactation is now a preference
    • +
    +

    Chayse updated:

    +
      +
    • Changed the Warden's compact combat shotgun to instead be a regular combat shotgun with a foldable stock and penalties for being folded.
    • +
    • Assorted space-worthy helmets can now act as masks for internals.
    • +
    • Internals code can now check any item with the ALLOWSINTERNALS flag through the GET_INTERNAL_SLOTS define. For now this only checks head and mask slots, since those are the most realistically speaking usable ones.
    • +
    • Medbay doors can now be opened by anyone from the inside without having to press the exit button.
    • +
    • Borgs now have the necessary dexterity to unbuckle people from themselves and from bucklable objects.
    • +
    • Fixes the Trek Uniform/Suit worn icons
    • +
    • AIs can now once more talk through holopads successfully
    • +
    +

    Code-Cygnet updated:

    +
      +
    • Added new things - Mind trait, alcohol reagent, chemical reagent, drink sprite and recipe.
    • +
    • added commander_and_chief sprite to drinks.dmi
    • +
    +

    Coolgat3 updated:

    +
      +
    • Changed player number checks to 20 from 24 for cult and clockcult, also made nukeops 28 required players instead of 30.
    • +
    • Changed enemy minimum age from 14 to 7
    • +
    • Added the code for the semen donut and made it craftable
    • +
    • Added the donut sprites
    • +
    • Made the sec and warden berret offer as much protection like the helmet
    • +
    • Added berets for all the heads.
    • +
    • Added sprites for the berets.
    • +
    • Coded the berets to spawn in appropiate lockers.
    • +
    • Raised the ripley's movement speed and lights range by 1, also lowered its armor to compensate.
    • +
    • Added combat gloves sprite
    • +
    • Added said sprite
    • +
    • added combat boots sprite
    • +
    +

    Coolgat3 / Avunia updated:

    +
      +
    • Made kindle put the target into stamcrit, which makes it an actually working, useful stun.
    • +
    • Added a stamina loss modifier to the vanguard spell which makes the user's stamina drain at a way slower rate. This doesn't make them immune to tasers, but it takes a few hits to actually get them to fall down.
    • +
    • Made it so that clock culties don't start with a chameleon suit. Instead they start with an engineer suit which is pretty much the same sprite and looks. If this is not perfect, then I am willing to make a slightly more brass-colored version of the engineer suit sprite and call it a ratvarian engineer jumpsuit.
    • +
    • Increased the cost of vanguard, as it is now a spell that works somewhat like adrenals, minus the move speed, making your stamina drain really slow and making you unable to get knocked onto the ground by just a single taser shot.
    • +
    • Lowered the charge time of kindle, reason being that you can usually have only one active spell on you, or two at max if you decide to run two slabs, but the fact that kindle silences people for such a small amount of time makes up for it, in my opinion.
    • +
    • Figured out that the consoles and their warp function actually work with the current code. The thing that makes them not work is when the gamemode is ran on debug mode, without the required players to actually support it. It also breaks the ark timer which is stuck on -1 seconds until activation. Whenever the gamemode starts properly, like any other gamemode, with player checks and all, everything seems to work just fine.
    • +
    +

    CydiaButt13 updated:

    +
      +
    • Lamp Plushie to loadout
    • +
    • added plushie_lamp to plush icons
    • +
    • added Lamp Plush to loadout and icons and items
    • +
    +

    EgoSumStultus updated:

    +
      +
    • Fixed blood chiller's inhand
    • +
    • FIXED SHIELF
    • +
    • fixed magpistol magazine sprites
    • +
    • Added the Femur Breaker
    • +
    • Adds male AI vox.
    • +
    +

    EmeraldSundisk updated:

    +
      +
    • Adds a gun range to Box Station
    • +
    • Provides some extra power grid connections
    • +
    • Sunglasses and Earmuffs removed from the Warden's Office - they can be found at the range instead
    • +
    • Rearranges a few objects within the prison as to accommodate the new gun range
    • +
    • Adds a mass driver to Delta Station's chapel
    • +
    • Adds a second means of entry into the chapel
    • +
    • Slightly expands the chapel to make room for the driver, slight adjustment to air systems
    • +
    • Clears a path in the station exterior for the mass driver to work properly
    • +
    • Nearby maintenance loot has been relocated to accommodate the chapel expansion, surrounding area has been "cleaned up" somewhat
    • +
    • CentCom has noticed the lack of coffins in Delta Station's chapel and provided some, but in exchange for reducing the chapel morgue's capacity.
    • +
    • Fixed a maintenance door the chaplain should have been able to open.
    • +
    • Fixes space areas outside the driver removal: CentCom Defense Analysts have ordered the maintenance hatch to the Mass Driver room be removed citing "security concerns".
    • +
    • Increases the number of plots to 9 (from 5)
    • +
    • Additional lighting placed directly outside the garden
    • +
    • Cleans up the area to reflect use. Moves the seed extractor to a more central location
    • +
    • Relocates the seed packs on botany's counter to the garden removal: Removes wooden barricades outside the garden
    • +
    • Renames "Abandoned Garden" area designation to "Maintenance Garden", but does not replace the icon in Dream Maker
    • +
    • Expands the chapel mass driver room to make it easier to use
    • +
    • Rearranges the chapel backroom so there are now six coffins and burial garments roundstart
    • +
    • Cleans up the Janitor's office
    • +
    • Readjusts the station exterior so mass-driven coffins (hopefully) have less friction
    • +
    • Adds a fan to the chapel driver
    • +
    • The Janitor missed a few spots around the newly renovated Maintenance Garden
    • +
    • Readjusts positioning of Delta's QM keycard device
    • +
    • Cleaned up a few spots I missed in #9356, particularly around the janitor's office
    • +
    • Adds some potted plants around Box Station
    • +
    • The tile mentioned in #9409 should now be radiation-free.
    • +
    +

    Fermi updated:

    +
      +
    • Fixes tiny runaway decimals in reagents system.
    • +
    • SDGF: Fixes infinite clones.
    • +
    • fixed an angery PR
    • +
    +

    Fermis updated:

    +
      +
    • Added a panda simplemob
    • +
    • fixes empathy exploit.
    • +
    • Added the secbat, a box to hold it and the ability to dispense it from the SecTech vendor.
    • +
    • Adds 3 new music tracks.
    • +
    • tweaked Neurotoxin
    • +
    • added more depth to Neurotoxin
    • +
    • fixed the inability to create Neurotoxin
    • +
    • fixes fermichem reactions for tiny volumes work
    • +
    • makes quantisation level for chemistry finer
    • +
    • re-enables femichem explosions in grenades.
    • +
    • adds nuance to the SDGF and hatmium explosions.
    • +
    • Fixes analyse function on ChemMasters to correctly display purity.
    • +
    • Fixes the custom transfer for buffer to beaker button.
    • +
    • Debug option: Generate Wikichems
    • +
    • graft synthtissue surgery, new reagent synthtissue
    • +
    • neurine fixes brain objs merge: combines fermichem's lung damage with tg's
    • +
    • on_mob_dead(), bitflags and CHECK_MULTIPLE_BITFIELDS
    • +
    • refactored fermichem vars, moved impure chems into their own reagents subtype
    • +
    • Fixes small residues of chems that won't go away!
    • +
    • tweaked beaker health and allows use of syringes/droppers on chem_heaters
    • +
    • added a sound for when beakers take temperature damage.
    • +
    • added some icons for melting beakers
    • +
    • refactored how beakers take damage
    • +
    • fixes how beakers would only take one instance of damage on pH damage
    • +
    • fixes Janitor grenades.
    • +
    • fixes reaction mechanics at low volumes
    • +
    • stops reactions constantly bubbling on the edge of reaction temperature
    • +
    • stops small amount reactions from occurring, and prevents disappearing tiny numbers
    • +
    • Reduced minimum reaction volume from 1 to 0.01
    • +
    • cleaned up Fermichem
    • +
    • Adds Jacqueline the Pumpqueen and her familiar Bartholomew for the spooky season
    • +
    • Adds a giggle
    • +
    • Adds cauldron, Jacq and Jacq o lanterns, and a costume for halloween! mapedit: adds a new landmark so Bartholomew can spawn somewhere sensible.
    • +
    • fixes food reactions and explosion runtimes,
    • +
    • fixes the too much yes problem
    • +
    • Heart, Tongue and stomach regen.
    • +
    • lung damage threshholds.
    • +
    • Graft synthtissue
    • +
    • Skeleton's burning for no reason
    • +
    • Organ freezing handling.
    • +
    • Fixes chemistry books to point to the right wiki, and keeps tg's just in case
    • +
    • Changes top right wiki button location to go to both wikis
    • +
    • fixed Jacq's fondness for the AI
    • +
    +

    Ghom updated:

    +
      +
    • minor clean up on hydroponics reagent containers.
    • +
    • fixes the perpetual lack of moisture that has affected genitalia descriptions since, like, forever.
    • +
    • implements the arousal state for mammary glands.
    • +
    +

    Ghommie updated:

    +
      +
    • Fixes many possible situations of null icons for cit races' bodyparts.
    • +
    • Removes duplicate slimepeople' sprites.
    • +
    • Purges that draw_citadel_parts().
    • +
    • Fixes ISINRANGE_EX using the wrong relational operator.
    • +
    • The kindle status effect stun duration now properly proportional to the owner's remaining health.
    • +
    • Clockwork cult's kindle now affects silicons.
    • +
    • Cyborg mounted disablers/tasers/lasers now slowly self-recharge off the cyborg user's power cell instead of draining from it directly.
    • +
    • Borg rechargers now properly recharge the borg module's energy guns.
    • +
    • Prevents a couple more special/mounted guns from being preserved on cryo
    • +
    • Halved borg energy guns self-recharge delay and increased their cell capacity by 3/4
    • +
    • Fixes chemical patches always checking the suit slot even if the targetted limb was the head.
    • +
    • Skeleton, nightmare and golem races are once again available to get chemical patches applied onto.
    • +
    • Adds two cartons of space milk to the space skellie pirates cutter's fridge.
    • +
    • Refactored implants to not be located inside mobs codewise, akin to organs.
    • +
    • Fixed gps tracking implants.
    • +
    • Fixed item not being dumped out of storage implants onto the owner's turf upon removal.
    • +
    • Fixes cult potentially stalling if the target is erased from existence without being sacced.
    • +
    • Nukes the stunprod's 3 seconds delay.
    • +
    • Fixes teleprods.
    • +
    • Stops pulls of resting mobs breaking off whenever you swap turfs with someone else because of crawling delays.
    • +
    • fixes IAA.
    • +
    • EMPs now flick off stunbatons, they can be turned back on immediately by the user anyway.
    • +
    • Stunbatons now very slowly consume charge whilst kept on, at a rate of 4/1000th of a standard batoning charge cost per tick.
    • +
    • Softened up the charge cost checks to stop the above update from practically reducing the maximum uses of a stun baton by one. Now, should the remaining charge be lower than the hit cost, the resulting stun will be be proportional to the remaining charge divided by the hitcost, within a limit under which the stun batoning just won't happen.
    • +
    • Buffs condensed capsaicin, a yet another feature previously dunked by stam combat.
    • +
    • speeds up pepper spray puffs.
    • +
    • Buffed krav maga leg sweep stun and stamina damage. On the other hand, it's now unable to be used on already lying targets.
    • +
    • fixes eyestabbing people with cutlery while being a pacifist.
    • +
    • Reduces goonchat lag from being blasted by pellets and bullets repeatedly whilst wearing armor by properly removing the armor protection texts this times.
    • +
    • also reduced the size of armor protection messages in general. they clog up the chat box.
    • +
    • Fixes stunbatons icon not properly updating on cell removal and insertion.
    • +
    • Allows lower charge cells to be used with stun batons, and thus single use crapshots batons.
    • +
    • Adds in a 7 seconds delay to the jackhammer dismantling a superheated clockwork wall.
    • +
    • escape pods emergency suits storage can now be busted open by emags or excessive damage.
    • +
    • Fixes alt click bypassing the escape pods' suits storage lock.
    • +
    • Fixes emags wasting charges on un-emaggable & co stuff.
    • +
    • Ported some radials code updates.
    • +
    • Ported the RCL wiring menu and a comfier RCD interface.
    • +
    • A milder combat stance message will show up if the user switch combat mode on while on help intent.
    • +
    • Properly rewords the extinguisher's instructions on how to empty it on the floor since it was changed to be a screwdriver action instead of Alt Click a while ago.
    • +
    • Reskinnable PDAs. A related game preference.
    • +
    • Refactoring the pda, pda painter, obj reskinning and chameleon pda a bit to support this feature.
    • +
    • more PDA sprites and ported reskins.
    • +
    • turned virtual reality into a component datum, which is then applied to spawned virtual mobs. This fixes mob transformations (such as wabbajack and monkeyizing) breaking the previously hardcoded behaviour and trapping you in VR, also enabling a more concrete virtual reality inception experience.
    • +
    • Fixes power cells being unable to be rigged. Also prevents them from starting processing on init if they don't self recharge.
    • +
    • Fixes many, little or otherwise, issues with the stunbaton status refactor.
    • +
    • The sacrificial target icon will now display onto the cult objective ui alert once again.
    • +
    • Stopping borgs from sprinting into negative cell charge.
    • +
    • The default amount of z-levels reserved specifically for space ruin generation has been increased from 1 to 2
    • +
    • Moving some tablecrafting recipes to the appropriate categories: Kitty ears and lizard cloche hats to "clothing"; Hot dogs to "Sandwichs"; Cuban carb, fish and chips and fish fingers to "Fish".
    • +
    • Fixes the not-a-sandwich recipe being M.I.A.
    • +
    • Adding in peanuts, peanut butter, peanut butter toasts and sandwiches, and the PB&J sandwich. The peanuts contain a little bit of extractable cooking oil (similarly to soy beans) and can be microwaved or dried in a drying rack to make roasted peanuts, which can be mixed in a all-in-one-grinder for peanut butter, required to make those sandwiches.
    • +
    • Buffed wizard and artificier's Magic Missile, wizard and xeno queen's Repulse and juggernaut's Gauntlet Echo.
    • +
    • Fixes flashlights being unable to be used for rudimentary eyes and mouth exams.
    • +
    • Adds in a grey jumpsuit to the loadout choices, restricted to Assistants.
    • +
    • Fixes CWC construct shells being visible as ghost role to latejoiners.
    • +
    • new sprites for the flechette gun, its magazines and the toy ray gun
    • +
    • Merges the end-of-shift and its shuttle autocall announcements into one.
    • +
    • Prevents the end-of-shift shuttle from being recalled (even if to no avail).
    • +
    • Fixes being able to teleport papers to your location with TK.
    • +
    • Fixed some monkey-code shenanigeans making items sometimes disappear from pickpocketing.
    • +
    • New sprites for the some pda cartridges.
    • +
    • The crew monitor's entry for the Quartermaster will now appear bolded, while HoP's will be of the same color of the service/unknown/other jobs.
    • +
    • emergency pods' storage will now properly work.
    • +
    • The PDA skin preference will now properly save up.
    • +
    • Changed the default PDA icon var to match the default PDA skin preference.
    • +
    • Fixing the `(pointless) badassary` category appearing between the `dangerous and conspicious` and `stealthy and inconspicious` categories.
    • +
    • Combat gloves plus now properly use the combat gloves sprite.
    • +
    • Fixes the space ninja's energy netting.
    • +
    • Adding one pAI to the wizard shuttle and ERT prep room
    • +
    • Fixes the rocket launcher being unreloadable.
    • +
    • Buffed its accuracy a bit.
    • +
    • Replaced the grenade launcher emagged minesweeper loot with the rocket launcher like it was originally supposed to be.
    • +
    • Tweaked the :b: emoji.
    • +
    • Rubber Toolboxes.
    • +
    • Porting in two bar signs: Cyber Sylph's and Meow Mix.
    • +
    • Fixing stamina damage melee weaponry being unusable by pacifists, and still damaging objects and triggering electrified grilles when thrown.
    • +
    • refactored underwears to allow custom color preferences, instead of manually colored sprites.
    • +
    • The aforementioned manually colored pieces. Some of your char preferences may have been resetted as result.
    • +
    • More underwear choices, including: Bowling shirts, long johns, a tank top, fishnets, more bee socks, bee t-shirt and bee boxers (original PR for the latter three by nemvar from /tg/station).
    • +
    • random bodies will now have random underwear again.
    • +
    • Dressers will now properly change undergarment again.
    • +
    • Toned down many species' female chest sprites to fit the smaller cups.
    • +
    • Fixed some body parts sprites inconsistencies, such as the W/E female and male chest sprites being the same in some species, and jellypeople's legs being one tile off on W/E
    • +
    • Fixing baklava pies a bit.
    • +
    • Sweaters now cover groins too.
    • +
    • Improved the zelus flask to be more viable for bottle smashing than the average barman's selection.
    • +
    • Very slight bottle smashing code clean up, stupid const vars.
    • +
    • Fixes krav maga gloves, wizard spells knockdowns.
    • +
    • Added in an alert pop up to the cult convertees, on top of the older "click here to become a blood cultist" chat message.
    • +
    • The convertee's screen will now flash red to fit in the aforementioned message's fluff.
    • +
    • Made said message less verbose.
    • +
    • Towels. Crafted with 3 sheets of cloth, they can be worn on head, suit and belt slots even without uniform, or laid flat on the floor. Sprites from Baystation and Aurora Station.
    • +
    • You can combat mode right click people while wielding rags and towels to pat out their flames (to no use for rags) or otherwise drying them out.
    • +
    • toned down the stamina costs of some of the bulkier weapons.
    • +
    • repathed hypereutactic blades to be a subtype of dual sabers. Way less copypasta.
    • +
    • Fixing CX Shredder guns not accepting standard flechette mags.
    • +
    • Fixing missing magpistol magazines icon states.
    • +
    • sort of overhauled darkmode/lightmode to /vg/station's, also reincluding the pre-existing black'n'white theme.
    • +
    • Fixed LOOC color, fixed .userlove and .love span classes being a bit too blurry on dark mode.
    • +
    • The syndicate base's bathroom is now fitted with a shower, and a special towel.
    • +
    • Fixed many issues with towels.
    • +
    • The dry people off with rags/towels action can only be done if the object is NOT moist with reagents now. Also cleans banana creaming.
    • +
    • Towels deal more damage while soaked with reagents.
    • +
    • You can now squeeze rags/towels with Alt-Click.
    • +
    • deleted an old and crappier towel sprite that got in the way.
    • +
    • Fixes Pubby's disposal conveyor belts and lack of a second lawyer spawner.
    • +
    • Cleaned up the absolute state of the arousal module.
    • +
    • refactored exhibitionism into a quirk.
    • +
    • arousal states won't persist after death.
    • +
    • Fixes testicles size adjective thing.
    • +
    • undergarments toggling now works instead of just making underwear disappear and not come back.
    • +
    • The "Always visible" genitals setting will now display them above clothes.
    • +
    • combat pushes will now properly stop targets from using firearms, and will disarm the firearm if performed a second time, and also slow down people by 15%, and won't push people on tables blocked by shutters or other dense object anymore.
    • +
    • Fixes CHECK_BITFIELD macro.
    • +
    • Fixes hypovials being unable to transfer out liquids or be refilled by large dispensers like water tanks.
    • +
    • Fixes chem-masters machineries not dispensing newly made pills inside loaded in pill bottles.
    • +
    • Stunswords now fit in the captain's sabre sheat.
    • +
    • reworked ninja's stealth mode. Increased invisibility, but engaging in combat, attacking or throwing things, bumping people will temporarily lower it.
    • +
    • Ninja shoes are even stealthier.
    • +
    • cleaned up some 2014 tier processing code horror.
    • +
    • the oxyloss fullscreen overlays now also take in consideration 1/5 of the user stamina loss.
    • +
    • When you're jogging, you will only slip on water if you have more than 20% staminaloss, for real this time.
    • +
    • Different cuffs now come with different worn overlays instead of a generic one.
    • +
    • High luminosity eyes can now be properly deactivated and won't illuminate your surroundings again until turned back on.
    • +
    • Fixes freshly cloned people starting with undershirts. Fixes random characters possibly rolling with undergarments of the opposite gender (Doesn't affect preferences' freedom of choice).
    • +
    • MRE menu 3 has cuban nachos instead of a chili now.
    • +
    • Removed the illustration overlay from MREs, looks pretty weird otherwise.
    • +
    • MRE menu 4, vegetarian.
    • +
    • fixes a few bad touchs on combat mode pushing.
    • +
    • Fixes clock cult Abscond scripture not dragging pulled mobs into Reebe. Also fixes blood cult tele runes teleporting you from the source turf to the source turf.
    • +
    • fixes clock cult mass recall.
    • +
    • Fixes underwear colors a bit.
    • +
    • Fixes Blood Cult conversion prompts
    • +
    • Removes an obnoxious temporary overlay var.
    • +
    • colorable socks can be colored again.
    • +
    • Fixed undergarments color preferences resetting each round.
    • +
    • Fixed a few dozen suits' body coverage inconsistencies. These changes shouldn't affect armor and utility vests for most.
    • +
    • Fixed clown shoes and work boots.
    • +
    • Fixed some overlay bug that happens when legcuffed and then handcuffed.
    • +
    • Slowed down police baton and tele baton speed by 75%, should be still be faster than the legacy speed (2 seconds) by 0.6 seconds. Telescopic batons' stamina cost per swing is now on par with police batons, ergo more expensive.
    • +
    • Fixed undershirts n socks colors prefs.
    • +
    • You can now alt-click to rotate machinery such as the tachyon-droppler array or emitters again.
    • +
    • Sofas can't be wielded and transformed back into plain chairs anymore.
    • +
    • Enables emojis for PDA messages.
    • +
    • Removes revenant blight's shabby toxin damage in favor of mood maluses, and a dangerous necropolis curse if not cured in time. Remember
    • +
    • Blood cult altar, forge and archives now use radial menus.
    • +
    • Fixed some machineries' UIs.
    • +
    • blood and clock cultists messages from metabolizing
    • +
    • Fixed advanced medical scanners borg upgrades.
    • +
    • Fixes certain borg upgrades being unapplicable on dogborg counterparts of the target cyborg type.
    • +
    • Fixed people being shovable hrough windows, windoors and the such.
    • +
    • You can now shove people into disposal bins.
    • +
    • refactored altdisarm(), ergo the "shoving people around" proc.
    • +
    • war ops is now lowpop friendly and doesn't require roughly 54 starting players anymore.
    • +
    • Singularity beacons now also moderately increases the odds meteor waves, while lowering their estimeed arrival countdown.
    • +
    • non-alphanumeric graffiti decals will no longer display as "letter".
    • +
    • Nerfs cyborg disabler and its internal power cell to hold 25 disabler beam shots rather than 43/44, just like a normal disabler.
    • +
    • Adds some missing species_traits for cloth, clockwork and cult golems.
    • +
    • Added towel linen bins, found in dormitory restrooms. Also enhanced the bedsheet bins found in some stations' dormitories
    • +
    • Resprited bedsheet bins in 3/4 perspective
    • +
    • Made SDGF ghost poll message less verbose, made the experimental cloner's complaint with the former, and added ghost poll ignore options for both.
    • +
    • fixing some related onmob sprites issues with the above accessory.
    • +
    • Teleprods work on non-carbons mobs now.
    • +
    • Fixed tracking implant teleport issues.
    • +
    • Increased stunbatons power cell depletion rate when left on by 50%.
    • +
    • Gorlex Marauders are pleased to announce non-slip grooves were given to their .50 sniper rifles, and thus shouldn't accidentally flop on the floor like pocket spaghettis whenever taken out of a bag anymore.
    • +
    • Silicons can now operate teleporter, medical and security records console from a distance again.
    • +
    • Fixed custom say emotes conflict with drunk memes.
    • +
    • Fixes identity transfer (envy knife, changeling transformation, making a vr avatar) not copying digitigrade legs.
    • +
    • Fixes temporary transformation sting triggering heart attacks on heartless humans.
    • +
    • Fixed mobs folded inside bluespace bodybags getting their clothing and items deleted when passing through a recycler.
    • +
    • The alien-bursting-from-your-thorax and the xeno "hud" embryo stage images will now properly delete them once the embryo egg lifecycle is complete.
    • +
    • Fixed artificier lesser magic missile.
    • +
    • Phantom thief masks will now fancy your combat mode yet again.
    • +
    • Fixed gulag teleporter stripping the user of stuff it really shouldn't (like storage implant bags).
    • +
    • fixing cydonian armor a bit.
    • +
    • Resprited wooden and critter crates.
    • +
    • Improved the Cyber Sylph' good yet cumbersome bar sign a little.
    • +
    • Cyborgs can now use camera consoles on the edge of their widescreen. These consoles are also TK friendly now.
    • +
    • Updated gang dominator sprites.
    • +
    • Miner borgs can again have installed PKA mods.
    • +
    • Fixed invisible blackberry n strawberry chocolate cake slices.
    • +
    • Nuke ops / adminbus combat mechs will no longer spawn with tracking beacons.
    • +
    • Arcade machine directional sprites.
    • +
    • lowered the arcade's random plush / other prizes ratio from 1 : 2.5 circa to 1 : 5. Dehydratated carps and the awakened plush can not be achieved this way anymore.
    • +
    • Added armrests overlays to sofas and tweaked their sprites a little.
    • +
    • Fixed dogborg sleepers. Just don't tell me what is exactly fixed, cause I don't want to find out.
    • +
    • Buffed the deep space familiar gorilla against runtimes.
    • +
    • Updated ratvarian computer sprites.
    • +
    • Fixed storage implant transplant.
    • +
    • Refactored how Jacqueen teleportation destination is selected, preventing them from teleporting on off-station holopads.
    • +
    +

    Ghommie && Kevinz000 updated:

    +
      +
    • Lichdom and necromantic stone skeletons are now of the spaceproof kind too.
    • +
    • skeletons now also like dairy products.
    • +
    • Halloween roundstart skeletons and zombies are no more spaceproof.
    • +
    • You can choose to set your species to zombie or skeleton through the pride mirror yet again, Alas they are not of the spaceproof kind either.
    • +
    +

    Ghommie (Credits to Kmc2000 for the original PR) updated:

    +
      +
    • Porting in MRE boxes from Yogstation. But be careful, eating possibly expired MREs found in maintenance comes with an unrealistically large (actually small) chance of food poisoning. Otherwise just bail out and order actually safe-to-eat MREs from cargo for 2000 credits.
    • +
    +

    Ghommie (Original PR by Dennok) updated:

    +
      +
    • Now areas_in_z get areas spawned by templates and blueprints.
    • +
    +

    Ghommie (Original PR by Dreamweaver) updated:

    +
      +
    • Nanotrasen has received word of a high-tech research facility that may contain advancements in bluespace-based research. Any crew members who become aware of its whereabouts are to report it to CentCom immediately and are restricted from sharing said info.
    • +
    • The turf reservation system now dynamically creates new z levels if the current reserved levels are full.
    • +
    +

    Ghommie (Original PR by JJRcop) updated:

    +
      +
    • Ports in more emojis, including : flushed :
    • +
    +

    Ghommie (Original PR by LaKiller8) updated:

    +
      +
    • Goonchat options should now save properly.
    • +
    +

    Ghommie (Original PR by Vile Beggar) updated:

    +
      +
    • Warden now has an added drill hat in his locker. You can change the loudness setting of it by using a screwdriver on it. Use wirecutters on it for a surprise.
    • +
    +

    Ghommie (Original PR by coiax) updated:

    +
      +
    • atom/var/container_type has been moved into datum/reagents/var/reagents_holder_flags. There should be no visible changes to effects.
    • +
    +

    Ghommie (Original PR by nemvar) updated:

    +
      +
    • Botanists can now get beeplushies (or cultivator and bucket) as an heirloom.
    • +
    • Clowns and mimes will now properly pick either a can of paint or their brand as heirloom now.
    • +
    +

    Ghommie (Original PR by tralezab) updated:

    +
      +
    • Fixes an issue with spontaneous appendicitis picking incompatible mob biotypes.
    • +
    +

    Ghommie (Original PRs by Tortellini Tony and BuffEngineering) updated:

    +
      +
    • E-cigs will continue to display their setting after being emagged.
    • +
    • Vapes now come out of the mouth. fix Fixes an E-cig initialize() runtime.
    • +
    +

    Ghommie (Original PRs by nemvar and Rowell) updated:

    +
      +
    • Added beekini bras and panties, thigh-high and knee-high bee socks.
    • +
    +

    Ghommie (by Arkatos) updated:

    +
      +
    • Fixed an issue with a Lizardwine drink crafting, where a final product would contain unwated 100u of Ethanol.
    • +
    +

    Ghommie (by Floyd / Qustinnus, Arathian) updated:

    +
      +
    • The robotocist now has robe to show his love for toasters
    • +
    +

    Ghommie (by nemvar) updated:

    +
      +
    • Dwarfs are now more robust.
    • +
    +

    Ghommie (original PR by 4dplanner) updated:

    +
      +
    • thrown objects (but not mobs) no longer hit the thrower
    • +
    • mirror shield rebound no longer depends on the original thrower's momentum
    • +
    +

    Ghommie (original PR by 81Denton, kriskog and nemvar) updated:

    +
      +
    • Sleepers now show a message if players try to unscrew the maintenance hatch while they're occupied or open. Fixed typos in sleeper/organ harvester messages.
    • +
    • Sleepers and dna scanners can now be pried open with crowbars.
    • +
    • You can open and close sleepers and dna scanners by alt-clicking them.
    • +
    • The scanner's hatch now must be closed (on top of being unoccupied), just like sleepers, before being screwdriverable. This fixes a tricky door stuck issue with the machine.
    • +
    +

    Ghommie (original PR by AffectedArc07 and Shazbot) updated:

    +
      +
    • Added 8 new sock styles
    • +
    +

    Ghommie (original PR by AffectedArc07) updated:

    +
      +
    • Religion is now a globalvar instead of being a subsystem for some reason
    • +
    +

    Ghommie (original PR by AnturK) updated:

    +
      +
    • Supermatter now melt walls if it finds itself in one.
    • +
    +

    Ghommie (original PR by Anturk) updated:

    +
      +
    • Recipe for fabled secret sauce can now be found in the deepest reaches of space.
    • +
    +

    Ghommie (original PR by Barhandar updated:

    +
      +
    • Pumpkin meteors on Halloween now replace catastrophic meteor waves, instead of ALL OF THEM.
    • +
    +

    Ghommie (original PR by CrazyClown12) updated:

    +
      +
    • The chloral hydrate inside of the sleepy pen is no longer slower acting than chloral hydrate made in chemistry.
    • +
    • The chloral hydrate inside of cookies synthesised by emagged borgs is no longer slower acting than chloral hydrate made in chemistry.
    • +
    • Slight tirizene buff.
    • +
    • Delayed chloral hydrate
    • +
    +

    Ghommie (original PR by Denton) updated:

    +
      +
    • Nanotrasen has started shipping more types of bedsheets to its stations.
    • +
    • Added in Runtime, Pirate and Gondola bedsheets. The second one can also be found in some pirate ships, while the last can be crafted from gondola hides.
    • +
    • You can no longer reveal the 'illegal tech' research node by deconstructing .357 speedloaders, riot dart boxes, syndicate cigarettes, syndicate playing cards or syndicate balloons.
    • +
    +

    Ghommie (original PR by Mickyan) updated:

    +
      +
    • Fixed being unable to smother people using the damp rag
    • +
    +

    Ghommie (original PR by MrDoomBringer) updated:

    +
      +
    • morgues have had their proton packs removed and as such no longer suck in ghosts on closing.
    • +
    +

    Ghommie (original PR by MrDoomBringer, AnturK and YPOQ) updated:

    +
      +
    • Explosions will no longer damage wizards in rod form, the supermatter monitoring radio and megafauna GPS.
    • +
    • Supplypods no longer detonate their contents.
    • +
    • Fixed silicon items (e.g. cyborg modules) being destroyed by explosion epicenters.
    • +
    +

    Ghommie (original PR by Naksu) updated:

    +
      +
    • get_area() is now a define rather than a proc.
    • +
    +

    Ghommie (original PR by Nicjh) updated:

    +
      +
    • Abductor console's select disguise option now uses a radial
    • +
    +

    Ghommie (original PR by ShizCalev) updated:

    +
      +
    • Pineapple haters/lovers will get/no longer get pineapple pizzas respectively from infinite pizza boxes.
    • +
    • As a non-human mob, hovering your cursor over an inventory slot while holding an object in your active hand shouldn't runtime now.
    • +
    +

    Ghommie (original PR by Skoglol) updated:

    +
      +
    • New helper proc for alt-click turf listing, bypasses any interaction overrides.
    • +
    • Ghosts and revenants now use the new proc.
    • +
    • Ghosts can no longer toggleopen sleepers, adjust skateboard speed or close laptops
    • +
    • Revenant can now alt-click turf to list contents.
    • +
    • Revenant now slightly less nosy, use shift click to examine.
    • +
    • Alt-clicking the same turf again no longer closes the turf listing tab.
    • +
    • Reduced ventcrawl lag greatly.
    • +
    • Mining bags will no longer drop ore into backpack.
    • +
    • Mining bags in backpack no longer interferes with other mining bags.
    • +
    • Fixes some storage size circumventions.
    • +
    • Moved machine and computer frames below objects, parts are now always on top.
    • +
    • Moved structures (chairs, closets, windows, cult altars etc etc) below objects.
    • +
    • Moves mineral doors to airlock layers
    • +
    • morgue/crematorium trays' layers shouldn't overlap bodybags' anymore.
    • +
    +

    Ghommie (original PR by SpaceManiac) updated:

    +
      +
    • Disassembling a chem dispenser for the first time will no longer always yield a fully-charged cell.
    • +
    +

    Ghommie (original PR by Swindly) updated:

    +
      +
    • Arm-mounted implants that contain more than one item use a radial menu instead of a list menu.
    • +
    +

    Ghommie (original PR by Tlaltecuhtli) updated:

    +
      +
    • Other people's clothes burning no longer spam you
    • +
    +

    Ghommie (original PR by XDTM) updated:

    +
      +
    • Reagents now stop their passive effects (for example, stun immunity) if the liver stops working while they're active.
    • +
    +

    Ghommie (original PR by YPOQ) updated:

    +
      +
    • Fixing roffle waffle, mushroom halluginogen and some invalid reagents.
    • +
    • Fixes clockwork armor not actually having armor.
    • +
    +

    Ghommie (original PR by cacogen) updated:

    +
      +
    • The font size of all text in the chat window now scales
    • +
    • High volume (megaphone/head of staff headset) is a slightly smaller
    • +
    • Admins have slightly larger OOC text
    • +
    +

    Ghommie (original PR by coiax) updated:

    +
      +
    • Randomly coloured gloves and randomly coloured glowsticks now have slightly different typepaths, but otherwise function the same.
    • +
    • The Squeak subsystem has been renamed to Minor Mapping.
    • +
    +

    Ghommie (original PR by duckay) updated:

    +
      +
    • Added better names and descriptions for blueshirt officer gear.
    • +
    • Added the above gear to the premium selection of the sectech
    • +
    +

    Ghommie (original PR by harmonyn) updated:

    +
      +
    • Resisting out of bucklecuffs takes more/less time depending on the handcuffs you used, i.e., fake handcuffs will not bucklecuff someone for ages.
    • +
    • fake handcuffs shouldn't no longer demoralize restrained criminals scums.
    • +
    +

    Ghommie (original PR by monster860) updated:

    +
      +
    • fixes advanced proccall
    • +
    +

    Ghommie (original PR by mrhugo13 on tgstation13) updated:

    +
      +
    • The Syndicate has decided to equip their Syndicate leaders operative (Aswell as their clown counterparts) with the new Combat Glove Plus! The new Combat Glove Plus does everything the old boring Combat Gloves does but with the added extra of learning Krav Maga upon wearing them, any other Syndicate operative who wants to get in on the action will have to pay 5tc.
    • +
    +

    Ghommie (original PR by nemvar) updated:

    +
      +
    • Some drinks have new icons or slightly altered icons. In particular Wizz Fizz, Bug Spray, Jack Rose, Champagne and Applejack.
    • +
    +

    Ghommie (original PR by ninjanomnom) updated:

    +
      +
    • Orbiting is a little more aggressive about staying in orbit. The wisp as a result now correctly follows you over shuttle moves.
    • +
    • Gaps between sounds in some looping sound effects should no longer happen as much under heavy server lag.
    • +
    +

    Ghommie (original PR by variableundefined) updated:

    +
      +
    • Cancel button to assault pod destination selector.
    • +
    +

    Ghommie (original PR by wesoda25) updated:

    +
      +
    • disembowelment no longer works on mobs that aren't dead or in critical condition
    • +
    +

    Ghommie (original PRs by Akrilla, Arkatos and Denton) updated:

    +
      +
    • Sprays cans have a cap on how dark you can make objects. Art is uneffected.
    • +
    • Fixed a bug where you could get cyborg spraycans via pyrite extracts.
    • +
    • Added an infinite spraycan for admins to spawn.
    • +
    +

    Ghommie (original PRs by Denton and Skoglol) updated:

    +
      +
    • Reorganized the syndicate uplinks. Items are now mostly alphabetical, some misplaced items moved to more fitting categories. Bundles, random item and TC have been moved into a new category called "Bundles and Telecrystals". Gloves of the North Star and Box of Throwing Weapons have been moved to Conspicuous and Dangerous Weapons. Combat Gloves Plus have been moved to Stealthy and Inconspicuous Weapons. Moved all implants into the Implants category.
    • +
    • Added a new category to the uplink: Grenades and Explosives.
    • +
    +

    Ghommie (original PRs by Floyd/Qustinnus, optimumtact, Denton and coiax) updated:

    +
      +
    • You can now select what your pills will look like when making pills from the Chem Master
    • +
    • Red pills can make you think.
    • +
    +

    Ghommie (original PRs by Jujumatic and PKPenguin321, respectively) updated:

    +
      +
    • Minesweeper Arcade machines. The higher the difficulty setting, the better the prizes will be.
    • +
    • Also keep your eye out for another new (and rare) arcade game!
    • +
    +

    Ghommie (original PRs by Kmc2000 and actioninja) updated:

    +
      +
    • Added darkmode! You can opt-in to this by clicking the new toggle darkmode button just beside the settings one.
    • +
    • Byond members will now have a new setting for their Antag OOC color, instead of using their OOC one. (Antag OOC still locked under admin discretion though)
    • +
    • Default black'n'white windows style.
    • +
    +

    Ghommie (original PRs by Mickyan, Anturk, ShizCalev, nemvar and Naksu) updated:

    +
      +
    • After rigorous mandatory art training for the crew, many new graffiti styles are now available
    • +
    • Cleaned up some crayon and spraycan code for futureproofing.
    • +
    • Spraypainting blast doors no longer makes them see-through.
    • +
    • Paint remover now works on blast doors and the like.
    • +
    • Most objects can now be colored using a spray can.
    • +
    • Added visible message to spraying objects and windows.
    • +
    • Colored lights now shine in different colours.
    • +
    • Removed individual buttons text in crayon/spraycan UI, speeding it up.
    • +
    • Text mode buffer is actually visible in the UI.
    • +
    • Last letter of a text mode buffer no longer rotates out to be replaced with "a", allowing the text mode to be used for individual symbols.
    • +
    +

    Ghommie (original PRs by Naksu and XDTM) updated:

    +
      +
    • Transferring quirks now properly removes the roundstart trait from the person losing the quirk.
    • +
    • Roundstart traits no longer block the removal of other sources of that trait.
    • +
    • status traits are now a datum var, the accessors are now defines rather than functions.
    • +
    +

    Ghommie (original PRs by Naksu and coiax, loser) updated:

    +
      +
    • Cleaned up saycode
    • +
    • Taking mutadone while having the communication disorder brain trauma will no longer spam your chat with messages.
    • +
    • IPCs now come with a subtype of robotic tongue without the omnilingual ability, instead of innately having robotic voice spans.
    • +
    +

    Ghommie (original PRs by Nichlas0010 and ShizCalev) updated:

    +
      +
    • AI core display screen can now be set in character preferences.
    • +
    • AI core display screen will now be restore when revived.
    • +
    • Corrected some inconsistent capitalization in the player preferences screen.
    • +
    • Readded some forgotten AI sprites.
    • +
    • Fixed Hades AI death animation not playing.
    • +
    • the AI icon-selection menu now uses a radial.
    • +
    • Added in the death icon_states for the "TechDemon" AI screen.
    • +
    +

    Ghommie (original PRs by ShizCalev and bobbahbrown) updated:

    +
      +
    • Headsets now dynamically show in their description how to speak on any channels they can use when held or worn.
    • +
    • Radio channels names and keys now use defines.
    • +
    • The head arrival announcement will now be broadcast to the supply for the quartermaster.
    • +
    +

    Ghommie (original PRs by ShizCalev) updated:

    +
      +
    • Fixed a bug that allowed you to teleport an ID in your possession to a PDA anywhere ingame.
    • +
    • Fixed an exploit allowing you to steal ID's/pens from PDA's not in your possession.
    • +
    • Fixed an exploit allowing you unlimited control of a PDA's interface even if it wasn't near you/in your possession.
    • +
    • Fixed Pride Mirror exploits.
    • +
    • Corgi collars can now be removed!
    • +
    • Updated the corgi & parrot inventory panels to use the same formatting as other mobs
    • +
    • Fixed corgi inventory panels not closing properly.
    • +
    • Fixed the parrot inventory panel not closing properly if you're not able to interact with it.
    • +
    +

    Ghommie (original PRs by ShizCalev, MrDoombringer, AnturK, bgobandit, 81Denton and actioninja) updated:

    +
      +
    • Failsafe codes for uplinks are now available for purchase.
    • +
    • Nuke Ops now have the ability to purchase a usable RPG, the PML-9, as well as a couple different types of rockets for it. you can also suicide rocket jump with them!
    • +
    • Improved Uplink item descriptions and formatting.
    • +
    +

    Ghommie (original PRs by ShizCalev, coiax and Tlaltecuhtli) updated:

    +
      +
    • Caks will no longer override the bonus reagents provided in a donut when frosting them.
    • +
    • Caks can no longer create frosted frosted jelly donuts.
    • +
    • Jelly donuts will no longer lose their vitamins when they're frosted.
    • +
    • Fixed chaos donuts potentially doubling the amount of reagents added when microwaved with something else.
    • +
    • Donuts now always contain 1 sprinkles as was stated on the wiki. Frosted donuts have a chance at adding an extra sprinkle.
    • +
    • Improved the code for ensuring that security members enjoy donuts and security-themed alcoholic drinks.
    • +
    • neurotoxin doesnt insta stun but gives you limb paralysis overtime and heart attacks if it stays in for too long and it is also alcholic
    • +
    • beepsky smash now summons imaginary beepskys that deal stamina damage instead of outright stunning
    • +
    +

    Ghommie (original PRs by Time-Green and Qustinnus) updated:

    +
      +
    • loot crates can't explode after unlocking anymore
    • +
    • jumping into loot crates no longers causes them to go boom
    • +
    • You can now deconstruct abandoned crates with a welder without making them go boom. After unlocking them, of course.
    • +
    +

    Ghommie (original PRs by Tlaltecuhtli and nicbn) updated:

    +
      +
    • alt click to eject beakers from chem masters + chem dispensers + grinders + chem heaters
    • +
    • hit chem master + chem dispenser + chem heaters with a beaker and if its loaded with another it swaps em
    • +
    • All-In-One Blender UI uses a radial menu now. You can see the contents and reagents by examining.
    • +
    +

    Ghommie (original PRs by XDTM, 4dplanner, nemvar and, yes, myself) updated:

    +
      +
    • Merged tinfoil hat kind of protection into the anti_magic component.
    • +
    • Tinfoil hats can also be warped up from excessive dampening of mindray/though control/psicotronic anomalies, or by simply being microwaved in an oven, and become useless.
    • +
    • Immortality Talisman and Paranormal Hardsuit helmets now come with tinfoil protection too (minus the paranoia and limited charges).
    • +
    • Genetics/Slime/Alien Telepathy and Slime Link are now stopped by tinfoil protection.
    • +
    +

    Ghommie (original PRs by XDTM, optimumtact, Nichlas0010 and monster860) updated:

    +
      +
    • Added Quantum Keycards, devices that can link to a quantum pad, and can be used on any other quantum pad to teleport to its linked pad. spellchecking: Renamed "Bluespace Teleportation Tech" tech node to "Bluespace Travel".
    • +
    • Moved roasting sticks from the "Bluespace Travel" to "Practical Bluespace".
    • +
    • Spraying holy water on tiles will now prevent cult-based teleportation from using them as a destination point.
    • +
    • Quantum, wormhole and magic teleportation is no longer disrupted by bags of holding.
    • +
    • You are now also blocked from teleporting IN to no-teleport areas, not just out of them.
    • +
    • Quantum teleportation now makes pretty rainbow sparks instead of the normal ones.
    • +
    • Non-bluespace teleportation (spells etc.) no longer makes sparks.
    • +
    • Fixed teleportation deleting mob spawners like golem shells and ashwalker eggs.
    • +
    +

    Ghommie (original PRs by carshalash, GranpaWalton, BebeYoshi & Hexmaniacosanna, Fire Chance, Ordonis, Krysonism and OnlineGirlfriend) updated:

    +
      +
    • Reduced booze power of Mead, Red Mead, and Irish Cream.
    • +
    • Increased booze power of Grappa.
    • +
    • Added a new premium drink to the soda machine called "Grey Bull" which gives temporary shock resistance
    • +
    • A new drink called Blank Paper was added to the bar menu, it was made by a mime and it represents a new start.
    • +
    • Adds a variety of fine alcoholic beverages for discerning patrons of the bar: Wizz Fizz, Bug Spray, Champagne, Applejack, Jack Rose, Turbo, Old Timer, Rubberneck, Duplex, Trappist Beer, Blazaam and Planet Cracker!
    • +
    • Also more nonalcoholic drinks: Cream Soda, Lemonade and Red Queen.
    • +
    • Packs of a novel artificial sweetener have been added to the kitchen vendor.
    • +
    • Bottles of trappist beer and champagne are now available in the premium seection of the booze-o-mat.
    • +
    • Juicing parsnips now yields parsnip juice.
    • +
    • Maintenance peaches.
    • +
    • Grape soda now cools you down like other sodas.
    • +
    • tweaked the Arnold Palmer recipe, it now uses lemonade.
    • +
    • Added new drink, bottle, vomit and peach can sprites.
    • +
    +

    Ghommie (original PRs by grandpawalton and Mickyan) updated:

    +
      +
    • the contents on the smartfridge icon now change depending on how many items it contains
    • +
    • opening the maintenance panel of smartfridges now correctly updates the icon
    • +
    • Screwing a disk compartmentalizer no longer makes it look like a smartfridge.
    • +
    +

    Ghommie (original PRs by nicbn and coiax) updated:

    +
      +
    • Microwave UI uses a radial menu now. You can see the contents by examining.
    • +
    • Microwaves have a single wire accessible when open, the activation wire. When cut, the microwave will no longer function, when pulsed, the microwave will turn on.
    • +
    • Stabilized dark purple extracts now cook items in your hands, rather than dropping the cooked item on the floor.
    • +
    +

    Ghommie (original PRs by ninjanomnom and nemvar) updated:

    +
      +
    • Trays now scatter their contents when used for attacks, like they are supposed to.
    • +
    +

    Ghommie (original PRs by ninjanomnom, coiax, yoyobatty) updated:

    +
      +
    • Fixed slaughter demons not getting a speed boost when exiting a pool of blood. Fixed slaughter demon giblets not being visible.
    • +
    +

    Ghommie (original PRs by subject217, AarontheIdiot, pireamaineach, Gousaid67 and SouDescolado) updated:

    +
      +
    • Removed plasmamen species speedmod in favor of a slowdown for envirosuits.
    • +
    • Nanotrasen has began deploying departementalized enviro plasmasuits to the station! plasmamens can now benefit from some of the bonuses aswell as the color pattern of their job, while allowing others to easily determine their profession!
    • +
    • Benevolent Nanotrasen makes gulag available for everyone! (Plasmamen retain their equipment and don't die.)
    • +
    • Removes code that theoretically limits plasmamen from being clowns and mimes, but actually doesn't.
    • +
    +

    Ghommie (original PRs by zeroisthebiggay, AnturK, MrDoomBringer, Cobby, ATHATH, optimumtact, GranpaWalton, Skoglol) updated:

    +
      +
    • Blob overminds, sentient diseases, etc. can no longer dump out boxes. Sorry gamers.
    • +
    • Sentient Disease now has almost all symptoms at its disposal.
    • +
    • Adding single-symptom disease abilities is super easy now.
    • +
    • Sentient Disease can now hear (not sure if this was a bug or intentional).
    • +
    • Sentient Disease is a linguist and knows all languages. Still cannot speak.
    • +
    • Gives Sentient Diseases a medical hud to observe their victims further with.
    • +
    • Fixes and moves around some on_stage_change() and Start()-related things for virus symptoms and (sentient) diseases.
    • +
    • The inorganic biology symptom should work properly now when bought by a sentient disease.
    • +
    • Oxyloss icon no-longer shows up when someone has the self respiration symptom
    • +
    • The self respiration now makes you not contract diseases through the air and not breathe in smoke
    • +
    • Sentient diseases can no longer pick two cures that react and disappear when eaten.
    • +
    • Sentient disease cures are now consistently harder, will only pick cures from tier 6 and up.
    • +
    • Disease cures should now stay the same for all infected mobs.
    • +
    • The regenerative coma symptom has a new resistance 4 threshold effect! Said threshold effect will give hosts of the symptom's virus the TRAIT_STABLECRIT trait if its threshold is met.
    • +
    • An obscure, probably never reported before bug that may or may not exist involving sentient diseases and the self-respiration symptom should be fixed now (if it even existed in the first place).
    • +
    • The cooldown time between each removal or addition of a symptom for sentient diseases has been brought down from an agonizingly long 2 minutes to a more reasonable 1 minute.
    • +
    +

    Ghommie (original pr by Dennok on tgstation) updated:

    +
      +
    • Now you don't lose your pulled thing on the z level edge.
    • +
    +

    GrayRachnid updated:

    +
      +
    • Added windoors to all the flaps on delta.
    • +
    • rebalanced k9dogborgs
    • +
    +

    Hatterhat updated:

    +
      +
    • Magnetic pistols now fit in boot pockets - jackboots, workboots, etc.
    • +
    • literally every pistol subtype fits in shoes now. go wild.
    • +
    +

    Hippie Circuit Port updated:

    +
      +
    • Added all Atmospheric Circuits
    • +
    • Added the ability to color data disks
    • +
    • Added Selection and Storage Examiner Circuits
    • +
    • Added Smoke, Extinguisher, and Beaker Connector Circuits
    • +
    • Added Inserter, Renamer, Redescriber, and Repaint Circuits
    • +
    • Added MMI Tank and pAI Connector Circuits (The possibilities are endless!)
    • +
    +

    Improving and Balancing Cyborgs updated:

    +
      +
    • Added Crew Pinpointer to Security Borg
    • +
    • Added Crew Monitor to Medical Borg
    • +
    • Added Crew Pinpointer to MediHound Borg
    • +
    • Made the Disabler_Cooler compatible with both Security Borg and K9 Borg
    • +
    • Changed the Warning Text upon selecting Security or K9 module
    • +
    +

    ItzGabby updated:

    +
      +
    • Bat Species parts for more leeway for character customization.
    • +
    • Alphabetized decor wing selection window in character creator for simplicity.
    • +
    +

    JTGSZ updated:

    +
      +
    • Added one more gang boss slot bringing total to 4 from 3
    • +
    • Fixed Gang Boss being able to be deconverted
    • +
    • Gave Qualifies_for_Rank Check back its checks in job controller.
    • +
    • Optional species based clothing restrictions
    • +
    • Gang Dominator excessive wall check tweaked to 25 open turfs
    • +
    • Gang Dominator no longer functions off-station.
    • +
    • Adds more control over species based offsets.
    • +
    • qualifies_for_rank now checks latejoin menu
    • +
    • Added Halloween Dwarves, for Halloween... Yep.
    • +
    • Can flip pipes once more.
    • +
    • barricade girder walls use PlaceOnTop instead of new
    • +
    +

    Linzolle updated:

    +
      +
    • ability to quickly max sensors
    • +
    • atmos helmet visual bug
    • +
    • supply display are now properly on the wall
    • +
    • consistency in hop and cap berets
    • +
    • slime people now enjoy eating toxic food and it will not disgust them
    • +
    • hos trenchcloak now properly has a sprite on digi characters
    • +
    • duplicate definition of hos and sec skirts
    • +
    • Krav Maga leg sweep now works properly.
    • +
    • shoes can have a different icon used for their item and mob icons
    • +
    • combat gloves plus having no mob icon
    • +
    • inhands sprite for rainbow knife
    • +
    • colour of highlight on the regular knife when held in the right hand
    • +
    • mining shuttle console can now be printed after computer consoles have been researched
    • +
    • can now carry people on your back by aggressive grabbing them while they are laying down and then dragging their sprite onto yours.
    • +
    • dragging people who are prone is now much slower, and carrying them will allow you to move faster at the cost of taking 5 seconds to lift them up onto your back.
    • +
    • pacifists can now aggressive grab (cannot table slam people though)
    • +
    • blood on your body floating a bit to your right if you're a taur
    • +
    • some suits having no icon on tauric characters
    • +
    • front facing CMO hardsuit icon for naga taurs
    • +
    • colour of medical cross on CMO hardsuit for taurs
    • +
    • taur body and jumpsuit showing through mining suits
    • +
    • all chaplain suits can hold the same items in suit storage
    • +
    • improvement to organisation for chaplain suits
    • +
    • blood halberd not going back to 17 force after unwielding
    • +
    • unnecessary 's at the end of blood rites healing
    • +
    • QoL to blood rites, examine the ritual aura to view how many blood charges are left
    • +
    • surgery cleanup
    • +
    • dissection available round-start
    • +
    • better dissection surgeries from RnD, gives more points
    • +
    • abductors can now see what glands do
    • +
    • antagonist abductors now have a surgeon trait that teaches them every surgery rather than having it just check if they're an abductor
    • +
    • muscled veins surgery
    • +
    • having one of your hands used up if you fireman carry but the person being carried dismounts any way other than you dropping them
    • +
    • Four colour variants of ankle coverings. Select them on the loadout screen.
    • +
    • ankle coverings
    • +
    • allows for shoes that don't cover your feet to be taken into account for footstep sound effects and glass shards
    • +
    • Tend Wounds surgery. Heal in the field, with better healing the more damage the patient has.
    • +
    • Reconstruction replaced by Tend Wounds
    • +
    • made Revival more accessible, more viable alternative to cloning.
    • +
    • advanced surgery tools can't perform lobectomy or coronary bypass
    • +
    • Decorative and insect wings can now be coloured individually, similar to horns.
    • +
    • people getting assigned wings if their savefile is old.
    • +
    • wings that take the hair colour. Unnecessary if you can just set the colour.
    • +
    • Cannot make horns pure black. Trying to do so will set it to a default value.
    • +
    • decorative angel wings being invisible
    • +
    • abductors now actually work
    • +
    • abductor scientist has their own greet message now
    • +
    • unable to read paper on airlocks
    • +
    • ai can see paper (still just shows stars)
    • +
    • Target head and throw a hat at someone to toss it onto their head, knocking whatever they're wearing off if they are wearing a hat. Some headgear can't be knocked off this way.
    • +
    +

    MediHound updated:

    +
      +
    • Made Cyborgs be affected by Ion Storm Law Changes like AIs
    • +
    +

    MrJWhit updated:

    +
      +
    • rebalance melee stamloss
    • +
    +

    Multicam Config updated:

    +
      +
    • removed whether or not the stuff for multicam was checking the useless var and instead now checks the CONFIG_GET flag.
    • +
    • Admins now have a verb in the Server tab to turn AI multicam on and off.
    • +
    +

    Naksu updated:

    +
      +
    • default radiation insulation is now handled by atom vars rather than a component, components can still be used.
    • +
    • squeezed a little bit more perf out of atmos
    • +
    +

    Nero1024 updated:

    +
      +
    • Bare feet will now make the correct footstep sounds.
    • +
    • Other mobs will make the correct footstep sounds.
    • +
    • Crawling/dragging sounds for downed/incapacitated mobs
    • +
    +

    Onule & Nemvar (ported by Ghommie) updated:

    +
      +
    • New Revenant icons
    • +
    +

    Original by Citinited, port by Sishen1542 updated:

    +
      +
    • You can now use an airlock electronics on a locker to add a lock, and can screwdriver an unlocked locker to remove its lock.
    • +
    • You can now remove the locks on broken or emagged lockers.
    • +
    • Removing the lock from a personal locker now wipes that locker's ID details.
    • +
    • Broken lockers have had their appearance changed.
    • +
    +

    Owai-Seek updated:

    +
      +
    • custodial cruiser cargo crate
    • +
    • removed light replacer from power designs and moved to misc designs
    • +
    • added pimpin ride to custodial locator
    • +
    • added additional items to janibelt whitelist
    • +
    • made plant DNA manipulator unwrenchable
    • +
    • reduced janitor premium supply costs
    • +
    • fixed them strawberries
    • +
    • false codpiece
    • +
    • crocin/camphor bottles
    • +
    • updated kinkmate item list
    • +
    +

    PersianXerxes updated:

    +
      +
    • Adds the clockwork_warp_allowed flag to the Captain's Office area, set to FALSE the same way it is for the chapel and armory.
    • +
    • Relocates cult catwalks outside the Reebe dressing room.
    • +
    +

    Poojawa updated:

    +
      +
    • Digitigrade legs are now able to wear shoes and look fancy, Uniforms to come.
    • +
    • Xenos are only digitigrade now, mammals and aquatics have the option.
    • +
    • Fire Alarms are visible in low light situations
    • +
    • fixed vore prefs saving inconsistently, new characters might have a previous slot's prefs tacked on.
    • +
    • fixed mammals not having the option for digilegs. Sprites are fucky until body-part related sprites are done.
    • +
    • improved vore sound responsiveness to preference choices.
    • +
    • removed morphine from Medihound sleeper chemical list
    • +
    • fixed preference setting being broken
    • +
    • Medihound sleepers are Initialized properly, and icons update correctly now on eject
    • +
    • Air alarm All clear color changed from green to blue
    • +
    • APCs are harder to destroy.
    • +
    • Added Digitigrade versions of everything appliciable in suit.dmi
    • +
    • Snowflake Icons weren't modified, and were given NO_MUTANTRACE_VARIATION
    • +
    • naga and quad Taurs literally don't freeze their ass off in space anymore.
    • +
    • Digitigrade legs will toggle on/off properly on character menue
    • +
    • The misleading "normal" has been removed from species options
    • +
    • Added sanity checks to emag usage
    • +
    • fixed vtech, but it still doesn't work because of overriding jog/sprint mechanics from combat reworks.
    • +
    • Puppy jaws properly store if you're emagged, they are also toggle-able for stealth like the tongue.
    • +
    • Digitigrade legs should properly fucking update for the last fucking time. Fucking snowflake code. refractor: Got rid of snowflake sechound cuffs, gave them normal zipties like regular secborgs.
    • +
    • dogborg sleepers actually extinguish people who are on fire, in case you don't have time to lick them out.
    • +
    • Taur suits should fix themselves properly when worn by other people.
    • +
    • Added the Yogs/Oracle ported latejoin menu
    • +
    • All markings, tails, ears, and snouts for Citadel races are color matrixed!
    • +
    • all markings are on a per-limb basis, including Digitigrade legs!
    • +
    • a bunch of tails were blessed with tail wagging sprites, Fish, Sharks, Fennecs, Wahs, raccoons, and others.
    • +
    • Tiger markings + tail added, skunk tails improved via sprites from Virgo
    • +
    • tweaked some sprites to look better, but they absolutely could use a few extra passes for quality
    • +
    • HumanScissors in the Tools folder will permit anyone to contribute matrix'd markings to the sprite sheet, however Mam_markings is very, very full. Be careful.
    • +
    • Character preview was both optimized for taurs and bad-touched for better updating. I don't know if it'll be bad, but hey its better.
    • +
    • Added Dark Medihound and Pup Dozer from Virgo
    • +
    • Clone pods no longer announce the name of the clone
    • +
    • fixed flavor text appearing when your face is hidden but you're not an Unknown
    • +
    • Tauric suits now apply an (placeholder) blood overlay, as well as their shield overlay.
    • +
    • Ashwalkers now have lungs. They cannot breath station air without suffocation effects, but are completely fine on their homeworld.
    • +
    • Carbon mobs now have a maximum tolerance to oxygen of 50kPa.
    • +
    • Deluxe synthetic lungs have a very high bonus to O2 tolerance.
    • +
    • Digitigrade legs returned to normal, since digi leg markings overlay them anyway.
    • +
    • commented out lizard mam_snout entries, because too many abominations
    • +
    • Vore Panel restored to have various interactions available again. Semi-untested but should work as advertised.
    • +
    • Vore Panel has more feedback.
    • +
    • is_wet var to bellies, toggled in the panel, will remove flesh sounding struggles and the internal loop. JSON version updated.
    • +
    • Feeding var. You will need to enable feeding to recieve any feed vore actions, but you can now feed yourself to mobs that have this set. TODO, Dogborg sleeper feeding.
    • +
    • vore mode button now required to be enabled to perform vore actions. It's the mouth icon!
    • +
    • Ash Drake vore fixed for actual reals this time
    • +
    • Mobs shouldn't spam the released contents announcement anymore on qdel or death. Only if triggered
    • +
    • Hostile mob code now properly ignores targets in bellies
    • +
    • Your belly can quietly growl if you're starving now.
    • +
    • Normal blood splattering isn't offset due to tauric mode
    • +
    • Added plasma man suit icons for taurs
    • +
    • Added bee butt for insects to have stripes
    • +
    • adjusted random spawn sprite accessories, humans won't be demi by default and lizard/mammal spawns will randomly get digitigrade legs
    • +
    • sprite adjustments for tentacles, as well as a misspelling.
    • +
    • Humans once again use ears and tail_human, as intended. This is to prevent garish randomness
    • +
    • istype for species is actually correct and usable now, it'll be a factor for monkey form expansions.
    • +
    • Hair functions are de-gendered and more easily selectable now.
    • +
    • Slimes can *wag, select markings and snouts, and yes it works.
    • +
    • Slimepeople extra parts now respect their hair_alpha in terms of being somewhat see-through. it shouldn't stand out as badly now!
    • +
    • Hunger noises are now toggled per character
    • +
    • Ashwalker den is habitable by ashwalkers again
    • +
    • Medical belts now have overlays! Now you can see if a belt is useful or just flatout empty.
    • +
    • fixed hypo MK IIs not being able to be put on medical belts
    • +
    • fixed Navy officer uniforms that failed to spawn
    • +
    • Loadout items will be forcefully added to backpacks or at your feet instead of left behind at title screen
    • +
    • hypospray kits hold 12 now, but only vials and sprays themselves
    • +
    • labcoats can carry MK II hyposprays on them now.
    • +
    • Vore Mobs are a thing now, not just ash drakes
    • +
    • Removed hunger sound stuff. never taking requests from Coolgat3 ever again. refractor: Simple Mobs use the same system regular human mobs do, itjustworks.png
    • +
    • Character Window settings unsnowflaked and normalized. I have no fucking clue how to make them work with taurs still tho, sorry.
    • +
    • added rotating background images for better clarity and contrast than just SOLID FUCKING BLACK. Images from Virgo/Polaris/Eris
    • +
    • Defib users automatically stop pulling when they attempt to perform a defib shock
    • +
    • added muzzled varients of space helmets and full masks
    • +
    • added knight_grey to taur suits, all paranormal ERT now have tauric versions enabled
    • +
    • Lava knights have digitigrade and tauric versions now
    • +
    • Added a glass version of the gas mask, because it was in the files and looked nice. does everything regular ones do except make you an unknown
    • +
    • Added custom species names! Examining people will now display their species name unless they're an Unknown or have their face hidden. like flavor text. Set it in your character window!
    • +
    • changed how health scanners print messages, wrapping it in msg for one to_chat instead of printing every line to_chat.
    • +
    • Discord bot will now report when a round ends and give the vague news ticker that a sister-station would have received for the game mode and result of the round.
    • +
    • fixed medical hardsuit overlay issue. I thought it was going to work well but fuck byond.
    • +
    • None body markings shouldn't give rgb hell, but it also should reset properly anyway. ree.
    • +
    • Sorted some sprites to better sooth my byond icon limit anxiety.
    • +
    • Box Cryopods expanded to 6 public. Permabrig cryo fixed.
    • +
    • Delta Cryopods expanded to 6 public. Permabrig cryo fixed.
    • +
    • MetaStation Crypods expanded to 6 public, relocated above sparring ring. Permabrig cryo fixed
    • +
    • PubbyStation gained one more cryopod, Permabrig's cryo fixed.
    • +
    • Omega given one more crypod as well.
    • +
    • Gulag was given a cryopod.
    • +
    • Box and Meta's cryo rooms are now a new room entirely.
    • +
    • Added erect states for all phallic bodyparts
    • +
    • YOUR DICK ACTUALLY STANDS UP NOW, YOU'RE WELCOME.
    • +
    • skintone locked genitals match the new skintone colorations.
    • +
    • added two new vaginal types and descriptions.
    • +
    • fixed borg defib runtimes
    • +
    • fixed heart attacks being nonlethal
    • +
    • Ported Oracle's cloning set up, you're now visible like cryo when being cloned, though it's a mystery until you have skin on your meat puppet existance
    • +
    • Recyclers are unable to destroy the indestructible any longer.
    • +
    • Kiara's toy sabre now actually is the correct item + icon states
    • +
    • Generic armor for taurs fixed, there isn't actually any sprites for 'em, so. Full sprites overlay over bodies, but I really can't be bothered to do all the offset fixes otherwise.
    • +
    • Large maps have had a patient room transformed into micro chemistry stations with nothing else in them. They've been labelled 'Apothecary' rooms and are accessible by doctors.
    • +
    • females now have female defined sprites
    • +
    • Slime legs have had their excess pixels adjusted
    • +
    • Mammal normal legs are more in line with human legs now
    • +
    • fixed species like abductors and golems getting the fat tiddy or pingas
    • +
    • Atmos and Station alerts should be more alerting.
    • +
    • Added visible and hidden testicles
    • +
    • Added multi-boob support. Now you can have two or three pairs of breasts.
    • +
    • fixed missing vagina and breast sprites
    • +
    • fixed prosthetic hands being invisible
    • +
    • male foxes exist again
    • +
    • female chest markings improved from being too dark in comparison to their other colors, blending better
    • +
    • Markings behave better on non-organic limbs.
    • +
    • tweaked the name of Sublter to distinguish its use
    • +
    • Gave a hint for vore posting.
    • +
    • Readded Ninja speech modifications with their mask
    • +
    • Pacifists can eat people for heal belly or noisy. Digestive modes are auto-swapped to noisy
    • +
    • Added an underwear toggle button under 'Object' tab
    • +
    • Genitals now layer under underwear. Hide these if they're too obnoxious.
    • +
    • Added digitigrade socks of all known ones anyway.
    • +
    • tweaked the Genital character creation layout to look better
    • +
    • fixed having balls/womb when you don't have the linked organ at character creation
    • +
    • fixed being able to squeeze semen directly from your balls. Probably.
    • +
    • NT Newscasters have had repeated reports of gang activity and are now looking into it.
    • +
    • NT Psykers keep mumbling about last words of someone who died. Somehow they even have a newsletter for this...
    • +
    • Gangster greeting messages are a batch message rather than 5 laggy to_chats
    • +
    • RCL now show what color is currently in use
    • +
    • Added RGB blood effects, know whose blood this is by color!
    • +
    • Added Synthetics blood, and a machine that produces it. A universal donor for medical to heal people with. Make it via medical protolathe!
    • +
    • With hearts, slimepeople shouldn't die from the effects of not having a heart.
    • +
    • Plasma vessels from xenomorphs will restore blood if you're on resin.
    • +
    • Poly's speech now echos to the chat bot.
    • +
    • Added new wings to Insects and separated fluff from old ones, they're Insect's new body markings now without being per-limb (for now).
    • +
    • Horns are now available to mammals, and they have their own color.
    • +
    • Legs are no longer a binary hack code, but actually something that can be changed. Framework for tauric adaptations.
    • +
    • Purged Modular Citadel's sprite_accessories.
    • +
    • improved the quality of a number of sprites.
    • +
    • Moths are now all insects. Avians and Aquatics are all anthromorphics. Just as planned.
    • +
    • Anthromorphs can choose their preferred gibbing meat. I guess. Snowflakes are weird.
    • +
    • Additional Gentlemen names.
    • +
    • Medical huds are now calibrated for Radioactive wavelengths.
    • +
    • Engineering equipment, blue space, and common storage containers are radiation protected
    • +
    • fixed suit storage not cleaning radiation levels of everything stuffed into them.
    • +
    • QM is able to hire/fire people to their department now.
    • +
    • cryopod UI isn't complete shit anymore
    • +
    • Cryopods purge silicon gear more efficiently now. Same with ghosts.
    • +
    • Med Sprays are now more aligned with patch mechanics
    • +
    • Chemistry is encouraged to be more varied in their healing, as well as careful in its application
    • +
    • Active NPC priority set much higher priority for the MC, with the intent on making NPC combat more interesting
    • +
    • Clarified access descriptions of some jobs
    • +
    • fixed missing deco wing states
    • +
    • fixed a few things related to vore content
    • +
    +

    Putnam3145 updated:

    +
      +
    • Bottles in PanD.E.M.I.C 2200 can now be replaced with an inhand bottle directly
    • +
    • Ejecting a bottle from the PanD.E.M.I.C 2200 puts it directly into the user's hand
    • +
    • Alt-clicking the PanD.E.M.I.C 2200 ejects the current bottle
    • +
    • neural nanites only work/drain if you have brain damage or traumas the nanites can fix
    • +
    • Pod people can no longer get fat from standing in the light
    • +
    • PanD.E.M.I.C 2200 now ejects onto itself instead of onto user if user's hands are full
    • +
    • Added configs for a bunch of Dynamic rule parameters.
    • +
    • Added defaults for all the configs (WIP).
    • +
    • Added dynamic midround/latejoin antag injection to the config.
    • +
    • Made starlight condensation not kill slime people.
    • +
    • Added not-killing-slime-people to the transmission threshold of plasma fixation and radioactive resonance.
    • +
    • Made the clone scanner lock while it's scanning.
    • +
    +

    R3dtail updated:

    +
      +
    • Added 16 saltprimaryobject items Added 4 saltsecondarysubject items
    • +
    • Added a new carpet. Red! Also added said carpet to the Premium Carpet crate from the cargo supply console. Trilby said she'd take care of the crafting recipe.
    • +
    +

    Raptorizer updated:

    +
      +
    • Doubled peach spawn rate
    • +
    • tweaked numbers/variables
    • +
    • rebalanced numbers/variables
    • +
    • removed unneeded code
    • +
    +

    Seris02 updated:

    +
      +
    • Abductor Replication Lab ruin and advanced tools
    • +
    • Added looc hotkey
    • +
    • made the autoprocess button relevant
    • +
    • changes so that spooktober starts earlier
    • +
    • fixed the dark blue lum major effect
    • +
    +

    Sirich96 and Dennok (ported by Ghommie) updated:

    +
      +
    • Added new Teleporter Station sprites
    • +
    • Added teleport station calibration animation.
    • +
    +

    Sishen1542 updated:

    +
      +
    • Pentetic Jelly, new chemical made through mixing 1:1 slime jelly and pentetic acid.
    • +
    • Anatomic panacea now gives pent jelly instead of pent acid. Medbeams now have TRUE tox healing to heal TOXINLOVER as well.
    • +
    • Changed bible heal proc, halving the healed damage and increasing brain damage 5x in exchange for a much wider array of items to protect you from it.
    • +
    • Moved around some chems from emag list into upgrades.
    • +
    • Added some fun chems to dispensers.
    • +
    • Gave dispensers old tg functionality.
    • +
    • Leather, cardboard, bronze & bone golems!
    • +
    • Bone hurting juice and interactions with plasmamen, skeletons & bone golems!
    • +
    • Ported addition of new CAS cards.
    • +
    • Ported a fix for CAS.
    • +
    • Added the ability to alter your genitalia as a slimeperson more than addition/removal.
    • +
    • fixed genitalia removal proc in alter form.
    • +
    • Ported the inability for non-station AI to interact with station z-level.
    • +
    • HoS mains can now peacefully sleep in their office.
    • +
    • Podpeople now have customization options.
    • +
    • Removed the human check for cult conversion of captain/chaplain minds.
    • +
    • Roundstart carbon jetpacks now have full_speed FALSE.
    • +
    • Adds plasteel to medical and security techfabs.
    • +
    • Added public autolathes to all maps.
    • +
    • density = 0
    • +
    • hugboxing mining loot
    • +
    • ling blade now has 40 armor pen
    • +
    • fun
    • +
    • bad stuff
    • +
    • mech bad
    • +
    • rebalances strained muscles
    • +
    • added in the assistant response team
    • +
    • fixed up access on the centcom hangar button
    • +
    • storage tweaks for belt briefcase
    • +
    • codersprite for belt briefcase
    • +
    • added pharaoh gear to chaplain vendor
    • +
    • fixed typos in pharaoh items
    • +
    • made laser minigun not shitcode and also craftable
    • +
    • added new fire sounds for the laser minigun
    • +
    • holy lasrifle, hypertool, divine lightblade, and blessed baseball bat. Four new holy weapons!
    • +
    • stamina and force tweaks for most holy weapons.
    • +
    • prayer beads no longer deconvert after a 10 second timer, now just inject holy water for delayed effect
    • +
    • cultist runes are now destroyed with a bible or a null rod
    • +
    • bo-staff now functions as a nerfed sleepy carp staff
    • +
    • fixed kevinz code to add in non-null rod child items as holy weapons
    • +
    • fixing chems for strained muscles
    • +
    • narsie no longer asks for consent
    • +
    • removed reflect from divine lightblade
    • +
    • teleporting a locker is bad
    • +
    +

    Sishen1542, original by @Tlaltecuhtli updated:

    +
      +
    • alt clicking the emitter now rotates it instead of only flipping
    • +
    +

    Sishen1542, original by @zxaber updated:

    +
      +
    • Utility mechs no longer automatically get beacons.
    • +
    • Tracking beacons no longer delete themselves when EMPing a mech, and instead have a ten-second cooldown in-between EMPs. They also now do heavy EMP damage rather than light.
    • +
    • Mechs that take EMP damage lose the use of their weapons and equipment temporarily. Movement and abilities are not effected.
    • +
    • Mechs taking EMP damage no longer roll for a random malfunction.
    • +
    +

    Sishen1542, original by Arkatos updated:

    +
      +
    • Action buttons can now be dragged onto each other to swap places
    • +
    +

    Sishen1542, original by NewSta updated:

    +
      +
    • updated the miasma canister sprites
    • +
    +

    Sishen1542, original by Skoglol updated:

    +
      +
    • Heaters/freezers now support ctrl clicking to turn on and alt clicking to min/max target temperature.
    • +
    +

    Sishen1542, original by XDTM updated:

    +
      +
    • Using the wrong surgery tool during surgery no longer attacks the patient, if on help or disarm intent.
    • +
    • Surgery steps are now shown in detail only to the surgeon and anyone standing adjacent to them; the patient and people watching from further away get a more vague/ambiguous description.
    • +
    +

    Skoglol updated:

    +
      +
    • You can now alt click storage (bags, boxes, etc) to open it.
    • +
    +

    Skully) updated:

    +
      +
    • Nudity Permit, a completely invisible uniform that still has pockets and such, to loadout options. It is more or less a direct port from the RP server.
    • +
    +

    SkullyRoberts updated:

    +
      +
    • Penis autosurgeon as rare maint loot.
    • +
    +

    TerraGS / Skoglol updated:

    +
      +
    • Adds toggleable light and blinking charge indicator to kinetic crusher
    • +
    • Kinetic crusher can now be one-hand carried. You'll still need two hand to use it.
    • +
    +

    Thalpy updated:

    +
      +
    • fixes message_admins in SDZF
    • +
    • Alkaline buffer recipe so people don't get grumpy and expanded the pH range
    • +
    • fixes buffers
    • +
    • fixes broken compiler because a var changed name
    • +
    • impure travis var anger
    • +
    • Added the ability to dispense smartdarts from the chemmaster.
    • +
    • Tweaks medolier amd chembags to allow quickpickups of smartdarts, lets the latter soak in beakers (on the floor)
    • +
    • fixed rounding errors with smartdart mixes.
    • +
    • added modified smartdartgun icon.
    • +
    • 1. Kev asked that there were no antag datums used, so that's been changed. 2. Tricks can no longer turn someone into a dullahan, instead you have to spend candies to get that. I felt it was too mean to turn people into that, I didn't realise you couldn't revert it. 3. Barth will no longer as for impossible items. 4. Barth will no longer as for the same item multiple times. 5. Barth will now accept broader things, rather than asking for something, when meaning something specific. 6. Jacq will now no longer poof off the z level. 7. Jacq will (hopefully) stop spooking the AI by teleporting into there 8. Jacq will now try to teleport to a location with someone nearby. 9. Barth will tell you where Jacq is currently when you speak to him. 10. You can trade 2 candies for a Jacq Tracq (tm) 11. Jacq should stop getting mad and cover the station in gas when killed. 12. Fixed Jacq not singing (the link died). 13. Slightly changed wording so that people will hopefully get to know her. 14. Jacq no longer disappears when you're getting to know her.
    • +
    +

    Toriate updated:

    +
      +
    • All regular crates are now 3/4ths ToriCrates iamgeadd: Unused plastic crate sprite added
    • +
    • Blood freezer crates now have unique sprites.
    • +
    • RPD now has inhands
    • +
    • New sprites for RCDs and RPDs, inhands included
    • +
    • Updated the sprites of all the regular crates
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • cakes!
    • +
    • Made some sprites! -Love them really came out well
    • +
    • new economics
    • +
    • cargo and robotics relationships
    • +
    • unbalanced something
    • +
    • fixed a maybe oversight
    • +
    • Fun
    • +
    • costs of suit voucher
    • +
    • Unblances miner vender
    • +
    • spare cheaper brute kit
    • +
    • harm from hentie
    • +
    • rebalanced goliaths stun to be less auto death
    • +
    • Armor to blob shields
    • +
    • block weaken state to 70% from 75%
    • +
    • restores the deathriplys missing armor
    • +
    • new lockable colalr
    • +
    • armor
    • +
    • missing hopes and dreams
    • +
    • orgized the weapon file to be more cat brain friendly
    • +
    • This means sprite right?
    • +
    • Many engi flags on non-engi things
    • +
    • changed some code to be organized at a glance
    • +
    • 25% < --- 50% For NPC blocking bullshit ided: Yes
    • +
    • mag gun uses cells
    • +
    • kev things their to op
    • +
    • syndicate phobia
    • +
    • other phobia's
    • +
    • laser carbine
    • +
    • makes collars only locked via key
    • +
    • charging
    • +
    • Combat inducers for COMBAT!
    • +
    • made it look nice
    • +
    • golden swag boxes
    • +
    • Crafting suitcases
    • +
    • more bountys
    • +
    • Nitryl bounty
    • +
    • better stocks
    • +
    • more evil blood fluff text
    • +
    • Added more mime names
    • +
    • replaces a sink with a autolathen
    • +
    • 2 -> 3
    • +
    • MASON SUIT!
    • +
    • adds the sec jetpack to sec hardsuit storge
    • +
    • Added a few jet packs to the space queens men
    • +
    • volume of jet packs
    • +
    • Bad Idea
    • +
    • bio mass meat
    • +
    • more box options
    • +
    • a lack of replaceable boxes
    • +
    • clothing needing a emag
    • +
    • 4 - > 5
    • +
    • 5->6
    • +
    • 4tc - > 2tc
    • +
    • mulligan costs 4 - > 3
    • +
    • Tuberculosis 12tc - > 8tc
    • +
    • 15 - >10
    • +
    • both bags have the same name
    • +
    • 5 - > 2
    • +
    • 3 -> 1
    • +
    • 2 < - 4
    • +
    • 1->2 and ultra
    • +
    • shield + crafting
    • +
    • hierophant movment and melee attack
    • +
    • More plushies
    • +
    • attack verbs and descs
    • +
    • bone satchles
    • +
    • rebalanced stunslugs
    • +
    • colored boxes, and more types
    • +
    • harm and such
    • +
    • item classes
    • +
    • resonators being so shitty
    • +
    • Game braking bug critical: bug fix
    • +
    • items to syndie surgery bags
    • +
    • SNOW CONES
    • +
    • carts buy-able cargo
    • +
    • selling/time to craft
    • +
    • crafting problems, and red stamp exsplote
    • +
    • gives paper work sprites that are nicer
    • +
    • origami
    • +
    • gang tower shield
    • +
    • costs of boots
    • +
    • organ box
    • +
    • Medical breifcaseses
    • +
    • New cargo crate for tech-slugs!
    • +
    • Ammo to each fitting crate
    • +
    • Cat-code
    • +
    • fixed a few typos - Again my bad
    • +
    • fixed airless place
    • +
    • baklava
    • +
    • makes uplink kits more usefull for the risk
    • +
    • Changes some files to be better
    • +
    • As all things are not
    • +
    • fixing cat code that dosnt work, my bad
    • +
    • Arcades stealing from noodles
    • +
    • rapier
    • +
    • speedy quirk
    • +
    • Ironic
    • +
    • A bunch of minor issues with xenobiology are no more!
    • +
    • I didn't code it right it in the first place
    • +
    • new nodes
    • +
    • points and node gear
    • +
    • stuff n things
    • +
    • gear harness and a conflict merg
    • +
    • Nudity permits
    • +
    • nothing
    • +
    • Donner item
    • +
    • Luna's Gauntlets
    • +
    • rebalanced lingy dingy powery gamey
    • +
    • melee and block harm
    • +
    • sprites*
    • +
    • holster doing holster things
    • +
    • Donor item
    • +
    • Joy, Happiness, Honk
    • +
    • small mix up in terms
    • +
    • Promiscuous Organs crate, pills to lewd crate and testicles to maints
    • +
    • Made unholy water healtoxinlover
    • +
    • Zelus Oil, brass flasks
    • +
    • Added new chairs
    • +
    • Bugtesting zone upgrades for easy bug/game testing
    • +
    • more cargo to cargo
    • +
    • More loadout gear
    • +
    • Poojawa power creep
    • +
    • Not my work not my credit
    • +
    • Emitter gun
    • +
    • suit storage nulling anti magic item protection
    • +
    • rebalanced steal goals restrictions
    • +
    • fixed a few misleading goals
    • +
    • ports a fix
    • +
    • oversight in benos
    • +
    • QM rooms not getting Key Aunths
    • +
    • new books/cooking
    • +
    • less bad wording in slime
    • +
    • strawbarries and such
    • +
    • amazing things like tea of catnip, catnip and plant
    • +
    • glue uplinks
    • +
    • RPDs to drones
    • +
    • Armor and such
    • +
    • flavor
    • +
    • maybe a runtime
    • +
    • chameloen clothing
    • +
    • tons of peach themed items
    • +
    • caje
    • +
    • New book - Unused
    • +
    • organized files
    • +
    • redid brass tools to look better*
    • +
    • /cursed from a item path
    • +
    • Almost all clothing and most weaponds can be sold for pocket change
    • +
    • Cargo costs of packets and selling
    • +
    • Lowered mat selling as well as most if not all bountys
    • +
    • Adds more files for easy finding/adding in packs
    • +
    • oops not being blacklisted
    • +
    • removes some cit-modular things
    • +
    • Missing sprites with bad ones
    • +
    • emag charge amount
    • +
    • Reebe QoL aka creep in gear
    • +
    • ???
    • +
    • HEY MADE THE REEBEEE WAY SMALLER - Making it less lagging hopefully
    • +
    • Surgerys and spays in bags
    • +
    • earthbloods stam regen
    • +
    • Red to Blue/Black crosses as questioned by Bhijn
    • +
    • clean bot not cleaning basic cleanables
    • +
    • new traitor bundle
    • +
    • trash
    • +
    • eye bleed :add: misstakes
    • +
    • Removed old things!
    • +
    • UI memes
    • +
    • Blue space blood bag
    • +
    • blood costs
    • +
    • Beebal and Honeybalm plants
    • +
    • Costs of crates and paperwork
    • +
    • Adds 2 more crates hacked only
    • +
    • Added two seed packets of cotten to ash walkers base
    • +
    +

    Tupinambis updated:

    +
      +
    • Changes large parts of the nuclear operative base, including the addition of a new barracks where the ops spawn, a personal bedroom for the leader, the rearrangement of numerous rooms, some added fluff, a slightly more roomy bar, a larger hanger, a kitchen, and various other small changes to make the base feel just a bit more alive. This was achieved by completely redoing the base from scratch so there was room to work with, as a result potential bugs could crop, please do report them.
    • +
    • The drop pod chamber was airless. This seems like an oversight, and has been filled with air.
    • +
    • Cryo Sleepers have been added to Perma on all four maps in rotation. the bathroom windoor and window have switched places to accommodate this change.
    • +
    • You can now choose the pre-exisiting "loader" sprite as an appearance for your engineering borg.
    • +
    • A vast majority of references to humans within ion laws have been replaced with crew. AI modules have received similar treatment
    • +
    • Adds a syndicate themed emergency shuttle that costs 20000 credits, and can ONLY be purchased when the communications console is emagged. This shuttle features a fully stocked medbay with self serve sleepers, plenty of room that can fit highpop, a fully featured bridge, ballistic auto turrets, and an armory, EVA prep room, and bar, all of which are only accessible by either an agent ID or through hacking. +-EVA prep features 2 syndicate hardsuits and 3 syndicate softsuits. -Armory features 5 stetchkins with spare ammo, and 2 riot c-20r's. +![image](https://user-images.githubusercontent.com/42078130/48306551-0b786380-e500-11e8-821a-e59ac4eee0ea.png)
    • +
    • Lone operatives no longer spawn with a syndicate hardsuit and a bulldog. They instead spawn with a black and red EVA suit and an extra 15 TC (40 in total) ![image](https://user-images.githubusercontent.com/42078130/48308065-c44e9a80-e520-11e8-8d60-cec8ff23d61d.png)
    • +
    • The tesla engine has been replaced with a supermatter engine, and pubby engineering has been redesigned to accommodate this change.
    • +
    • The tesla engine has been completely removed along with any related components
    • +
    • RD and R&D vents are now actually connected to the air distribution.
    • +
    • New engineering hivebot. Has a bit more health but otherwise aesthetic.
    • +
    • Oldstation no longer has an excessive amounts of hivebots within it, however the bots that remain are individually a larger threat.
    • +
    • Hivebots are now more robust, with a higher melee damage output and health.
    • +
    • Remove this ruin from the blacklist or this PR is pointless.
    • +
    • the air injectors for the SM engine waste and for toxins waste should now receive power
    • +
    • Adds a mixed clothing closet to Deltastation Dorms.
    • +
    • Adds a bottle of unstable mutagen to Botany, on account of its distance from Chemistry.
    • +
    • Omegastation should no longer have any turf with missing textures, as those spots have been replaced with playing covered in a sandy turf decal.
    • +
    • Removed all living eggs from the xeno ruin because people self antag. Honk.
    • +
    • Adds a new security level between Blue and Red (Amber). The shuttle call time at this level is 8 minutes.
    • +
    • Blue security level now has a shuttle call time of 12 minutes.
    • +
    • The security level increase/decrease texts have been modified to accommodate the change.
    • +
    • Adds a code Amber sprite for the fire alarms
    • +
    • Removed the plushes from the toy crate, giving them their own.
    • +
    • Plushes are now less likely to spawn out of arcades
    • +
    • Removes a moth plush from the game.
    • +
    • added a small fire delay (3 ticks) to automatic shotguns
    • +
    • Reduced buckshot brute damage by 20%. (12.5 -> 10 brute per pellet) (75 -> 60 brute at close range)
    • +
    • Reduced rubbershot stamina damage by 40% (25 -> 15 stamina per pellet) (150 -> 90 stamina at close range)
    • +
    • Reduced beanbag stamina damage by 12.5% (80 -> 70 stamina per shot)
    • +
    • Engivend RCDs now vend upgraded RCDs
    • +
    • Beautified and stylized the cyborg HUD sprites, animated and cleaned up some of the old, modernized APC hacking and Doomsday sprites,
    • +
    • moved cyborg language select above the radio icon, instead of above the picture icon.
    • +
    +

    Twaticus & Poojawa updated:

    +
      +
    • Added new carpets from TauCetiStation!
    • +
    • More Liquid carpet chemicals, mix carpet with certain reagents to get different colors!
    • +
    • Tablets have a better means of being assembled codewise. nothing's different on player end.
    • +
    +

    UntoldTactics updated:

    +
      +
    • Rewords the click here prompt given when an attempted conversion is done on an offer rune (for blood cult)
    • +
    +

    UristMcAstronaut updated:

    +
      +
    • allows a pai to activate its holoform while in a pai connector without getting derped.
    • +
    +

    Useroth updated:

    +
      +
    • the collars are now aware of their proper overlay sprites
    • +
    • The space hotel dorms are now properly boltable with the buttons inside.
    • +
    • Makes the booze-o-mat hacked by default. Alternative to https://github.com/Citadel-Station-13/Citadel-Station-13/pull/8350.
    • +
    • After the PR which raised the ammo capacity of said magazines, due to the code, they ended up with an invalid icon state. Fixed through changing the icon state name in the icon file.
    • +
    • Taeclowndo shoes which grant the four following abilities: - Conjuring a cream pie right into their hand. Every three seconds. - Making a banana peel appear out of thin air at the tile of the clown's choice. Every ten seconds. - Mega HoNk. A touch-ranged, very small AOE ability, with effect equal to being honked by a Honkerblast on a clown mech, with the effects halved for anyone who isn't its direct target. Every ten seconds. - Bluespace Banana Pie. You don't throw this one... not right away at least. This baby can fit an entire body inside. Good for disposal of evidence. 25 second-long action, 45 second cooldown. Also produces a "[victim's name] cream pie". The body drops out of the pie if you splat it somewhere or destroy the pie. If you eat it, it will chestburst out of you a'la monkey cube. +It's a 14 TC item for traitor clowns and a 12 TC item for clown-ops.
    • +
    • The tentacle now directly puts the item in your hands, instead of toggling your throwing and tossing it at you. Tentacles suffer from ranged inaccuracies as if they were guns, I think it's enough of an inconvenience.
    • +
    • Makes the netting much less clunky. If there's only one target you can net while you press the button, it will just net that target instead of bringing up a list of mobs.
    • +
    • Energy nets now revive and fully heal capturees (even dead ones, after calculating points). If someone's got a scan and wants to get cloned, they can always kill themselves still.
    • +
    • Capture points are added on capture, rather than round-end, so it no longer matters whether your captures kill themselves in the holding facility or not.
    • +
    • Makes the nets a bit more sturdy. (previously it took mere two welder hits to break one)
    • +
    • Makes stungloves actually stun people (currently comparably with stunbatons, adjustable). Because electrocute_act(25, H) did fuck all, stunwise, and on top of that, people in insulated gloves were completely unaffected.
    • +
    • Reduced the stunglove electrocute_act value to 15 due to above. Could possibly be lowered further.
    • +
    +

    Weblure updated:

    +
      +
    • Added the relevant Beepsky animations from TG's aibots.dmi file to Cit's aibots.dmi file.
    • +
    +

    WhiteHusky updated:

    +
      +
    • Sleepers now show blood level and type.
    • +
    • Changed the styling of arousal messages to use pink-ish colors.
    • +
    • The orgasm moodlet message new-lines properly.
    • +
    • Flavor text with special characters will not get partially unescaped.
    • +
    • Canceling when setting flavor text does not clear it anymore.
    • +
    • Checking yourself shouldn't freeze the client anymore.
    • +
    +

    XDTM updated:

    +
      +
    • Added the experimental dissection surgery, which can be performed once per corpse to gain techweb points.
    • +
    • Rarer specimens are more valuable, so xenos and rare species are more efficient subjects.
    • +
    • Added two new surgery procedures, under the Experimental Surgery techweb node.
    • +
    • Ligament Hook makes it so you can attach limbs manually (like skeletons) but makes dismemberment more likely as well.
    • +
    • Ligament Reinforcement prevents dismemberment, but makes limbs easier to disable through damage.
    • +
    • Golem limbs can now be disabled, although they are still undismemberable.
    • +
    +

    YPOQ updated:

    +
      +
    • Stealth implants work again
    • +
    +

    Yakumo Chen updated:

    +
      +
    • Made stealth implant boxes flimsier
    • +
    • Autocloning now requires tier 4 parts
    • +
    • Removes autoscan
    • +
    • Scanning people now requires someone to operate the cloning computer regardless of part level.
    • +
    • removed antimagic component from holymelon
    • +
    +

    YakumoChen updated:

    +
      +
    • AEGs brought more in line with current radiation system. Try not to get EMP'd.
    • +
    • Jetpacks no longer last twice as long between air refills.
    • +
    • Reverted laser miniguns.
    • +
    • Adds beanbag slugs to the sec protolathe at round start
    • +
    • Brings shotgun ammo availability back in like between seclathe and autolathe.
    • +
    +

    Zargserg updated:

    +
      +
    • Lungs maximum toxin threshold is 0.5% of the atmosphere.
    • +
    • Permanently contaminated atmosphere does not murder crew anymore.
    • +
    +

    ZeroNetAlpha updated:

    +
      +
    • Cleans up autoylathe code and brings it back in line with the regular autolathe.
    • +
    • Fixes autoylathe interface not updating propperly.
    • +
    • Silicons are now consumable by scrub pups.
    • +
    +

    actioninja updated:

    +
      +
    • APC UI autoupdates correctly
    • +
    +

    bluespace bio bags updated:

    +
      +
    • Added bluespace bio bags and put it in the tech web, in the node applied bluespace
    • +
    • added a crappy icon for bluespace bio bags
    • +
    +

    chef updated:

    +
      +
    • Added main hallway approach to monastery
    • +
    • Added Maintenance hallway approach, with some maint loot
    • +
    • moved the docking arm for the white ship
    • +
    • changed placement of some grills and windows
    • +
    +

    coiax updated:

    +
      +
    • When the nuclear disk stays stationary long enough to trigger an increase for the lone op event chance, admins will be notified every five increments.
    • +
    +

    dapnee updated:

    +
      +
    • Plasmaglass tables, spears, tiny plasmaglass shards
    • +
    • Plasmaglass structures now drop plasmaglass shards instead of nothing
    • +
    • Trim lines!
    • +
    • You can now make plasmaglass tables again.
    • +
    +

    deathride58 updated:

    +
      +
    • When a gamemode fails pre_setup, it will now send a message in admin IRC and in ingame admin chat, instead of only being viewable in the logs.
    • +
    • Portal guns now spawn without firing pins.
    • +
    • Reduced the default/baseline nanite pool amount from 100 nanites to 25 nanites, and reduced the maximum nanite amount from 500 nanites to 125 nanites. The safety threshold was reduced from 50 nanites to 12 nanites.
    • +
    • Most of Lavaland's mobs are now on crack.
    • +
    • Blood drunk miners now move once every two ticks, rather than once every three ticks.
    • +
    • Bubblegum now has a maximum movement speed of once every three ticks. Buffed from the original value of once per 5 ticks.
    • +
    • The minimum time for the Colossus to attack again after firing a random shot is two deciseconds, Sped up from the original value of three seconds. The minimum time for the Colossus to attack again after performing a blast is now one second, with the original value being two seconds. The minimum time for it to attack again after performing its alternating shot pattern is now two seconds, original value being four seconds.
    • +
    • Ashdrakes now move once every five ticks, rather than once every ten ticks.
    • +
    • Heirophant chasers now move once every two ticks rather than three ticks by default, and the chaser cooldown has been reduced from 10 seconds to 5 seconds. The cooldown for the Heirophant's major attacks has also been sped up to 4 seconds from the original value of 6 seconds.
    • +
    • The Legion (megafauna) now moves at two ticks per second rather than three ticks. It additionally now actually moves faster while charging. The cooldown timer for it's special attacks has been reduced from 2 seconds to 1 second. Additionally, The Legion's view range has been decreased from 13 tiles to 10 tiles.
    • +
    • All megafauna now have a default view range of 4 tiles, decreased from the original of 5 tiles, and an aggro'd view range of 15 tiles, decreased from the original of 18
    • +
    • Goliaths now move once every ten ticks, sped up from the original value of 40(!!!) ticks. Additionally, their cooldown for their tentacles has been reduced from 12 seconds to 6 seconds. To compensate, their cooldown now only decreases by 5 deciseconds every time they're attacked, rather than 10 deciseconds, their melee damage has been reduced to 18 per hit from 25 per hit, and their vision range has been decreased from 5 tiles unaggroed, 9 tiles when aggroed, to 4 tiles and 7 tiles respectively. Ancient goliaths have a default attack cooldown of 8 seconds, sped up from the original value of 12 seconds.
    • +
    • Legion (the common mob) now has a cooldown of 1.5 seconds on their skull attack, sped up from the original value of 2 seconds. Additionally, their view range has been decreased from 5 tiles, 9 tiles when aggroed, to 4 tiles, 7 tiles when aggroed.
    • +
    • Stamina no longer regenerates at hyper speeds.
    • +
    • To accommodate for upstream's stamina changes, knockdown() now applies staminaloss only to the chest.
    • +
    • adjuststaminaloss() now has a new argument that allows you to specify a zone to apply staminaloss to. This defaults to the chest
    • +
    • apply_damage() is now capable of healing carbon mobs and human mobs.
    • +
    • Since the head has the same exact effects as the chest when disabled, and doesn't really make much sense to be affected by stamina, the head no longer has stamina.
    • +
    • The chest now has a stamina cap of 200 stamina due to the above.
    • +
    • Footsteps now sound mostly the same as they did before the hard sync
    • +
    • Jukeboxes now properly remove themselves from the active jukebox list when destroyed
    • +
    • Server operators and badmins can now make the server play like TG by toggling the stamina buffer on/off using the DISABLE_STAMBUFFER config option.
    • +
    • Airlock wires now work as they did prior to the hard sync
    • +
    • The thing you're currently grabbing is now taken into account when left-click disarming. Things you have grabbed now roughly have a 45% chance to be disarmed.
    • +
    • Disarm push rolls are now determined by the target's staminaloss rather than a flat number.
    • +
    • When you're in combat mode, pushing someone who isn't in combat mode is a guaranteed knockdown. Hard counter to stam regen squeezing in melee combat.
    • +
    • Failed disarm push attempts now deals light staminaloss to the target so long as both the attacker and target are standing. The total stamloss dealt to the target is random, clocking in at a very inefficient 1-5 stamloss per unsuccessful push attempt.
    • +
    • Disarm pushes now play the thudswoosh sound regardless if they're successful or not. Had it not been for copyright, I would've used L4D's melee sound.
    • +
    • Disarm push attempts are now logged
    • +
    • Autostand no longer makes you invulnerable to dropping items when being knocked down with a force greater than 80
    • +
    • You can no longer abuse an href exploit to return from the labor camp before obtaining enough points to satisfy your point goal.
    • +
    • Norko's donor item is now listed in the right category
    • +
    • The medihound sleeper now has a non-vore variant. This will be used by default. The old voracious variant will only appear if both the person being sleeper'd and the medihound have the voracious hound sleepers pref enabled. Sprites by Toriate
    • +
    • "Allow medihound sleeper" is now labelled "Voracious medihound sleepers", and is now off by default
    • +
    • AOOC no longer prints to players in the lobby
    • +
    • Human tails and human ears now save again. Humans now use mam_tail and mam_ears for their snowflake bits instead of tg's equivalent, just as they did prior to human tail and ear saving breaking
    • +
    • Disarm pushes no longer deal staminaloss to resting targets
    • +
    • You can no longer force a hard stamcritted spaceman to stand by clicking them with help intent. Get more creative if you want to torture someone that's in hard stamcrit.
    • +
    • The revolution gamemode now waits until the 20 minute mark before checking for win conditions.
    • +
    • You can no longer resist/move out of grabs while you're resting. Disarming your way out still works, though.
    • +
    • Stamina damage now has diminishing returns on people who are in hard staminacrit with the addition of a new multiplier. When you take staminaloss while in hard staminacrit, you'll be under the effects of the new multiplier, which reduces the amount of staminaloss you take from all sources of staminaloss. The diminishing returns multiplier will steadily return to 1 once you're out of staminacrit.
    • +
    • You can now scramble while resting. You can do this by dragging your spaceman onto an adjacent turf. This works even if you're in staminacrit, but the timer depends entirely on your staminaloss.
    • +
    • Fully augged cyborg people now heal stamina damage properly.
    • +
    • Job EXP is now tracked properly for all roles.
    • +
    • Nightmares and shadowpeople have had their light threshold for being considered in darkness reduced. Nightmares can no longer stand unharmed next to a light fixture during a nightshift 100% unharmed. The threshold is high enough so that APC lights on their own won't harm a nightmare, but being on the edge of a light source will.
    • +
    • The detective revolver's .38 bullets are now non-lethal again, but now require 3 shots to hard stamcrit
    • +
    • The current lethal variant of the .38 bullets can still be printed at sec protolathes.
    • +
    • You can now access ghost roles from the latejoin menu.
    • +
    • Eyeblur now scales depending on how much actual eyeblur you actually have.
    • +
    • Ebows now induce 50 drowsiness on whatever they hit.
    • +
    • Telepads have been buffed across the board. T1 parts on a launchpad still grants you a range of 15 tiles, but T4 parts now grant you a pretty large 60 tile range (up from their original 18 tile range). Briefcase launchpads were also buffed, they now have a range of 20 tiles, up from their previous laughable 8 tiles.
    • +
    • The grace period for the revolution win condition check has been reduced from 20 minutes to 10 minutes. You don't need to wait nearly as long for the round to end if no heads join in.
    • +
    • You can now select plural and neuter as your gender. They're labelled "non-binary" and "object" in the character customization menu, respectively.
    • +
    • A lot more light sources now use the same nonbinary colored lighting philosophies as flashlights and light fixtures!
    • +
    • Flashlights mounted to guns and helmets now retain the same color and power as their original light. Lavaland's caves will reflect a fluorescent blue as you shine your KA around, and sec's helmets are now capable of illuminating maint in that fancy fluorescent blue.
    • +
    • Cameras now shine a fluorescent blue when lit up by an AI
    • +
    • Glowing goo now actually glows green.
    • +
    • Candles had their power reduced from 1 to 0.8.
    • +
    • Lighters now shine a little further, and are now properly colored.
    • +
    • PDAs now shine an incandescent yellow to match their sprite.
    • +
    • Welding tools now shine an appropriate color
    • +
    • Hardhats now shine an incandescent yellow.
    • +
    • Plasmaman helmets now shine an incandescent yellow.
    • +
    • Microwaves no longer overpower literally every single light in the game, instead having a power of 0.9.
    • +
    • Borgs now have incandescent yellow lights to match their sprites
    • +
    • Bots now shine a fluorescent blue light
    • +
    • Airlock light overlays are now on the above lighting layer. This means airlock lights can actually be seen in the dark now.
    • +
    • The mob spawners list no longer leaves null entries behind when a spawner has a job description defined. The latejoin menu will no longer show ghost roles that are filled, and the spawners menu actually works again.
    • +
    • The voting system now actually tracks who voted for what. This means it's now possible to change your vote, and it's possible to see what you voted for.
    • +
    • Using help intent on someone that's in hard stamcrit will now make them heal 15 stamloss.
    • +
    • Auto fit viewport is now enabled by default for new players. One less question off the FAQ
    • +
    • The Khajiit favorite, Skooma, was added as a chemistry recipe that can be produced with cooperation between chemistry and either cargo or service. If you want to spoil the recipe for yourself, take a look at the PR for it!
    • +
    • When the shuttle leaves for centcom, a vote will be started to select the next map instead of the map being randomly chosen via biased voting methods
    • +
    • If a server operator wishes to re-enable the biased TG preference voting system, you can do so by toggling the TGSTYLE_MAPROTATION config flag on in the config.txt. Keep in mind that doing so will bring you great misfortune.
    • +
    • Cacti in lavaland now have 6u of vitfro instead of just 4u. This lessens the gap between cacti and first aid kits, the third rarest and second rarest readily available healing methods for ashwalkers, respectively.
    • +
    • the "genitals use skintone" option now appears in the character appearance menu when appropriate again.
    • +
    • Clicking your stamina bar will now show your exact stamina along with info regarding your stamina buffer
    • +
    • The bug where ghost role spawners leave null entries in glob.mob_spawners has actually been fixed
    • +
    • The Kitchen Gun (TM) is no longer invisible.
    • +
    • The majority of cult spells no longer have exclamation marks at the end of their invocations. This means they will no longer be bound to the rules of shouting. Which means sec officers will no longer be able to hear culties sacrificing the captain from the complete opposite side of the maintenance tunnel the sacrifice is happening in. However, things like EMP pulses and runeless teleportation still have the effect due to their inherent loud nature.
    • +
    • The stun blood spell now instantly causes hard stamcrit. However, to offset this, it now also only has one charge and has a higher cost.
    • +
    • The Gloves of the North Star now restore 2/3 of the stamina used up by punches when harm intent punching. With aggressive play and good stamina buffer management, this makes it entirely plausible to roughly double your stamina regeneration per mob life process tick.
    • +
    • Revs can no longer remember the name of the person who flashed them when deconverted. This brings it in-line with the other conversion antag deconversions.
    • +
    • The bug where you can sometimes get permanently stuck in stamcrit should HOPEFULLY be fixed. I'm unable to reproduce the bug myself, but let's hope.
    • +
    • The night vision trait now grants you darksight for an entire 1:1 screen, but the alpha of the lighting plane with the trait has been increased from 245 to 250 to balance it out
    • +
    • It's now actually possible to click the stamina hud button
    • +
    • The stamina hud button now displays your stamina buffer correctly
    • +
    • Bone spears now have a reach of 2 tiles.
    • +
    • You can no longer phase through solid objects via scrambling
    • +
    • The syndicate mask now works properly as intended.
    • +
    • Stamina is no longer affected by health at all.
    • +
    • You can now right-click yourself in help intent in combat mode to instantly get up from resting. This will cost stamina equal to your entire stamina buffer. Manage your stamina well, and you'll be able to shrug off a single stray golden bolt
    • +
    • The new player panel now displays your currently selected character's name
    • +
    • Flashes no longer knockdown. Instead, they deal eyeblur and have increased confusion
    • +
    • The server's tagline is now a config option. People can now stop confusing us with BR cit
    • +
    • Attack animations will now rotate your character slightly, similar to Goon.
    • +
    • Throwing items will now perform the attack animation and play a sound
    • +
    • flashlights will now make sounds when toggled on/off
    • +
    • Things in disposals will now emit sounds every single time they hit corners. This increases immersion.
    • +
    • Air alarms now actually emit the proper light color when their status is okay.
    • +
    • Backpacks and other storage items will now jiggle and squish when you interact with them, similar to the animations seen on Goon.
    • +
    • Mops no longer have a delay on their cleaning, making them an actually viable alternative to all of the janitor's other cleaning tools
    • +
    • To balance this, mops now take stamina to clean tiles. Standard mops take 5 stamina to use, while advanced mops take 2 stamina.
    • +
    • Oh and also mops make fancy new sounds and play animations when used now
    • +
    • Pump-action shotguns now take 2 stamina per pump instead of 5 stamina per pump. This also applies to bolt-action rifles, as bolt racking counts as pumping.
    • +
    • Pickpocketing items will now place them in your hands if possible
    • +
    • Combat mode is now displayed in examine text
    • +
    • Combat mode now makes a visible message when enabled if you haven't touched your combat mode button in the last ten seconds. It's done this way to avoid chat spam from those who know how to pull off stam regen squeezing.
    • +
    • All knockdown sources will now force people to be dismounted from ridden vehicles.
    • +
    • When an item is thrown, it will now be rotated and displaced.
    • +
    • Shards of glass will now be rotated when spawned.
    • +
    • Bullet casings will now be rotated when they're ejected from a gun.
    • +
    • Bottles now have random rotations and pixel offsets when smashed via throwing.
    • +
    • Picking up an item will now reset its rotation.
    • +
    • Glasses thrown onto tables by bartenders will now have their rotation reset.
    • +
    • Slime speed potions can now only increase the speed of vehicles to be on par with sprinting speed. They can no longer make a scooter roll around ten times faster than a speeding blue hedgehog.
    • +
    • Changelings will no longer recieve team objectives
    • +
    • Changelings no longer start off with hivemind communication as an innate ability. Hivemind communication now requires 1 dna point, on par with syndicate encryption keys, which are 2 TC.
    • +
    • Hivemind link now relies on hivemind communication just like the hivemind download/upload abilities.
    • +
    • It's now only possible to zoom a gun if it's in one of your hands
    • +
    • Mobs without clients no longer cause runtimes when their eyeblur updates
    • +
    • Blood tests have been added. If a changeling has a sufficient number of loud abilities, you will be able to test their blood by heating up a sample of it. However, if the changeling has a large amount of loud abilities, attempts to test their blood will have explosive results.
    • +
    • Changelings now make a very obvious noise when readapting. This is to prevent the cheese strat of simply readapting when you get caught to avoid detection.
    • +
    • The blood splatter effect that happens when you get attacked will now always make you lose blood depending on the damage you've taken. The effect now also scales with item damage, meaning tiny little papercuts will no longer be able to cause a massive blood splatter.
    • +
    • The blood reagent will now cover items and spacemen in blood when applied to objects and mobs.
    • +
    • Helmets, masks, and neck items are all now valid targets to get splattered when you get covered in blood. Groovy.
    • +
    • The temperature notification will now take into consideration both the ambient temperature and your body temperature, increasing the responsiveness of the temperature notification and making it much more realistic.
    • +
    • Shuttle transit borders are now 10 tiles wide instead of 8 tiles, hopefully repairing the immersions that get shattered by the ability to see normal space where the transit areas end.
    • +
    • Instead of transit turfs simply teleporting things to space, transit is now handled in a somewhat realistic manner. Transit turfs now act like normal space turfs, though exiting the transit area or being present in the transit area after the shuttle moves out of transit will teleport you to space and throw you in the direction the shuttle was moving in.
    • +
    • Reservation areas are now able to designate a border turf.
    • +
    • The sprint hotkey will no longer cause you to get permanently stuck sprinting if the server lags. Just tap shift again if you get stuck
    • +
    • You can now hear sounds in the real world while inside of a VR sleeper.
    • +
    • You can now make nameless characters. Nameless characters will spawn in with their name set as their job title followed by a unique five digit number. The "Name" option in the character setup menu will be replaced with a "Default designation" option for nameless characters, and the default designation will be used in place of a job title for assistants and other jobs that don't require dress codes.
    • +
    • The out-of-game round end notification is now a little more verbose. It'll now display the round type, end result of the round, and the survival rate.
    • +
    • Xenos can no longer strip items off of people to be capable of using any item in the game.
    • +
    • also, items from pockets get placed into your hands properly now
    • +
    • A mob's last words are now properly tracked and recorded on death. The first death of the round will now actually display the victim's last words on the round end screen.
    • +
    • Divine shenanigans can no longer result in someone becoming immune to staminaloss
    • +
    • Fixed body_markings in bodyparts being assigned as a list when in reality, it's a string and literally everything expects it to be a string and uses it as a string. This should mean that markings no longer have completely fucked up caches for character preview and other things.
    • +
    • Since apparently the game is literally unplayable if items are not in the exact center of a turf, the maximum pixel variance of thrown objects has been reduced by four pixels to make things a smidge more clearer for those that dont know what a turf is.
    • +
    • Bartender glasses should HOPEFULLY no longer be tilted when landing on a table. Why the fuck is after_throw called via a timer.
    • +
    • Changeling screeches now have their own unique sounds, and are much easier to recognize.
    • +
    • Most synthetic emotes are now available to humans. *ping
    • +
    • You can now merp
    • +
    • The TEG will now only produce a meaningful amount of power if the hot pipe contains gas that's actively combusting
    • +
    • Added the "add PB bypass" and "revoke PB bypass" verbs, which allow admins to let a specific ckey to bypass the panic bunker for the rest of the round
    • +
    • Jogging is no longer treated exactly the same as sprinting for water slips. When you're jogging, you will only slip on water if you have more than 20% staminaloss.
    • +
    • The atmospherics turf subsystem now has double the wait time, which should free up server processing power for other tasks.
    • +
    • The IRC now actually displays the actual survival rate
    • +
    • Bloodcult conversions are now consensual. Convertees are given a ten second timer to accept or wait out. This should drastically improve the quality of those that get converted into bloodcult.
    • +
    • All sacrifices now count as a third of a cultist for the end-game narsie summon.
    • +
    • Nameless captains will no longer proc a "Captain Captain on deck!" message. Instead, it'll be a much more boring but much more sensical "Captain on deck!" message.
    • +
    • Transit turfs on the centcom z-level now function properly again at keeping mobs within the areas defined by their boundaries.
    • +
    • The title screen is also positioned correctly again.
    • +
    • Ghost role eligibility for both event and spawner ghost roles is now affected by DNR status. If you suicide, ghost, or cryo out, you will be unable to qualify for any ghost roles
    • +
    • Cryo now applies DNR status no matter how long the round has been going on
    • +
    • Suicide is now properly admin logged as it is supposed to be. Ghosting while alive is now also logged.
    • +
    • Sparks and igniters will now actually heat areas rather than cooling them, as was intended.
    • +
    • To alleviate some potential complaints, RPDs now have a cooldown before they can create sparks, and both RPDs and emitters produce less sparks.
    • +
    • Conversion runes will now mute the victim temporarily while they're deciding whether to convert or be sacrificed.
    • +
    • Conversion runes no longer require a third cultist to sacrifice if the victim refuses conversion
    • +
    • Staminaloss targeted at the head now properly redirects to the chest.
    • +
    • Sprinting no longer takes stam when you're being pulled or when you're in zero gravity. Other sources of involuntary movement are not affected.
    • +
    • In an attempt to improve performance during highpop, mouse movements will now only call onmousemove() while a user is in combat mode
    • +
    • Ballistic projectiles are now the only projectiles capable of emitting dinks.
    • +
    • Panic bunker toggling and bypassing is now logged in admin IRC
    • +
    • OOC and LOOC now use separate toggles. You can now use LOOC while OOC is globally toggled off, and admins now have the option to toggle LOOC off separately from OOC
    • +
    • also revamped and reorganized relevant looc adminverb code
    • +
    • The endgame narsie summon rune no longer requires 24 total sacrifices, and will now properly account for cultists that surround it
    • +
    • The succumb verb is now available in the IC tab
    • +
    • Lighting now uses a linear algorithm to calculate falloff instead of an inverse-square algorithm.
    • +
    • get_hearers_in_view() now actually caches the results of view() instead of calling view() twice
    • +
    • Goonchat's JS no longer contains checks related to a completely unused message filtering function, which should improve clientside performance quite a bit
    • +
    • The storage hud now properly takes into account the viewer's view size, meaning storage items with a large amount of storage slots will properly stretch across the bottom of the screen when running in widescreen.
    • +
    • Action buttons are now able to fill the entire screen in widescreen and other weird view sizes.
    • +
    • Omegastation's job changes will no longer be included at compile time.
    • +
    • The client update portion of /mob/Login() now double-checks to make sure client.player_details exists and is of the proper type. This should hopefully fix the "cannot read null.player_details" runtimes that can spontaneously cause clients to get kicked out and forced back to the lobby.
    • +
    • You can now quickly use unequipped items on objects by simply click-dragging the item onto the object with an empty active hand. Doing so will place the item in your hand, and then use that item on the object.
    • +
    • In an attempt to improve the performance of /mob/Stat(), various time-related procs now use defines instead of being procs that call procs that call other procs that call even more procs.
    • +
    • If a living mob has vore initialized but doesnt have voreprefs initialized, then client login will force voreprefs to load.
    • +
    • Hopefully fixed paper crash 2: electric boogaloo
    • +
    • Added unomos, which is basically listmos except gas mixtures only use one single list for handling their gasses. This is a significant performance improvement that also offers a mild memory improvement under normal circumstances.
    • +
    • Locomotion circuits are now restricted to jogging speed
    • +
    • MMI circuits and pAI circuits both now have 60 complexity, up from their original 29.
    • +
    • Biogenerators now have a sane limit for production
    • +
    • Fixed a fairly huge server crash exploit
    • +
    • Shield blobs no longer become completely invulnerable to all forms of damage after reaching a """weakened""" state
    • +
    • Taken care of what appeared to have been an oversight where shield blobs don't recover their armor after becoming weakened.
    • +
    • Nerfed concatenators by limiting the amount of characters they're able to output
    • +
    • The timer for stripping an item off of a spaceman is no longer interrupted by your active held item changing. This means you no longer have to worry about filling both of your hands when you're stripping items off of someone.
    • +
    • Ported the zulie cloak and blackredgold coat donor items from RP.
    • +
    • Normal mops now only use 2 stamina to mop a tile, nerfed from their previous value of 5 stamina per tile mopped.
    • +
    • Advanced mops now only use 1 stamina to mop turfs, from their former value of 2 stam.
    • +
    • The femur breaker now uses `*scream` instead of forced speech. This means that the femur breaker will no longer spam deadchat with "AAAAAAAAAHHHHHHHHHH!!"
    • +
    • The femur breaker will now guarantee that the victim falls into crit, which will make it harder to perform torture scenes with it since the victim can just succumb.
    • +
    • Fixed another runtime in warp whistles.
    • +
    • Spamming forged packets no longer crashes the server.
    • +
    • Things that access job_preferences now explicitly access keys, which means it no longer attempts to access invalid indices and runtimes as a result.
    • +
    • The taser's electrode has been reworked. Instead of being a strong knockdown that deals a heavy amount of stamloss, it now causes a weak knockdown, applies a debilitating status effect for 5 seconds, and deals 35 stamloss on hit up to a maximum 50 total stamloss.
    • +
    • Roundstart turrets now have a nonlethal projectile that gets used when they're set to stun and the target is resting
    • +
    • Hybrid tasers now have disablers set as their default mode.
    • +
    • There is now a 1% chance for the station's announcer to be the medibot voice instead of the classic TG announcer.
    • +
    • The map config system has been expanded to allow mappers to specify the map type, announcer voice, ingame year, and how often a given map can be voted at roundend.
    • +
    • The map vote system now takes into account map playercount limits properly.
    • +
    • Examining a spaceman, and other things that use get_examine_string(), will now actually properly show when an item is blood-stained.
    • +
    • Plasmaman tongues no longer have a maxHealth of "alien", and no longer cause the organ's on_life to always runtime.
    • +
    • Shooting a simplemob no longer causes runtimes prior to the blood effect being created.
    • +
    • Removing a filter from an object that lacks filters no longer causes runtimes.
    • +
    +

    deathride58 (Original PR by actioninja) updated:

    +
      +
    • Disarm pushing (combat mode right click in disarm intent) will now actually push mobs away. Knockdowns from disarm pushing are no longer rng based on the target's staminaloss. Knockdowns from disarm pushing now only happen when you push someone into another mob, a table, or a wall. Pushes will now also temporarily stop targets from using firearms, and will disarm the firearm if performed a second time. Pushes still deal staminaloss to standing targets, and won't deal a single ounce of staminaloss to resting targets.
    • +
    • You can no longer displace mobs that are in harm intent by simply walking into them. Mobs that aren't in help intent have to be disarm pushed to actually be moved.
    • +
    +

    dtfe3 updated:

    +
      +
    • Increased music maxlines from 300 to 600
    • +
    • Made it so any oxygen tank can be used instead of only red ones.
    • +
    • Watcher wing Trophy's effect lasts 1 second instead of 0.5
    • +
    • Pink Panties
    • +
    • Twintails
    • +
    • Schoolgirl outfits for the loadout menu!
    • +
    • Now the fox ears are located in front of hair meaning they now behave much like cat ears, that being they are on-top of the hair layer.
    • +
    +

    izzyinbox updated:

    +
      +
    • adds VoG orgasm command using words "orgasm", "cum", "squirt", "climax"
    • +
    • adds VoG dab command using words "dab" and "mood"
    • +
    • Generic dog body marking sprite
    • +
    • colormatrix dog sprites
    • +
    • lowered the player age for command jobs to 1/3 of their previous setting
    • +
    • *bark emote
    • +
    +

    jtgsz updated:

    +
      +
    • ported gang mode
    • +
    +

    kappa-sama updated:

    +
      +
    • Removed racism
    • +
    • Teleporter calibration actually matters to all roundstart players
    • +
    • Slows down teleportation with the console/hub/teleporter setup if you care for your species.
    • +
    • Dedicated non-humans can now get hulk without having to become human.
    • +
    • seed
    • +
    • added obj/item/key to wallet whitelist
    • +
    • blood cult ritual daggers fit in jack/combat boots
    • +
    • voidcells can now unlock alien tech
    • +
    • rebalanced tech trees (not really)
    • +
    • hugbox (/s)
    • +
    • ashwalker spawn text now tells them "i" "c" not to leave lavaland
    • +
    • you can no longer have infinite ebows
    • +
    • kevinz forgot to nerf miasma research and cargo value after making it produce like 100x as much lmao
    • +
    +

    kevinz000 updated:

    +
      +
    • Hierophant now goes sicko mode, but hey, at least you can't be multi-hit by melee waves!
    • +
    • Racking shotguns is now more threatening.
    • +
    • Medibots no longer kill slimes when trying to heal their toxins.
    • +
    • The Syndicate started selling claymores to their agents.
    • +
    • Nerfed VTEC modules.
    • +
    • Neurotoxin no longer stuns non-carbons.
    • +
    • peacekeeper cyborgs now get a megaphone
    • +
    • Fixes storage bugs regarding reaching into things you shouldn't be able to reach into.
    • +
    • BYOND 513 preliminary support added.
    • +
    • Trashbags now only allow accessing the first 3 items. 5 for bluespace ones. experimental: Storage now allows for limiting of random access
    • +
    +

    kiwedespars updated:

    +
      +
    • regenerative materia to hallucination sting
    • +
    • mindbreaker toxin as an actual chemical to hallucination sting
    • +
    +

    lolman360 updated:

    +
      +
    • NT has authorized shipments or Cotton to Megaseed Servitors. It's time to start picking, liggers.
    • +
    • missing durathread sprites
    • +
    • Added durathread jumpskirt
    • +
    • Duraskirt sprites and rolled down jumpsuit sprites.
    • +
    • Fixes an undocumented change to the naming of Plasmamen.
    • +
    • chainsaw kind of weapons and the mecha drill and the CLAMP can now be used with 100% accuracy for surgery
    • +
    • surgery tools now work on defines
    • +
    • advanced surgerytools can now switch types instead of just being faster
    • +
    • fixes bug with new surgerytools examine
    • +
    +

    nicc updated:

    +
      +
    • Exo-suit
    • +
    • SEVA suit
    • +
    • Flags for Goliath resistance and weakness
    • +
    • suit voucher
    • +
    • temp suit sprites
    • +
    • *dab
    • +
    • teg less gay maybe
    • +
    +

    ninjanomnom and WhoneedSpacee updated:

    +
      +
    • Some rpg affixes now have special effects
    • +
    • New RPGLoot modifiers: Vampirism which heals you when you attack, Pyromantic which sets things you hit on fire. Shrapnel which causes projectiles fired from a gun to fire projectiles in a radius when they hit something. Finally, Summoning which summons mobs that sometimes aid you in combat.
    • +
    +

    original by @randolfthemeh and @twaticus, port by sishen1542 updated:

    +
      +
    • jumpskirts
    • +
    • more jumpskirts
    • +
    • jumpskirt/suit prefs
    • +
    +

    original by Bumtickley00, port by sishen1542 updated:

    +
      +
    • Suit storage units will now also remove radiation from mobs.
    • +
    +

    original by GuyonBroadway, SkowronX, and Arizon5. port by sishen1542 and kerse updated:

    +
      +
    • Clockwork cultists may now summon forth Neovgre, the ratvrarian super weapon. This powerful mech can be summoned when applications scripture has been unlocked, boasts superior offensive and defensive capabilities, however once a pilot enters he cannot leave and is doomed to die with the mech.
    • +
    • Sexy Sprite work courtesy or SkowronX from /tg/
    • +
    • brass edits by Arizon5
    • +
    • steamy laser by kerse
    • +
    +

    original by Skoglol, port by sishen1542 updated:

    +
      +
    • Added lots of new virus cures, made cure difficulty scale more consistently. Cures are now picked from a list of possible cures per resistance level, multiple diseases at the same level no longer always share a cure. Looking at you table salt.
    • +
    • Dynamic gamemode now more auto-deadmin friendly.
    • +
    +

    original by TheChosenEvilOne, port by sishen1542 updated:

    +
      +
    • Ported dynamic mode from /vg/, originally made by @DeityLink, @Kurfursten and @ShiftyRail
    • +
    +

    original by Tlaltecuhtli, port by sishen1542 updated:

    +
      +
    • rcd disk that gives rcd computer frame and machine frame designs
    • +
    • upgraded rcd in CE lockers
    • +
    • moved deconstruction to the upgrade disk, ashwalker rcd comes upgraded
    • +
    +

    original by actioninja, port by sishen1542 updated:

    +
      +
    • Medical and Security consoles now check access on worn or inhand ID instead of requiring an inserted ID
    • +
    • mining vendor now reads from ID in hand or on person instead of requiring an inserted ID
    • +
    • ORM is functional again (for real this time)
    • +
    • ORM claim points button transfers points to worn/inhand ID instead of to an inserted ID, no longer accepts insertions
    • +
    • Same for gulag consoles
    • +
    +

    original by redmoogle, port by sishen1542 updated:

    +
      +
    • Added support for 3 new gasses; Tritium, Pluoxium, and BZ
    • +
    +

    original by: WJohnston, Antur, Arcane, plapatin, sprites by cogwerks and edited by mrdoombringer. port by sishen1542 updated:

    +
      +
    • THE GOOSE IS LOOSE
    • +
    +

    r4d6 updated:

    +
      +
    • Added decoratives angel wings for Mammalians only
    • +
    • Added blindfolds to the Loadout list
    • +
    • Added Decorative Wings for Humans, Felinids, Slimepersons and Lizardpeoples.
    • +
    • Change the SEVA suit & Exo-suit's descriptions
    • +
    • Batteries are now Rad-Proof like the other stock parts
    • +
    +

    tigercat2000@Paradise updated:

    +
      +
    • fixed invalid characters breaking chat output for that message
    • +
    +

    tinfoil hat wearer updated:

    +
      +
    • Added a new alien technology disk to scientist and roboticist uplinks that allows them to research the heavily-guarded secrets of the Grays.
    • +
    • Alientech is now the only Hidden alien research. To compensate for this, alien_bio and alien_engi have had their research costs doubled and now require advanced surgery tools and experimental tools respectively to research. Their export price is also halved.
    • +
    • roboticists now have brainwashing disks AND alien technology added to their role-restricted uplink section. alien technology gives them brainwashing at a much later date, so brainwashing is the much cheaper option for instant power. makes logical sense because doctors get it as well because they do surgery, and roboticists can now either choose to brainwash people for less price but less power or emag borgs for higher prices, limited uses, but higher power.
    • +
    +

    ursamedium updated:

    +
      +
    • Gas icons changed.
    • +
    GoonStation 13 Development Team diff --git a/html/changelogs/AutoChangeLog-pr-10189.yml b/html/changelogs/AutoChangeLog-pr-10189.yml deleted file mode 100644 index 5889e127d2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10189.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - rscadd: "Dynamic storytellers, a new voting paradigm for dynamic" - - rscadd: "Support for approval voting and condorcet (ranked choice) voting in server votes" diff --git a/html/changelogs/AutoChangeLog-pr-10191.yml b/html/changelogs/AutoChangeLog-pr-10191.yml deleted file mode 100644 index c1366727bd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10191.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - rscadd: "Custom holoforms have been added for pAIs and AIs. oh and cyborg holograms of specific modules too." - - balance: "pais are no longer indestructible-flagged while in card form. pai radios now short out if they are forcefully collapsed from damage." diff --git a/html/changelogs/AutoChangeLog-pr-10224.yml b/html/changelogs/AutoChangeLog-pr-10224.yml deleted file mode 100644 index b7d07abe5c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10224.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Seris02" -delete-after: True -changes: - - tweak: "made it so trait blacklisting removes random positives instead of removing everything" diff --git a/html/changelogs/AutoChangeLog-pr-10238.yml b/html/changelogs/AutoChangeLog-pr-10238.yml deleted file mode 100644 index dda40c86c9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10238.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "SpaceManiac, bobbahbrown, ShizCalev, SpaceManiac (ported by Ghommie)" -delete-after: True -changes: - - code_imp: "It is now possible to set a different most-base-turf per z-level." - - spellcheck: "Removed unlawful reference to Disney's Star Wars franchise in map logging." - - tweak: "Moved mapping related errors to their own log file." - - bugfix: "Destruction on Lavaland will no longer reveal space in rare situations." diff --git a/html/changelogs/AutoChangeLog-pr-10255.yml b/html/changelogs/AutoChangeLog-pr-10255.yml deleted file mode 100644 index ebaccd0af6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10255.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xantholne" -delete-after: True -changes: - - bugfix: "Christmas clothes that where missing stuff should work again" diff --git a/html/changelogs/AutoChangeLog-pr-10256.yml b/html/changelogs/AutoChangeLog-pr-10256.yml deleted file mode 100644 index eb14f716cc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10256.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam" -delete-after: True -changes: - - rscadd: "Alcohol intolerance trait, which forces vomiting on any alcohol ingestion" diff --git a/html/changelogs/AutoChangeLog-pr-10270.yml b/html/changelogs/AutoChangeLog-pr-10270.yml deleted file mode 100644 index b47a249f9a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10270.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Fixed the secret sauce recipe being randomized every round." diff --git a/html/changelogs/AutoChangeLog-pr-10278.yml b/html/changelogs/AutoChangeLog-pr-10278.yml deleted file mode 100644 index 76ada12f20..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10278.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - bugfix: "Fermi plushie can be made once again" diff --git a/html/changelogs/AutoChangeLog-pr-10317.yml b/html/changelogs/AutoChangeLog-pr-10317.yml deleted file mode 100644 index 7db50240e3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10317.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - bugfix: "issues with mapping done my Trilby" diff --git a/html/changelogs/AutoChangeLog-pr-10350.yml b/html/changelogs/AutoChangeLog-pr-10350.yml deleted file mode 100644 index 580f1d68cf..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10350.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - rscadd: "Ghost cafe mobs can now ghostize" - - rscadd: "Ghost cafe now has a cremator" - - rscadd: "Ghost cafe mobs are now eligible for ghost roles" - - refactor: "Ghost roles now use an element for eligibility purposes" diff --git a/html/changelogs/AutoChangeLog-pr-10358.yml b/html/changelogs/AutoChangeLog-pr-10358.yml deleted file mode 100644 index a578e6e336..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10358.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - server: "Cleans out the last years of changlogs" diff --git a/html/changelogs/AutoChangeLog-pr-10378.yml b/html/changelogs/AutoChangeLog-pr-10378.yml deleted file mode 100644 index c7ab7d42c1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10378.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "EmeraldSundisk" -delete-after: True -changes: - - rscadd: "Adds a sign outside MetaStation's custodial closet" diff --git a/html/changelogs/AutoChangeLog-pr-10380.yml b/html/changelogs/AutoChangeLog-pr-10380.yml deleted file mode 100644 index 4604329137..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10380.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Unit2E & JMoldy, ported by Hatterhat" -delete-after: True -changes: - - balance: "the powerfist now punches people away at high velocity depending on setting." - - rscadd: "the powerfist now leaks the gas it uses onto the tile you're on." - - tweak: "Adds weak punch variations for empty and near-empty punching." diff --git a/html/changelogs/AutoChangeLog-pr-10384.yml b/html/changelogs/AutoChangeLog-pr-10384.yml deleted file mode 100644 index 315a62dadd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10384.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Tlaltecuhtli, Nemvar, Trilby, Hatterhat" -delete-after: True -changes: - - rscadd: "russian surplus crate, sec ammo crate, meat/veggie/fruit crate, rped crate, bomb suit crate, bio suit crate, parrot crate, chem crate, db crate" - - tweak: "lowered price of some crates which are overpriced for no reason aka the tablet crate and the mech circuits crates, track implant crate has also track .38 ammo" - - bugfix: "sectech vendor has a refill pack" diff --git a/html/changelogs/AutoChangeLog-pr-10388.yml b/html/changelogs/AutoChangeLog-pr-10388.yml deleted file mode 100644 index fd06a5db3f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10388.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CameronWoof" -delete-after: True -changes: - - rscadd: "Robots can now check the crew manifest from anywhere with the \"View Crew Manifest\" verb." diff --git a/html/changelogs/AutoChangeLog-pr-10399.yml b/html/changelogs/AutoChangeLog-pr-10399.yml deleted file mode 100644 index cbdb00630c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10399.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - balance: "Cargo passive gen is now 500 down from 750." diff --git a/html/changelogs/AutoChangeLog-pr-10401.yml b/html/changelogs/AutoChangeLog-pr-10401.yml deleted file mode 100644 index 2aa8d91244..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10401.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "r4d6" -delete-after: True -changes: - - rscadd: "Added 3 SM Engine variations." diff --git a/html/changelogs/AutoChangeLog-pr-10403.yml b/html/changelogs/AutoChangeLog-pr-10403.yml deleted file mode 100644 index 321789a546..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10403.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "r4d6" -delete-after: True -changes: - - rscadd: "Added a way to make opaque plastic flaps -change: Change the already existing flap recipe to show that they are see-through" diff --git a/html/changelogs/AutoChangeLog-pr-10412.yml b/html/changelogs/AutoChangeLog-pr-10412.yml deleted file mode 100644 index b838dbb680..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10412.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Linzolle" -delete-after: True -changes: - - bugfix: "fixes matchboxes runtiming every time they spawn" diff --git a/html/changelogs/AutoChangeLog-pr-10413.yml b/html/changelogs/AutoChangeLog-pr-10413.yml deleted file mode 100644 index 6d6378675b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10413.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "nik707" -delete-after: True -changes: - - tweak: "engraving light_power from 1 to 0.3" diff --git a/html/changelogs/AutoChangeLog-pr-10420.yml b/html/changelogs/AutoChangeLog-pr-10420.yml deleted file mode 100644 index b719eca84c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10420.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Increases plasma usage in radiation collectors" diff --git a/html/changelogs/AutoChangeLog-pr-10427.yml b/html/changelogs/AutoChangeLog-pr-10427.yml deleted file mode 100644 index 5f4fe73988..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10427.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - tweak: "tweaks some values around with beaker transfer amounts, adds a transfer value verb (altclick)" diff --git a/html/changelogs/AutoChangeLog-pr-10428.yml b/html/changelogs/AutoChangeLog-pr-10428.yml deleted file mode 100644 index 2cd635d0a2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10428.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - balance: "Devastating bombs kills bomb armor'd mobs again" diff --git a/html/changelogs/AutoChangeLog-pr-10429.yml b/html/changelogs/AutoChangeLog-pr-10429.yml deleted file mode 100644 index cc83f8abb6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10429.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - tweak: "Adds missing but needed flags to MASON RIG" diff --git a/html/changelogs/AutoChangeLog-pr-10430.yml b/html/changelogs/AutoChangeLog-pr-10430.yml deleted file mode 100644 index 4fd03a5b2b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10430.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - balance: "nuclear fist buffed." diff --git a/html/changelogs/AutoChangeLog-pr-10432.yml b/html/changelogs/AutoChangeLog-pr-10432.yml deleted file mode 100644 index a0b40baa45..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10432.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - bugfix: "missing sprites with crushed cans" diff --git a/html/changelogs/AutoChangeLog-pr-10433.yml b/html/changelogs/AutoChangeLog-pr-10433.yml deleted file mode 100644 index 036e74a804..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10433.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - balance: "cogscarabs are now fulltile-hitbox." diff --git a/html/changelogs/AutoChangeLog-pr-10435.yml b/html/changelogs/AutoChangeLog-pr-10435.yml deleted file mode 100644 index 6b684a57a5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10435.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "FantasticFwoosh, ported by Hatterhat" -delete-after: True -changes: - - rscadd: "Both reagent universal enzyme & sacks of flour are now available for their respective costs from the biogenerator." - - rscadd: "New crafting recipies for donut boxes, eggboxes & candle boxes have been added to cardboard recipes for the collective benefit of service personnel and the station." diff --git a/html/changelogs/AutoChangeLog-pr-10437.yml b/html/changelogs/AutoChangeLog-pr-10437.yml deleted file mode 100644 index ee454f47b9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10437.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Fixed roundstart mushpeople being unable to MUSH PUUUUUUUUUUUUNCH!!" diff --git a/html/changelogs/AutoChangeLog-pr-10439.yml b/html/changelogs/AutoChangeLog-pr-10439.yml deleted file mode 100644 index 92b151b883..0000000000 --- a/html/changelogs/AutoChangeLog-pr-10439.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LetterN" -delete-after: True -changes: - - rscadd: "Doppler logs" diff --git a/html/changelogs/AutoChangeLog-pr-9878.yml b/html/changelogs/AutoChangeLog-pr-9878.yml deleted file mode 100644 index ef9c704003..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9878.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - tweak: "add a click cooldown to the overly spammable table slamming." diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 51e9453087..e13ce10347 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index e768271757..2188952740 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/mob/feet_digi.dmi b/icons/mob/feet_digi.dmi index 028dc67e72..e0a9cd462d 100644 Binary files a/icons/mob/feet_digi.dmi and b/icons/mob/feet_digi.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 3adedcffba..365ed5afd9 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/inhands/equipment/toolbox_lefthand.dmi b/icons/mob/inhands/equipment/toolbox_lefthand.dmi index c0caf78855..801df7abb8 100644 Binary files a/icons/mob/inhands/equipment/toolbox_lefthand.dmi and b/icons/mob/inhands/equipment/toolbox_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/toolbox_righthand.dmi b/icons/mob/inhands/equipment/toolbox_righthand.dmi index 1d016e35a9..f38ddfc9a4 100644 Binary files a/icons/mob/inhands/equipment/toolbox_righthand.dmi and b/icons/mob/inhands/equipment/toolbox_righthand.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index a4ff676bd0..019ae09517 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/mask_muzzled.dmi b/icons/mob/mask_muzzled.dmi index 92e6149bb1..59c669ea72 100644 Binary files a/icons/mob/mask_muzzled.dmi and b/icons/mob/mask_muzzled.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index dec1c372b5..5b84dad999 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/suit_digi.dmi b/icons/mob/suit_digi.dmi index a0f6e6ab08..58dd2f5700 100644 Binary files a/icons/mob/suit_digi.dmi and b/icons/mob/suit_digi.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 778b718fe6..fb2f4ab0d6 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/mob/uniform_digi.dmi b/icons/mob/uniform_digi.dmi index 9173a3ceaa..e568d70310 100644 Binary files a/icons/mob/uniform_digi.dmi and b/icons/mob/uniform_digi.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 4587d6e7b6..b3cc31fc6d 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 245b44e56b..4ec45666c4 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index b52c314296..728d244b5f 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 6831c17e56..5d243f93b8 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index e6474e7899..2dcd8b9a06 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index cb3870dc61..4886cb8441 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 4a6b8964e5..8fee8fcf9f 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/modular_citadel/code/game/machinery/Sleeper.dm b/modular_citadel/code/game/machinery/Sleeper.dm new file mode 100644 index 0000000000..4cf04524b2 --- /dev/null +++ b/modular_citadel/code/game/machinery/Sleeper.dm @@ -0,0 +1,2 @@ +/obj/machinery/sleeper + min_health = 30 diff --git a/modular_citadel/code/game/machinery/displaycases.dm b/modular_citadel/code/game/machinery/displaycases.dm new file mode 100644 index 0000000000..f660475cfc --- /dev/null +++ b/modular_citadel/code/game/machinery/displaycases.dm @@ -0,0 +1,5 @@ +/obj/structure/displaycase/clown + desc = "In the event of clown, honk glass." + alert = 1 + start_showpiece_type = /obj/item/bikehorn + req_access = list(ACCESS_CENT_GENERAL) diff --git a/modular_citadel/code/game/objects/structures/beds_chairs/chair.dm b/modular_citadel/code/game/objects/structures/beds_chairs/chair.dm new file mode 100644 index 0000000000..b7843727df --- /dev/null +++ b/modular_citadel/code/game/objects/structures/beds_chairs/chair.dm @@ -0,0 +1,21 @@ +/obj/structure/chair/alt_attack_hand(mob/living/user) + if(Adjacent(user) && istype(user)) + if(!item_chair || !user.can_hold_items() || !has_buckled_mobs() || buckled_mobs.len > 1 || dir != user.dir || flags_1 & NODECONSTRUCT_1) + return TRUE + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + to_chat(user, "You can't do that right now!") + return TRUE + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) + to_chat(user, "You're too exhausted for that.") + return TRUE + var/mob/living/poordude = buckled_mobs[1] + if(!istype(poordude)) + return TRUE + user.visible_message("[user] pulls [src] out from under [poordude].", "You pull [src] out from under [poordude].") + var/C = new item_chair(loc) + user.put_in_hands(C) + poordude.Knockdown(20)//rip in peace + user.adjustStaminaLoss(5) + unbuckle_all_mobs(TRUE) + qdel(src) + return TRUE diff --git a/modular_citadel/code/game/objects/structures/tables_racks.dm b/modular_citadel/code/game/objects/structures/tables_racks.dm new file mode 100644 index 0000000000..69dbe4e1cb --- /dev/null +++ b/modular_citadel/code/game/objects/structures/tables_racks.dm @@ -0,0 +1,10 @@ +/obj/structure/table/alt_attack_hand(mob/user) + if(user && Adjacent(user) && !user.incapacitated()) + if(istype(user) && user.a_intent == INTENT_HARM) + user.visible_message("[user] slams [user.p_their()] palms down on [src].", "You slam your palms down on [src].") + playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) + else + user.visible_message("[user] slaps [user.p_their()] hands on [src].", "You slap your hands on [src].") + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + user.do_attack_animation(src) + return TRUE diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index d0ad0d3232..7e7a77538a 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -70,124 +70,113 @@ message = "makes a very loud noise." . = ..() +/datum/emote/sound/carbon/snap + key = "snap" + key_third_person = "snaps" + muzzle_ignore = TRUE + restraint_check = TRUE + emote_type = EMOTE_AUDIBLE + sound = 'sound/effects/snap01.ogg' + mob_type_allowed_typecache = list(/mob/living/carbon/) + + /datum/emote/living/snap key = "snap" key_third_person = "snaps" message = "snaps their fingers." emote_type = EMOTE_AUDIBLE - muzzle_ignore = TRUE - restraint_check = TRUE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/snap/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/snap.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/snap.ogg', 50, 1, -1) + . = ..() /datum/emote/living/snap2 key = "snap2" key_third_person = "snaps twice" message = "snaps twice." emote_type = EMOTE_AUDIBLE - muzzle_ignore = TRUE - restraint_check = TRUE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/snap2/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/snap2.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/snap2.ogg', 50, 1, -1) + . = ..() /datum/emote/living/snap3 key = "snap3" key_third_person = "snaps thrice" message = "snaps thrice." emote_type = EMOTE_AUDIBLE - muzzle_ignore = TRUE - restraint_check = TRUE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/snap3/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/snap3.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/snap3.ogg', 50, 1, -1) + . = ..() /datum/emote/living/awoo key = "awoo" key_third_person = "lets out an awoo" message = "lets out an awoo!" emote_type = EMOTE_AUDIBLE - muzzle_ignore = FALSE - restraint_check = FALSE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/awoo/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/awoo.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/awoo.ogg', 50, 1, -1) + . = ..() /datum/emote/living/nya key = "nya" key_third_person = "lets out a nya" message = "lets out a nya!" emote_type = EMOTE_AUDIBLE - muzzle_ignore = FALSE - restraint_check = FALSE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/nya/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/nya.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/nya.ogg', 50, 1, -1) + . = ..() /datum/emote/living/weh key = "weh" key_third_person = "lets out a weh" message = "lets out a weh!" emote_type = EMOTE_AUDIBLE - muzzle_ignore = FALSE - restraint_check = FALSE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/weh/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/weh.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/weh.ogg', 50, 1, -1) + . = ..() /datum/emote/living/peep key = "peep" key_third_person = "peeps like a bird" message = "peeps like a bird!" emote_type = EMOTE_AUDIBLE - muzzle_ignore = FALSE - restraint_check = FALSE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/peep/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/peep.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/peep.ogg', 50, 1, -1) + . = ..() /datum/emote/living/dab key = "dab" @@ -201,49 +190,41 @@ key_third_person = "lets out a tiny squeak" message = "lets out a tiny squeak!" emote_type = EMOTE_AUDIBLE - muzzle_ignore = FALSE - restraint_check = FALSE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) + mob_type_allowed_typecache = list(/mob/living/carbon) /datum/emote/living/mothsqueak/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/mothsqueak.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/mothsqueak.ogg', 50, 1, -1) + . = ..() /datum/emote/living/merp key = "merp" key_third_person = "merps" message = "merps!" emote_type = EMOTE_AUDIBLE - muzzle_ignore = FALSE - restraint_check = FALSE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/merp/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - playsound(user, 'modular_citadel/sound/voice/merp.ogg', 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/merp.ogg', 50, 1, -1) + . = ..() /datum/emote/living/bark key = "bark" key_third_person = "barks" message = "barks!" emote_type = EMOTE_AUDIBLE - muzzle_ignore = FALSE - restraint_check = FALSE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/bark/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 - var/sound = pick('modular_citadel/sound/voice/bark1.ogg', 'modular_citadel/sound/voice/bark2.ogg') - playsound(user, sound, 50, 1, -1) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + var/sound = pick('modular_citadel/sound/voice/bark1.ogg', 'modular_citadel/sound/voice/bark2.ogg') + playsound(user, sound, 50, 1, -1) + . = ..() \ No newline at end of file diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm index 7e094eddda..d7ff42a9eb 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm @@ -54,7 +54,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die /datum/reagent/fermi/astral/reaction_turf(turf/T, reac_volume) if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) var/turf/open/floor/F = T - F.PlaceOnTop(/turf/open/floor/fakespace, flags = CHANGETURF_INHERIT_AIR) + F.PlaceOnTop(/turf/open/floor/fakespace) ..() /datum/reagent/fermi/astral/reaction_obj(obj/O, reac_volume) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 5ea1fc77be..fcde3a8b79 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -105,7 +105,7 @@ name = "Eigenstasium" id = "eigenstate" results = list("eigenstate" = 1) - required_reagents = list("bluespace" = 1, "stable_plasma" = 1, "caramel" = 1) + required_reagents = list("bluespace" = 1, "stable_plasma" = 1, "sugar" = 1) mix_message = "the reaction zaps suddenly!" //FermiChem vars: OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions @@ -504,7 +504,7 @@ name = "secretcatchem" id = "secretcatchem" results = list("secretcatchem" = 5) - required_reagents = list("stable_plasma" = 1, "caramel" = 1, "cream" = 1, "clonexadone" = 1)//Yes this will make a kitty if you don't lucky guess. It'll eat all your reagents too. + required_reagents = list("stable_plasma" = 1, "sugar" = 1, "cream" = 1, "clonexadone" = 1)//Yes this will make a kitty if you don't lucky guess. It'll eat all your reagents too. required_catalysts = list("SDGF" = 1) required_temp = 500 mix_message = "the reaction gives off a meow!" diff --git a/tgstation.dme b/tgstation.dme index 0bad708dc4..61f1dd7bdf 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -43,7 +43,6 @@ #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" #include "code\__DEFINES\donator_groupings.dm" -#include "code\__DEFINES\dynamic.dm" #include "code\__DEFINES\events.dm" #include "code\__DEFINES\exports.dm" #include "code\__DEFINES\fantasy_affixes.dm" @@ -109,7 +108,6 @@ #include "code\__DEFINES\typeids.dm" #include "code\__DEFINES\vehicles.dm" #include "code\__DEFINES\voreconstants.dm" -#include "code\__DEFINES\vote.dm" #include "code\__DEFINES\vv.dm" #include "code\__DEFINES\wall_dents.dm" #include "code\__DEFINES\wires.dm" @@ -120,7 +118,6 @@ #include "code\__HELPERS\areas.dm" #include "code\__HELPERS\AStar.dm" #include "code\__HELPERS\cmp.dm" -#include "code\__HELPERS\custom_holoforms.dm" #include "code\__HELPERS\dates.dm" #include "code\__HELPERS\donator_groupings.dm" #include "code\__HELPERS\files.dm" @@ -470,8 +467,6 @@ #include "code\datums\elements\_element.dm" #include "code\datums\elements\cleaning.dm" #include "code\datums\elements\earhealing.dm" -#include "code\datums\elements\wuv.dm" -#include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" #include "code\datums\helper_datums\icon_snapshot.dm" @@ -584,7 +579,6 @@ #include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" -#include "code\game\gamemodes\dynamic\dynamic_storytellers.dm" #include "code\game\gamemodes\extended\extended.dm" #include "code\game\gamemodes\gangs\dominator.dm" #include "code\game\gamemodes\gangs\dominator_countdown.dm" @@ -2115,7 +2109,6 @@ #include "code\modules\mob\living\say.dm" #include "code\modules\mob\living\status_procs.dm" #include "code\modules\mob\living\taste.dm" -#include "code\modules\mob\living\update_icons.dm" #include "code\modules\mob\living\ventcrawling.dm" #include "code\modules\mob\living\brain\brain.dm" #include "code\modules\mob\living\brain\brain_item.dm" @@ -2222,7 +2215,6 @@ #include "code\modules\mob\living\carbon\monkey\monkey_defense.dm" #include "code\modules\mob\living\carbon\monkey\punpun.dm" #include "code\modules\mob\living\carbon\monkey\update_icons.dm" -#include "code\modules\mob\living\silicon\custom_holoform.dm" #include "code\modules\mob\living\silicon\damage_procs.dm" #include "code\modules\mob\living\silicon\death.dm" #include "code\modules\mob\living\silicon\examine.dm" @@ -2254,7 +2246,6 @@ #include "code\modules\mob\living\silicon\pai\personality.dm" #include "code\modules\mob\living\silicon\pai\say.dm" #include "code\modules\mob\living\silicon\pai\software.dm" -#include "code\modules\mob\living\silicon\pai\update_icon.dm" #include "code\modules\mob\living\silicon\robot\death.dm" #include "code\modules\mob\living\silicon\robot\emote.dm" #include "code\modules\mob\living\silicon\robot\examine.dm" @@ -3068,6 +3059,8 @@ #include "modular_citadel\code\datums\status_effects\chems.dm" #include "modular_citadel\code\datums\status_effects\debuffs.dm" #include "modular_citadel\code\datums\wires\autoylathe.dm" +#include "modular_citadel\code\game\machinery\displaycases.dm" +#include "modular_citadel\code\game\machinery\Sleeper.dm" #include "modular_citadel\code\game\machinery\toylathe.dm" #include "modular_citadel\code\game\machinery\vending.dm" #include "modular_citadel\code\game\machinery\wishgranter.dm" @@ -3082,6 +3075,8 @@ #include "modular_citadel\code\game\objects\items\devices\radio\encryptionkey.dm" #include "modular_citadel\code\game\objects\items\devices\radio\headset.dm" #include "modular_citadel\code\game\objects\items\devices\radio\shockcollar.dm" +#include "modular_citadel\code\game\objects\structures\tables_racks.dm" +#include "modular_citadel\code\game\objects\structures\beds_chairs\chair.dm" #include "modular_citadel\code\modules\admin\admin.dm" #include "modular_citadel\code\modules\admin\chat_commands.dm" #include "modular_citadel\code\modules\admin\holder2.dm"