diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm
new file mode 100644
index 0000000000..76cb8bb9db
--- /dev/null
+++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm
@@ -0,0 +1,1698 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ dir = 4;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = 24;
+ req_access_txt = "10"
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cB" = (
+/obj/machinery/button/door{
+ dir = 1;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ req_access_txt = "10"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"cP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"dz" = (
+/turf/open/space/basic,
+/area/space/nearstation)
+"dN" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"dW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ea" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"eA" = (
+/obj/structure/table,
+/obj/item/clothing/suit/radiation,
+/obj/item/clothing/head/radiation,
+/obj/item/clothing/glasses/meson,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"eI" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"eJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"eL" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"fh" = (
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"fr" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Singularity Engine Southwest";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"fH" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"gf" = (
+/obj/item/storage/toolbox/mechanical,
+/obj/item/flashlight,
+/obj/item/pipe_dispenser,
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ht" = (
+/obj/structure/reflector/single/anchored{
+ dir = 5
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"hR" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"ic" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"jx" = (
+/obj/structure/reflector/single/anchored{
+ dir = 9
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"jH" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"kh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"kC" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"kK" = (
+/turf/closed/wall,
+/area/engine/engineering)
+"la" = (
+/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
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"lJ" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"lY" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"me" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/closet/radiation,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"mB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"mZ" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"nR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"nW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"qH" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"qP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"rj" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"rm" = (
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"rM" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow,
+/obj/machinery/power/rad_collector,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"sr" = (
+/obj/machinery/light,
+/obj/machinery/camera/emp_proof{
+ c_tag = "Singularity Engine South";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"tl" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"to" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"tv" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable,
+/obj/machinery/power/emitter,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"tC" = (
+/obj/structure/grille,
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"tE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"tT" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = 24;
+ req_access_txt = "10"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"uG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"wt" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"xg" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"xx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"xJ" = (
+/obj/item/tank/internals/emergency_oxygen/engi{
+ pixel_x = 5
+ },
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/glasses/meson/engine,
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"xQ" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/rad_collector,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"yo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"yq" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/rad_collector,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"yU" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"zW" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"zZ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = -24;
+ req_access_txt = "10"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Aw" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"AF" = (
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Bb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#c1caff"
+ },
+/obj/machinery/camera/emp_proof{
+ c_tag = "Particle Accelerator";
+ network = list("ss13","engine")
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/the_singularitygen,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Bj" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/rad_collector,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"BG" = (
+/obj/structure/closet/emcloset/anchored,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Ce" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Ch" = (
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"CN" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Singularity Engine East";
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"DK" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Singularity Engine West";
+ dir = 4;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"Eu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ER" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ES" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/item/clothing/head/welding,
+/obj/item/weldingtool/largetank,
+/obj/item/wrench,
+/obj/item/stack/cable_coil/red,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"FK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"FM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"FP" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"FY" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/engineering_singulo_tesla,
+/obj/item/geiger_counter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Hc" = (
+/obj/machinery/light,
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"HQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = -24;
+ req_access_txt = "10"
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"HW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"In" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Js" = (
+/obj/structure/particle_accelerator/end_cap,
+/obj/structure/particle_accelerator/fuel_chamber,
+/obj/structure/particle_accelerator/particle_emitter/center,
+/obj/structure/particle_accelerator/particle_emitter/left,
+/obj/structure/particle_accelerator/particle_emitter/right,
+/obj/structure/particle_accelerator/power_box,
+/obj/machinery/particle_accelerator/control_box,
+/obj/structure/closet/crate/engineering{
+ name = "Particle Accelerator Crate"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"JC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Kg" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Lr" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Ls" = (
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"LB" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"LJ" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Singularity Engine Southeast";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"LO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"LV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Mi" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Mn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"MD" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"MJ" = (
+/turf/open/space/basic,
+/area/space)
+"Nm" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"No" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Nz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"NS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Og" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Ox" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/box,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Pg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Pt" = (
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"Qk" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Singularity Engine Northeast";
+ network = list("ss13","engine")
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"Ra" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Rp" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Rr" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector{
+ dir = 1
+ },
+/turf/open/space/basic,
+/area/engine/engineering)
+"Si" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"SD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Um" = (
+/turf/template_noop,
+/area/template_noop)
+"UL" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Singularity Engine Northwest";
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"UV" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Wf" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Ww" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"WQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"WX" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Xk" = (
+/obj/machinery/field/generator,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Yd" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Yl" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"Yn" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/engine/engineering)
+"YY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Zb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Zx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Zz" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ZF" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"ZK" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ZY" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/light,
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+
+(1,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(2,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(3,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(4,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(5,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+Yl
+dz
+dz
+MJ
+MJ
+dz
+dz
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(6,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+rm
+Yl
+dz
+dz
+dz
+dz
+Yl
+dz
+dz
+dz
+dz
+dz
+dz
+dz
+dz
+Um
+Um
+Um
+Um
+"}
+(7,1,1) = {"
+Um
+Um
+Um
+Um
+kK
+kK
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+jH
+Ch
+Ch
+Ch
+Ch
+lJ
+Ch
+Nm
+dz
+MJ
+MJ
+MJ
+MJ
+"}
+(8,1,1) = {"
+Um
+Um
+Lr
+la
+kK
+Ra
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+Ch
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+dz
+dz
+MJ
+MJ
+MJ
+"}
+(9,1,1) = {"
+Um
+Um
+FM
+FM
+In
+ER
+yU
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+DK
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+Ls
+Pt
+dz
+dz
+MJ
+MJ
+"}
+(10,1,1) = {"
+Um
+Si
+fh
+ZY
+to
+Ch
+Ch
+UL
+dz
+Yl
+dz
+dz
+FP
+dz
+FP
+dz
+dz
+Yl
+dz
+Pt
+Ch
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(11,1,1) = {"
+xJ
+gf
+fh
+dN
+YY
+MD
+Ch
+Pt
+dz
+Yl
+dz
+dz
+FP
+dz
+FP
+dz
+dz
+Yl
+dz
+Pt
+fr
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(12,1,1) = {"
+LO
+Eu
+Pg
+cP
+JC
+tv
+rj
+Pt
+dz
+Yl
+ht
+dz
+FP
+dz
+FP
+dz
+dz
+Yl
+dz
+Yl
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(13,1,1) = {"
+NS
+xx
+fh
+zW
+dW
+ea
+rj
+Pt
+eL
+Kg
+Kg
+rM
+Kg
+rM
+Kg
+rM
+Kg
+Kg
+tl
+Yl
+Hc
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(14,1,1) = {"
+yo
+me
+aT
+Aw
+JC
+tv
+rj
+Og
+hR
+dz
+FP
+dz
+dz
+rm
+dz
+dz
+ht
+dz
+hR
+Yl
+Pt
+Ch
+jH
+Yl
+dz
+MJ
+"}
+(15,1,1) = {"
+jH
+FK
+Ch
+wt
+tE
+rj
+rj
+Og
+hR
+FP
+Xk
+FP
+FP
+rm
+FP
+FP
+Xk
+FP
+hR
+dz
+Pt
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(16,1,1) = {"
+Ch
+ES
+ZK
+ZK
+zZ
+ZK
+fH
+Og
+hR
+dz
+FP
+dz
+dz
+rm
+dz
+dz
+FP
+dz
+xQ
+dz
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(17,1,1) = {"
+wt
+Zz
+Wf
+Ox
+nR
+Zb
+lY
+Og
+hR
+dz
+FP
+dz
+dz
+rm
+dz
+dz
+FP
+dz
+hR
+Yl
+Pt
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(18,1,1) = {"
+cB
+Bb
+qP
+ZF
+SD
+Yd
+eI
+LB
+UV
+rm
+rm
+rm
+rm
+rm
+rm
+rm
+rm
+rm
+yq
+Yl
+sr
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(19,1,1) = {"
+wt
+eJ
+Zx
+nW
+Mn
+WQ
+lY
+Og
+hR
+dz
+FP
+dz
+dz
+rm
+dz
+dz
+FP
+dz
+hR
+Yl
+Pt
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(20,1,1) = {"
+Ch
+Js
+No
+No
+tT
+No
+LV
+Og
+hR
+dz
+FP
+dz
+dz
+rm
+dz
+dz
+FP
+dz
+Bj
+dz
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(21,1,1) = {"
+jH
+Nz
+Ch
+wt
+tE
+rj
+rj
+Og
+hR
+FP
+Xk
+FP
+FP
+rm
+FP
+FP
+Xk
+FP
+hR
+dz
+Pt
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(22,1,1) = {"
+AF
+WX
+HQ
+Aw
+JC
+tv
+rj
+Og
+hR
+dz
+FP
+dz
+dz
+rm
+dz
+dz
+jx
+dz
+hR
+Yl
+Pt
+Ch
+jH
+Yl
+dz
+MJ
+"}
+(23,1,1) = {"
+fh
+kh
+fh
+fh
+dW
+ea
+rj
+Pt
+ic
+Kg
+Kg
+rM
+Kg
+rM
+Kg
+rM
+Kg
+Kg
+Ce
+Yl
+Hc
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(24,1,1) = {"
+fh
+kh
+uG
+cP
+xg
+tv
+rj
+Pt
+dz
+Yl
+jx
+dz
+FP
+dz
+FP
+dz
+dz
+Yl
+dz
+Yl
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(25,1,1) = {"
+eA
+FY
+mB
+Rp
+HW
+Mi
+Ch
+Pt
+dz
+Yl
+dz
+dz
+FP
+dz
+FP
+dz
+dz
+Yl
+dz
+Pt
+LJ
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(26,1,1) = {"
+fh
+kh
+mB
+ZY
+kC
+mZ
+mZ
+Qk
+Rr
+Yl
+dz
+dz
+FP
+dz
+FP
+dz
+dz
+Yl
+dz
+Pt
+Ch
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(27,1,1) = {"
+Um
+Um
+Um
+fh
+Ww
+qH
+yU
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+CN
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+Ls
+Pt
+dz
+dz
+MJ
+MJ
+"}
+(28,1,1) = {"
+Um
+Um
+Um
+fh
+Yn
+BG
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+Ch
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+Yl
+dz
+dz
+dz
+MJ
+"}
+(29,1,1) = {"
+Um
+Um
+Um
+fh
+Yn
+kK
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+jH
+Ch
+Ch
+Ch
+Ch
+lJ
+Ch
+Nm
+Yl
+Yl
+Yl
+dz
+MJ
+"}
diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm
new file mode 100644
index 0000000000..6462cef211
--- /dev/null
+++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm
@@ -0,0 +1,2827 @@
+//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/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/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/simple/general/visible{
+ dir = 9
+ },
+/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
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"js" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/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)
+"mW" = (
+/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)
+"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 = 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/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)
+"tn" = (
+/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"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"un" = (
+/obj/structure/reflector/single/anchored{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"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/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/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)
+"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
+ },
+/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)
+"Dj" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/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)
+"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,
+/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)
+"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" = (
+/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)
+"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)
+"UM" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ 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)
+"UP" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"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)
+"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/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
+QJ
+pP
+pP
+MJ
+MP
+yf
+YZ
+Oj
+YZ
+yf
+"}
+(16,1,1) = {"
+MP
+aC
+bW
+TO
+fK
+JL
+UP
+ti
+ti
+Bk
+JL
+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
+so
+so
+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
+tn
+NU
+Hw
+ac
+ac
+iD
+xo
+Uu
+xo
+vD
+Uu
+MP
+yf
+YZ
+Oj
+YZ
+yf
+"}
+(19,1,1) = {"
+oS
+fa
+bW
+LE
+Gz
+lE
+CT
+UM
+UM
+UM
+OR
+jB
+Nx
+aw
+iD
+Uu
+Uu
+Uu
+un
+Uu
+MP
+Rh
+YZ
+Oj
+YZ
+yf
+"}
+(20,1,1) = {"
+MP
+Bl
+bW
+iU
+JL
+OR
+Wf
+mW
+mW
+RA
+JL
+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
+Dj
+IF
+Dj
+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_tesla.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_tesla.dmm
new file mode 100644
index 0000000000..7f55d69b17
--- /dev/null
+++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_tesla.dmm
@@ -0,0 +1,1855 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ dir = 4;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = 24;
+ req_access_txt = "10"
+ },
+/obj/structure/rack,
+/obj/item/clothing/gloves/color/yellow,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cB" = (
+/obj/machinery/button/door{
+ dir = 1;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ req_access_txt = "10"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"cP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"dz" = (
+/turf/open/space/basic,
+/area/space/nearstation)
+"dN" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"dW" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"ea" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"eA" = (
+/obj/structure/table,
+/obj/item/clothing/suit/radiation,
+/obj/item/clothing/head/radiation,
+/obj/item/clothing/glasses/meson,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"eI" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"eJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"eL" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"fh" = (
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"fr" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine Southwest";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"fH" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"gf" = (
+/obj/item/storage/toolbox/mechanical,
+/obj/item/flashlight,
+/obj/item/pipe_dispenser,
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ht" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"hR" = (
+/obj/machinery/power/tesla_coil,
+/obj/structure/cable,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"ic" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"js" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine East";
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"jx" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"jH" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"kh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ku" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"kK" = (
+/turf/closed/wall,
+/area/engine/engineering)
+"la" = (
+/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
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"lJ" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"lY" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"me" = (
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/item/clothing/gloves/color/yellow,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"mB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"nL" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector{
+ dir = 1
+ },
+/turf/open/space/basic,
+/area/engine/engineering)
+"nR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"nW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"qH" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"qP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"rj" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"rm" = (
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"rM" = (
+/obj/machinery/field/generator,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"rT" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"tc" = (
+/obj/machinery/light,
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine South";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"tl" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"to" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"tv" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable,
+/obj/machinery/power/emitter,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"tC" = (
+/obj/structure/grille,
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"tE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"tT" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = 24;
+ req_access_txt = "10"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"uG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"wt" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"xg" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"xx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"xJ" = (
+/obj/item/tank/internals/emergency_oxygen/engi{
+ pixel_x = 5
+ },
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/glasses/meson/engine,
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"xQ" = (
+/obj/machinery/power/tesla_coil,
+/obj/structure/cable{
+ icon_state = "0-2";
+ pixel_y = 1
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"yj" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine West";
+ dir = 4;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"yo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/rack,
+/obj/item/clothing/gloves/color/yellow,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"yq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"yU" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"zW" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"zZ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = -24;
+ req_access_txt = "10"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Aw" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"AF" = (
+/obj/structure/rack,
+/obj/item/clothing/gloves/color/yellow,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Bb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#c1caff"
+ },
+/obj/machinery/camera/emp_proof{
+ c_tag = "Particle Accelerator";
+ network = list("ss13","engine")
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/the_singularitygen/tesla,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Bh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Bj" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"BG" = (
+/obj/structure/closet/emcloset/anchored,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Ce" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"Ch" = (
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"DF" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"Eu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ER" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ES" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/item/clothing/head/welding,
+/obj/item/weldingtool/largetank,
+/obj/item/wrench,
+/obj/item/stack/cable_coil/red,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"FK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"FM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"FP" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"FY" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/engineering_singulo_tesla,
+/obj/item/geiger_counter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Hc" = (
+/obj/machinery/light,
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"HQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_x = -24;
+ req_access_txt = "10"
+ },
+/obj/structure/rack,
+/obj/item/clothing/gloves/color/yellow,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"HW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"In" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Js" = (
+/obj/structure/particle_accelerator/end_cap,
+/obj/structure/particle_accelerator/fuel_chamber,
+/obj/structure/particle_accelerator/particle_emitter/center,
+/obj/structure/particle_accelerator/particle_emitter/left,
+/obj/structure/particle_accelerator/particle_emitter/right,
+/obj/structure/particle_accelerator/power_box,
+/obj/machinery/particle_accelerator/control_box,
+/obj/structure/closet/crate/engineering{
+ name = "Particle Accelerator Crate"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"JC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"JZ" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/engine/engineering)
+"Kg" = (
+/obj/structure/reflector/single/anchored{
+ dir = 5
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Lr" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Ls" = (
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"LB" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"LJ" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine Southeast";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"LO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"LV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Mi" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Mn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"MD" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"MJ" = (
+/turf/open/space/basic,
+/area/space)
+"Nm" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"No" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Nz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"NS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Oe" = (
+/obj/structure/reflector/single/anchored{
+ dir = 9
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Og" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Ox" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/box,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Pg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Pj" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"Pk" = (
+/obj/machinery/power/tesla_coil,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Pt" = (
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"Qk" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine Northeast";
+ network = list("ss13","engine")
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"Ra" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"Rp" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"RE" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"RL" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"Si" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"SD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Tr" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"TE" = (
+/obj/machinery/power/tesla_coil,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"TN" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"Um" = (
+/turf/template_noop,
+/area/template_noop)
+"UL" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine Northwest";
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
+"UV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Vf" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"VR" = (
+/obj/structure/lattice/catwalk,
+/obj/machinery/camera/emp_proof{
+ c_tag = "Tesla Engine Northeast";
+ network = list("ss13","engine")
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"Wf" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Ww" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"WI" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"WP" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"WQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"WX" = (
+/obj/structure/rack,
+/obj/item/clothing/gloves/color/yellow,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Xk" = (
+/obj/machinery/power/grounding_rod,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"Yd" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Yl" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"YY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"Zb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Zx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"Zz" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ZF" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"ZK" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ZS" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"ZY" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+
+(1,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(2,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(3,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(4,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+dz
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(5,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+Yl
+dz
+dz
+MJ
+MJ
+dz
+dz
+dz
+MJ
+MJ
+MJ
+MJ
+MJ
+MJ
+Um
+Um
+Um
+Um
+Um
+"}
+(6,1,1) = {"
+Um
+Um
+Um
+Um
+Um
+Um
+Um
+rm
+Yl
+dz
+dz
+dz
+dz
+Yl
+dz
+dz
+dz
+dz
+dz
+dz
+dz
+dz
+Um
+Um
+Um
+Um
+"}
+(7,1,1) = {"
+Um
+Um
+Um
+Um
+kK
+kK
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+jH
+Ch
+Ch
+Ch
+Ch
+lJ
+Ch
+Nm
+dz
+MJ
+MJ
+MJ
+MJ
+"}
+(8,1,1) = {"
+Um
+Um
+Lr
+la
+kK
+Ra
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+Ch
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+dz
+dz
+MJ
+MJ
+MJ
+"}
+(9,1,1) = {"
+Um
+Um
+FM
+FM
+In
+ER
+yU
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+yj
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+Ls
+Pt
+dz
+dz
+MJ
+MJ
+"}
+(10,1,1) = {"
+Um
+Si
+fh
+ZY
+to
+Ch
+Ch
+UL
+dz
+Yl
+dz
+dz
+FP
+FP
+FP
+dz
+dz
+Yl
+dz
+Pt
+Ch
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(11,1,1) = {"
+xJ
+gf
+fh
+dN
+YY
+MD
+Ch
+Pt
+dz
+Yl
+dz
+dz
+FP
+FP
+FP
+dz
+dz
+Yl
+dz
+Pt
+fr
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(12,1,1) = {"
+LO
+Eu
+Pg
+cP
+Bh
+tv
+rj
+Pt
+dz
+Yl
+dz
+dz
+Kg
+FP
+FP
+FP
+dz
+Yl
+dz
+Yl
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(13,1,1) = {"
+NS
+xx
+fh
+zW
+Bh
+tv
+rj
+Pt
+rm
+rm
+rm
+rm
+rm
+rm
+Kg
+rm
+rm
+rm
+rm
+Yl
+Hc
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(14,1,1) = {"
+yo
+me
+aT
+Aw
+JC
+WI
+rj
+Og
+rm
+tl
+ht
+Bj
+ht
+WP
+ht
+Pj
+ht
+TN
+rm
+Yl
+Pt
+Ch
+jH
+Yl
+dz
+MJ
+"}
+(15,1,1) = {"
+jH
+FK
+Ch
+wt
+tE
+rj
+rj
+Og
+rm
+ZS
+Xk
+TE
+rm
+TE
+rm
+TE
+Xk
+ZS
+rm
+dz
+Pt
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(16,1,1) = {"
+Ch
+ES
+ZK
+ZK
+zZ
+ZK
+fH
+Og
+rm
+ea
+hR
+FP
+FP
+FP
+FP
+FP
+xQ
+RL
+rm
+dz
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(17,1,1) = {"
+wt
+Zz
+Wf
+Ox
+nR
+Zb
+lY
+Og
+rm
+yq
+rm
+FP
+rM
+rm
+rM
+FP
+rm
+yq
+rm
+Yl
+Pt
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(18,1,1) = {"
+cB
+Bb
+qP
+ZF
+SD
+Yd
+eI
+LB
+UV
+dW
+hR
+FP
+rm
+rm
+rm
+FP
+xQ
+ku
+rm
+Yl
+tc
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(19,1,1) = {"
+wt
+eJ
+Zx
+nW
+Mn
+WQ
+lY
+Og
+rm
+ZS
+rm
+FP
+rM
+rm
+rM
+FP
+rm
+ZS
+rm
+Yl
+Pt
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(20,1,1) = {"
+Ch
+Js
+No
+No
+tT
+No
+LV
+Og
+rm
+DF
+hR
+FP
+FP
+FP
+FP
+FP
+xQ
+RE
+rm
+dz
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(21,1,1) = {"
+jH
+Nz
+Ch
+wt
+tE
+rj
+rj
+Og
+rm
+ZS
+Xk
+Pk
+rm
+Pk
+rm
+Pk
+Xk
+ZS
+rm
+dz
+Pt
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(22,1,1) = {"
+AF
+WX
+HQ
+Aw
+JC
+WI
+rj
+Og
+rm
+Ce
+ht
+ic
+ht
+eL
+ht
+Vf
+ht
+jx
+rm
+Yl
+Pt
+Ch
+jH
+Yl
+dz
+MJ
+"}
+(23,1,1) = {"
+fh
+kh
+fh
+fh
+Bh
+tv
+rj
+Pt
+rm
+rm
+rm
+rm
+rm
+rm
+Oe
+rm
+rm
+rm
+rm
+Yl
+Hc
+Ch
+tC
+Yl
+dz
+MJ
+"}
+(24,1,1) = {"
+fh
+kh
+uG
+cP
+xg
+tv
+rj
+Pt
+dz
+Yl
+dz
+dz
+Oe
+FP
+FP
+FP
+dz
+Yl
+dz
+Yl
+Pt
+Ch
+tC
+dz
+dz
+MJ
+"}
+(25,1,1) = {"
+eA
+FY
+mB
+Rp
+HW
+Mi
+Ch
+Pt
+dz
+Yl
+dz
+dz
+FP
+FP
+VR
+dz
+dz
+Yl
+dz
+Pt
+LJ
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(26,1,1) = {"
+fh
+kh
+mB
+ZY
+Tr
+rT
+rT
+Qk
+nL
+Yl
+dz
+dz
+FP
+FP
+FP
+dz
+dz
+Yl
+dz
+Pt
+Ch
+Ch
+tC
+dz
+MJ
+MJ
+"}
+(27,1,1) = {"
+Um
+Um
+Um
+fh
+Ww
+qH
+yU
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+js
+Pt
+Pt
+Pt
+Pt
+Pt
+Pt
+Ls
+Pt
+dz
+dz
+MJ
+MJ
+"}
+(28,1,1) = {"
+Um
+Um
+Um
+fh
+JZ
+BG
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+Ch
+Ch
+tC
+tC
+tC
+tC
+tC
+Ch
+Yl
+dz
+dz
+dz
+MJ
+"}
+(29,1,1) = {"
+Um
+Um
+Um
+fh
+JZ
+kK
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+Ch
+jH
+Ch
+Ch
+Ch
+Ch
+lJ
+Ch
+Nm
+Yl
+Yl
+Yl
+dz
+MJ
+"}
diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm
index f4a18fd87c..4d07c02565 100644
--- a/_maps/RandomZLevels/Cabin.dmm
+++ b/_maps/RandomZLevels/Cabin.dmm
@@ -967,10 +967,6 @@
},
/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
@@ -1227,7 +1223,7 @@ aa
aa
aa
aa
-dw
+aa
"}
(2,1,1) = {"
aa
diff --git a/_maps/RandomZLevels/VR/snowdin_VR.dmm b/_maps/RandomZLevels/VR/snowdin_VR.dmm
index 0e67b7227c..222615619e 100644
--- a/_maps/RandomZLevels/VR/snowdin_VR.dmm
+++ b/_maps/RandomZLevels/VR/snowdin_VR.dmm
@@ -4,9 +4,15 @@
/turf/closed/indestructible/rock/snow,
/area/awaymission/snowdin/cave/mountain)
"ab" = (
-/obj/effect/mapping_helpers/planet_z,
-/turf/closed/indestructible/rock/snow,
-/area/awaymission/snowdin/cave/mountain)
+/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)
"ac" = (
/turf/closed/indestructible/rock/snow,
/area/awaymission/snowdin/cave/mountain)
@@ -10267,16 +10273,6 @@
/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
@@ -16013,7 +16009,7 @@ ac
ac
"}
(2,1,1) = {"
-ab
+ac
ac
ac
ac
@@ -66518,7 +66514,7 @@ wD
wT
xe
xs
-xA
+ab
xI
xN
wL
diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm
index 9237346329..913de0817c 100644
--- a/_maps/RandomZLevels/caves.dmm
+++ b/_maps/RandomZLevels/caves.dmm
@@ -2251,10 +2251,6 @@
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,
@@ -2536,7 +2532,7 @@ aa
aa
aa
aa
-gW
+aa
"}
(2,1,1) = {"
aa
diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm
index ddc8778ac1..8c33326703 100644
--- a/_maps/RandomZLevels/moonoutpost19.dmm
+++ b/_maps/RandomZLevels/moonoutpost19.dmm
@@ -7215,10 +7215,6 @@
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{
@@ -7512,7 +7508,7 @@ aa
aa
aa
aa
-oV
+aa
"}
(2,1,1) = {"
aa
diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm
index 13171fddcc..c24bf45f81 100644
--- a/_maps/RandomZLevels/snowdin.dmm
+++ b/_maps/RandomZLevels/snowdin.dmm
@@ -4,9 +4,15 @@
/turf/closed/indestructible/rock/snow,
/area/awaymission/snowdin/cave/mountain)
"ab" = (
-/obj/effect/mapping_helpers/planet_z,
-/turf/closed/indestructible/rock/snow,
-/area/awaymission/snowdin/cave/mountain)
+/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)
"ac" = (
/turf/closed/indestructible/rock/snow,
/area/awaymission/snowdin/cave/mountain)
@@ -10331,16 +10337,6 @@
/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
@@ -16108,7 +16104,7 @@ ac
ac
"}
(2,1,1) = {"
-ab
+ac
ac
ac
ac
@@ -66613,7 +66609,7 @@ wD
wT
xe
xs
-xA
+ab
xI
xN
wL
diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm
index 21cd37f78f..66d7f556b4 100644
--- a/_maps/RandomZLevels/spacebattle.dmm
+++ b/_maps/RandomZLevels/spacebattle.dmm
@@ -5,6 +5,16 @@
"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
@@ -2597,16 +2607,6 @@
/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,10 +2894,6 @@
/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)
@@ -3175,7 +3171,7 @@ aa
aa
aa
aa
-kM
+aa
"}
(2,1,1) = {"
aa
@@ -35686,10 +35682,10 @@ eC
cn
fL
cp
-jK
+ac
fs
fO
-jK
+ac
eM
eM
eM
diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm
index f6d46ef97d..56018b943a 100644
--- a/_maps/RandomZLevels/undergroundoutpost45.dmm
+++ b/_maps/RandomZLevels/undergroundoutpost45.dmm
@@ -25,6 +25,9 @@
"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{
@@ -13945,10 +13948,6 @@
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
@@ -14211,7 +14210,7 @@ aa
aa
aa
aa
-zi
+ah
"}
(2,1,1) = {"
aa
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index 7bec217f62..92ceb0ac34 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -3,32 +3,38 @@
/turf/open/space/basic,
/area/space)
"aab" = (
-/obj/effect/turf_decal/stripes/line{
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/table,
+/obj/machinery/chem_dispenser/drinks/beer{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
dir = 1
},
-/turf/open/floor/plating,
-/area/space/nearstation)
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"aac" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/space/nearstation)
-"aad" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red{
+/obj/machinery/camera{
+ c_tag = "Bar";
dir = 8
},
/obj/structure/table,
-/obj/item/restraints/handcuffs,
+/obj/machinery/chem_dispenser/drinks{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/crew_quarters/bar)
"aae" = (
/obj/effect/landmark/carpspawn,
/turf/open/space,
@@ -93,23 +99,18 @@
/area/security/prison)
"aao" = (
/obj/machinery/hydroponics/soil,
-/obj/item/seeds/carrot,
-/turf/open/floor/grass,
-/area/security/prison)
-"aap" = (
-/obj/machinery/hydroponics/soil,
/obj/item/plant_analyzer,
/obj/structure/sign/warning/electricshock{
pixel_y = 32
},
/turf/open/floor/grass,
/area/security/prison)
-"aaq" = (
+"aap" = (
/obj/machinery/hydroponics/soil,
-/obj/item/seeds/glowshroom,
+/obj/item/seeds/carrot,
/turf/open/floor/grass,
/area/security/prison)
-"aar" = (
+"aaq" = (
/obj/machinery/camera{
c_tag = "Prison Common Room";
network = list("ss13","prison")
@@ -129,6 +130,11 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
+"aar" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/glowshroom,
+/turf/open/floor/grass,
+/area/security/prison)
"aas" = (
/obj/structure/sign/warning/electricshock{
pixel_y = 32
@@ -156,54 +162,47 @@
/turf/open/floor/grass,
/area/security/prison)
"aax" = (
+/mob/living/simple_animal/mouse/brown/Tom,
/turf/open/floor/grass,
/area/security/prison)
"aay" = (
/turf/open/floor/plating,
/area/security/prison)
-"aaz" = (
-/obj/item/reagent_containers/glass/bucket,
-/turf/open/floor/grass,
-/area/security/prison)
-"aaA" = (
-/obj/machinery/vr_sleeper{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"aaB" = (
-/mob/living/simple_animal/mouse/brown/Tom,
+/obj/structure/window/reinforced,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/potato,
/turf/open/floor/grass,
/area/security/prison)
"aaC" = (
+/obj/machinery/hydroponics/soil,
+/obj/structure/window/reinforced,
+/obj/item/seeds/tower,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaD" = (
+/obj/structure/window/reinforced,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/grass,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaE" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
/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)
-"aaD" = (
-/obj/structure/window/reinforced,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/potato,
-/turf/open/floor/grass,
-/area/security/prison)
-"aaE" = (
-/obj/structure/window/reinforced,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/grass,
-/turf/open/floor/grass,
-/area/security/prison)
"aaF" = (
-/obj/machinery/hydroponics/soil,
/obj/structure/window/reinforced,
-/obj/item/seeds/tower,
+/obj/machinery/hydroponics/soil,
+/obj/item/cultivator,
/turf/open/floor/grass,
/area/security/prison)
"aaG" = (
@@ -226,47 +225,15 @@
/obj/structure/chair/stool,
/turf/open/floor/plasteel,
/area/security/prison)
-"aaK" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aaL" = (
-/obj/machinery/computer/libraryconsole/bookmanagement,
-/obj/structure/table,
+"aaN" = (
+/obj/structure/chair/sofa/left,
/turf/open/floor/plasteel,
/area/security/prison)
-"aaM" = (
-/obj/structure/falsewall,
-/turf/open/floor/plating,
-/area/security/prison)
-"aaN" = (
-/obj/structure/window/reinforced,
-/obj/machinery/hydroponics/soil,
-/obj/item/cultivator,
-/turf/open/floor/grass,
-/area/security/prison)
"aaO" = (
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/obj/effect/turf_decal/tile/green{
- dir = 8
- },
-/obj/effect/turf_decal/tile/green{
- dir = 1
- },
+/obj/structure/chair/sofa/right,
/turf/open/floor/plasteel,
/area/security/prison)
"aaP" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
-/turf/closed/wall,
-/area/security/execution/transfer)
-"aaQ" = (
/obj/machinery/computer/cryopod{
dir = 8;
pixel_x = 26
@@ -293,18 +260,14 @@
/obj/structure/grille,
/turf/open/space,
/area/space/nearstation)
-"aaU" = (
-/obj/machinery/computer/arcade/minesweeper{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"aaV" = (
-/obj/structure/chair/sofa/right,
+/obj/structure/table/wood,
+/obj/item/toy/cards/deck,
/turf/open/floor/plasteel,
/area/security/prison)
"aaW" = (
-/obj/structure/chair/sofa/left,
+/obj/structure/table/wood,
+/obj/item/storage/pill_bottle/dice,
/turf/open/floor/plasteel,
/area/security/prison)
"aaX" = (
@@ -314,10 +277,6 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
-"aaY" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
-/area/security/execution/transfer)
"aaZ" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/security/armory)
@@ -352,11 +311,11 @@
/turf/open/floor/plasteel,
/area/security/prison)
"abg" = (
-/obj/machinery/computer/arcade{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
},
-/turf/open/floor/plasteel,
-/area/security/prison)
+/turf/closed/wall,
+/area/security/execution/transfer)
"abh" = (
/obj/machinery/holopad,
/turf/open/floor/plasteel,
@@ -369,13 +328,8 @@
/turf/open/floor/plasteel/freezer,
/area/security/prison)
"abj" = (
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/washing_machine,
+/obj/structure/bedsheetbin/color,
+/obj/structure/table,
/turf/open/floor/plasteel/freezer,
/area/security/prison)
"abk" = (
@@ -490,30 +444,15 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"abx" = (
-/obj/structure/bedsheetbin/color,
-/obj/structure/table,
-/turf/open/floor/plasteel/freezer,
+/obj/machinery/computer/arcade{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
/area/security/prison)
"aby" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/security/execution/transfer)
-"abz" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"abA" = (
/obj/machinery/light,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -552,14 +491,6 @@
"abF" = (
/turf/open/floor/plasteel/freezer,
/area/security/prison)
-"abG" = (
-/obj/machinery/door/window/westleft{
- base_state = "right";
- icon_state = "right";
- name = "Unisex Showers"
- },
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
"abH" = (
/obj/structure/table,
/obj/item/storage/box/chemimp{
@@ -1139,15 +1070,11 @@
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"acN" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green{
- on = 0;
- pixel_x = -7;
- pixel_y = 12
+/obj/structure/chair/stool{
+ pixel_y = 8
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"acO" = (
/obj/structure/closet/l3closet/security,
/obj/machinery/camera{
@@ -1397,12 +1324,16 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"adq" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/computer/slot_machine{
+ balance = 15;
+ money = 500;
+ pixel_x = -5
},
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/obj/structure/sign/poster/contraband/robust_softdrinks{
+ pixel_x = -32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"adr" = (
/obj/structure/sign/warning/vacuum/external{
pixel_x = -32
@@ -1765,16 +1696,18 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"aef" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
/turf/open/floor/plasteel,
/area/security/prison)
"aeg" = (
@@ -1944,9 +1877,18 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
+/obj/structure/rack,
+/obj/structure/window/reinforced{
dir = 8
},
+/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" = (
@@ -1963,6 +1905,12 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/storage/box/handcuffs,
+/obj/item/storage/box/handcuffs,
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"aev" = (
@@ -2032,31 +1980,6 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
-"aeD" = (
-/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)
-"aeE" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/security/prison)
-"aeF" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/security/prison)
"aeG" = (
/obj/structure/cable,
/obj/machinery/power/solar{
@@ -2132,13 +2055,20 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"aeM" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 5
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/window/reinforced{
- dir = 4
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
/area/security/prison)
"aeN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -2259,6 +2189,7 @@
pixel_x = 3;
pixel_y = -3
},
+/obj/item/storage/toolbox/drone,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"aeX" = (
@@ -2427,10 +2358,6 @@
},
/turf/open/floor/plasteel,
/area/security/main)
-"afn" = (
-/obj/machinery/suit_storage_unit/security,
-/turf/open/floor/plasteel/showroomfloor,
-/area/security/warden)
"afo" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod Three"
@@ -2451,20 +2378,6 @@
},
/turf/open/space/basic,
/area/space)
-"afq" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"afr" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/prison)
-"afs" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/security/prison)
"aft" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 5
@@ -2521,16 +2434,17 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"afz" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/obj/machinery/door/window/westleft{
- base_state = "right";
- dir = 4;
- icon_state = "right";
- name = "Shooting Range"
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
-/turf/open/floor/plating,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
/area/security/prison)
"afA" = (
/turf/closed/wall/r_wall,
@@ -2774,16 +2688,6 @@
/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"age" = (
-/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)
"agf" = (
/obj/structure/table,
/obj/item/stack/sheet/metal,
@@ -2933,16 +2837,6 @@
/obj/machinery/suit_storage_unit/security,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
-"agv" = (
-/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)
"agw" = (
/obj/structure/table,
/obj/machinery/syndicatebomb/training,
@@ -3072,15 +2966,6 @@
},
/turf/open/floor/plasteel,
/area/security/main)
-"agH" = (
-/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)
"agI" = (
/obj/machinery/airalarm{
pixel_y = 23
@@ -3210,14 +3095,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/warden)
-"agX" = (
-/obj/structure/closet/secure_closet/warden,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/item/book/manual/wiki/security_space_law,
-/turf/open/floor/plasteel/showroomfloor,
-/area/security/warden)
"agY" = (
/obj/structure/table,
/obj/item/storage/fancy/donut_box,
@@ -3458,15 +3335,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
-"ahw" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/security/prison)
"ahx" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -3692,18 +3560,11 @@
/turf/open/floor/plasteel/white,
/area/security/brig)
"ahQ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/table,
-/obj/machinery/recharger{
- pixel_x = -6;
- pixel_y = 3
- },
-/obj/machinery/recharger{
- pixel_x = 6;
- pixel_y = 3
+/obj/structure/closet/secure_closet/warden,
+/obj/structure/cable{
+ icon_state = "4-8"
},
+/obj/item/book/manual/wiki/security_space_law,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"ahR" = (
@@ -3786,6 +3647,9 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"ahZ" = (
@@ -3857,11 +3721,20 @@
/turf/open/floor/plasteel/white,
/area/security/brig)
"aie" = (
-/obj/structure/closet/wardrobe/mixed,
-/obj/item/clothing/shoes/jackboots,
-/obj/item/coin/silver,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
"aif" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -4475,7 +4348,7 @@
"ajq" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
- icon_state = "0-2"
+ icon_state = "1-2"
},
/turf/open/space,
/area/solar/port/fore)
@@ -4488,18 +4361,27 @@
/turf/open/floor/plasteel,
/area/security/processing)
"ajt" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plating,
-/area/security/prison)
-"aju" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 6
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
},
-/obj/structure/window/reinforced{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plating,
-/area/security/prison)
+/obj/machinery/camera{
+ c_tag = "Labor Shuttle Dock North"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"aju" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
"ajv" = (
/obj/machinery/light{
dir = 8
@@ -4593,13 +4475,6 @@
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/security/brig)
-"ajC" = (
-/obj/item/storage/toolbox/drone,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/ai_monitored/security/armory)
"ajD" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4808,29 +4683,6 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plating,
/area/maintenance/solars/port/fore)
-"ajX" = (
-/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)
-"ajY" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/security/prison)
"ajZ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external{
@@ -4855,18 +4707,23 @@
/area/security/processing)
"akc" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "4-8"
},
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/processing)
"akd" = (
-/obj/structure/lattice,
-/turf/closed/wall,
-/area/security/prison)
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
"ake" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -5040,13 +4897,13 @@
/turf/open/floor/plasteel,
/area/security/brig)
"aks" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"akt" = (
@@ -5063,23 +4920,19 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/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" = (
@@ -5108,9 +4961,10 @@
/turf/open/floor/plasteel,
/area/security/courtroom)
"akz" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/vending/snack/random,
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
-/area/security/brig)
+/area/hallway/primary/fore)
"akA" = (
/obj/structure/chair{
dir = 8;
@@ -5131,44 +4985,6 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/port/fore)
-"akC" = (
-/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)
-"akD" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/security/prison)
-"akE" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/processing)
-"akF" = (
-/obj/structure/sign/warning/securearea{
- pixel_x = 32
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/camera{
- c_tag = "Labor Shuttle Dock North"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel,
-/area/security/processing)
"akG" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
@@ -5189,13 +5005,13 @@
/turf/open/floor/plasteel,
/area/security/processing)
"akJ" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/light_switch{
+ pixel_x = 27
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
},
+/obj/machinery/computer/security/labor,
/turf/open/floor/plasteel,
/area/security/processing)
"akK" = (
@@ -5248,6 +5064,9 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"akP" = (
@@ -5279,6 +5098,9 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"akS" = (
@@ -5304,6 +5126,12 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"akU" = (
@@ -5336,9 +5164,6 @@
name = "Brig";
req_access_txt = "63"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -5346,6 +5171,9 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"akX" = (
@@ -5369,39 +5197,6 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
-"akY" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/brig)
-"akZ" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/brig)
-"ala" = (
-/obj/machinery/door/window/brigdoor/security/cell{
- id = "Cell 4";
- name = "Cell 4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
"alb" = (
/obj/structure/chair{
dir = 4;
@@ -5449,19 +5244,6 @@
},
/turf/open/floor/plasteel,
/area/security/courtroom)
-"alf" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
-"alg" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/space,
-/area/solar/starboard/fore)
"alh" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -5479,42 +5261,12 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"alj" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/processing)
"alk" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 1
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"all" = (
-/obj/machinery/light_switch{
- pixel_x = 27
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/obj/machinery/computer/security/labor,
-/turf/open/floor/plasteel,
-/area/security/processing)
-"alm" = (
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/processing)
"aln" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -5526,12 +5278,6 @@
},
/turf/open/floor/plating,
/area/security/processing)
-"alo" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/table,
-/obj/item/storage/box/prisoner,
-/turf/open/floor/plasteel,
-/area/security/processing)
"alp" = (
/turf/open/floor/plating,
/area/security/processing)
@@ -5539,10 +5285,16 @@
/turf/open/floor/plasteel,
/area/security/processing)
"alr" = (
-/obj/structure/target_stake,
-/obj/item/target/syndicate,
-/turf/open/floor/plating,
-/area/security/prison)
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
"als" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -5593,18 +5345,6 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
-"alx" = (
-/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)
"aly" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -5628,11 +5368,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/button/flasher{
- id = "brigentry";
- pixel_x = -28;
- pixel_y = -8
- },
/turf/open/floor/plasteel/dark,
/area/security/brig)
"alA" = (
@@ -5674,18 +5409,10 @@
/turf/open/floor/plating,
/area/security/courtroom)
"alE" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/machinery/flasher{
- id = "Cell 4";
- pixel_x = 28
- },
-/obj/machinery/light/small{
- dir = 4
- },
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
-/area/security/brig)
+/area/hallway/primary/fore)
"alF" = (
/obj/machinery/atmospherics/components/unary/tank/air,
/turf/open/floor/plating,
@@ -5732,19 +5459,18 @@
/turf/open/floor/plasteel,
/area/security/courtroom)
"alK" = (
-/obj/machinery/button/door{
- id = "Room Two";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 7;
- pixel_y = -24;
- specialfunctions = 4
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/structure/chair/comfy/brown{
- dir = 8
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"alL" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/power/apc{
@@ -5759,27 +5485,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
-"alM" = (
-/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/security/prison)
-"alN" = (
-/turf/open/space/basic,
-/area/space/nearstation)
"alO" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -5834,44 +5539,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"alY" = (
-/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)
-"alZ" = (
-/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)
"ama" = (
/mob/living/simple_animal/sloth/paperwork,
/turf/open/floor/plasteel,
@@ -5893,22 +5560,10 @@
/area/security/processing)
"amd" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/button/door{
- desc = "Bolts the doors to the Private Study.";
- id = "PrivateStudy";
- name = "Private Study Lock";
- pixel_x = -5;
- pixel_y = 24;
- req_access_txt = "28"
- },
-/obj/machinery/button/door{
- id = "PrivateStudy1";
- name = "Privacy Shutters";
- pixel_x = 5;
- pixel_y = 24
- },
-/turf/open/floor/wood,
-/area/library)
+/obj/structure/table,
+/obj/item/storage/box/prisoner,
+/turf/open/floor/plasteel,
+/area/security/processing)
"ame" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -5970,83 +5625,23 @@
/turf/open/floor/plasteel,
/area/security/brig)
"aml" = (
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/machinery/button/door{
- desc = "A remote control switch for the medbay foyer.";
- id = "outerbrig";
- name = "Brig Exterior Doors Control";
- normaldoorcontrol = 1;
- pixel_x = -26;
- pixel_y = -5;
- req_access_txt = "63"
- },
-/obj/machinery/button/door{
- desc = "A remote control switch for the medbay foyer.";
- id = "innerbrig";
- name = "Brig Interior Doors Control";
- normaldoorcontrol = 1;
- pixel_x = -26;
- pixel_y = 5;
- req_access_txt = "63"
- },
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-4"
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
-"amm" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "briggate";
- name = "security shutters"
- },
-/obj/machinery/door/window/eastright{
- name = "Brig Desk";
- req_access_txt = "2"
- },
-/obj/item/restraints/handcuffs,
-/obj/item/radio/off,
-/turf/open/floor/plasteel/dark,
-/area/security/brig)
"amn" = (
-/obj/structure/chair/office/dark{
- dir = 4
+/obj/structure/chair/office/dark,
+/obj/structure/cable{
+ icon_state = "4-8"
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
"amo" = (
-/obj/machinery/flasher{
- id = "brigentry";
- pixel_x = 28
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 4
},
-/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)
-"amq" = (
-/obj/structure/bed,
-/obj/item/bedsheet,
-/obj/item/radio/intercom{
- desc = "Talk through this. It looks like it has been modified to not broadcast.";
- name = "Prison Intercom (General)";
- pixel_x = 25;
- pixel_y = -2;
- prison_radio = 1
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/security/brig)
"amr" = (
@@ -6086,9 +5681,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/solars/starboard/fore)
-"amx" = (
-/turf/closed/wall,
-/area/crew_quarters/abandoned_gambling_den)
"amy" = (
/obj/structure/chair/stool{
pixel_y = 8
@@ -6111,19 +5703,6 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/port/fore)
-"amB" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"amC" = (
/turf/open/floor/plating,
/area/maintenance/port/fore)
@@ -6170,29 +5749,6 @@
/obj/item/trash/plate,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"amI" = (
-/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)
-"amJ" = (
-/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)
"amK" = (
/obj/structure/sign/warning/docking,
/turf/closed/wall,
@@ -6214,18 +5770,9 @@
/turf/open/floor/plasteel,
/area/security/processing)
"amN" = (
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"amO" = (
-/obj/machinery/shower{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/dorms)
-"amP" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/closed/wall,
-/area/crew_quarters/dorms)
+/obj/machinery/suit_storage_unit/security,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
"amQ" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -6268,12 +5815,6 @@
name = "Brig Desk";
req_access_txt = "1"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
/turf/open/floor/plasteel/dark,
/area/security/brig)
"amU" = (
@@ -6299,9 +5840,6 @@
name = "Brig Desk";
req_access_txt = "1"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/turf/open/floor/plasteel/dark,
/area/security/brig)
"amW" = (
@@ -6371,21 +5909,11 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"anc" = (
-/obj/machinery/shower{
- dir = 4
- },
-/obj/item/soap,
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/dorms)
-"and" = (
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 2;
- name = "2maintenance loot spawner"
+/obj/structure/cable{
+ icon_state = "1-2"
},
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"ane" = (
@@ -6475,13 +6003,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"anq" = (
-/obj/structure/sign/poster/official/twelve_gauge,
-/turf/closed/wall/r_wall,
-/area/ai_monitored/security/armory)
-"anr" = (
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/dorms)
"ans" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -6578,28 +6099,20 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
-"anB" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/structure/sign/warning/securearea{
- pixel_y = 32
- },
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
"anC" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/security/courtroom)
"anD" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"anE" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -6645,16 +6158,6 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"anM" = (
-/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)
"anN" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -6853,9 +6356,6 @@
/obj/item/circuitboard/machine/monkey_recycler,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aop" = (
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
"aoq" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = -32
@@ -6951,6 +6451,10 @@
/area/hallway/primary/fore)
"aoz" = (
/obj/effect/turf_decal/tile/red,
+/obj/structure/sign/departments/security{
+ pixel_x = 32;
+ pixel_y = -32
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoA" = (
@@ -6960,6 +6464,9 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoB" = (
@@ -6968,11 +6475,15 @@
pixel_y = -24
},
/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoC" = (
-/obj/machinery/vending/coffee,
/obj/effect/turf_decal/tile/red,
+/obj/structure,
+/obj/item/storage/box/drinkingglasses,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoD" = (
@@ -6985,16 +6496,19 @@
pixel_y = -32
},
/obj/effect/turf_decal/tile/red,
+/obj/structure/reagent_dispensers/water_cooler,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoE" = (
-/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/red,
+/obj/structure,
+/obj/item/storage/box/cups,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoF" = (
-/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/tile/red,
+/obj/structure,
+/obj/machinery/chem_dispenser/drinks,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoG" = (
@@ -7014,9 +6528,17 @@
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
"aoI" = (
-/obj/structure/fireplace,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aoJ" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
@@ -7111,26 +6633,6 @@
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aoY" = (
-/obj/structure/sign/warning/fire{
- desc = "A sign that states the labeled room's number.";
- dir = 10;
- icon_state = "roomnum";
- name = "Room Number 6";
- pixel_y = 24
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/machinery/washing_machine{
- pixel_x = 7;
- pixel_y = 7
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"aoZ" = (
/obj/machinery/atmospherics/components/binary/valve/digital{
name = "Waste Release"
@@ -7279,23 +6781,23 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"apu" = (
-/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)
-"apv" = (
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
-"apw" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/fitness";
+ name = "Fitness Room APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"apx" = (
@@ -7355,9 +6857,9 @@
/turf/closed/wall/r_wall,
/area/maintenance/starboard/fore)
"apD" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/computer/slot_machine,
-/obj/item/coin/iron,
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/coin/silver,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"apE" = (
@@ -7373,15 +6875,6 @@
/obj/machinery/portable_atmospherics/canister/water_vapor,
/turf/open/floor/plasteel,
/area/janitor)
-"apH" = (
-/obj/machinery/door/airlock{
- desc = "A small bathroom with a sink, toilet and shower.";
- id_tag = "Bath1";
- name = "Bathroom"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
"apI" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
dir = 1
@@ -7392,12 +6885,6 @@
"apJ" = (
/turf/closed/wall,
/area/construction/mining/aux_base)
-"apK" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/space/nearstation)
"apL" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance{
@@ -7426,14 +6913,6 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"apQ" = (
-/obj/machinery/door/airlock{
- desc = "A small bathroom with a sink, toilet and shower.";
- id_tag = "Bath2";
- name = "Bathroom"
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
"apR" = (
/obj/item/paper/fluff/jobs/security/beepsky_mom,
/turf/open/floor/plating,
@@ -7444,18 +6923,6 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
-"apT" = (
-/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)
"apU" = (
/turf/open/floor/plating,
/area/security/vacantoffice/b)
@@ -7471,22 +6938,12 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
-"apX" = (
-/obj/structure/bed,
-/obj/item/bedsheet/random,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
+"apY" = (
+/obj/machinery/light/small{
+ dir = 1
},
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
-"apY" = (
-/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)
"apZ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
@@ -7494,9 +6951,13 @@
/turf/open/floor/wood,
/area/lawoffice)
"aqa" = (
-/obj/machinery/recharge_station,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/obj/structure/closet/secure_closet/personal{
+ desc = "Swipe your ID on this locker to claim it. You can drag it around and use it as your own personal storage area. Very useful.";
+ name = "Personal ID-Locked Locker";
+ pixel_y = 10
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aqb" = (
/obj/structure/rack,
/obj/item/storage/briefcase,
@@ -7590,22 +7051,26 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"aql" = (
-/obj/structure/mirror{
- pixel_y = 32
- },
-/obj/structure/sink{
- dir = 1;
- pixel_y = 25
- },
-/obj/machinery/light/small{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/dorms)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aqm" = (
-/obj/structure/chair/sofa/right,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aqn" = (
/obj/structure/bed,
/obj/machinery/airalarm{
@@ -7625,25 +7090,13 @@
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"aqo" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/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
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/power/apc{
- areastring = "/area/crew_quarters/fitness";
- name = "Fitness Room APC";
- pixel_y = -24
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"aqp" = (
/obj/structure/rack,
/obj/item/clothing/suit/fire/firefighter,
@@ -7667,37 +7120,15 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
-"aqr" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"aqs" = (
-/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)
-"aqt" = (
/obj/machinery/door/airlock{
- desc = "A small bathroom with a sink, toilet and shower.";
- id_tag = "Bath3";
- name = "Bathroom"
+ id_tag = "Room Two";
+ name = "Room Seven - Luxury Suite"
},
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"aqu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -7749,48 +7180,6 @@
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aqB" = (
-/obj/structure/table/glass,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/pen,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"aqC" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/structure/chair/comfy/brown{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
-"aqD" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/structure/table/wood,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
-"aqE" = (
-/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)
-"aqF" = (
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
"aqG" = (
/obj/docking_port/stationary/random{
dir = 4;
@@ -7799,28 +7188,6 @@
},
/turf/open/space,
/area/space/nearstation)
-"aqH" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
-"aqI" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"aqJ" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/machinery/door/airlock/external{
@@ -7846,12 +7213,6 @@
/obj/machinery/meter,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aqN" = (
-/obj/structure/toilet{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/dorms)
"aqO" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance{
@@ -7904,14 +7265,6 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
-"aqU" = (
-/obj/structure/closet/secure_closet/personal{
- desc = "Swipe your ID on this locker to claim it. You can drag it around and use it as your own personal storage area. Very useful.";
- name = "Personal ID-Locked Locker";
- pixel_y = 10
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
"aqV" = (
/obj/structure/table/wood,
/obj/item/paper_bin{
@@ -7980,13 +7333,6 @@
"arf" = (
/turf/closed/wall,
/area/crew_quarters/dorms)
-"arg" = (
-/obj/machinery/hydroponics/constructable,
-/obj/machinery/light{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"arh" = (
/obj/machinery/door/airlock/maintenance{
name = "Dormitories Maintenance";
@@ -7996,49 +7342,31 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"ari" = (
-/obj/machinery/light/small{
- dir = 1
+/obj/machinery/airalarm{
+ pixel_y = 23
},
-/turf/open/floor/carpet,
+/obj/structure/table/wood,
+/turf/open/floor/wood,
/area/crew_quarters/dorms)
"arj" = (
-/obj/machinery/door/airlock{
- id_tag = "Room Two";
- name = "Room Seven - Luxury Suite"
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/dorms)
-"ark" = (
-/obj/structure/bed,
-/obj/item/bedsheet/random,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"arl" = (
-/obj/structure/sign/poster/official/ion_rifle,
-/turf/closed/wall/r_wall,
-/area/ai_monitored/security/armory)
-"arm" = (
-/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,
+/turf/closed/wall,
/area/crew_quarters/fitness)
-"arn" = (
-/obj/structure/cable{
- icon_state = "4-8"
+"ark" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"arm" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
},
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"aro" = (
/turf/open/floor/engine{
name = "Holodeck Projector Floor"
@@ -8061,31 +7389,26 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"arr" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/door/airlock/maintenance{
- name = "Dormitories Maintenance";
- req_access_txt = "12"
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
},
/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
-"ars" = (
-/obj/item/flashlight/lamp/green{
- pixel_x = -3;
- pixel_y = 22
- },
-/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/wood,
-/area/crew_quarters/dorms)
+/area/maintenance/starboard/fore)
"art" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
+/obj/machinery/light/small{
+ dir = 1
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/camera{
+ c_tag = "Fore Starboard Solar Access"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"aru" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
@@ -8109,12 +7432,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"ary" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
"arz" = (
/obj/item/coin/gold,
/obj/item/coin/iron,
@@ -8129,20 +7446,6 @@
"arB" = (
/turf/closed/wall/r_wall,
/area/hallway/secondary/entry)
-"arC" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"arD" = (
-/obj/item/radio/intercom{
- dir = 4;
- name = "Station Intercom (General)";
- pixel_x = 27
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
"arE" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/turf_decal/tile/yellow{
@@ -8230,27 +7533,15 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"arO" = (
-/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)
+/obj/item/clothing/gloves/color/rainbow,
+/obj/item/clothing/head/soft/rainbow,
+/obj/item/clothing/shoes/sneakers/rainbow,
+/obj/item/clothing/under/color/rainbow,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
"arP" = (
/turf/closed/wall,
/area/maintenance/fore)
-"arQ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"arR" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/structure/table/wood,
@@ -8322,20 +7613,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
-"asb" = (
-/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)
"asc" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -8375,11 +7652,29 @@
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"asg" = (
-/obj/structure/chair{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 4;
+ icon_state = "roomnum";
+ name = "Room Number 3";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"ash" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -8412,9 +7707,14 @@
/turf/open/floor/plating,
/area/security/vacantoffice/b)
"ask" = (
-/obj/machinery/light/small{
- dir = 4;
- light_color = "#d8b1b1"
+/obj/item/flashlight/lamp/green{
+ pixel_x = -3;
+ pixel_y = 22
+ },
+/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/wood,
/area/crew_quarters/dorms)
@@ -8426,15 +7726,12 @@
/turf/open/floor/plating,
/area/security/vacantoffice/b)
"asm" = (
-/obj/structure/closet/secure_closet/bar{
- req_access_txt = "25"
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/chair/comfy/brown{
+ dir = 4
},
-/obj/item/clothing/under/waiter,
-/obj/item/clothing/under/waiter,
-/obj/item/clothing/under/waiter,
-/obj/item/gun/ballistic/revolver/doublebarrel,
/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"asn" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plating,
@@ -8450,66 +7747,18 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
-"asp" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/vending/wardrobe/bar_wardrobe,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"asq" = (
-/obj/machinery/light,
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -24
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"asr" = (
-/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)
-"ass" = (
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/obj/machinery/door/airlock/external{
- name = "External Access";
- req_access_txt = "13"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"ast" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/structure/chair/sofa/left,
+/obj/structure/bed,
+/obj/item/bedsheet/random,
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"asu" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Dorm5";
- name = "Cabin Bolt Control";
- normaldoorcontrol = 1;
- pixel_y = -25;
- specialfunctions = 4
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/effect/spawner/lootdrop/bedsheet,
/turf/open/floor/wood,
/area/crew_quarters/dorms)
-"asv" = (
-/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)
"asw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -8543,10 +7792,6 @@
"asC" = (
/turf/open/floor/plasteel/airless,
/area/space/nearstation)
-"asD" = (
-/obj/machinery/light,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"asE" = (
/turf/closed/wall,
/area/hallway/secondary/entry)
@@ -8554,13 +7799,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/construction/mining/aux_base)
-"asG" = (
-/obj/machinery/camera{
- c_tag = "Bar South";
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"asH" = (
/obj/structure/closet/toolcloset,
/obj/effect/turf_decal/tile/yellow{
@@ -8604,31 +7842,13 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"asL" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plating,
-/area/space/nearstation)
-"asM" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"asN" = (
-/obj/machinery/light/small{
- dir = 1
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
},
-/obj/machinery/camera{
- c_tag = "Fore Starboard Solar Access"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"asO" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
@@ -8662,59 +7882,24 @@
},
/turf/open/floor/plasteel,
/area/security/vacantoffice/b)
-"asV" = (
-/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)
"asW" = (
-/obj/structure/table/wood,
-/obj/item/storage/box/evidence,
-/obj/item/hand_labeler{
- pixel_x = 5
+/obj/machinery/light/small{
+ dir = 8
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/item/taperecorder,
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
-"asX" = (
-/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
- },
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"asY" = (
-/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/plating,
-/area/crew_quarters/fitness)
"asZ" = (
-/obj/structure/chair/sofa/left,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/item/clothing/suit/straight_jacket,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"ata" = (
@@ -8754,14 +7939,11 @@
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"atf" = (
-/obj/machinery/camera{
- c_tag = "Bar Storage"
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
},
-/obj/structure/sink/kitchen{
- pixel_y = 28
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"atg" = (
/obj/machinery/door/airlock{
id_tag = "Dorm4";
@@ -8801,17 +7983,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"atk" = (
-/obj/machinery/light/small,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"atl" = (
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -23
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
"atm" = (
/turf/open/floor/wood,
/area/crew_quarters/dorms)
@@ -8856,13 +8027,7 @@
/turf/open/floor/plating,
/area/security/vacantoffice/b)
"att" = (
-/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
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"atu" = (
@@ -8906,19 +8071,6 @@
icon_state = "panelscorched"
},
/area/maintenance/starboard/fore)
-"atz" = (
-/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)
"atA" = (
/obj/structure/table,
/obj/item/paicard,
@@ -9016,20 +8168,6 @@
},
/turf/closed/wall,
/area/maintenance/port/fore)
-"atQ" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/obj/structure/closet/wardrobe/white,
-/obj/item/clothing/under/waiter,
-/obj/item/clothing/under/waiter,
-/obj/item/clothing/under/waiter,
-/obj/structure/sign/poster/contraband/lizard{
- pixel_x = -32
- },
-/obj/item/clothing/suit/straight_jacket,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"atR" = (
/obj/effect/landmark/carpspawn,
/obj/structure/lattice,
@@ -9038,16 +8176,6 @@
"atS" = (
/turf/closed/wall,
/area/space/nearstation)
-"atT" = (
-/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)
"atU" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -9056,49 +8184,34 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"atV" = (
-/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)
"atW" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"atX" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/space/nearstation)
"atY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/security/vacantoffice/b)
"atZ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
dir = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"aua" = (
-/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)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/skirt/purple,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"aub" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/yellow,
@@ -9118,12 +8231,6 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
-"aud" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"aue" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
@@ -9226,60 +8333,35 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/fore)
-"aup" = (
-/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)
"auq" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
/area/security/vacantoffice/b)
"aur" = (
-/obj/structure/table/wood/fancy/black,
-/obj/machinery/light/small,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/button/door{
+ id = "Room One";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
-"aus" = (
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral{
+"aut" = (
+/obj/structure/chair/comfy/black{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aut" = (
-/obj/machinery/door/airlock{
- id_tag = "Room One";
- name = "Room Six - Luxury Suite"
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/dorms)
-"auu" = (
-/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,
+/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"auv" = (
-/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
+/obj/structure/chair/comfy/black{
+ dir = 8
},
-/turf/open/floor/wood,
+/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"auw" = (
/obj/structure/bed,
@@ -9300,79 +8382,40 @@
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"aux" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/obj/machinery/meter,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"auy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"auz" = (
-/obj/machinery/light/small,
-/obj/machinery/atmospherics/components/unary/tank/air{
+/obj/machinery/camera{
+ c_tag = "Holodeck"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
},
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"auA" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/sign/warning/fire{
- desc = "A sign that states the labeled room's number.";
- dir = 4;
- icon_state = "roomnum";
- name = "Room Number 3";
- pixel_x = -30;
- pixel_y = -7
- },
-/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"auB" = (
-/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)
-"auC" = (
+"auB" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/red{
dir = 1
},
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"auD" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
@@ -9434,21 +8477,6 @@
},
/turf/open/floor/plasteel,
/area/maintenance/department/electrical)
-"auN" = (
-/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
- },
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"auO" = (
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
@@ -9460,43 +8488,38 @@
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
"auR" = (
-/turf/closed/wall,
-/area/crew_quarters/fitness)
-"auS" = (
-/obj/machinery/camera{
- c_tag = "Holodeck"
- },
-/obj/machinery/airalarm{
- pixel_y = 24
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+/obj/machinery/light{
dir = 8
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 1;
+ icon_state = "roomnum";
+ name = "Room Number 2";
+ pixel_x = -30;
+ pixel_y = -7
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"auT" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"auU" = (
-/obj/machinery/atmospherics/components/binary/valve,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"auV" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/maintenance/port/fore)
-"auW" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"auX" = (
/obj/structure/mirror{
icon_state = "mirror_broke";
@@ -9563,8 +8586,12 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"avg" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/turf/open/floor/plasteel,
+/obj/machinery/door/airlock{
+ id_tag = "Dorm5";
+ name = "Room Four"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/dorms)
"avh" = (
/obj/structure/cable{
@@ -9614,19 +8641,13 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
-"avl" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"avm" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"avn" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
+/obj/machinery/door/airlock{
+ id_tag = "Dorm6";
+ name = "Room Five"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/dorms)
"avo" = (
/obj/structure/sign/warning/electricshock,
@@ -9671,64 +8692,75 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"avt" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"avu" = (
-/obj/structure/chair/sofa/left{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"avv" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/meter,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"avw" = (
-/obj/machinery/button/door{
- id = "Room One";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = -25;
- specialfunctions = 4
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"avx" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"avy" = (
-/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)
-"avz" = (
-/obj/machinery/computer/holodeck{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"avA" = (
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/obj/structure/chair/sofa/right{
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avv" = (
+/obj/machinery/camera{
+ c_tag = "Dorms West"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
},
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
+"avw" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Dormitories Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"avy" = (
+/obj/machinery/door/airlock{
+ id_tag = "Room One";
+ name = "Room Six - Luxury Suite"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"avz" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avA" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"avB" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -9737,20 +8769,17 @@
/turf/open/floor/plating,
/area/ai_monitored/security/armory)
"avC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
+/obj/structure/chair{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"avD" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/computer/holodeck{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"avE" = (
/obj/machinery/door/poddoor/preopen{
id = "maint3"
@@ -9861,17 +8890,22 @@
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
"avR" = (
-/obj/structure/table/wood/poker,
-/obj/item/clothing/mask/cigarette/cigar{
- pixel_x = 3;
- pixel_y = 3
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 8;
+ icon_state = "roomnum";
+ name = "Room Number 4";
+ pixel_y = 24
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4;
- pixel_y = 5
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"avS" = (
/obj/item/wrench,
/turf/open/floor/plating,
@@ -10084,65 +9118,54 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"awo" = (
-/obj/structure/chair/comfy/black{
- dir = 4
- },
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = -29
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"awp" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
+/obj/machinery/door/airlock{
+ id_tag = "Dorm3";
+ name = "Room Two"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"awp" = (
+/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
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"awq" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"awr" = (
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aws" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/public/glass{
- name = "Holodeck Door"
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
-"awt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/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
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"awu" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/closet/wardrobe/mixed,
-/obj/item/clothing/under/kilt,
-/obj/item/clothing/under/kilt,
-/obj/item/clothing/under/skirt/purple,
-/obj/item/clothing/head/beret,
-/obj/item/clothing/head/beret,
-/obj/item/clothing/head/beret,
+"awr" = (
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"awv" = (
+/area/crew_quarters/dorms)
+"awt" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/structure/sign/warning/fire{
desc = "A sign that states the labeled room's number.";
- dir = 8;
+ dir = 6;
icon_state = "roomnum";
- name = "Room Number 4";
+ name = "Room Number 5";
pixel_y = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -10153,8 +9176,33 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
+"awu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/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" = (
@@ -10167,62 +9215,101 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awy" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"awz" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/public/glass{
- name = "Holodeck Door"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
dir = 5
},
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
-"awA" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm5";
- name = "Room Four"
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awA" = (
+/obj/machinery/holopad,
+/obj/machinery/camera{
+ c_tag = "Dorms Central"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"awB" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet{
+ name = "Holodeck Outfits"
+ },
+/obj/item/clothing/under/trek/Q,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/under/gladiator,
+/obj/item/clothing/under/gladiator,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"awC" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/structure/table,
+/obj/item/paper/fluff/holodeck/disclaimer,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"awD" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awE" = (
-/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)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"awF" = (
/obj/structure/closet/crate,
/obj/effect/spawner/lootdrop/maintenance{
@@ -10267,30 +9354,23 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awL" = (
-/obj/structure/table,
-/obj/item/instrument/guitar{
- pixel_x = -7
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 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,
+/obj/item/pen,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awM" = (
-/obj/machinery/button/door{
- id = "maintdiy";
- name = "Shutters Control Button";
- pixel_x = -6;
- pixel_y = 24
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/area/maintenance/starboard/fore)
"awN" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -10386,14 +9466,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/hallway/secondary/entry)
-"awX" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm6";
- name = "Room Five"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/dorms)
"awY" = (
/obj/machinery/light{
dir = 1
@@ -10457,15 +9529,6 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
-"axd" = (
-/obj/structure/closet,
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 4;
- name = "4maintenance loot spawner"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"axe" = (
/obj/machinery/sleeper{
dir = 4
@@ -10553,6 +9616,9 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plating,
/area/maintenance/fore)
"axr" = (
@@ -10565,6 +9631,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plating,
/area/maintenance/fore)
"axs" = (
@@ -10574,6 +9643,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plating,
/area/maintenance/fore)
"axt" = (
@@ -10667,11 +9739,15 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"axC" = (
-/obj/effect/turf_decal/tile/red{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/structure/sign/poster/official/enlist{
- pixel_y = 32
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_x = -32
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
@@ -10682,16 +9758,15 @@
/turf/closed/wall,
/area/maintenance/fore/secondary)
"axE" = (
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 8;
- name = "8maintenance loot spawner"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
},
-/obj/item/radio/intercom{
- pixel_y = 25
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/do_not_question{
+ pixel_x = 32
},
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"axF" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
@@ -10729,12 +9804,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
-"axJ" = (
-/obj/structure/piano{
- icon_state = "piano"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"axK" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -10742,189 +9811,63 @@
/turf/closed/wall,
/area/maintenance/port/fore)
"axL" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/closet/wardrobe/grey,
-/obj/item/clothing/under/assistantformal,
-/obj/item/clothing/under/assistantformal,
-/obj/machinery/camera{
- c_tag = "Dorms East - Holodeck";
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"axM" = (
-/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)
"axN" = (
-/obj/structure/chair/comfy/black{
- dir = 8
- },
-/turf/open/floor/carpet,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"axO" = (
-/obj/machinery/light/small,
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/dorms)
-"axP" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/structure/table/wood,
-/obj/item/paicard,
-/obj/item/clothing/mask/balaclava{
- pixel_x = -8;
- pixel_y = 8
- },
-/obj/item/toy/cards/deck{
- pixel_x = 2
- },
-/obj/item/storage/crayons,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"axQ" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/obj/structure/sign/warning/fire{
- desc = "A sign that states the labeled room's number.";
- dir = 1;
- icon_state = "roomnum";
- name = "Room Number 2";
- pixel_x = -30;
- pixel_y = -7
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"axR" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"axS" = (
-/obj/item/flashlight/lamp/green{
- pixel_x = -3;
- pixel_y = 22
- },
-/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/plating,
-/area/maintenance/port)
-"axT" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm3";
- name = "Room Two"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/dorms)
-"axU" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/obj/structure/sign/warning/fire{
- desc = "A sign that states the labeled room's number.";
- dir = 6;
- icon_state = "roomnum";
- name = "Room Number 5";
- pixel_y = 24
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"axV" = (
-/obj/structure/chair/comfy/brown{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"axW" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
+/obj/structure/chair/comfy/black,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"axX" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
},
-/obj/machinery/light/small,
-/turf/open/floor/carpet,
+/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"axY" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
-/obj/structure/closet/toolcloset,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"axZ" = (
-/obj/machinery/light/small{
- dir = 1;
- light_color = "#ffc1c1"
- },
-/obj/machinery/airalarm{
- pixel_y = 24
+"aya" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"aya" = (
-/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)
"ayb" = (
-/obj/structure/chair{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
@@ -11098,23 +10041,9 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/fore)
-"ayB" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/maintenance/fore)
"ayC" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/turf/closed/wall,
/area/maintenance/fore)
"ayD" = (
/obj/structure/cable{
@@ -11174,6 +10103,12 @@
/turf/closed/wall/r_wall,
/area/ai_monitored/storage/eva)
"ayM" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayN" = (
/obj/structure/rack,
/obj/machinery/light{
dir = 1
@@ -11186,12 +10121,6 @@
/obj/item/clothing/glasses/welding,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/storage/eva)
-"ayN" = (
-/obj/machinery/firealarm{
- pixel_y = 24
- },
-/turf/open/floor/plasteel,
-/area/ai_monitored/storage/eva)
"ayO" = (
/obj/structure/table,
/obj/item/storage/toolbox/electrical{
@@ -11290,45 +10219,36 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"ayY" = (
-/obj/structure/sign/poster/official/cohiba_robusto_ad,
-/turf/closed/wall,
-/area/lawoffice)
-"ayZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/obj/structure/sign/poster/contraband/pwr_game{
+/obj/structure/sign/poster/official/obey{
pixel_x = -32
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
+"ayZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/obey{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"aza" = (
-/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)
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"azb" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
+/obj/structure/table/wood/poker,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"azc" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
@@ -11341,23 +10261,20 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"azd" = (
-/obj/machinery/vr_sleeper{
- dir = 8
- },
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel/white/side{
- dir = 8
- },
-/area/crew_quarters/fitness)
"aze" = (
-/obj/machinery/vr_sleeper{
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azf" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"azg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/red{
@@ -11366,44 +10283,12 @@
/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)
-"azf" = (
-/obj/structure/grille/broken,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/window{
- dir = 4
- },
-/obj/structure/window,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/maintenance/starboard/fore)
-"azg" = (
-/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)
"azh" = (
-/obj/machinery/door/airlock{
- name = "Instrument Storage"
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/fore)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"azi" = (
/obj/machinery/door/airlock/maintenance{
name = "Garden Maintenance";
@@ -11412,83 +10297,26 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"azj" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/closet{
- name = "Holodeck Outfits"
- },
-/obj/item/clothing/under/trek/Q,
-/obj/item/clothing/under/trek/command/next,
-/obj/item/clothing/under/trek/command/next,
-/obj/item/clothing/under/trek/command/next,
-/obj/item/clothing/under/trek/engsec/next,
-/obj/item/clothing/under/trek/engsec/next,
-/obj/item/clothing/under/trek/engsec/next,
-/obj/item/clothing/under/trek/engsec/next,
-/obj/item/clothing/under/trek/medsci/next,
-/obj/item/clothing/under/trek/medsci/next,
-/obj/item/clothing/under/trek/medsci/next,
-/obj/item/clothing/under/mw2_russian_para,
-/obj/item/clothing/under/mw2_russian_para,
-/obj/item/clothing/under/gladiator,
-/obj/item/clothing/under/gladiator,
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = -24
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"azk" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/machinery/light/small{
- dir = 4;
- light_color = "#d8b1b1"
- },
+/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"azl" = (
-/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)
-"azm" = (
-/obj/machinery/shower{
- dir = 4
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"azn" = (
-/turf/open/floor/plasteel/dark,
/area/crew_quarters/dorms)
"azo" = (
-/obj/machinery/shower{
- dir = 8;
- pixel_y = -4
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"azp" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "holoprivacy";
- name = "Holodeck Shutters"
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"azq" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -11606,15 +10434,15 @@
/turf/closed/wall,
/area/maintenance/port/fore)
"azH" = (
-/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/space,
-/area/space/nearstation)
+/turf/closed/wall,
+/area/crew_quarters/theatre)
"azI" = (
-/obj/structure/lattice,
+/obj/structure/table/wood,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/space,
-/area/space/nearstation)
+/obj/item/instrument/eguitar,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
"azJ" = (
/obj/machinery/gateway{
dir = 9
@@ -11690,27 +10518,6 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
-"azP" = (
-/obj/structure/table/wood,
-/obj/machinery/requests_console{
- department = "Theatre";
- name = "theatre RC";
- pixel_x = -32
- },
-/obj/item/reagent_containers/food/snacks/baguette,
-/obj/item/toy/dummy,
-/obj/item/lipstick/random{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/lipstick/random{
- pixel_x = -2;
- pixel_y = -2
- },
-/turf/open/floor/plasteel/white/side{
- dir = 4
- },
-/area/crew_quarters/theatre)
"azQ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -11749,9 +10556,11 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"azT" = (
-/obj/effect/landmark/event_spawn,
-/turf/closed/wall,
-/area/crew_quarters/fitness)
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"azU" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -11764,39 +10573,15 @@
},
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
-"azV" = (
-/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)
"azW" = (
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"azX" = (
-/obj/machinery/vr_sleeper{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
},
-/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)
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"azY" = (
/obj/structure/table,
/obj/item/radio/off,
@@ -11816,27 +10601,22 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aAb" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/door/airlock{
+ id_tag = "Dorm2";
+ name = "Room One"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"aAc" = (
/obj/effect/spawner/structure/window,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aAd" = (
-/obj/machinery/camera{
- c_tag = "Dorms West"
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"aAe" = (
@@ -11846,45 +10626,15 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aAf" = (
-/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)
-"aAg" = (
-/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)
"aAh" = (
/turf/closed/wall,
/area/crew_quarters/toilet)
"aAi" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "12"
+/obj/structure/chair/comfy/brown{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/crew_quarters/fitness)
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aAj" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -11900,87 +10650,56 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aAk" = (
-/obj/structure/closet/athletic_mixed,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"aAl" = (
-/obj/structure/closet/boxinggloves,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"aAm" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/public/glass{
- name = "Holodeck Door"
+/obj/structure/disposalpipe/segment{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
-"aAn" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAl" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"aAo" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/dorms)
"aAp" = (
-/obj/structure/closet{
- name = "Suit Closet"
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
},
-/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)
-"aAq" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/area/crew_quarters/dorms)
"aAr" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"aAs" = (
-/obj/machinery/light/small{
- dir = 4;
- light_color = "#d8b1b1"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"aAt" = (
-/obj/machinery/door/poddoor/preopen{
- id = "maint2"
+/obj/structure/closet,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aAu" = (
-/obj/structure/cable{
- icon_state = "4-8"
+"aAs" = (
+/obj/structure/piano{
+ icon_state = "piano"
},
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAt" = (
/obj/machinery/door/poddoor/preopen{
id = "maint2"
},
@@ -12124,16 +10843,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aAM" = (
-/obj/structure/mirror{
- pixel_y = 32
- },
-/obj/structure/sink{
- dir = 1;
- pixel_y = 25
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
"aAN" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -12209,11 +10918,20 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aAX" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/light{
+ dir = 8
+ },
+/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/fitness)
+/area/crew_quarters/dorms)
"aAY" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -12221,11 +10939,27 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aAZ" = (
-/obj/structure/urinal{
- pixel_y = 32
+/obj/structure/table/wood,
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
},
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aBa" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/nuke_storage)
@@ -12428,41 +11162,46 @@
/turf/open/floor/plasteel,
/area/hydroponics/garden)
"aBx" = (
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
"aBy" = (
-/obj/machinery/camera{
- c_tag = "Library North"
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath3";
+ name = "Bathroom"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/chair/sofa/right,
-/obj/machinery/light{
- dir = 1;
- light_color = "#c1caff"
- },
-/turf/open/floor/wood,
-/area/library)
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aBz" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/landmark/start/assistant,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/shower{
dir = 4
},
-/obj/structure/chair/sofa/left,
-/turf/open/floor/wood,
-/area/library)
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
"aBA" = (
-/obj/structure/chair/comfy/brown{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/wood,
-/area/library)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/table/wood,
+/obj/item/paicard,
+/obj/item/clothing/mask/balaclava{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/toy/cards/deck{
+ pixel_x = 2
+ },
+/obj/item/storage/crayons,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aBB" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
@@ -12478,12 +11217,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aBD" = (
-/obj/structure/chair/comfy/brown{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/library)
"aBE" = (
/obj/item/clothing/under/rank/mailman,
/obj/item/clothing/head/mailman,
@@ -12532,13 +11265,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aBM" = (
-/obj/structure/sign/poster/official/nanomichi_ad{
- pixel_y = 32
- },
-/obj/machinery/vending/snack/random,
-/turf/open/floor/plasteel/dark,
-/area/hallway/primary/central)
"aBN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
@@ -12571,13 +11297,6 @@
"aBR" = (
/turf/closed/wall/r_wall,
/area/storage/primary)
-"aBS" = (
-/obj/machinery/light_switch{
- pixel_y = 28
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/circuit,
-/area/ai_monitored/nuke_storage)
"aBT" = (
/obj/machinery/computer/bank_machine,
/obj/effect/turf_decal/bot_white,
@@ -12594,27 +11313,20 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/nuke_storage)
"aBU" = (
-/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,
-/turf/open/floor/circuit,
-/area/ai_monitored/nuke_storage)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
"aBV" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/machinery/light{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
-/turf/open/floor/circuit,
-/area/ai_monitored/nuke_storage)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
"aBW" = (
/obj/structure/filingcabinet,
/obj/item/folder/documents,
@@ -12719,27 +11431,9 @@
/turf/open/floor/carpet,
/area/crew_quarters/cryopod)
"aCe" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/structure/sign/poster/official/do_not_question{
- pixel_x = 32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
-"aCf" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/structure/sign/poster/official/obey{
- pixel_x = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/toilet)
"aCg" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -12747,14 +11441,11 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aCh" = (
-/obj/machinery/shower{
- dir = 8;
- pixel_y = -4
+/obj/machinery/vending/autodrobe,
+/turf/open/floor/plasteel/white/side{
+ dir = 4
},
-/obj/effect/landmark/xeno_spawn,
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/area/crew_quarters/theatre)
"aCi" = (
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
@@ -12780,51 +11471,17 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aCm" = (
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/obj/machinery/camera{
- c_tag = "Theatre Stage"
- },
-/obj/structure/chair/comfy/brown{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aCn" = (
-/obj/structure/table/wood/fancy,
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -3;
- pixel_y = 20
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
},
-/obj/item/reagent_containers/food/condiment/peppermill{
- dir = 1;
- pixel_x = 3;
- pixel_y = 20
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aCo" = (
-/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)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"aCp" = (
/obj/machinery/camera{
c_tag = "Arrivals North";
@@ -12838,12 +11495,6 @@
},
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
-"aCq" = (
-/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)
"aCr" = (
/turf/closed/wall,
/area/crew_quarters/theatre)
@@ -12867,24 +11518,25 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aCu" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "holoprivacy";
- name = "Holodeck Shutters"
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness)
"aCv" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
+/obj/machinery/vr_sleeper{
+ dir = 8
},
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "holoprivacy";
- name = "Holodeck Shutters"
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 8
},
-/turf/open/floor/plating,
/area/crew_quarters/fitness)
"aCw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -12897,23 +11549,17 @@
},
/turf/open/floor/plating,
/area/crew_quarters/fitness)
-"aCx" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aCy" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
},
-/obj/machinery/firealarm{
- pixel_y = 24
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
"aCz" = (
/obj/structure/window/reinforced{
dir = 8
@@ -12924,11 +11570,19 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aCA" = (
-/obj/structure/chair/comfy/brown{
- dir = 1
+/obj/structure/grille/broken,
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/turf/open/floor/wood,
-/area/library)
+/obj/structure/window{
+ dir = 4
+ },
+/obj/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
"aCB" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -13058,13 +11712,6 @@
"aCR" = (
/turf/closed/wall,
/area/chapel/main)
-"aCS" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/chair/comfy/brown{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/library)
"aCT" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -13076,23 +11723,6 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
-"aCU" = (
-/obj/machinery/photocopier{
- pixel_x = -5;
- pixel_y = -5
- },
-/turf/open/floor/wood,
-/area/library)
-"aCV" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/structure/sign/poster/official/obey{
- pixel_x = 32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
"aCW" = (
/obj/structure/reagent_dispensers/watertank,
/obj/effect/spawner/lootdrop/maintenance,
@@ -13191,14 +11821,14 @@
/turf/open/floor/plasteel,
/area/hydroponics/garden)
"aDh" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/structure/sign/poster/official/space_cops{
- pixel_x = -32
+/obj/machinery/vending/assist,
+/obj/structure/sign/poster/contraband/grey_tide{
+ desc = "A poster promoting a regression to ape-like intelligence for Assistants, suggesting they break, loot and murder enough to make even a caveman blush.";
+ pixel_x = -32;
+ poster_item_desc = "Nanotrasen does not condone such messages. Please don't regress to ape-level intelligence as this poster suggests."
},
/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
+/area/storage/primary)
"aDi" = (
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/dark,
@@ -13305,27 +11935,11 @@
},
/turf/open/floor/circuit,
/area/ai_monitored/nuke_storage)
-"aDu" = (
-/obj/structure/chair/comfy/brown,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aDv" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
- },
-/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
- },
-/turf/open/floor/plasteel/dark,
-/area/ai_monitored/nuke_storage)
+/obj/structure/window/reinforced,
+/obj/structure/chair/stool,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
"aDw" = (
/obj/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -13406,33 +12020,44 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aDG" = (
-/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/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/obj/effect/spawner/structure/window,
-/turf/open/floor/wood,
-/area/library)
+/obj/machinery/camera{
+ c_tag = "Dorms South";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aDH" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green,
-/obj/item/pen/fountain/captain,
-/turf/open/floor/carpet,
-/area/crew_quarters/heads/captain)
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/folder/white,
+/obj/item/pen/fountain,
+/obj/item/stamp/rd{
+ pixel_x = 3;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
"aDI" = (
/obj/structure/sign/warning/electricshock,
/turf/closed/wall/r_wall,
/area/ai_monitored/storage/eva)
-"aDJ" = (
-/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)
"aDK" = (
/obj/machinery/door/airlock/public/glass{
name = "Cryogenics "
@@ -13445,140 +12070,90 @@
/turf/open/floor/plasteel,
/area/crew_quarters/cryopod)
"aDL" = (
-/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)
-"aDM" = (
-/obj/structure/chair/sofa/right,
-/obj/structure/window{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aDN" = (
-/obj/structure/chair/sofa,
-/obj/structure/window{
- dir = 1
- },
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aDO" = (
-/obj/structure/chair/sofa/left,
-/obj/structure/window{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aDP" = (
-/obj/structure/chair/comfy/brown{
+/obj/structure/toilet{
dir = 4
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aDR" = (
-/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)
-"aDS" = (
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
/obj/machinery/light/small{
- dir = 4;
- light_color = "#d8b1b1"
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDM" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDN" = (
+/obj/machinery/camera{
+ c_tag = "Bathrooms";
+ dir = 1
+ },
+/obj/structure/urinal{
+ pixel_y = 32
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDP" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/obj/effect/landmark/xeno_spawn,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aDQ" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath1";
+ name = "Bathroom"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDR" = (
+/obj/machinery/light/small{
+ dir = 1
},
/turf/open/floor/wood,
/area/crew_quarters/bar)
"aDT" = (
-/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)
-"aDU" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -3;
- pixel_y = 9
- },
-/obj/item/reagent_containers/food/condiment/peppermill{
+/obj/item/soap,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light/small{
dir = 1;
- pixel_x = 3;
- pixel_y = 9
+ light_color = "#ffc1c1"
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aDV" = (
-/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)
-"aDW" = (
-/obj/machinery/holopad,
-/obj/machinery/camera{
- c_tag = "Dorms Central"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = -5;
- pixel_y = 30
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aDX" = (
-/obj/structure/chair/sofa{
- dir = 1
- },
-/obj/structure/window,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aDY" = (
-/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,
+/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet)
+"aDU" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aDY" = (
+/obj/structure/window{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aDZ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -13606,18 +12181,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aEb" = (
-/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/plating,
-/area/maintenance/port)
"aEc" = (
-/obj/structure/chair/wood/wings,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aEd" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -13714,116 +12283,6 @@
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/chapel/main)
-"aEo" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aEp" = (
-/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)
-"aEq" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aEr" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
- },
-/obj/machinery/light{
- dir = 1;
- light_color = "#cee5d2"
- },
-/obj/structure/table,
-/obj/structure/bedsheetbin/color,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aEs" = (
-/obj/machinery/vending/cola/red,
-/turf/open/floor/plasteel/dark,
-/area/hallway/primary/central)
-"aEt" = (
-/obj/machinery/computer/arcade/minesweeper,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aEu" = (
-/obj/machinery/computer/arcade/battle,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aEv" = (
-/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)
-"aEw" = (
-/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 = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aEx" = (
-/obj/structure/table/reinforced,
-/obj/item/clothing/head/that,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aEy" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -9;
- pixel_y = 9
- },
-/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
- },
-/obj/item/reagent_containers/food/condiment/peppermill{
- pixel_x = -9
- },
-/obj/item/sharpener{
- pixel_x = 10
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/kitchen)
"aEz" = (
/obj/machinery/power/apc{
areastring = "/area/hallway/secondary/entry";
@@ -14085,79 +12544,44 @@
/turf/closed/wall/r_wall,
/area/ai_monitored/storage/eva)
"aFd" = (
-/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)
-"aFe" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm2";
- name = "Room One"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/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/dark,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"aFf" = (
-/obj/structure/piano{
- icon_state = "piano"
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aFg" = (
-/obj/structure/chair/comfy/black{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aFh" = (
-/obj/structure/chair/comfy/brown{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aFi" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aFj" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/drinks/britcup,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aFk" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+"aFe" = (
+/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aFk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
/area/crew_quarters/bar)
"aFl" = (
-/obj/machinery/light/small{
- dir = 8
+/obj/structure/festivus{
+ anchored = 1;
+ desc = "A pole for dancing.";
+ name = "pole"
},
-/obj/structure/dresser,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/theatre)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aFm" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -14179,17 +12603,10 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aFp" = (
-/obj/machinery/door/window/southright{
- name = "Bar Door";
- req_one_access_txt = "25;28"
- },
-/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)
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"aFq" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -14222,20 +12639,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aFt" = (
-/obj/structure/table/reinforced,
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_x = 32
- },
-/obj/item/book/manual/wiki/barman_recipes,
-/obj/item/reagent_containers/rag,
-/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)
"aFu" = (
/turf/closed/wall,
/area/library)
@@ -14288,36 +12691,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/chapel/main)
-"aFC" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/snacks/bluecherrycupcake{
- pixel_y = 5
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aFD" = (
-/obj/structure/chair/comfy/brown{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aFE" = (
-/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)
-"aFF" = (
-/obj/structure/chair/sofa{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aFG" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -14462,12 +12835,6 @@
},
/turf/open/floor/plasteel,
/area/storage/primary)
-"aFS" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/storage/primary)
"aFT" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -14475,8 +12842,8 @@
/turf/open/floor/plasteel,
/area/storage/primary)
"aFU" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/storage/primary)
@@ -14563,27 +12930,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/nuke_storage)
-"aGe" = (
-/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/gun/ballistic/revolver/russian,
-/obj/item/ammo_box/a357,
-/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
- },
-/turf/open/floor/plasteel/dark,
-/area/ai_monitored/nuke_storage)
"aGf" = (
/obj/machinery/firealarm{
dir = 8;
@@ -14609,48 +12955,50 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/storage/eva)
"aGk" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 9
+/obj/structure/toilet{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/space/nearstation)
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aGl" = (
-/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"
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath2";
+ name = "Bathroom"
},
-/turf/open/floor/wood,
-/area/library)
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aGm" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/hydroponics)
-"aGn" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/toilet";
+ dir = 4;
+ name = "Dormitory Bathrooms APC";
+ pixel_x = 26
},
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table/glass,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aGo" = (
/obj/structure/table,
/obj/item/stack/sheet/rglass{
@@ -14669,12 +13017,6 @@
},
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
-"aGp" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hydroponics)
"aGq" = (
/obj/item/stack/sheet/plasteel{
amount = 10
@@ -14726,13 +13068,21 @@
/turf/closed/wall,
/area/crew_quarters/theatre)
"aGw" = (
-/obj/machinery/seed_extractor,
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aGx" = (
-/obj/machinery/biogenerator,
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aGy" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -14750,9 +13100,6 @@
/obj/structure/disposalpipe/segment{
dir = 5
},
-/obj/structure/cable{
- icon_state = "2-4"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -14890,12 +13237,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aGK" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hydroponics)
"aGL" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -14936,10 +13277,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
/area/chapel/office)
-"aGP" = (
-/obj/machinery/vending/hydronutrients,
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"aGQ" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -14952,12 +13289,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aGR" = (
-/obj/machinery/vending/hydroseeds{
- slogan_delay = 700
- },
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"aGS" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -15049,33 +13380,14 @@
/area/hallway/secondary/entry)
"aHb" = (
/obj/structure/table/wood,
-/obj/item/paper_bin/bundlenatural{
- pixel_x = 6;
- pixel_y = 4
- },
/obj/item/paper_bin{
- pixel_x = -6;
- pixel_y = 4
+ pixel_x = 1;
+ pixel_y = 9
},
-/obj/item/pen/fountain,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/stack/packageWrap,
/obj/item/pen/fourcolor,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aHc" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/effect/landmark/start/botanist,
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/turf/open/floor/wood,
+/area/library)
"aHd" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
@@ -15182,34 +13494,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/chapel/main)
-"aHr" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/hydroponics)
-"aHs" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hydroponics)
-"aHt" = (
-/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
- },
-/obj/machinery/light{
- dir = 1;
- light_color = "#cee5d2"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"aHu" = (
/obj/machinery/status_display{
pixel_x = 32
@@ -15288,12 +13572,11 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/storage/eva)
"aHD" = (
-/obj/structure/chair/comfy/beige{
- dir = 8
+/obj/structure/chair/stool{
+ pixel_y = 8
},
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel/grimy,
-/area/hallway/secondary/entry)
+/turf/open/floor/plasteel,
+/area/storage/primary)
"aHE" = (
/obj/structure/table,
/obj/item/weldingtool,
@@ -15308,26 +13591,6 @@
/obj/structure/sign/warning/securearea,
/turf/closed/wall/r_wall,
/area/ai_monitored/nuke_storage)
-"aHG" = (
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/door/airlock/vault{
- req_access_txt = "53"
- },
-/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)
"aHH" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -15459,68 +13722,25 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"aHU" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = -30
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aHV" = (
-/obj/machinery/airalarm{
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1;
- pixel_y = -22
+ pixel_x = 5
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aHW" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+/obj/machinery/light/small{
dir = 4
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aHX" = (
-/obj/machinery/light{
- dir = 1
+/obj/structure/table/glass,
+/obj/item/razor{
+ pixel_x = 2;
+ pixel_y = 3
},
-/obj/structure/table/wood/fancy,
-/obj/item/reagent_containers/food/condiment/peppermill{
- pixel_x = -9
- },
-/obj/item/reagent_containers/food/condiment/peppermill{
- dir = 1;
- pixel_x = -3
- },
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -9;
- pixel_y = 9
- },
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -3;
- pixel_y = 9
- },
-/obj/item/reagent_containers/food/condiment/pack/ketchup{
- pixel_x = 5
- },
-/obj/item/reagent_containers/food/condiment/pack/ketchup{
- pixel_x = 5
- },
-/obj/item/reagent_containers/food/condiment/pack/ketchup{
- pixel_x = 5
- },
-/obj/item/reagent_containers/food/condiment/pack/hotsauce{
- pixel_x = 10
- },
-/obj/item/reagent_containers/food/condiment/pack/hotsauce{
- pixel_x = 10
- },
-/obj/item/reagent_containers/food/condiment/pack/mustard{
- pixel_x = 10
- },
-/obj/item/reagent_containers/food/condiment/pack/mustard{
- pixel_x = 10
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aHY" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -15528,12 +13748,11 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aHZ" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/structure/sign/poster/contraband/fun_police{
- pixel_x = 32
+/obj/machinery/light/small{
+ dir = 8
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aIa" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -15542,13 +13761,6 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aIb" = (
-/obj/machinery/power/apc{
- areastring = "/area/crew_quarters/theatre";
- dir = 8;
- name = "Theatre APC";
- pixel_x = -25
- },
-/obj/structure/cable,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
},
@@ -15612,12 +13824,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"aIi" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aIj" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -15696,15 +13902,37 @@
/turf/closed/wall,
/area/hydroponics)
"aIr" = (
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
-"aIs" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ desc = "Bolts the doors to the Private Study.";
+ id = "PrivateStudy";
+ name = "Private Study Lock";
+ pixel_x = -5;
+ pixel_y = 24;
+ req_access_txt = "28"
+ },
+/obj/machinery/button/door{
+ id = "PrivateStudy1";
+ name = "Privacy Shutters";
+ pixel_x = 5;
+ pixel_y = 24
},
-/obj/structure/chair/comfy/brown,
/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/area/library)
+"aIs" = (
+/obj/machinery/camera{
+ c_tag = "Library North"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/sofa/right,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/wood,
+/area/library)
"aIt" = (
/turf/open/floor/wood,
/area/library)
@@ -15724,11 +13952,16 @@
/turf/open/floor/wood,
/area/library)
"aIw" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
+/obj/structure/disposalpipe/segment{
+ dir = 6
},
+/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/sofa/left,
/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/area/library)
"aIx" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -15739,21 +13972,19 @@
/turf/open/floor/wood,
/area/library)
"aIy" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = 1;
- pixel_y = 9
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
},
-/obj/item/stack/packageWrap,
-/obj/item/pen/fourcolor,
-/turf/open/floor/wood,
-/area/library)
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"aIz" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
/turf/open/floor/plasteel/grimy,
/area/chapel/office)
-"aIA" = (
+"aIB" = (
/obj/structure/bodycontainer/crematorium{
id = "crematoriumChapel"
},
@@ -15762,14 +13993,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
-"aIB" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
"aIC" = (
/obj/effect/landmark/start/chaplain,
/obj/structure/chair,
@@ -15791,15 +14014,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/security/warden)
-"aIG" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"aIH" = (
/obj/structure/table,
/obj/item/storage/box/lights/mixed,
@@ -15974,29 +14188,6 @@
/obj/machinery/disposal/bin,
/turf/open/floor/plasteel,
/area/storage/primary)
-"aJd" = (
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/hallway/primary/port)
-"aJe" = (
-/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/hallway/primary/port)
"aJf" = (
/obj/machinery/camera{
c_tag = "EVA South";
@@ -16058,13 +14249,12 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aJk" = (
-/obj/machinery/holopad,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock{
+ name = "Bar Back Room"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/bar)
"aJl" = (
/obj/structure/tank_dispenser/oxygen,
/obj/machinery/light{
@@ -16076,11 +14266,10 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aJm" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/vending/wardrobe/bar_wardrobe,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aJn" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -16162,17 +14351,11 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aJv" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/structure/sign/poster/contraband/robust_softdrinks{
- pixel_x = -32;
+/obj/structure/sign/poster/official/nanomichi_ad{
pixel_y = 32
},
-/turf/open/floor/plasteel,
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
"aJw" = (
/turf/closed/wall,
@@ -16193,9 +14376,20 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aJz" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/dorms)
+/obj/machinery/button/door{
+ id = "Bath3";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/recharge_station,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aJA" = (
/obj/machinery/door/airlock/maintenance{
name = "Kitchen Maintenance";
@@ -16227,12 +14421,15 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aJE" = (
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
+/obj/structure/closet/secure_closet/bar{
+ req_access_txt = "25"
},
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/item/gun/ballistic/revolver/doublebarrel,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aJF" = (
/obj/machinery/newscaster{
pixel_x = 30
@@ -16269,11 +14466,12 @@
/turf/closed/wall,
/area/crew_quarters/kitchen)
"aJJ" = (
-/obj/structure/table/wood,
-/obj/item/folder/yellow,
-/obj/item/pen/blue,
-/turf/open/floor/wood,
-/area/library)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"aJK" = (
/obj/machinery/navbeacon{
codes_txt = "delivery;dir=2";
@@ -16295,28 +14493,6 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aJM" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
-"aJN" = (
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/structure/sign/departments/security{
- pixel_x = -32;
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
-"aJO" = (
-/obj/structure/table,
-/obj/machinery/reagentgrinder,
-/turf/open/floor/plasteel,
-/area/hydroponics)
-"aJP" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp{
pixel_y = 10
@@ -16328,32 +14504,30 @@
},
/turf/open/floor/plasteel/grimy,
/area/chapel/office)
-"aJQ" = (
-/obj/machinery/light{
- dir = 8
- },
-/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
- },
+"aJO" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aJR" = (
-/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{
+/area/hydroponics)
+"aJP" = (
+/obj/structure/table/wood,
+/obj/item/folder/yellow,
+/obj/item/pen/blue,
+/turf/open/floor/wood,
+/area/library)
+"aJQ" = (
+/obj/structure/chair/comfy/brown{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/library)
+"aJR" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/library)
"aJS" = (
/obj/structure/table/wood,
/obj/structure/disposalpipe/segment,
@@ -16440,8 +14614,8 @@
},
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
-/turf/open/floor/plating,
-/area/hallway/primary/port)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
"aKc" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command{
@@ -16487,30 +14661,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aKg" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aKh" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aKi" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
-/obj/structure/table,
-/obj/structure/bedsheetbin/towel,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"aKj" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/neutral,
@@ -16553,24 +14703,27 @@
/turf/open/floor/plating,
/area/storage/primary)
"aKq" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
+/obj/item/radio/intercom{
+ pixel_y = 25
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aKr" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/camera{
+ c_tag = "Theatre Stage"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/structure/chair/comfy/brown{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKr" = (
+/obj/machinery/vending/snack/orange,
+/obj/machinery/light{
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/structure/sign/poster/contraband/donut_corp{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aKs" = (
/obj/structure/disposalpipe/segment,
/obj/effect/spawner/structure/window,
@@ -16584,15 +14737,15 @@
icon_state = "0-8"
},
/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/hallway/primary/port)
+/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/plating,
-/area/hallway/primary/port)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
"aKv" = (
/obj/structure/cable,
/obj/structure/cable{
@@ -16602,8 +14755,8 @@
icon_state = "0-4"
},
/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/hallway/primary/port)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
"aKw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -16625,15 +14778,18 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
/turf/open/floor/plasteel/dark,
-/area/hallway/primary/port)
+/area/crew_quarters/theatre)
"aKx" = (
/obj/structure/cable{
icon_state = "0-8"
},
/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/hallway/primary/port)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
"aKy" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -16709,22 +14865,12 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aKJ" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = -29
+/obj/machinery/vending/cola/black,
+/obj/structure/sign/poster/contraband/sun_kist{
+ pixel_y = 32
},
-/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)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aKK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/closet/secure_closet/hydroponics,
@@ -16747,46 +14893,45 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aKM" = (
-/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{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair/comfy/brown{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aKN" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
},
-/obj/structure/chair/comfy/brown,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aKO" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
},
-/obj/structure/chair/comfy/black,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aKP" = (
-/obj/machinery/door/airlock{
- name = "Unisex Restrooms"
+/obj/structure/disposalpipe/segment{
+ dir = 5
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/dorms)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aKQ" = (
/obj/machinery/reagentgrinder,
/obj/structure/table/wood,
@@ -16796,13 +14941,14 @@
/turf/open/floor/wood,
/area/crew_quarters/bar)
"aKS" = (
-/obj/effect/turf_decal/tile/red,
-/obj/structure/sign/departments/security{
- pixel_x = 32;
- pixel_y = -32
+/obj/machinery/camera{
+ c_tag = "Bar Storage"
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
+/obj/structure/sink/kitchen{
+ pixel_y = 28
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aKT" = (
/obj/structure/closet/secure_closet/freezer/meat,
/turf/open/floor/plasteel/showroomfloor,
@@ -16922,10 +15068,6 @@
/obj/structure/table/wood,
/turf/open/floor/wood,
/area/library)
-"aLh" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
-/area/crew_quarters/toilet)
"aLi" = (
/obj/structure/chair/comfy/beige,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -17001,23 +15143,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/main)
-"aLs" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/camera{
- c_tag = "Dorms South";
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"aLt" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -17178,18 +15303,18 @@
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"aLQ" = (
-/obj/structure/cable,
-/obj/machinery/power/apc{
- areastring = "/area/crew_quarters/toilet";
- dir = 4;
- name = "Dormitory Bathrooms APC";
- pixel_x = 26
+/obj/machinery/camera{
+ c_tag = "Central Hallway North-East"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/table/glass,
-/obj/structure/bedsheetbin/towel,
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"aLR" = (
/obj/machinery/newscaster{
pixel_y = 32
@@ -17202,13 +15327,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"aLS" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk,
-/turf/open/floor/plasteel/white/side{
- dir = 4
- },
-/area/crew_quarters/theatre)
"aLT" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/corner{
@@ -17298,12 +15416,18 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aMg" = (
-/obj/machinery/vending/cola/pwr_game,
-/obj/structure/sign/poster/contraband/pwr_game{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/robust_softdrinks{
+ pixel_x = -32;
pixel_y = 32
},
/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/area/hallway/primary/central)
"aMh" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -17356,34 +15480,15 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"aMp" = (
-/obj/effect/landmark/blobstart,
-/turf/open/floor/plating,
-/area/maintenance/department/electrical)
"aMq" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+/obj/structure/sign/poster/contraband/space_cola{
+ pixel_x = -32
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aMr" = (
-/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-8"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
"aMs" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -17405,33 +15510,23 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aMu" = (
-/obj/machinery/camera{
- c_tag = "Bathrooms";
- dir = 1
- },
-/obj/structure/urinal{
- pixel_y = 32
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
-"aMv" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aMw" = (
-/obj/machinery/door/airlock{
- name = "Unisex Restrooms"
+/obj/machinery/vending/dinnerware{
+ contraband = list(/obj/item/reagent_containers/food/condiment/flour = 4);
+ desc = "This vendor is full of condiments to put on food.";
+ name = "\improper Condiments Vendor";
+ product_ads = "Get your sauces here!;No slave labour was used to make these products!;Nanotrasen Approved?!";
+ products = list(/obj/item/storage/bag/tray = 8, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/storage/box/cups = 5, /obj/item/reagent_containers/food/condiment/pack/ketchup = 20, /obj/item/reagent_containers/food/condiment/pack/mustard = 20, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 20, /obj/item/reagent_containers/food/condiment/pack/astrotame = 20, /obj/item/reagent_containers/food/condiment/saltshaker = 20, /obj/item/reagent_containers/food/condiment/peppermill = 20)
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/dark,
-/area/hallway/primary/central)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aMx" = (
-/obj/machinery/door/airlock{
- name = "Shower Room"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/toilet)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aMy" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -17464,21 +15559,13 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aMB" = (
-/obj/effect/spawner/structure/window,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/obj/structure/reagent_dispensers/keg/mead,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aMC" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/light_switch{
- pixel_y = -25
- },
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/obj/structure/reagent_dispensers/keg/gargle,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aMD" = (
/obj/machinery/icecream_vat,
/turf/open/floor/plasteel/showroomfloor,
@@ -17503,31 +15590,11 @@
/obj/item/wirecutters,
/turf/open/floor/plasteel,
/area/hydroponics)
-"aMH" = (
-/obj/machinery/door/airlock{
- name = "Unisex Restrooms"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/bar)
"aMI" = (
/obj/machinery/light/small,
/obj/machinery/vending/wardrobe/hydro_wardrobe,
/turf/open/floor/plasteel,
/area/hydroponics)
-"aMJ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/closed/wall,
-/area/crew_quarters/dorms)
-"aMK" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
"aML" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -17602,12 +15669,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
-"aMW" = (
-/obj/structure/bookcase{
- name = "Forbidden Knowledge"
- },
-/turf/open/floor/carpet,
-/area/library)
"aMX" = (
/turf/open/floor/plasteel/grimy,
/area/chapel/office)
@@ -17688,13 +15749,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
-"aNn" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/chair/comfy/brown,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aNo" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -17724,34 +15778,19 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"aNt" = (
-/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)
"aNu" = (
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/structure/table/wood,
+/obj/item/paper/fluff{
+ info = "Renovation Notice
The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.
We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used.You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef.We hope you like the new bar! b>";
+ name = "Renovation Notice - Bar";
+ pixel_x = -5;
+ pixel_y = 3
},
-/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)
+/obj/item/reagent_containers/food/drinks/shaker,
+/obj/item/stack/spacecash/c100,
+/obj/item/stack/spacecash/c100,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aNv" = (
/obj/effect/turf_decal/plaque{
icon_state = "L4"
@@ -17827,78 +15866,16 @@
/turf/open/floor/wood,
/area/crew_quarters/bar)
"aNF" = (
-/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,
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
/area/crew_quarters/bar)
-"aNG" = (
-/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)
-"aNH" = (
-/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)
"aNI" = (
-/obj/structure/closet/jcloset,
-/obj/item/storage/bag/trash,
-/obj/item/clothing/under/janimaid,
-/obj/item/clothing/under/janimaid,
-/obj/item/clothing/under/janimaid,
-/obj/item/clothing/under/maid,
-/obj/item/clothing/under/maid,
-/obj/item/clothing/under/maid,
-/turf/open/floor/plasteel,
-/area/janitor)
-"aNJ" = (
-/obj/structure/table,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/machinery/requests_console{
- department = "Janitorial";
- departmentType = 1;
- pixel_y = -29
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
},
-/obj/item/reagent_containers/spray/cleaner,
-/obj/item/storage/box/lights/mixed,
-/obj/item/storage/box/lights/mixed,
-/turf/open/floor/plasteel,
-/area/janitor)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aNK" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 8
@@ -17987,12 +15964,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
-"aNV" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
"aNW" = (
/obj/machinery/door/airlock/public/glass{
name = "Chapel Office";
@@ -18199,15 +16170,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
-"aOu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/chair/comfy/brown{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"aOv" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -18332,56 +16294,28 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aOH" = (
-/obj/structure/closet/secure_closet/captains,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
-/obj/item/clothing/under/captainparade,
-/turf/open/floor/carpet,
-/area/crew_quarters/heads/captain)
+/obj/structure/window/reinforced,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
"aOI" = (
/obj/structure/kitchenspike,
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"aOJ" = (
-/obj/item/radio/intercom{
- dir = 8;
- name = "Station Intercom (General)";
- pixel_x = -28
- },
-/obj/structure/closet/secure_closet/hop,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
+/obj/structure/chair/comfy/brown{
dir = 8
},
-/obj/item/clothing/suit/ianshirt,
-/turf/open/floor/plasteel,
-/area/crew_quarters/heads/hop)
-"aOK" = (
-/obj/machinery/door/airlock{
- name = "Theatre Backstage";
- req_access_txt = "46"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/wood,
/area/crew_quarters/bar)
"aOL" = (
-/obj/machinery/camera{
- c_tag = "Central Hallway North-East"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = -5;
- pixel_y = 30
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aOM" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
@@ -18507,38 +16441,9 @@
/turf/open/floor/wood,
/area/library)
"aPg" = (
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/obj/machinery/vending/wardrobe/curator_wardrobe,
-/turf/open/floor/carpet,
-/area/library)
-"aPh" = (
-/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)
-"aPi" = (
/obj/structure/chair/comfy/brown,
/turf/open/floor/carpet,
/area/library)
-"aPj" = (
-/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)
"aPk" = (
/turf/open/floor/plasteel/chapel{
dir = 4
@@ -18731,19 +16636,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
-"aPP" = (
-/obj/structure/reagent_dispensers/watertank/high,
-/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
- },
-/turf/open/floor/plasteel,
-/area/hydroponics)
"aPQ" = (
/turf/closed/wall,
/area/storage/tools)
@@ -18834,35 +16726,38 @@
/turf/open/floor/plating,
/area/bridge)
"aPY" = (
-/obj/structure/table/optable{
- name = "Robotics Operating Table"
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
},
-/obj/effect/landmark/event_spawn,
-/obj/item/tank/internals/anesthetic,
-/obj/item/clothing/mask/breath,
-/turf/open/floor/plasteel/dark,
-/area/science/robotics/lab)
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aPZ" = (
-/obj/item/mop,
-/obj/item/reagent_containers/glass/bucket,
-/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{
- pixel_x = 32
- },
-/turf/open/floor/plasteel,
-/area/janitor)
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/britcup,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aQa" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/structure/sign/poster/contraband/lusty_xenomorph{
- pixel_x = 32
- },
-/turf/open/floor/plasteel,
-/area/janitor)
+/obj/machinery/computer/arcade/battle,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aQb" = (
-/obj/machinery/vending/autodrobe,
-/turf/open/floor/plasteel/white/side{
- dir = 4
+/obj/structure/chair/sofa/right,
+/obj/structure/window{
+ dir = 1
},
-/area/crew_quarters/theatre)
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_x = -32
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aQc" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -18871,15 +16766,18 @@
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aQd" = (
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space)
-"aQe" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/structure/window,
+/obj/structure/chair/sofa/right{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/space/nearstation)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aQe" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/landmark/xmastree,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aQf" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/green{
@@ -19002,16 +16900,6 @@
/obj/item/bedsheet/black,
/turf/open/floor/carpet,
/area/library)
-"aQt" = (
-/obj/structure/table,
-/obj/item/stack/cable_coil/random,
-/obj/item/stack/cable_coil/random,
-/obj/item/stack/cable_coil,
-/obj/item/paper_bin/construction,
-/obj/item/stack/cable_coil,
-/obj/item/pen/fourcolor,
-/turf/open/floor/plasteel,
-/area/storage/art)
"aQu" = (
/turf/open/floor/plasteel/chapel,
/area/chapel/main)
@@ -19153,16 +17041,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQP" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/chair/comfy/brown{
- dir = 8
- },
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aQQ" = (
/obj/machinery/light_switch{
pixel_y = 28
},
@@ -19170,64 +17048,61 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQR" = (
-/obj/machinery/camera{
- c_tag = "Arrivals Bay 3 & 4";
- dir = 1
+/obj/machinery/vending/cola/pwr_game,
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_y = 32
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
+/area/crew_quarters/locker)
"aQS" = (
/obj/machinery/vending/coffee,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQT" = (
-/obj/item/clothing/gloves/color/rainbow,
-/obj/item/clothing/head/soft/rainbow,
-/obj/item/clothing/shoes/sneakers/rainbow,
-/obj/item/clothing/under/color/rainbow,
-/turf/open/floor/plating,
-/area/maintenance/port/fore)
-"aQU" = (
-/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)
-"aQV" = (
/obj/structure/disposalpipe/segment{
dir = 5
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
+"aQU" = (
+/obj/machinery/vending/kink,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQV" = (
+/obj/machinery/vending/autodrobe/all_access,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"aQW" = (
/obj/structure/closet/secure_closet/personal,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQX" = (
-/obj/machinery/vending/clothing,
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/vending/games,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQY" = (
-/obj/machinery/vending/autodrobe/all_access,
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/table,
+/obj/item/storage/toolbox/artistic{
+ pixel_y = 10
+ },
+/obj/item/storage/toolbox/artistic,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -10
},
/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/area/storage/art)
"aQZ" = (
/obj/machinery/light/small{
dir = 4
@@ -19420,30 +17295,23 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aRu" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/vending/kink,
/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
+ dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"aRv" = (
-/obj/effect/landmark/blobstart,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"aRw" = (
-/obj/structure/fans/tiny/invisible,
-/turf/open/space/basic,
-/area/space)
+/obj/structure/window,
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_x = -32
+ },
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aRx" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/plating,
-/area/space/nearstation)
+/obj/machinery/computer/arcade/minesweeper,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aRy" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -5;
@@ -19699,39 +17567,31 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aSh" = (
-/obj/structure/table,
-/obj/item/storage/toolbox/artistic{
- pixel_y = 10
- },
-/obj/item/storage/toolbox/artistic,
-/obj/item/storage/toolbox/electrical{
- pixel_y = -10
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -27
},
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/russobluecamohat,
/turf/open/floor/plasteel,
-/area/storage/art)
+/area/crew_quarters/locker)
"aSi" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"aSj" = (
-/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)
"aSk" = (
-/obj/structure/table/wood,
-/obj/item/camera_film,
-/obj/item/camera_film,
-/obj/item/taperecorder,
-/obj/item/camera,
-/turf/open/floor/wood,
-/area/library)
+/obj/structure/table,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil,
+/obj/item/paper_bin/construction,
+/obj/item/stack/cable_coil,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/storage/art)
"aSl" = (
/obj/machinery/light_switch{
pixel_y = 28
@@ -19746,51 +17606,15 @@
/obj/item/extinguisher,
/turf/open/floor/plating,
/area/storage/emergency/port)
-"aSo" = (
-/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)
-"aSp" = (
-/obj/structure/toilet{
- dir = 4
- },
-/obj/structure/mirror{
- pixel_y = 32
- },
-/obj/structure/sink{
- dir = 1;
- pixel_y = 25
- },
-/obj/machinery/button/door{
- id = "Bath1";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 14;
- pixel_y = 38;
- specialfunctions = 4
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
"aSq" = (
-/obj/machinery/door/airlock{
- name = "Recharging Station"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aSr" = (
/turf/open/floor/plasteel,
/area/storage/tools)
@@ -19905,21 +17729,49 @@
/mob/living/carbon/monkey/punpun,
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
-"aSG" = (
-/obj/structure/fireplace,
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 23
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
"aSH" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/light{
+ dir = 1
},
-/turf/open/space,
-/area/solar/starboard/aft)
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aSI" = (
/obj/machinery/door/airlock/public/glass{
name = "Kitchen";
@@ -20000,17 +17852,13 @@
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"aSS" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable,
-/turf/open/space,
-/area/solar/starboard/aft)
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aST" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/space,
-/area/solar/starboard/aft)
+/obj/machinery/biogenerator,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aSU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
@@ -20032,19 +17880,35 @@
/turf/open/floor/plasteel,
/area/storage/tools)
"aSX" = (
-/obj/machinery/vending/kink,
-/obj/structure/disposalpipe/segment{
+/obj/machinery/power/apc{
+ areastring = "/area/storage/art";
+ dir = 1;
+ name = "Art Storage";
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aSY" = (
-/obj/structure/lattice/catwalk,
/obj/structure/cable{
icon_state = "0-8"
},
-/turf/open/space,
-/area/solar/starboard/aft)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aSY" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/that,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"aSZ" = (
/obj/effect/landmark/start/bartender,
/obj/effect/turf_decal/tile/bar,
@@ -20053,13 +17917,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
-"aTa" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/space,
-/area/solar/starboard/aft)
"aTb" = (
/obj/machinery/newscaster{
pixel_y = 32
@@ -20164,20 +18021,6 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/exit)
-"aTp" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/space,
-/area/solar/port/fore)
-"aTq" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/space,
-/area/solar/starboard/fore)
"aTr" = (
/obj/machinery/door/firedoor,
/obj/machinery/status_display{
@@ -20209,25 +18052,12 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aTw" = (
-/obj/structure/closet/wardrobe/mixed,
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = -27
+/obj/structure/closet/wardrobe/green,
+/obj/machinery/light{
+ dir = 8
},
-/obj/item/clothing/head/beret,
-/obj/item/clothing/head/beret,
-/obj/item/clothing/head/russobluecamohat,
-/obj/item/clothing/head/russobluecamohat,
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aTx" = (
-/obj/machinery/firealarm{
- pixel_y = 24
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/vending/games,
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/kilt,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTy" = (
@@ -20235,19 +18065,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTz" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aTA" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aTB" = (
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -20267,6 +18084,12 @@
/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
+"aTB" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"aTC" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -20284,22 +18107,20 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTD" = (
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
},
-/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{
+/obj/machinery/camera{
+ c_tag = "Locker Room East";
dir = 8
},
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/razor,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTE" = (
@@ -20358,15 +18179,11 @@
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
"aTN" = (
-/obj/machinery/vending/dinnerware{
- contraband = list(/obj/item/reagent_containers/food/condiment/flour = 4);
- desc = "This vendor is full of condiments to put on food.";
- name = "\improper Condiments Vendor";
- product_ads = "Get your sauces here!;No slave labour was used to make these products!;Nanotrasen Approved?!";
- products = list(/obj/item/storage/bag/tray = 8, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/storage/box/cups = 5, /obj/item/reagent_containers/food/condiment/pack/ketchup = 20, /obj/item/reagent_containers/food/condiment/pack/mustard = 20, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 20, /obj/item/reagent_containers/food/condiment/pack/astrotame = 20, /obj/item/reagent_containers/food/condiment/saltshaker = 20, /obj/item/reagent_containers/food/condiment/peppermill = 20)
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/flour,
+/obj/item/kitchen/rollingpin,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"aTO" = (
/obj/structure/table,
/obj/item/book/manual/chef_recipes,
@@ -20485,20 +18302,13 @@
},
/turf/open/floor/plasteel,
/area/bridge)
-"aUf" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/space,
-/area/solar/port/aft)
"aUg" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/turf/open/space,
-/area/solar/port/aft)
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aUh" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/eastleft{
@@ -20523,28 +18333,15 @@
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"aUj" = (
-/obj/item/soap,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/light/small{
- dir = 1;
- light_color = "#ffc1c1"
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/machinery/vending/hydronutrients,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aUk" = (
-/obj/effect/turf_decal/tile/green{
- dir = 8
+/obj/machinery/vending/hydroseeds{
+ slogan_delay = 700
},
-/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)
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aUl" = (
/obj/structure/chair/office/dark{
dir = 8
@@ -20569,23 +18366,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUp" = (
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/machinery/camera{
- c_tag = "Locker Room East";
- dir = 8
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/structure/table,
-/obj/item/reagent_containers/rag/towel/random,
-/obj/item/razor,
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aUq" = (
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -20604,7 +18384,7 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"aUr" = (
+"aUs" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -20620,22 +18400,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"aUs" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/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)
"aUt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -20643,20 +18407,17 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUu" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/structure/window{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
+/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,
@@ -20709,18 +18470,6 @@
/obj/structure/bookcase/random/adult,
/turf/open/floor/wood,
/area/library)
-"aUC" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
-/obj/effect/landmark/start/mime,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/plasteel/white/side{
- dir = 4
- },
-/area/crew_quarters/theatre)
"aUD" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
@@ -20798,30 +18547,6 @@
"aUO" = (
/turf/open/floor/wood,
/area/security/vacantoffice)
-"aUP" = (
-/obj/structure/toilet{
- dir = 4
- },
-/obj/structure/mirror{
- pixel_y = 32
- },
-/obj/structure/sink{
- dir = 1;
- pixel_y = 25
- },
-/obj/machinery/button/door{
- id = "Bath2";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 14;
- pixel_y = 38;
- specialfunctions = 4
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
"aUQ" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -20845,31 +18570,16 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aUU" = (
-/obj/structure/closet/wardrobe/green,
-/obj/machinery/light{
- dir = 8
- },
-/obj/item/clothing/under/kilt,
-/obj/item/clothing/under/kilt,
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aUV" = (
-/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/door/window/westright{
- name = "Red Corner"
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/structure/closet/wardrobe/grey,
+/obj/machinery/requests_console{
+ department = "Locker Room";
+ pixel_x = -32
},
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/color/grey,
+/obj/item/clothing/under/color/grey,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUW" = (
@@ -20900,13 +18610,9 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUZ" = (
-/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,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aVa" = (
@@ -21161,43 +18867,31 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"aVw" = (
-/obj/effect/landmark/carpspawn,
-/turf/open/space/basic,
-/area/space)
-"aVx" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/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)
"aVy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/table,
-/obj/item/storage/firstaid/regular{
- pixel_y = 5
+/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 = 8
},
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/bar)
"aVz" = (
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
"aVA" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/item/reagent_containers/food/snacks/pie/cream,
+/obj/structure/noticeboard{
+ desc = "Tickets for food orders will be placed here. The Chef should make the order and hand it to a waiter, waitress or just let the barkeep serve it.";
+ name = "Food Orders";
+ pixel_y = 26
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plasteel/white/side{
- dir = 4
- },
-/area/crew_quarters/theatre)
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"aVB" = (
/obj/structure/table,
/obj/item/reagent_containers/food/condiment/enzyme{
@@ -21217,18 +18911,27 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aVD" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Theatre Maintenance";
- req_access_txt = "46"
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
},
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
},
-/turf/open/floor/plating,
-/area/crew_quarters/theatre)
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
+ },
+/obj/item/sharpener{
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"aVE" = (
/obj/structure/table,
/obj/item/storage/box/donkpockets{
@@ -21244,14 +18947,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
-"aVG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/obj/structure/table,
-/obj/item/coin/gold,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"aVH" = (
/obj/machinery/processor,
/obj/machinery/firealarm{
@@ -21277,14 +18972,12 @@
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"aVK" = (
-/obj/machinery/shower{
- dir = 4
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
},
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/effect/landmark/start/botanist,
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aVL" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -21326,17 +19019,21 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
-"aVP" = (
-/obj/machinery/vending/autodrobe/all_access,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"aVQ" = (
/obj/structure/chair/comfy/black{
dir = 8
},
/turf/open/floor/wood,
/area/library)
-"aVR" = (
+"aVS" = (
+/obj/structure/table/wood,
+/obj/item/camera_film,
+/obj/item/camera_film,
+/obj/item/taperecorder,
+/obj/item/camera,
+/turf/open/floor/wood,
+/area/library)
+"aVT" = (
/obj/structure/table/wood,
/obj/item/paper_bin/bundlenatural{
pixel_x = 6;
@@ -21350,20 +19047,6 @@
/obj/item/pen/fourcolor,
/turf/open/floor/wood,
/area/library)
-"aVS" = (
-/obj/structure/table/wood,
-/obj/item/pen/red,
-/turf/open/floor/wood,
-/area/library)
-"aVT" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/bottle/whiskey{
- pixel_x = 3
- },
-/obj/item/lighter,
-/obj/item/restraints/handcuffs,
-/turf/open/floor/carpet,
-/area/security/detectives_office)
"aVU" = (
/obj/structure/chair/stool,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -21573,24 +19256,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"aWw" = (
-/obj/machinery/power/apc{
- areastring = "/area/storage/art";
- dir = 1;
- name = "Art Storage";
- pixel_y = 24
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
"aWx" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/cable{
@@ -21627,21 +19292,15 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aWB" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/door/airlock/maintenance{
+ name = "Detective Maintenance";
+ req_access_txt = "4"
},
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/turf/open/floor/plating,
+/area/maintenance/port)
"aWC" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -22021,51 +19680,57 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aXi" = (
-/obj/machinery/vending/clothing,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"aXj" = (
-/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)
-"aXk" = (
-/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{
+/obj/structure/chair/sofa/right,
+/obj/structure/window{
dir = 1
},
-/obj/effect/turf_decal/tile/blue{
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aXj" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain{
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/item/pen/fourcolor,
/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/area/crew_quarters/bar)
+"aXk" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = 32
+ },
+/obj/item/book/manual/wiki/barman_recipes,
+/obj/item/reagent_containers/rag,
+/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)
"aXl" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/machinery/door/window/southright{
+ name = "Bar Door";
+ req_one_access_txt = "25;28"
},
-/obj/structure/disposalpipe/junction,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/bar)
"aXm" = (
/obj/effect/landmark/start/cook,
/turf/open/floor/plasteel/cafeteria,
@@ -22101,40 +19766,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"aXr" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aXs" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Detective Maintenance";
- req_access_txt = "4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
-"aXt" = (
-/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)
-"aXu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/carpet,
-/area/library)
-"aXv" = (
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -22150,7 +19781,26 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"aXw" = (
+"aXt" = (
+/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)
+"aXu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aXv" = (
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -22163,14 +19813,17 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"aXx" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
+"aXw" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
},
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
/obj/effect/turf_decal/tile/blue{
dir = 8
},
@@ -22193,22 +19846,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/carpet,
/area/chapel/main)
-"aXA" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/structure/window{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
"aXB" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -22240,24 +19877,25 @@
/turf/closed/wall,
/area/quartermaster/warehouse)
"aXF" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 10;
+ icon_state = "roomnum";
+ name = "Room Number 6";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/item/paper_bin/bundlenatural{
- pixel_x = 6;
- pixel_y = 4
+/obj/machinery/washing_machine{
+ pixel_x = 7;
+ pixel_y = 7
},
-/obj/item/pen/fountain{
- pixel_x = 6
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/item/pen/fourcolor,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"aXG" = (
/obj/machinery/light{
dir = 4
@@ -22270,10 +19908,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
-"aXH" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"aXI" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -22322,17 +19956,6 @@
/obj/structure/filingcabinet/chestdrawer,
/turf/open/floor/wood,
/area/security/vacantoffice)
-"aXO" = (
-/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)
"aXP" = (
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
@@ -22410,7 +20033,19 @@
},
/turf/open/floor/carpet,
/area/security/vacantoffice)
-"aYa" = (
+"aYb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aYc" = (
/obj/machinery/power/apc{
areastring = "/area/maintenance/port";
dir = 8;
@@ -22430,27 +20065,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"aYb" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
-"aYc" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
- },
-/turf/closed/wall,
-/area/quartermaster/warehouse)
"aYd" = (
/obj/structure/chair/office/dark,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
@@ -22478,19 +20092,6 @@
},
/turf/open/floor/plating,
/area/construction)
-"aYh" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/button/door{
- id = "kanyewest";
- name = "Privacy Shutters";
- pixel_y = 24
- },
-/obj/structure/rack,
-/obj/item/storage/briefcase,
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
"aYi" = (
/obj/structure/closet/secure_closet/detective,
/obj/structure/disposalpipe/segment{
@@ -22502,9 +20103,16 @@
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"aYj" = (
-/obj/machinery/light/small{
- dir = 8
+/obj/structure/disposalpipe/segment{
+ dir = 10
},
+/obj/machinery/button/door{
+ id = "kanyewest";
+ name = "Privacy Shutters";
+ pixel_y = 24
+ },
+/obj/structure/rack,
+/obj/item/storage/briefcase,
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"aYk" = (
@@ -22718,25 +20326,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"aYH" = (
-/obj/structure/table/wood,
-/obj/item/paper/fluff{
- info = "Renovation Notice
The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used.You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef.We hope you like the new bar! b>";
- name = "Renovation Notice - Bar";
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/stack/spacecash/c100,
-/obj/item/stack/spacecash/c100,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"aYI" = (
-/obj/structure/chair/comfy/black{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"aYJ" = (
/obj/machinery/light_switch{
pixel_y = -25
@@ -22784,9 +20373,18 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aYP" = (
-/obj/structure/table/wood/poker,
+/obj/structure/reagent_dispensers/watertank/high,
+/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
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/hydroponics)
"aYQ" = (
/obj/machinery/hydroponics/constructable,
/obj/effect/turf_decal/tile/green{
@@ -22803,24 +20401,19 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aYS" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1;
- pixel_x = 5
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
-/obj/machinery/light/small{
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/obj/structure/table/glass,
-/obj/item/razor{
- pixel_x = 2;
- pixel_y = 3
- },
-/obj/item/reagent_containers/rag/towel/random,
-/obj/item/reagent_containers/rag/towel/random,
-/obj/item/reagent_containers/rag/towel/random,
-/obj/item/reagent_containers/rag/towel/random,
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"aYT" = (
/obj/machinery/camera{
c_tag = "Hydroponics South";
@@ -22839,22 +20432,6 @@
"aYW" = (
/turf/open/floor/carpet,
/area/library)
-"aYX" = (
-/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)
"aYY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -22862,15 +20439,17 @@
/turf/open/floor/carpet,
/area/library)
"aYZ" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
+/obj/structure/table/wood,
+/obj/item/storage/box/evidence,
+/obj/item/hand_labeler{
+ pixel_x = 5
},
-/obj/structure/closet/crate/freezer,
-/obj/machinery/light/small{
- dir = 8
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/plasteel,
-/area/quartermaster/warehouse)
+/obj/item/taperecorder,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aZa" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -22878,10 +20457,12 @@
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"aZb" = (
-/obj/structure/table/wood/poker,
-/obj/item/toy/cards/deck,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/machinery/camera{
+ c_tag = "Bar South";
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aZc" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -22972,14 +20553,18 @@
/turf/open/floor/wood,
/area/security/vacantoffice)
"aZo" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
"aZp" = (
/obj/structure/rack,
/obj/item/electronics/apc,
@@ -23014,73 +20599,60 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aZt" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1;
- pixel_x = 5
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
},
-/obj/machinery/light/small,
/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
+/area/crew_quarters/toilet/locker)
"aZu" = (
/obj/machinery/photocopier,
/turf/open/floor/wood,
/area/bridge/meeting_room)
"aZv" = (
-/obj/machinery/firealarm{
- dir = 8;
- pixel_x = 24
+/obj/machinery/door/airlock{
+ id_tag = "LockerShitter1";
+ name = "Unit 1"
},
-/obj/structure/table,
-/obj/machinery/chem_dispenser/drinks/beer{
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
+"aZw" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"aZx" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/obj/item/radio/intercom{
- pixel_y = 25
+/obj/structure/window,
+/obj/structure/window{
+ dir = 8
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aZw" = (
-/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)
-"aZx" = (
-/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)
"aZy" = (
/obj/machinery/camera{
@@ -23245,50 +20817,39 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aZZ" = (
-/obj/structure/chair/comfy/brown{
- dir = 8
+/obj/structure/chair/sofa{
+ dir = 1
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"baa" = (
-/obj/structure/chair/comfy/brown{
+/obj/structure/chair/sofa/left{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bab" = (
-/obj/structure/chair/comfy/black{
+/obj/machinery/light,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bac" = (
+/obj/structure/noticeboard{
+ pixel_y = -27
+ },
+/obj/structure/chair/sofa/right{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"bac" = (
-/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)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bad" = (
-/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)
-"bae" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/obj/machinery/light,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"baf" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -23302,34 +20863,21 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bag" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
},
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bah" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
},
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "12"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bai" = (
-/obj/machinery/camera{
- c_tag = "Bar";
- dir = 8
- },
-/obj/structure/table,
-/obj/machinery/chem_dispenser/drinks{
- dir = 8
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
+/obj/machinery/light/small,
+/turf/open/floor/wood,
/area/crew_quarters/bar)
"baj" = (
/obj/structure/table/reinforced,
@@ -23420,9 +20968,10 @@
/turf/open/floor/wood,
/area/library)
"bat" = (
-/obj/structure/reagent_dispensers/keg/semen,
-/turf/open/floor/plating,
-/area/maintenance/bar)
+/obj/structure/table/wood,
+/obj/item/pen/red,
+/turf/open/floor/wood,
+/area/library)
"bau" = (
/obj/structure/chair/comfy/black{
dir = 4
@@ -23440,16 +20989,12 @@
/turf/open/floor/wood,
/area/library)
"baw" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/item/reagent_containers/food/snacks/pie/cream,
-/obj/structure/noticeboard{
- desc = "Tickets for food orders will be placed here. The Chef should make the order and hand it to a waiter, waitress or just let the barkeep serve it.";
- name = "Food Orders";
- pixel_y = 26
+/obj/machinery/camera{
+ c_tag = "Locker Room Toilets";
+ dir = 8
},
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/kitchen)
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
"bax" = (
/obj/structure/chair/comfy/black{
dir = 4
@@ -23581,28 +21126,15 @@
/turf/open/floor/plating,
/area/maintenance/port)
"baO" = (
-/obj/structure/toilet{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
},
/obj/structure/mirror{
- pixel_y = 32
+ pixel_x = 28
},
-/obj/structure/sink{
- dir = 1;
- pixel_y = 25
- },
-/obj/machinery/button/door{
- id = "LockerShitter1";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 14;
- pixel_y = 38;
- specialfunctions = 4
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/blue,
+/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet/locker)
"baP" = (
/obj/structure/table/wood,
@@ -23792,29 +21324,17 @@
},
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet/locker)
-"bbr" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
+"bbs" = (
+/obj/structure/window/reinforced{
dir = 8
},
-/obj/structure/window,
-/obj/structure/window{
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"bbs" = (
-/obj/effect/landmark/event_spawn,
-/obj/effect/landmark/xmastree,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"bbt" = (
/obj/structure/closet/crate,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -23864,14 +21384,17 @@
},
/area/hallway/primary/starboard)
"bbA" = (
-/obj/machinery/vending/assist,
-/obj/structure/sign/poster/contraband/grey_tide{
- desc = "A poster promoting a regression to ape-like intelligence for Assistants, suggesting they break, loot and murder enough to make even a caveman blush.";
- pixel_x = -32;
- poster_item_desc = "Nanotrasen does not condone such messages. Please don't regress to ape-level intelligence as this poster suggests."
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 2"
},
-/turf/open/floor/plasteel,
-/area/storage/primary)
+/obj/structure/sign/poster/contraband/eat{
+ pixel_y = 32;
+ poster_item_desc = "This poster promotes obesity, it also promotes giving the Chef a reason to keep their job."
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/primary/starboard)
"bbB" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -23949,8 +21472,8 @@
/area/maintenance/port)
"bbL" = (
/obj/machinery/door/airlock{
- id_tag = "LockerShitter1";
- name = "Unit 1"
+ id_tag = "LockerShitter2";
+ name = "Unit 2"
},
/turf/open/floor/mineral/titanium/blue,
/area/crew_quarters/toilet/locker)
@@ -23959,21 +21482,6 @@
/obj/structure/table/wood,
/turf/open/floor/carpet,
/area/bridge/meeting_room)
-"bbN" = (
-/obj/machinery/button/door{
- id = "Bath3";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 14;
- pixel_y = 38;
- specialfunctions = 4
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/machinery/recharge_station,
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
"bbO" = (
/obj/machinery/washing_machine,
/obj/effect/turf_decal/tile/blue{
@@ -23991,20 +21499,14 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"bbQ" = (
-/obj/item/paper_bin/bundlenatural{
- pixel_x = 6;
- pixel_y = 4
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 3
},
-/obj/item/paper_bin{
- pixel_x = -6;
- pixel_y = 4
- },
-/obj/item/pen/fountain,
-/obj/structure/table,
-/obj/item/pen/fourcolor,
-/obj/item/stamp/hop,
-/turf/open/floor/plasteel,
-/area/crew_quarters/heads/hop)
+/obj/item/lighter,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
"bbR" = (
/turf/open/floor/plasteel,
/area/quartermaster/office)
@@ -24020,20 +21522,6 @@
/obj/item/flashlight/lamp/green,
/turf/open/floor/carpet,
/area/security/detectives_office)
-"bbU" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue,
-/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)
"bbV" = (
/obj/machinery/firealarm{
dir = 4;
@@ -24189,15 +21677,14 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bcr" = (
-/obj/machinery/smartfridge/disks{
- pixel_y = 2
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway"
},
-/obj/structure/table,
/obj/item/radio/intercom{
pixel_y = 25
},
/turf/open/floor/plasteel,
-/area/hydroponics)
+/area/hallway/primary/starboard)
"bcs" = (
/obj/machinery/firealarm{
pixel_y = 24
@@ -24205,30 +21692,17 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bct" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
-/obj/structure/mirror{
- pixel_x = 28
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/obj/structure/chair/wood/wings,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bcu" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance{
+ name = "Locker Room Maintenance";
+ req_access_txt = "12"
},
-/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)
+/turf/open/floor/plating,
+/area/maintenance/port)
"bcv" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -5;
@@ -24237,22 +21711,8 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bcw" = (
-/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,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
/area/crew_quarters/locker)
"bcx" = (
/obj/machinery/camera{
@@ -24329,13 +21789,15 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bcJ" = (
-/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"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port)
+/obj/structure/closet/crate/freezer,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
"bcK" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
@@ -24362,22 +21824,6 @@
/obj/structure/table/wood,
/turf/open/floor/carpet,
/area/bridge/meeting_room)
-"bcO" = (
-/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)
"bcP" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
@@ -24385,8 +21831,10 @@
/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 = 4
+ dir = 5
},
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
@@ -24397,20 +21845,12 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"bcS" = (
-/obj/effect/landmark/blobstart,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
-"bcT" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/area/quartermaster/warehouse)
"bcU" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -24424,14 +21864,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
-"bcW" = (
-/obj/structure/table/wood,
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/wood,
-/area/security/vacantoffice)
"bcX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -24517,7 +21949,13 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"bdi" = (
-/obj/machinery/computer/arcade,
+/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)
"bdj" = (
@@ -24704,32 +22142,14 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bdE" = (
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -22
- },
-/obj/structure/closet/crate/wooden/toy,
-/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{
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
-/obj/structure/sign/poster/contraband/clown{
+/obj/structure/sign/poster/contraband/have_a_puff{
pixel_y = -32
},
-/obj/structure/sign/poster/contraband/clown{
- pixel_y = -32
- },
-/obj/structure/sign/poster/contraband/clown{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/theatre)
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"bdF" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -24753,18 +22173,13 @@
/turf/open/floor/carpet,
/area/bridge/meeting_room)
"bdJ" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
+/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
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/structure/mirror{
- pixel_x = 28
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/turf/open/floor/plating,
+/area/maintenance/port)
"bdK" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -24773,20 +22188,16 @@
/turf/open/floor/carpet,
/area/bridge/meeting_room)
"bdL" = (
-/obj/machinery/camera{
- c_tag = "Locker Room South";
- dir = 8
- },
-/obj/structure/closet/secure_closet/personal,
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"bdM" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/quartermaster/warehouse)
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/locker)
"bdN" = (
/obj/machinery/door/airlock/medical{
name = "Morgue";
@@ -24851,39 +22262,6 @@
/obj/structure/closet/crate/medical,
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
-"bdV" = (
-/obj/structure/toilet{
- dir = 4
- },
-/obj/structure/mirror{
- pixel_y = 32
- },
-/obj/structure/sink{
- dir = 1;
- pixel_y = 25
- },
-/obj/machinery/button/door{
- id = "LockerShitter2";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 14;
- pixel_y = 38;
- specialfunctions = 4
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet/locker)
-"bdW" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/quartermaster/warehouse)
"bdX" = (
/obj/item/storage/fancy/donut_box,
/obj/structure/table,
@@ -24999,12 +22377,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
-"bei" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/crew_quarters/heads/captain)
"bej" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/wood,
@@ -25096,12 +22468,20 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bev" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_y = -25
+ },
+/obj/structure/sign/directions/science{
+ dir = 4;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"bew" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -25366,12 +22746,12 @@
/turf/closed/wall,
/area/maintenance/disposal)
"bfa" = (
-/obj/structure/chair/sofa/left{
- dir = 1
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/mineral/wood/fifty{
+ amount = 20
},
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/maintenance/port)
"bfb" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
@@ -25405,17 +22785,10 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bfe" = (
-/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)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bff" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
@@ -25449,27 +22822,6 @@
},
/turf/open/floor/plating,
/area/quartermaster/sorting)
-"bfk" = (
-/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)
"bfl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
@@ -25575,11 +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,
-/turf/open/floor/wood,
-/area/crew_quarters/heads/captain)
"bfD" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -25793,17 +23140,14 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bgi" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/sign/poster/contraband/space_up{
- pixel_y = -32
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 3 & 4";
+ dir = 1
},
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/area/hallway/secondary/entry)
"bgj" = (
/obj/machinery/conveyor{
dir = 8;
@@ -25818,13 +23162,6 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal)
-"bgl" = (
-/obj/machinery/door/airlock{
- id_tag = "LockerShitter2";
- name = "Unit 2"
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet/locker)
"bgm" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -25875,14 +23212,12 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bgr" = (
-/obj/machinery/camera{
- c_tag = "Locker Room Toilets";
- dir = 8
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bgs" = (
-/obj/item/chair/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/table/wood/fancy/purple,
/turf/open/floor/plating,
/area/maintenance/port)
"bgt" = (
@@ -25914,11 +23249,6 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/port)
-"bgx" = (
-/obj/structure/closet/wardrobe/cargotech,
-/obj/item/radio/headset/headset_cargo,
-/turf/open/floor/plasteel,
-/area/quartermaster/storage)
"bgy" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
@@ -26024,10 +23354,12 @@
/turf/open/floor/wood,
/area/bridge/meeting_room)
"bgM" = (
-/obj/machinery/vending/coffee,
/obj/machinery/light{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/wood,
/area/bridge/meeting_room)
"bgN" = (
@@ -26053,12 +23385,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"bgR" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/engine/gravity_generator)
"bgS" = (
/obj/machinery/requests_console{
announcementConsole = 1;
@@ -26096,6 +23422,9 @@
icon_state = "1-2"
},
/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bgX" = (
@@ -26478,11 +23807,6 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal)
-"bhK" = (
-/obj/structure/table/wood/fancy/royalblue,
-/obj/item/crowbar/red,
-/turf/open/floor/plating,
-/area/maintenance/port)
"bhL" = (
/obj/machinery/mineral/stacking_machine{
input_dir = 1;
@@ -26512,31 +23836,11 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"bhP" = (
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/mineral/wood/fifty{
- amount = 20
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
"bhQ" = (
-/obj/structure/closet,
-/obj/item/stack/tile/carpet/royalblue{
- amount = 24
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/item/stack/tile/carpet/green{
- amount = 24
- },
-/obj/item/stack/tile/carpet/purple{
- amount = 24
- },
-/obj/item/stack/tile/carpet/orange{
- amount = 24
- },
-/obj/item/stack/tile/wood{
- amount = 24
- },
-/turf/open/floor/plating,
+/turf/closed/wall,
/area/maintenance/port)
"bhR" = (
/obj/structure/grille,
@@ -26709,17 +24013,9 @@
/obj/machinery/suit_storage_unit/captain,
/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" = (
@@ -26772,16 +24068,16 @@
/turf/open/floor/plasteel/white,
/area/medical/chemistry)
"bit" = (
-/obj/machinery/light,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/obj/structure/bedsheetbin/color,
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/locker)
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
"biu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
@@ -26919,19 +24215,6 @@
"biL" = (
/turf/open/floor/plasteel/white,
/area/science/robotics/lab)
-"biM" = (
-/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)
"biN" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -27062,10 +24345,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard)
-"biZ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plating,
-/area/maintenance/port)
"bja" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -27274,15 +24553,26 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bjy" = (
-/obj/machinery/camera{
- c_tag = "Gravity Generator Room";
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/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/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
+/area/ai_monitored/nuke_storage)
"bjz" = (
/turf/closed/wall/r_wall,
/area/maintenance/central)
@@ -27297,10 +24587,6 @@
/obj/structure/closet/wardrobe/black,
/turf/open/floor/plating,
/area/maintenance/central)
-"bjD" = (
-/obj/structure/bed,
-/turf/open/floor/plating,
-/area/maintenance/port)
"bjE" = (
/obj/machinery/airalarm{
dir = 4;
@@ -27449,11 +24735,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"bjW" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/structure/table/wood/fancy/purple,
-/turf/open/floor/plating,
-/area/maintenance/port)
"bjX" = (
/obj/structure/table,
/obj/machinery/recharger{
@@ -27515,23 +24796,10 @@
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
/area/storage/emergency/starboard)
-"bke" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/junction/flip,
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
"bkf" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/storage/emergency/starboard)
-"bkg" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/closed/wall,
-/area/maintenance/port)
"bkh" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/circuit,
@@ -27571,22 +24839,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/white,
/area/science/robotics/lab)
-"bkl" = (
-/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)
"bkm" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -27764,12 +25016,6 @@
},
/turf/open/floor/plating,
/area/quartermaster/sorting)
-"bkI" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"bkJ" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -28144,9 +25390,15 @@
/turf/open/floor/plasteel,
/area/science/robotics/mechbay)
"blt" = (
-/obj/structure/sign/poster/contraband/tools,
-/turf/closed/wall,
-/area/storage/primary)
+/obj/machinery/recharge_station,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/state_laws{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
"blu" = (
/obj/machinery/computer/mech_bay_power_console{
dir = 4
@@ -28304,17 +25556,6 @@
/obj/effect/landmark/start/roboticist,
/turf/open/floor/plasteel,
/area/science/robotics/lab)
-"blN" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/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)
"blO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
@@ -28507,16 +25748,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/sorting)
-"bml" = (
-/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)
"bmm" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -28577,24 +25808,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/office)
-"bmu" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/turf/closed/wall/r_wall,
-/area/engine/gravity_generator)
-"bmv" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
-"bmw" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"bmx" = (
/turf/closed/wall,
/area/crew_quarters/heads/captain)
@@ -28857,38 +26070,6 @@
},
/turf/closed/wall/r_wall,
/area/science/robotics/mechbay)
-"bnd" = (
-/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)
-"bne" = (
-/obj/machinery/button/door{
- desc = "A remote control switch for the genetics doors.";
- id = "GeneticsDoor";
- name = "Genetics Exit Button";
- normaldoorcontrol = 1;
- pixel_x = 8;
- pixel_y = 24
- },
-/obj/structure/table,
-/obj/item/book/manual/wiki/medical_cloning{
- pixel_y = 6
- },
-/obj/item/storage/box/rxglasses{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/box/bodybags,
-/obj/item/pen,
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
"bnf" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -29025,12 +26206,11 @@
/turf/closed/wall,
/area/maintenance/starboard)
"bnt" = (
-/obj/structure/rack,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 3;
- name = "3maintenance loot spawner"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
@@ -29276,16 +26456,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/gravity_generator)
-"bnU" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/airlock/engineering/glass{
- name = "Gravity Generator";
- req_access_txt = "11"
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"bnV" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -29324,15 +26494,11 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"bnZ" = (
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=HOP";
- location = "CHE"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/obj/item/pen/fountain/captain,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
"boa" = (
/obj/structure/toilet{
dir = 4
@@ -29473,12 +26639,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"bop" = (
-/obj/structure/closet/wardrobe/white,
-/obj/item/clothing/under/kilt,
-/obj/item/clothing/under/janimaid,
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
"boq" = (
/obj/structure/bed/roller,
/obj/effect/turf_decal/tile/blue,
@@ -29506,16 +26666,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/white,
/area/science/robotics/lab)
-"bot" = (
-/obj/structure/closet/wardrobe/grey,
-/obj/item/clothing/head/beret/black,
-/obj/item/clothing/head/beret/black,
-/obj/item/clothing/head/beret,
-/obj/item/clothing/head/beret,
-/obj/item/clothing/under/assistantformal,
-/obj/item/clothing/under/skirt/black,
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
"bou" = (
/turf/open/floor/plasteel,
/area/science/robotics/lab)
@@ -29756,12 +26906,19 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"boY" = (
-/obj/machinery/vending/cola/black,
-/obj/structure/sign/poster/contraband/sun_kist{
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/ian{
+ pixel_x = 32;
pixel_y = 32
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"boZ" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/northleft{
@@ -29834,36 +26991,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
-"bpg" = (
-/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)
"bph" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
-"bpi" = (
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
"bpj" = (
/obj/structure/chair/comfy/brown{
dir = 4
@@ -29878,18 +27011,14 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"bpk" = (
-/obj/machinery/camera{
- c_tag = "Genetics Cloning";
- dir = 4;
- network = list("ss13","medbay")
+/obj/structure/closet/secure_closet/captains,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
},
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = -24
- },
-/obj/structure/closet/secure_closet/personal/patient,
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
+/obj/item/clothing/under/captainparade,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
"bpl" = (
/obj/structure/table/wood,
/obj/item/storage/box/matches,
@@ -30245,12 +27374,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
-"bqb" = (
-/obj/structure/shuttle/engine/propulsion{
- dir = 1
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"bqc" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plasteel/white,
@@ -30448,48 +27571,31 @@
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
"bqD" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/apc{
- areastring = "/area/engine/gravity_generator";
+/obj/machinery/vending/coffee,
+/obj/machinery/light{
dir = 8;
- name = "Gravity Generator APC";
- pixel_x = -25;
- pixel_y = 1
+ light_color = "#e8eaff"
},
-/obj/structure/table,
-/obj/item/paper/guides/jobs/engi/gravity_gen,
-/obj/item/pen/blue,
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = -35
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"bqE" = (
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/machinery/holopad,
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"bqF" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
+/obj/machinery/vending/cigarette/beach,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"bqG" = (
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
},
-/obj/structure/cable,
-/obj/machinery/power/smes{
- charge = 5e+006
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"bqH" = (
/turf/closed/wall/r_wall,
/area/teleporter)
@@ -30751,12 +27857,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel/white,
/area/medical/genetics)
-"brl" = (
-/obj/structure/shuttle/engine/heater{
- dir = 1
- },
-/turf/closed/wall/mineral/titanium,
-/area/space/nearstation)
"brm" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -31074,9 +28174,6 @@
"brS" = (
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
-"brT" = (
-/turf/open/floor/plating,
-/area/space/nearstation)
"brU" = (
/obj/structure/sign/warning/electricshock{
pixel_y = -32
@@ -31139,11 +28236,8 @@
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
"bsa" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
-/turf/closed/wall/r_wall,
-/area/engine/gravity_generator)
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"bsb" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -31153,33 +28247,10 @@
"bsc" = (
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
-"bsd" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
-"bse" = (
-/obj/machinery/power/terminal{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
-/turf/closed/wall/r_wall,
-/area/engine/gravity_generator)
"bsf" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
-"bsg" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/turf/closed/wall/r_wall,
-/area/engine/gravity_generator)
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"bsh" = (
/turf/closed/wall,
/area/teleporter)
@@ -31363,9 +28434,6 @@
dir = 9
},
/area/science/research)
-"bsB" = (
-/turf/closed/wall/mineral/titanium,
-/area/space/nearstation)
"bsC" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plasteel/white,
@@ -31469,8 +28537,14 @@
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
"bsP" = (
-/turf/open/floor/plating/foam,
-/area/space/nearstation)
+/obj/structure/table/optable{
+ name = "Robotics Operating Table"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/item/tank/internals/anesthetic,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
"bsQ" = (
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
@@ -31605,9 +28679,15 @@
/turf/open/floor/plasteel/white,
/area/science/research)
"bti" = (
-/obj/effect/spawner/structure/window/shuttle,
-/turf/open/floor/plating,
-/area/space/nearstation)
+/obj/structure/closet/wardrobe/grey,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/skirt/black,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"btj" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -31618,9 +28698,11 @@
/turf/open/floor/plasteel/white,
/area/science/explab)
"btk" = (
-/obj/structure/grille/broken,
-/turf/open/floor/plating,
-/area/space/nearstation)
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/janimaid,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"btl" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plasteel/white,
@@ -31753,16 +28835,12 @@
/turf/open/floor/plasteel,
/area/science/research)
"bty" = (
-/obj/structure/chair/sofa/right,
-/obj/structure/window{
- dir = 1
- },
-/obj/structure/sign/poster/contraband/pwr_game{
- pixel_x = -32
+/obj/structure/chair{
+ dir = 8
},
/obj/effect/landmark/start/assistant,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
"btz" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/brown{
@@ -31801,23 +28879,20 @@
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
"btD" = (
-/obj/structure/table,
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
/obj/item/paper_bin{
- pixel_x = 1;
- pixel_y = 9
+ pixel_x = -6;
+ pixel_y = 4
},
-/obj/item/pen,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/item/folder/white,
/obj/item/pen/fountain,
-/obj/item/stamp/rd{
- pixel_x = 3;
- pixel_y = -2
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/heads/hor)
+/obj/structure/table,
+/obj/item/pen/fourcolor,
+/obj/item/stamp/hop,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
"btE" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -31829,16 +28904,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
-"btF" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/engineering{
- name = "Gravity Generator";
- req_access_txt = "11"
- },
-/obj/effect/turf_decal/delivery,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
"btG" = (
/turf/closed/wall/r_wall,
/area/engine/gravity_generator)
@@ -32077,10 +29142,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/genetics)
-"buh" = (
-/obj/structure/girder,
-/turf/open/floor/plating,
-/area/space/nearstation)
"bui" = (
/obj/machinery/airalarm{
dir = 1;
@@ -32247,12 +29308,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/starboard)
-"buA" = (
-/obj/structure/frame/computer{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/space/nearstation)
"buB" = (
/obj/machinery/conveyor_switch/oneway{
dir = 8;
@@ -32335,12 +29390,13 @@
/turf/open/floor/plasteel,
/area/quartermaster/office)
"buJ" = (
-/obj/structure/chair/sofa,
-/obj/structure/window{
- dir = 1
+/obj/structure/chair{
+ dir = 8
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/machinery/light,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
"buK" = (
/obj/machinery/light{
dir = 4
@@ -32392,46 +29448,10 @@
/obj/item/hand_labeler,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
-"buP" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/turf/closed/wall,
-/area/engine/gravity_generator)
"buQ" = (
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -22
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
-"buR" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/turf/closed/wall,
-/area/engine/gravity_generator)
-"buS" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/camera{
- c_tag = "Gravity Generator Foyer"
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"buT" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -32608,12 +29628,26 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bvn" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/machinery/button/door{
+ desc = "A remote control switch for the genetics doors.";
+ id = "GeneticsDoor";
+ name = "Genetics Exit Button";
+ normaldoorcontrol = 1;
+ pixel_x = 8;
+ pixel_y = 24
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/closed/wall,
-/area/maintenance/port)
+/obj/structure/table,
+/obj/item/book/manual/wiki/medical_cloning{
+ pixel_y = 6
+ },
+/obj/item/storage/box/rxglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"bvo" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -32773,20 +29807,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/qm)
-"bvG" = (
-/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)
"bvH" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -32906,6 +29926,9 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bvX" = (
@@ -33008,10 +30031,21 @@
/area/hallway/primary/central)
"bwi" = (
/obj/item/radio/intercom{
- pixel_x = -25
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
},
-/turf/open/floor/mineral/titanium/blue,
-/area/crew_quarters/toilet)
+/obj/structure/closet/secure_closet/hop,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/item/clothing/suit/ianshirt,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
"bwj" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -33033,34 +30067,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
-"bwm" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
-/area/engine/gravity_generator)
-"bwn" = (
-/obj/structure/closet/radiation,
-/obj/structure/sign/warning/radiation/rad_area{
- pixel_x = -32
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
-"bwo" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/closed/wall,
-/area/engine/gravity_generator)
-"bwp" = (
-/obj/structure/closet/radiation,
-/obj/structure/sign/warning/radiation/rad_area{
- pixel_x = 32
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/gravity_generator)
"bwq" = (
/obj/machinery/teleport/station,
/turf/open/floor/plating,
@@ -33204,17 +30210,18 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bwL" = (
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
+/obj/machinery/camera{
+ c_tag = "Genetics Cloning";
+ dir = 4;
+ network = list("ss13","medbay")
},
-/obj/structure/closet/wardrobe/miner,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
},
-/obj/item/radio/headset/headset_cargo/mining,
-/turf/open/floor/plasteel,
-/area/quartermaster/miningdock)
+/obj/structure/closet/secure_closet/personal/patient,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"bwM" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -33261,10 +30268,6 @@
dir = 9
},
/area/science/research)
-"bwP" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/turf/closed/wall,
-/area/maintenance/port)
"bwQ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -33447,14 +30450,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/aft)
-"bxh" = (
-/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 4;
- name = "4maintenance loot spawner"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"bxi" = (
/obj/machinery/computer/aifixer{
dir = 8
@@ -33680,31 +30675,36 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
-"bxH" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
- },
-/turf/closed/wall,
-/area/engine/gravity_generator)
"bxI" = (
-/obj/machinery/status_display/ai,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/turf/closed/wall,
-/area/engine/gravity_generator)
-"bxJ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/turf/closed/wall,
-/area/engine/gravity_generator)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
"bxK" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/turf/closed/wall,
-/area/engine/gravity_generator)
+/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"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
"bxL" = (
/obj/machinery/camera{
c_tag = "Central Hallway South-East";
@@ -34279,16 +31279,9 @@
/area/security/checkpoint/supply)
"byU" = (
/obj/machinery/light,
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
-"byV" = (
/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)
"byW" = (
@@ -34796,6 +31789,9 @@
/area/hallway/primary/central)
"bAf" = (
/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bAg" = (
@@ -34820,11 +31816,14 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bAj" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=HOP";
+ location = "CHE"
},
-/obj/machinery/disposal/bin,
-/turf/open/floor/plasteel/dark,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bAk" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -35274,6 +32273,9 @@
name = "Station Intercom (General)";
pixel_y = -29
},
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBh" = (
@@ -35317,6 +32319,9 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBm" = (
@@ -35353,6 +32358,9 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBq" = (
@@ -35377,6 +32385,9 @@
pixel_x = -32;
pixel_y = -32
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBr" = (
@@ -35443,8 +32454,16 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBz" = (
-/obj/machinery/vending/cola/space_up,
-/turf/open/floor/plasteel/dark,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/space_up{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBA" = (
/obj/structure/cable{
@@ -35456,20 +32475,15 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/structure/disposalpipe/segment{
+ dir = 9
},
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/hallway/primary/central)
"bBC" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -35517,12 +32531,17 @@
/turf/closed/wall,
/area/quartermaster/miningdock)
"bBI" = (
-/obj/structure/table,
-/obj/item/stack/packageWrap,
-/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/wardrobe/miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/radio/headset/headset_cargo/mining,
/turf/open/floor/plasteel,
-/area/hallway/secondary/service)
+/area/quartermaster/miningdock)
"bBJ" = (
/obj/machinery/firealarm{
pixel_y = 24
@@ -35543,14 +32562,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"bBM" = (
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 4;
- name = "4maintenance loot spawner"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"bBN" = (
/turf/closed/wall,
/area/crew_quarters/heads/cmo)
@@ -35610,18 +32621,6 @@
},
/turf/open/floor/circuit/telecomms/server,
/area/science/server)
-"bBT" = (
-/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)
"bBU" = (
/obj/machinery/atmospherics/pipe/simple{
dir = 9
@@ -35733,6 +32732,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
/turf/open/floor/plating,
/area/maintenance/port/aft)
"bCe" = (
@@ -35878,6 +32880,10 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
+/mob/living/simple_animal/hostile/lizard{
+ name = "Wags-His-Tail";
+ real_name = "Wags-His-Tail"
+ },
/turf/open/floor/plasteel,
/area/janitor)
"bCu" = (
@@ -35929,20 +32935,12 @@
/turf/open/floor/plating,
/area/maintenance/aft)
"bCA" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
+/obj/structure/disposalpipe/trunk{
+ dir = 1
},
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"bCB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -36002,15 +33000,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"bCI" = (
-/obj/effect/turf_decal/tile/green{
- dir = 1
- },
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bCJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -36288,18 +33277,16 @@
/obj/item/storage/box/mousetraps,
/obj/item/storage/box/mousetraps,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table,
/turf/open/floor/plasteel,
/area/janitor)
"bDs" = (
-/obj/effect/turf_decal/tile/green{
- dir = 1
+/obj/structure/sign/poster/contraband/lusty_xenomorph{
+ pixel_x = 32
},
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/obj/effect/turf_decal/tile/green,
+/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
+/area/janitor)
"bDt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -36317,13 +33304,6 @@
/turf/open/floor/plating,
/area/maintenance/aft)
"bDv" = (
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
-"bDw" = (
/obj/structure/table,
/obj/item/flashlight{
pixel_x = 1;
@@ -36349,16 +33329,7 @@
},
/turf/open/floor/plating,
/area/storage/tech)
-"bDx" = (
-/obj/structure/table,
-/obj/item/electronics/apc,
-/obj/item/electronics/airlock,
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/storage/tech)
-"bDy" = (
+"bDw" = (
/obj/structure/table,
/obj/item/screwdriver{
pixel_y = 16
@@ -36366,12 +33337,12 @@
/obj/item/wirecutters,
/turf/open/floor/plating,
/area/storage/tech)
-"bDz" = (
+"bDx" = (
/obj/structure/table,
-/obj/item/aicard,
-/obj/item/aiModule/reset,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/item/electronics/apc,
+/obj/item/electronics/airlock,
+/obj/machinery/light/small{
+ dir = 1
},
/turf/open/floor/plating,
/area/storage/tech)
@@ -36455,9 +33426,14 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bDJ" = (
-/obj/structure/sign/poster/contraband/lizard{
- pixel_x = -32
- },
+/obj/structure/closet/jcloset,
+/obj/item/storage/bag/trash,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/under/maid,
/turf/open/floor/plasteel,
/area/janitor)
"bDK" = (
@@ -36471,17 +33447,11 @@
/turf/open/floor/plasteel,
/area/janitor)
"bDL" = (
-/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
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
},
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/janitor)
"bDM" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
@@ -36495,15 +33465,14 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bDO" = (
-/obj/machinery/vending/snack/orange,
-/obj/machinery/light{
- dir = 1
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/structure/sign/poster/contraband/donut_corp{
+/obj/structure/sign/poster/contraband/hacking_guide{
pixel_y = 32
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/maintenance/aft)
"bDP" = (
/obj/machinery/navbeacon{
codes_txt = "delivery;dir=8";
@@ -36577,13 +33546,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"bDX" = (
-/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)
"bDY" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -36969,8 +33931,12 @@
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
"bER" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/techstorage/rnd,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/storage/tech)
"bES" = (
@@ -37020,11 +33986,11 @@
/turf/open/floor/plating,
/area/storage/tech)
"bEX" = (
+/obj/structure/table,
+/obj/item/aicard,
+/obj/item/aiModule/reset,
/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "1-2"
},
/turf/open/floor/plating,
/area/storage/tech)
@@ -37121,12 +34087,14 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bFk" = (
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bucket,
+/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{
+ pixel_x = 32
},
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/obj/structure/closet,
+/turf/open/floor/plasteel,
+/area/janitor)
"bFl" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -37266,14 +34234,17 @@
/turf/open/floor/plasteel,
/area/medical/sleeper)
"bFC" = (
-/obj/structure/door_assembly/door_assembly_mai,
-/obj/item/electronics/airlock,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/table/wood/poker,
+/obj/item/clothing/mask/cigarette/cigar{
+ pixel_x = 3;
+ pixel_y = 3
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bFD" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -37507,22 +34478,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating/airless,
/area/science/test_area)
-"bGg" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"bGh" = (
-/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)
"bGi" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -37631,12 +34586,8 @@
/turf/open/floor/plating,
/area/storage/tech)
"bGw" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/rnd,
/turf/open/floor/plating,
/area/storage/tech)
"bGx" = (
@@ -37667,14 +34618,20 @@
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bGB" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/structure/table,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/machinery/requests_console{
+ department = "Janitorial";
+ departmentType = 1;
+ pixel_y = -29
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plasteel,
+/area/janitor)
"bGC" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -37835,22 +34792,6 @@
/obj/item/clothing/neck/stethoscope,
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"bGS" = (
-/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)
"bGT" = (
/obj/structure/table,
/obj/item/folder/white,
@@ -37970,21 +34911,19 @@
/turf/open/floor/plasteel/white,
/area/science/research)
"bHg" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/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/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/structure/chair/sofa/right,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/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)
+/area/crew_quarters/fitness)
"bHh" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -38109,16 +35048,6 @@
},
/turf/open/floor/plating,
/area/science/test_area)
-"bHx" = (
-/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)
"bHy" = (
/obj/structure/closet/crate,
/obj/machinery/light/small{
@@ -38150,19 +35079,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
-"bHB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/table,
-/obj/item/storage/box/beakers{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/storage/box/beakers{
- pixel_x = 2;
- pixel_y = 2
- },
-/turf/open/floor/plasteel,
-/area/hallway/secondary/service)
"bHC" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
@@ -38177,18 +35093,6 @@
"bHE" = (
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"bHF" = (
-/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)
"bHG" = (
/obj/structure/rack,
/obj/machinery/light/small{
@@ -38339,18 +35243,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"bHZ" = (
-/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)
"bIa" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -39221,10 +36113,6 @@
},
/turf/closed/wall,
/area/science/storage)
-"bJS" = (
-/obj/structure/sign/departments/restroom,
-/turf/closed/wall,
-/area/crew_quarters/toilet)
"bJT" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/plasteel/white,
@@ -39915,14 +36803,6 @@
luminosity = 2
},
/area/science/test_area)
-"bLs" = (
-/obj/structure/reagent_dispensers/keg/milk,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"bLt" = (
-/obj/structure/reagent_dispensers/keg/gargle,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"bLu" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
@@ -40397,10 +37277,6 @@
},
/turf/open/floor/plating/airless,
/area/science/test_area)
-"bMF" = (
-/obj/structure/reagent_dispensers/keg/mead,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"bMG" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -40532,13 +37408,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bNa" = (
-/obj/machinery/door/firedoor,
-/obj/structure/sign/departments/evac{
- pixel_y = 32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bNb" = (
/obj/item/airlock_painter,
/obj/structure/lattice,
@@ -40805,31 +37674,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/office)
-"bNL" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/plating,
-/area/construction)
-"bNM" = (
-/obj/machinery/light,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/structure/sign/directions/evac{
- dir = 4;
- pixel_y = -25
- },
-/obj/structure/sign/directions/science{
- dir = 4;
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bNN" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -41224,21 +38068,13 @@
/area/quartermaster/office)
"bOM" = (
/obj/structure/table,
-/obj/item/clothing/head/welding{
- pixel_x = -3;
- pixel_y = 7
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
},
-/obj/item/clothing/head/welding{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/item/multitool,
-/obj/item/clothing/glasses/welding,
+/obj/item/pen/fountain,
/turf/open/floor/plasteel,
-/area/engine/atmos)
+/area/tcommsat/computer)
"bON" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -41563,13 +38399,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/virology)
-"bPv" = (
-/obj/machinery/door/firedoor,
-/obj/structure/sign/departments/evac{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bPw" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -41805,36 +38634,6 @@
},
/turf/open/floor/plasteel,
/area/tcommsat/computer)
-"bPR" = (
-/obj/structure/sign/mining{
- pixel_y = 7
- },
-/turf/closed/wall,
-/area/quartermaster/miningdock)
-"bPS" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/sign/departments/custodian{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
-"bPT" = (
-/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)
"bPU" = (
/obj/item/shard,
/turf/open/floor/plating,
@@ -42241,21 +39040,6 @@
},
/turf/open/floor/engine,
/area/science/misc_lab)
-"bQX" = (
-/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)
"bQY" = (
/obj/structure/table/reinforced,
/obj/item/integrated_circuit_printer,
@@ -42276,50 +39060,6 @@
/obj/item/stack/sheet/metal/ten,
/turf/open/floor/plasteel/white,
/area/science/circuit)
-"bRb" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/structure/sign/departments/engineering{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"bRc" = (
-/obj/structure/sign/poster/contraband/space_cola{
- pixel_x = -32
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"bRd" = (
-/obj/structure/sign/poster/contraband/space_up{
- pixel_x = -32;
- pixel_y = 32
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"bRe" = (
-/obj/machinery/computer/slot_machine{
- balance = 15;
- money = 500;
- pixel_x = -5
- },
-/obj/structure/sign/poster/contraband/robust_softdrinks{
- pixel_x = -32
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"bRf" = (
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
"bRg" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -42817,14 +39557,6 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"bSr" = (
-/obj/structure/sign/poster/official/fruit_bowl{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/white/corner{
- dir = 1
- },
-/area/hallway/primary/starboard)
"bSs" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
@@ -42839,18 +39571,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/tcommsat/computer)
-"bSu" = (
-/obj/machinery/camera{
- c_tag = "Starboard Primary Hallway 2"
- },
-/obj/structure/sign/poster/contraband/eat{
- pixel_y = 32;
- poster_item_desc = "This poster promotes obesity, it also promotes giving the Chef a reason to keep their job."
- },
-/turf/open/floor/plasteel/white/corner{
- dir = 1
- },
-/area/hallway/primary/starboard)
"bSv" = (
/obj/machinery/camera{
c_tag = "Construction Area";
@@ -42954,13 +39674,21 @@
/area/engine/atmos)
"bSF" = (
/obj/structure/table,
-/obj/item/paper_bin,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 7
},
-/obj/item/pen/fountain,
+/obj/item/clothing/head/welding{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/multitool,
+/obj/item/clothing/glasses/welding,
/turf/open/floor/plasteel,
-/area/tcommsat/computer)
+/area/engine/atmos)
"bSG" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -43001,12 +39729,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
-"bSL" = (
-/obj/structure/sign/poster/contraband/red_rum{
- pixel_y = 32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bSM" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
@@ -43022,15 +39744,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
-"bSO" = (
-/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)
"bSP" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
dir = 4
@@ -43132,15 +39845,6 @@
/obj/machinery/vending/medical,
/turf/open/floor/plasteel/white,
/area/medical/virology)
-"bSZ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
- },
-/obj/structure/sign/poster/contraband/have_a_puff{
- pixel_y = -32
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
"bTa" = (
/obj/machinery/door/window/northleft{
dir = 4;
@@ -43322,13 +40026,6 @@
/obj/item/pen,
/turf/open/floor/plasteel/white,
/area/science/circuit)
-"bTq" = (
-/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)
"bTr" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -43337,68 +40034,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"bTs" = (
-/obj/structure/sign/poster/official/help_others{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
-"bTt" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor/plating,
-/area/maintenance/port)
-"bTu" = (
-/obj/machinery/recharge_station,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/sign/poster/official/state_laws{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/science/robotics/mechbay)
-"bTv" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/structure/sign/poster/official/ian{
- pixel_x = 32;
- pixel_y = 32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
-"bTw" = (
-/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)
-"bTx" = (
-/obj/effect/turf_decal/bot,
-/obj/structure/sign/poster/official/pda_ad{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
-"bTy" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/sign/poster/contraband/hacking_guide{
- pixel_y = 32
- },
-/turf/open/floor/plating,
-/area/maintenance/aft)
"bTz" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -43783,6 +40418,10 @@
/obj/structure/cable{
icon_state = "0-4"
},
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
/turf/open/floor/plating,
/area/maintenance/port/aft)
"bUu" = (
@@ -43807,21 +40446,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"bUw" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/sign/poster/contraband/free_drone{
- pixel_y = 32
- },
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
"bUx" = (
/obj/structure/disposalpipe/junction/yjunction{
dir = 1
@@ -43851,23 +40475,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"bUA" = (
-/obj/machinery/door/poddoor/preopen{
- id = "Engineering";
- name = "engineering security door"
- },
-/obj/effect/turf_decal/delivery,
-/obj/machinery/shower{
- dir = 8
- },
-/obj/structure/sign/warning/enginesafety{
- pixel_x = 32
- },
-/obj/structure/sign/poster/official/safety_eye_protection{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"bUB" = (
/obj/machinery/power/apc{
areastring = "/area/tcommsat/computer";
@@ -44029,13 +40636,6 @@
},
/turf/open/floor/engine/n2o,
/area/engine/atmos)
-"bUX" = (
-/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)
"bUY" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -44253,10 +40853,6 @@
},
/turf/open/space,
/area/space/nearstation)
-"bVw" = (
-/obj/structure/sign/poster/official/safety_eye_protection,
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
"bVx" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on,
/turf/open/floor/plating/airless,
@@ -44330,19 +40926,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"bVH" = (
-/obj/machinery/camera{
- c_tag = "Engineering Storage";
- dir = 4
- },
-/obj/machinery/rnd/production/protolathe/department/engineering,
-/obj/structure/sign/poster/contraband/power{
- desc = "Lord Singuloth must feed. Annoyingly, it's really easy for people to sabotage containment and let Lord Singuloth eat the entire station.. For this reason, Nanotrasen prefers Supermatter reactors.";
- pixel_x = -32;
- poster_item_desc = "This poster depicts Lord Singuloth. Nanotrasen doesn't approve. Nanotrasen wants Supermatter over Singularities, as they are usually much safer."
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"bVI" = (
/turf/closed/wall/r_wall,
/area/tcommsat/server)
@@ -44353,12 +40936,6 @@
/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel,
/area/engine/break_room)
-"bVL" = (
-/obj/machinery/shower{
- dir = 8
- },
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
"bVM" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
@@ -44542,13 +41119,6 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/medical/virology)
-"bWk" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel,
-/area/quartermaster/office)
"bWl" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -45090,17 +41660,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/science/circuit)
-"bXu" = (
-/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)
"bXv" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -45576,13 +42135,21 @@
/turf/open/floor/plasteel,
/area/tcommsat/computer)
"bYG" = (
-/obj/structure/chair{
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/obj/machinery/light,
-/obj/effect/landmark/start/assistant,
+/obj/structure/sign/departments/engineering{
+ pixel_y = -32
+ },
/turf/open/floor/plasteel,
-/area/quartermaster/office)
+/area/hallway/primary/aft)
"bYH" = (
/turf/closed/wall,
/area/engine/break_room)
@@ -45754,22 +42321,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/break_room)
-"bZf" = (
-/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)
"bZg" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -46166,15 +42717,6 @@
},
/turf/open/floor/plasteel,
/area/science/misc_lab)
-"cab" = (
-/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)
"cac" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
@@ -46217,18 +42759,6 @@
},
/turf/open/floor/circuit/telecomms/mainframe,
/area/tcommsat/server)
-"caj" = (
-/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)
"cak" = (
/obj/machinery/telecomms/hub/preset,
/obj/effect/turf_decal/tile/neutral{
@@ -46266,18 +42796,6 @@
},
/turf/open/floor/plasteel/dark,
/area/tcommsat/computer)
-"cam" = (
-/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)
"can" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
@@ -46376,20 +42894,15 @@
/area/hallway/primary/aft)
"caw" = (
/obj/structure/table,
-/obj/item/storage/box/lights/mixed,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
},
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
/turf/open/floor/plasteel,
-/area/engine/engineering)
+/area/engine/break_room)
"cax" = (
/obj/structure/closet/wardrobe/black,
/obj/effect/decal/cleanable/cobweb,
@@ -46426,18 +42939,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/checkpoint/engineering)
-"caB" = (
-/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)
"caC" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -46895,6 +43396,21 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cbw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cbx" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -46908,7 +43424,7 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cbx" = (
+"cby" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
},
@@ -46923,11 +43439,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cby" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
"cbz" = (
/obj/machinery/vending/wardrobe/atmos_wardrobe,
/turf/open/floor/plasteel,
@@ -47122,11 +43633,6 @@
},
/turf/open/floor/plasteel,
/area/science/misc_lab)
-"cbX" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/obj/machinery/atmospherics/miner/carbon_dioxide,
-/turf/open/floor/engine/co2,
-/area/engine/atmos)
"cbY" = (
/obj/structure/table/reinforced,
/obj/item/multitool,
@@ -47180,10 +43686,13 @@
/turf/open/space,
/area/solar/port/aft)
"ccd" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/machinery/atmospherics/miner/nitrogen,
-/turf/open/floor/engine/n2,
-/area/engine/atmos)
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"cce" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -47345,13 +43854,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"ccu" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
"ccv" = (
/obj/machinery/firealarm{
dir = 4;
@@ -47393,9 +43895,9 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"ccB" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/machinery/atmospherics/miner/oxygen,
-/turf/open/floor/engine/o2,
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
+/turf/open/floor/engine/co2,
/area/engine/atmos)
"ccC" = (
/obj/machinery/air_sensor/atmos/carbon_tank,
@@ -47427,11 +43929,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/aft)
-"ccH" = (
-/obj/structure/table,
-/obj/item/paper/fluff/holodeck/disclaimer,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"ccI" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -47517,20 +44014,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/science/misc_lab)
-"ccS" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/window,
-/obj/structure/sign/poster/official/high_class_martini{
- pixel_x = -32
- },
-/obj/effect/landmark/start/assistant,
-/obj/structure/chair/sofa/left{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"ccT" = (
/obj/machinery/light{
dir = 4
@@ -47618,30 +44101,17 @@
/turf/open/floor/plasteel,
/area/tcommsat/computer)
"cdh" = (
-/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"
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
-/area/space/nearstation)
-"cdi" = (
-/obj/structure/grille,
-/obj/structure/lattice,
-/turf/open/floor/plating,
-/area/space/nearstation)
+/area/maintenance/port/aft)
"cdj" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/item/cartridge/atmos,
-/turf/open/floor/engine,
-/area/engine/engineering)
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"cdk" = (
/obj/machinery/computer/atmos_alert,
/obj/effect/turf_decal/tile/neutral{
@@ -47880,13 +44350,6 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
-"cdM" = (
-/obj/structure/window,
-/obj/structure/chair/sofa/right{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"cdN" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -47901,15 +44364,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"cdP" = (
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"cdQ" = (
/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/cobweb,
@@ -47969,13 +44423,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/research)
-"cdY" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"cdZ" = (
/obj/machinery/telecomms/processor/preset_two,
/turf/open/floor/plasteel/dark/telecomms,
@@ -48050,18 +44497,22 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"cek" = (
-/obj/structure/closet/wardrobe/grey,
-/obj/machinery/requests_console{
- department = "Locker Room";
- pixel_x = -32
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/sign/warning/enginesafety{
+ pixel_x = 32
+ },
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_y = -32
},
-/obj/item/clothing/under/assistantformal,
-/obj/item/clothing/under/assistantformal,
-/obj/item/clothing/under/assistantformal,
-/obj/item/clothing/under/color/grey,
-/obj/item/clothing/under/color/grey,
/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/area/engine/engineering)
"cel" = (
/obj/machinery/door/poddoor/preopen{
id = "Engineering";
@@ -48138,18 +44589,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"ceu" = (
-/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
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"cev" = (
/obj/effect/spawner/structure/window,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -48405,16 +44844,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cff" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"cfg" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -48557,33 +44986,17 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cfA" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"cfB" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"cfC" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue{
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/overalls,
+/obj/item/radio/headset/headset_eng,
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/engine/engineering)
"cfD" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/maintenance{
@@ -48596,18 +45009,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cfE" = (
-/obj/machinery/button/door{
- desc = "Bolts the doors to the Private Study.";
- id = "PrivateStudy";
- name = "Private Study Lock";
- pixel_x = 25;
- pixel_y = 25;
- req_access_txt = "";
- req_one_access_txt = "28;63"
- },
-/turf/open/floor/wood,
-/area/library)
"cfF" = (
/obj/machinery/suit_storage_unit/ce,
/obj/effect/turf_decal/stripes/line{
@@ -48642,15 +45043,20 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
"cfI" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
},
-/obj/structure/disposalpipe/segment{
- dir = 9
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
-/obj/effect/landmark/start/assistant,
+/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/overalls,
+/obj/item/radio/headset/headset_eng,
/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/area/engine/engineering)
"cfJ" = (
/obj/machinery/light/small{
dir = 1
@@ -48714,14 +45120,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"cfS" = (
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 8;
- name = "8maintenance loot spawner"
- },
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
"cfT" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 9
@@ -48734,17 +45132,6 @@
},
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
-"cfV" = (
-/obj/structure/table,
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -22
- },
-/obj/item/stack/packageWrap,
-/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
-/turf/open/floor/plasteel,
-/area/engine/break_room)
"cfW" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -48896,12 +45283,13 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cgp" = (
-/obj/structure/rack,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 4;
- name = "4maintenance loot spawner"
+/obj/structure/cable{
+ icon_state = "2-8"
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/closet/toolcloset,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cgq" = (
@@ -48938,8 +45326,13 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cgu" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/spawner/structure/window,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cgv" = (
@@ -49037,17 +45430,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cgH" = (
-/obj/structure/closet/secure_closet/engineering_personal,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/item/clothing/under/overalls,
-/obj/item/clothing/under/overalls,
-/obj/item/radio/headset/headset_eng,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cgI" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -49075,34 +45457,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"cgM" = (
-/obj/structure/closet/secure_closet/engineering_personal,
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/item/clothing/under/overalls,
-/obj/item/clothing/under/overalls,
-/obj/item/radio/headset/headset_eng,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"cgN" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
-/obj/structure/closet/secure_closet/engineering_electrical,
-/obj/item/storage/toolbox/artistic{
- icon_state = "yellow";
- item_state = "toolbox_yellow";
- name = "Cable Toolbox";
- pixel_y = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cgO" = (
/obj/structure/rack,
/obj/item/lighter,
@@ -49123,19 +45477,6 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
-"cgP" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/structure/closet/secure_closet/engineering_welding,
-/obj/item/clothing/glasses/welding,
-/obj/item/clothing/glasses/welding,
-/obj/item/clothing/glasses/welding,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cgQ" = (
/obj/machinery/camera{
c_tag = "Engineering East";
@@ -49574,11 +45915,6 @@
/obj/structure/lattice/catwalk,
/turf/open/space,
/area/solar/port/aft)
-"chM" = (
-/obj/structure/closet/secure_closet/engineering_personal,
-/obj/item/radio/headset/headset_eng,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"chN" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -49638,22 +45974,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"chU" = (
-/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)
"chV" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -49672,22 +45992,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"chW" = (
-/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)
"chX" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -49704,10 +46008,6 @@
/obj/machinery/shieldgen,
/turf/open/floor/plating,
/area/engine/engineering)
-"chZ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
-/area/crew_quarters/locker)
"cia" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -49720,14 +46020,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cib" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 8;
- name = "8maintenance loot spawner"
- },
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
"cic" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -49794,10 +46086,6 @@
"cig" = (
/turf/closed/wall,
/area/engine/engineering)
-"cih" = (
-/obj/effect/spawner/lootdrop/keg,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"cii" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -49853,13 +46141,6 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
-"cil" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/light_construct{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"cim" = (
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
@@ -49931,12 +46212,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
-"ciw" = (
-/obj/structure/light_construct{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"cix" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/closed/wall/r_wall,
@@ -50026,9 +46301,11 @@
},
/area/maintenance/starboard/aft)
"ciK" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "12"
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
@@ -50116,27 +46393,24 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"ciV" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/light_construct{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"ciW" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
/area/engine/engineering)
"ciX" = (
-/obj/machinery/light{
- dir = 1
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/rods/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 30
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel,
+/obj/item/lightreplacer,
+/obj/item/lightreplacer,
+/turf/open/floor/plating,
/area/engine/engineering)
"ciY" = (
/obj/machinery/door/poddoor{
@@ -50612,11 +46886,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
-"cjZ" = (
-/obj/structure/table,
-/obj/machinery/cell_charger,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cka" = (
/obj/machinery/door/poddoor/preopen{
id = "testlab";
@@ -50727,21 +46996,9 @@
/area/maintenance/starboard/aft)
"ckp" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 3;
- name = "3maintenance loot spawner"
- },
+/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"ckq" = (
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/rods/fifty,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"ckr" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -50834,14 +47091,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"ckE" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/door/airlock/maintenance{
- name = "Locker Room Maintenance";
- req_access_txt = "12"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
"ckF" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
@@ -50866,15 +47115,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"ckJ" = (
-/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)
"ckK" = (
/obj/structure/tank_dispenser,
/obj/effect/turf_decal/bot{
@@ -50939,27 +47179,10 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
-"ckP" = (
-/obj/structure/noticeboard{
- pixel_y = -27
- },
-/obj/structure/chair/sofa/right{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"ckQ" = (
/obj/structure/closet/cardboard,
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
-"ckR" = (
-/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)
"ckS" = (
/obj/structure/closet/cardboard,
/turf/open/floor/plating,
@@ -51147,10 +47370,13 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cls" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
},
-/turf/closed/wall,
+/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"clt" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -51284,12 +47510,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engine_smes)
-"clH" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"clI" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -51304,33 +47524,22 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/engine/engineering)
-"clK" = (
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/rods/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/electronics/airlock,
-/obj/item/electronics/airlock,
-/obj/item/stock_parts/cell/high/plus,
-/obj/item/stack/sheet/mineral/plasma{
- amount = 30
- },
-/obj/item/lightreplacer,
-/obj/item/lightreplacer,
-/turf/open/floor/plating,
-/area/engine/engineering)
-"clL" = (
-/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/coin/silver,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"clM" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/coin/silver,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/structure/table,
+/obj/item/storage/box/lights/mixed,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"clN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/yellow{
@@ -51339,21 +47548,16 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"clO" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/landmark/start/janitor,
-/mob/living/simple_animal/hostile/lizard{
- name = "Wags-His-Tail";
- real_name = "Wags-His-Tail"
- },
-/turf/open/floor/plasteel,
-/area/janitor)
-"clP" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/grey,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/assistantformal,
+/obj/machinery/camera{
+ c_tag = "Dorms East - Holodeck";
dir = 4
},
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"clQ" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -51361,9 +47565,14 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"clR" = (
-/obj/machinery/portable_atmospherics/pump,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"clS" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/machinery/rnd/production/techfab/department/security,
@@ -51374,30 +47583,21 @@
/turf/open/floor/plasteel,
/area/security/main)
"clT" = (
-/obj/machinery/portable_atmospherics/scrubber,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
"clU" = (
/turf/open/floor/engine/n2,
/area/engine/atmos)
"clV" = (
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
+/turf/open/floor/engine/o2,
+/area/engine/atmos)
"clW" = (
/turf/open/floor/engine/o2,
/area/engine/atmos)
-"clX" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
"clY" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/engine/air,
@@ -51405,28 +47605,11 @@
"clZ" = (
/turf/open/floor/engine/air,
/area/engine/atmos)
-"cma" = (
-/obj/machinery/hydroponics/constructable,
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = 29
- },
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"cmb" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
-"cmc" = (
-/obj/machinery/camera{
- c_tag = "Starboard Primary Hallway"
- },
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"cmd" = (
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
@@ -51491,26 +47674,19 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"cmm" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/condiment/flour,
-/obj/item/kitchen/rollingpin,
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/kitchen)
-"cmn" = (
-/obj/structure/table/wood,
-/obj/item/storage/pill_bottle/dice,
-/turf/open/floor/plasteel,
-/area/security/prison)
+/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,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"cmp" = (
-/obj/structure/table/wood,
-/obj/item/toy/cards/deck,
-/turf/open/floor/plasteel,
-/area/security/prison)
"cmq" = (
/obj/effect/landmark/xeno_spawn,
/obj/structure/disposalpipe/segment,
@@ -51519,18 +47695,11 @@
},
/area/maintenance/starboard/aft)
"cmr" = (
-/obj/structure/chair/comfy/brown{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"cms" = (
-/obj/structure/chair/comfy/brown{
- color = "#66b266";
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
"cmt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -51637,13 +47806,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cmE" = (
-/obj/structure/chair/comfy/brown{
- color = "#596479";
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"cmF" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -51672,34 +47834,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cmH" = (
-/obj/item/electropack/shockcollar,
-/obj/item/assembly/signaler,
-/turf/open/floor/plating,
-/area/security/prison)
-"cmI" = (
-/obj/structure/bed,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/plating,
-/area/security/prison)
-"cmJ" = (
-/obj/machinery/door/airlock/external{
- name = "External Access";
- req_access_txt = "13"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"cmK" = (
-/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/starboard/aft)
"cmL" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -52014,6 +48148,13 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"cnJ" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"cnK" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -52196,6 +48337,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
@@ -52248,6 +48393,9 @@
/obj/effect/turf_decal/stripes/line{
dir = 9
},
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cow" = (
@@ -52263,25 +48411,30 @@
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cox" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"coy" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/effect/turf_decal/stripes/line{
dir = 5
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"coz" = (
@@ -52294,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" = (
@@ -52415,6 +48571,32 @@
/obj/machinery/meter,
/turf/open/floor/engine,
/area/science/misc_lab)
+"coZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpa" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/closet/secure_closet/engineering_welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cpb" = (
/obj/structure/closet/emcloset,
/obj/machinery/light/small{
@@ -52467,12 +48649,17 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/chair/office/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpk" = (
@@ -52480,6 +48667,12 @@
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpm" = (
@@ -52498,6 +48691,7 @@
"cpn" = (
/obj/machinery/light,
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpo" = (
@@ -52532,6 +48726,11 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"cps" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cpt" = (
/obj/structure/table,
/obj/item/clothing/gloves/color/yellow,
@@ -52661,37 +48860,54 @@
/obj/effect/turf_decal/stripes/line{
dir = 10
},
+/obj/structure/table,
+/obj/item/stock_parts/cell/high/plus,
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpT" = (
-/obj/structure/table,
/obj/item/radio/intercom{
name = "Station Intercom (General)";
pixel_y = -35
},
-/obj/item/stock_parts/cell/high/plus,
/obj/effect/turf_decal/stripes/line{
dir = 6
},
+/obj/structure/closet/secure_closet/engineering_electrical,
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpU" = (
-/obj/structure/chair/office/light{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -24
- },
-/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/engine/engine_smes)
+"cpV" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Storage";
+ dir = 4
+ },
+/obj/machinery/rnd/production/protolathe/department/engineering,
+/obj/structure/sign/poster/contraband/power{
+ desc = "Lord Singuloth must feed. Annoyingly, it's really easy for people to sabotage containment and let Lord Singuloth eat the entire station.. For this reason, Nanotrasen prefers Supermatter reactors.";
+ pixel_x = -32;
+ poster_item_desc = "This poster depicts Lord Singuloth. Nanotrasen doesn't approve. Nanotrasen wants Supermatter over Singularities, as they are usually much safer."
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cpW" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"cpX" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cpY" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -52986,6 +49202,13 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
+"cqJ" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space,
+/area/solar/starboard/aft)
"cqK" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance{
@@ -53000,6 +49223,15 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"cqM" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"cqN" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -53103,6 +49335,14 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
+"cri" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"crk" = (
/obj/structure/lattice/catwalk,
/turf/open/space,
@@ -53119,9 +49359,11 @@
/turf/open/floor/plating,
/area/maintenance/port/aft)
"crn" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating/airless,
-/area/engine/engineering)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
"cro" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -53439,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
@@ -53482,6 +49728,12 @@
/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";
@@ -53584,6 +49836,13 @@
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
+"csZ" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/space,
+/area/solar/starboard/aft)
"cta" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -55216,7 +51475,6 @@
pixel_x = -3;
pixel_y = 3
},
-/obj/item/storage/box/handcuffs,
/obj/item/storage/box/flashbangs{
pixel_x = 3;
pixel_y = -3
@@ -55326,6 +51584,14 @@
},
/turf/open/floor/plating,
/area/security/processing)
+"cxW" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"cxY" = (
/obj/machinery/camera{
c_tag = "Arrivals Escape Pod 1";
@@ -55383,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
@@ -55544,6 +51817,10 @@
},
/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
@@ -55850,6 +52127,13 @@
/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"cAz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"cAA" = (
/obj/machinery/light/small{
dir = 1
@@ -55924,6 +52208,11 @@
/obj/machinery/light/small,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"cAL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/janitor,
+/turf/open/floor/plasteel,
+/area/janitor)
"cAN" = (
/obj/machinery/door/airlock/maintenance{
name = "Security Maintenance";
@@ -56148,6 +52437,25 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
+"cBn" = (
+/obj/structure/closet,
+/obj/item/stack/tile/carpet/royalblue{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/green{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/purple{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/orange{
+ amount = 24
+ },
+/obj/item/stack/tile/wood{
+ amount = 24
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"cBo" = (
/obj/effect/landmark/event_spawn,
/turf/open/floor/wood,
@@ -56361,6 +52669,16 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/hallway)
+"cBT" = (
+/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/starboard/aft)
"cBV" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{
@@ -56435,6 +52753,15 @@
},
/turf/closed/wall,
/area/security/detectives_office)
+"cCn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
"cCo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -57274,6 +53601,21 @@
/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
@@ -57380,6 +53722,14 @@
},
/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"
@@ -57428,6 +53778,11 @@
/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
@@ -57960,6 +54315,29 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/entry)
+"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/machinery/vending/kink,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"cJl" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
"cMm" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
@@ -58181,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
@@ -58639,6 +55021,24 @@
},
/turf/open/floor/plasteel,
/area/science/circuit)
+"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/security/prison)
"dfL" = (
/obj/structure/reagent_dispensers/keg/gargle,
/turf/open/floor/wood,
@@ -58646,10 +55046,66 @@
"dgz" = (
/turf/closed/wall,
/area/crew_quarters/cryopod)
+"djq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"djB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"dok" = (
+/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)
+"dqD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/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
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-03"
+ },
+/turf/open/floor/plasteel/white/corner{
+ 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
@@ -58662,12 +55118,108 @@
},
/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)
@@ -58675,12 +55227,51 @@
/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{
@@ -58690,9 +55281,87 @@
/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)
+"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;
@@ -58701,17 +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)
+"eIe" = (
+/obj/structure/table/wood,
+/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)
"eRz" = (
/obj/structure/lattice,
/obj/structure/grille,
/turf/open/space/basic,
/area/space/nearstation)
+"eTc" = (
+/obj/item/flashlight/lamp/green{
+ pixel_x = -3;
+ pixel_y = 22
+ },
+/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/plating,
+/area/maintenance/port)
+"eUR" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/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,
@@ -58727,12 +55469,93 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
+"eWl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"eWv" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/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/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)
+"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/hallway/primary/starboard)
"flc" = (
/obj/structure/table/reinforced,
/obj/item/storage/fancy/donut_box,
@@ -58751,10 +55574,20 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/service)
+"fpd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/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
@@ -58764,17 +55597,161 @@
},
/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)
+"fyr" = (
+/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)
+"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
+ },
+/obj/structure/table,
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"fIK" = (
+/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)
+"fJA" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"fKl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/science/circuit)
+"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
@@ -58784,12 +55761,73 @@
},
/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"
@@ -58799,18 +55837,197 @@
"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";
@@ -58827,6 +56044,29 @@
},
/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"
@@ -58837,6 +56077,16 @@
/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,
@@ -58844,7 +56094,120 @@
dir = 8
},
/area/medical/sleeper)
-"hcE" = (
+"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{
@@ -58861,23 +56224,36 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"hEm" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-22"
+"hYH" = (
+/obj/machinery/door/airlock/security{
+ name = "Labor Shuttle";
+ req_access_txt = "2"
},
-/turf/open/floor/plasteel/white,
-/area/medical/medbay/central)
-"hRa" = (
-/obj/structure/table/reinforced,
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/cell_charger{
- pixel_y = 5
+/obj/structure/cable{
+ icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel/white,
-/area/science/circuit)
+/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)
@@ -58886,25 +56262,89 @@
/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{
@@ -58912,6 +56352,54 @@
},
/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";
+ name = "theatre RC";
+ pixel_x = -32
+ },
+/obj/item/reagent_containers/food/snacks/baguette,
+/obj/item/toy/dummy,
+/obj/item/lipstick/random{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/lipstick/random{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
+"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
+ },
+/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)
"iEJ" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod One"
@@ -58921,6 +56409,29 @@
},
/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"
@@ -58929,6 +56440,49 @@
/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)
+"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
@@ -58937,6 +56491,21 @@
/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"
@@ -58949,6 +56518,22 @@
},
/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
@@ -58963,10 +56548,56 @@
},
/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
@@ -58981,6 +56612,39 @@
},
/turf/open/floor/plasteel/white,
/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,
+/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,
@@ -58997,6 +56661,13 @@
},
/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{
@@ -59017,6 +56688,75 @@
},
/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)
+"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/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
@@ -59026,6 +56766,19 @@
},
/turf/open/floor/plasteel,
/area/science/circuit)
+"jTp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/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"
@@ -59035,6 +56788,78 @@
},
/turf/open/floor/plating,
/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/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"
@@ -59044,18 +56869,49 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
-"knx" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/engineering{
- name = "Gravity Generator";
- req_access_txt = "11"
- },
-/obj/effect/turf_decal/delivery,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
+"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/engine/gravity_generator)
+/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,
@@ -59064,6 +56920,44 @@
},
/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,
@@ -59072,6 +56966,86 @@
/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{
@@ -59079,6 +57053,26 @@
},
/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)
"kQq" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
@@ -59090,6 +57084,68 @@
/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
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
+"lmT" = (
+/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)
"lnu" = (
/obj/structure/chair/wood/normal{
dir = 4
@@ -59098,26 +57154,232 @@
icon_state = "wood-broken6"
},
/area/maintenance/bar)
+"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/construction/mining/aux_base)
+"lDF" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 1
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"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{
@@ -59133,6 +57395,28 @@
/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/gravity_generator)
+"mvB" = (
+/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)
+"mwm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
"mBv" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -59144,6 +57428,82 @@
},
/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"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/free_drone{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"mHC" = (
+/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)
+"mHW" = (
+/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)
+"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
@@ -59151,6 +57511,35 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"mOL" = (
+/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)
+"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,
@@ -59163,14 +57552,149 @@
/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,
+/area/maintenance/port)
+"nlN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/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";
@@ -59182,10 +57706,31 @@
},
/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"
@@ -59197,16 +57742,55 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"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)
-"nWU" = (
-/obj/machinery/smartfridge/organ/preloaded,
-/turf/closed/wall,
-/area/medical/sleeper)
+"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
@@ -59217,26 +57801,263 @@
/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";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"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";
+ name = "Private Study Lock";
+ pixel_x = 25;
+ pixel_y = 25;
+ req_access_txt = "";
+ req_one_access_txt = "28;63"
+ },
+/turf/open/floor/wood,
+/area/library)
+"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/carpet,
+/area/crew_quarters/dorms)
+"oJs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engine_smes)
"oKh" = (
/obj/structure/chair/wood/normal{
dir = 8
},
/turf/open/floor/wood,
/area/maintenance/bar)
+"oKy" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"oLI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"oNq" = (
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/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/security/prison)
+"oSk" = (
+/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)
+"oSW" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/space/nearstation)
+"oTI" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/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)
"oUh" = (
/obj/structure/disposalpipe/trunk{
dir = 1
@@ -59244,6 +58065,138 @@
/obj/machinery/disposal/bin,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"oVS" = (
+/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)
+"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/wood,
+/area/library)
+"oZl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/sign/departments/security{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"pbw" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/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
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"pet" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/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
@@ -59253,6 +58206,41 @@
},
/turf/open/floor/plasteel,
/area/science/mixing)
+"puG" = (
+/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)
+"pAE" = (
+/obj/machinery/vending/cola/space_up,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"pGr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"pHl" = (
/obj/structure/table,
/obj/item/storage/box/beakers{
@@ -59279,6 +58267,16 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
+"pIA" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/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;
@@ -59286,49 +58284,7 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal)
-"qeQ" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/science/circuit)
-"qoW" = (
-/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)
-"quT" = (
-/obj/structure/lattice,
-/obj/structure/grille/broken,
-/turf/open/space/basic,
-/area/space/nearstation)
-"qIw" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/cryopod)
-"qQP" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-14"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
-"rcD" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/science/circuit)
-"rfW" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
-"rjA" = (
+"pMv" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -59337,23 +58293,463 @@
},
/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/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/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
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"qIw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/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/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"qKJ" = (
+/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)
+"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/plating,
+/area/crew_quarters/fitness)
+"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/crew_quarters/dorms)
+"qPJ" = (
+/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)
+"qRq" = (
+/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)
+"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
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"qYi" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/prison)
+"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)
+"rak" = (
+/obj/structure/bed,
+/obj/item/bedsheet/random,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"rcD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/circuit)
+"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)
+"rgv" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/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/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)
"rBq" = (
/obj/item/clothing/head/kitty,
/obj/item/clothing/under/maid,
/obj/item/clothing/mask/muzzle,
/turf/open/floor/plating,
/area/maintenance/bar)
+"rEQ" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"rJv" = (
+/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)
"rKP" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
/turf/open/floor/plating,
/area/construction)
+"rKZ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/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,
@@ -59376,6 +58772,29 @@
},
/turf/open/floor/plasteel,
/area/science/mixing)
+"rTD" = (
+/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)
+"rXv" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"saK" = (
/obj/structure/closet/crate,
/obj/item/target/alien,
@@ -59388,6 +58807,43 @@
/obj/item/gun/energy/laser/practice,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"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 = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"shX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"siG" = (
+/obj/machinery/vending/clothing,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"slk" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -59400,16 +58856,101 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plating,
/area/maintenance/department/medical/morgue)
+"sno" = (
+/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)
+"srw" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"svt" = (
+/obj/structure/target_stake,
+/obj/item/target/syndicate,
+/turf/open/floor/plating,
+/area/security/prison)
+"sxe" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"sxs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"szF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"szH" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/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)
+"sEJ" = (
+/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)
"sLv" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance,
@@ -59425,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)
@@ -59436,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
@@ -59445,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";
@@ -59463,17 +59069,54 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
/area/hallway/secondary/service)
+"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)
-"tlO" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "applebush"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+"tpb" = (
+/turf/open/floor/plating/foam,
+/area/space/nearstation)
"tqg" = (
/obj/machinery/cryopod{
dir = 4
@@ -59489,10 +59132,100 @@
},
/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"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"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,
@@ -59503,11 +59236,39 @@
},
/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,
@@ -59518,12 +59279,52 @@
},
/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";
@@ -59536,18 +59337,128 @@
},
/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,
@@ -59558,12 +59469,25 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
-"urE" = (
-/obj/machinery/autolathe{
- name = "public autolathe"
+"uqO" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/contraband/fun_police{
+ pixel_x = 32
},
/turf/open/floor/plasteel,
-/area/quartermaster/office)
+/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{
@@ -59580,10 +59504,75 @@
},
/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)
+"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/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/dorms)
"uNu" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -59594,6 +59583,26 @@
},
/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{
@@ -59601,6 +59610,31 @@
},
/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"
@@ -59613,20 +59647,23 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"uZN" = (
-/obj/machinery/light{
+"uWs" = (
+/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
dir = 1
},
-/obj/effect/turf_decal/tile/blue{
- dir = 4
+/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
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-03"
- },
-/turf/open/floor/plasteel/white/corner{
- dir = 1
- },
-/area/hallway/secondary/entry)
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
"vbD" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command/glass{
@@ -59638,6 +59675,48 @@
},
/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,
@@ -59646,11 +59725,43 @@
},
/turf/open/floor/wood,
/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{
@@ -59675,6 +59786,36 @@
},
/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/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,
@@ -59683,6 +59824,48 @@
/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 "
@@ -59696,17 +59879,104 @@
"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
+ },
+/obj/structure/closet/crate/wooden/toy,
+/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
+ },
+/obj/structure/sign/poster/contraband/clown{
+ pixel_y = -32
+ },
+/obj/item/megaphone/clown,
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"wcX" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"wdQ" = (
+/obj/structure/fireplace,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 23
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"wfR" = (
/obj/item/electropack/shockcollar,
/obj/item/assembly/signaler,
/turf/open/floor/plating,
/area/maintenance/bar)
+"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)
@@ -59751,18 +60021,154 @@
},
/turf/closed/wall,
/area/hallway/secondary/service)
+"wCs" = (
+/obj/machinery/door/airlock{
+ name = "Theatre Backstage";
+ req_access_txt = "46"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/maintenance/fore)
+"wDQ" = (
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "applebush"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
"wHz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
},
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
+"wJq" = (
+/obj/effect/landmark/carpspawn,
+/turf/open/space/basic,
+/area/space)
+"wLe" = (
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"wNd" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"wSg" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/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,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"wVp" = (
+/obj/machinery/camera{
+ c_tag = "Locker Room South";
+ dir = 8
+ },
+/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/maintenance/starboard/fore)
+"xah" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/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)
+"xgY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"xgZ" = (
+/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)
"xhV" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -59783,31 +60189,154 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/service)
+"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)
+"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/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"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"xzU" = (
+/obj/structure/reagent_dispensers/keg/semen,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"xCs" = (
+/obj/structure/chair/sofa,
+/obj/structure/window{
+ dir = 1
+ },
+/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
},
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"xFY" = (
-/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)
"xIa" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"xIU" = (
+/obj/item/chair/wood,
+/turf/open/floor/plating,
+/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
+ },
+/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"
@@ -59819,6 +60348,47 @@
/obj/machinery/suit_storage_unit/rd,
/turf/open/floor/plasteel,
/area/science/mixing)
+"ydZ" = (
+/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)
+"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
@@ -65840,11 +66410,11 @@ aaa
aaa
aaa
aaa
-cdh
+pnS
aaa
aaa
aaa
-cdh
+pnS
aaa
aaa
aaa
@@ -65857,7 +66427,7 @@ aaa
aaa
aaa
aaa
-aVw
+wJq
aaa
aaa
aaa
@@ -66091,9 +66661,9 @@ aaa
aaa
aaa
aaa
-cdh
+pnS
aaa
-cdh
+pnS
aaa
aaa
aaa
@@ -66105,9 +66675,9 @@ gXs
aaa
aaa
aaa
-cdh
+pnS
aaa
-cdh
+pnS
aaa
aaa
aaa
@@ -66354,11 +66924,11 @@ gXs
aaa
aaa
gXs
-apv
+viT
gXs
gXs
gXs
-apv
+viT
gXs
aaa
aaa
@@ -66604,11 +67174,11 @@ aaa
aaa
aaa
aaa
-apv
-apv
+viT
+viT
gXs
aag
-apv
+viT
gXs
gXs
aaa
@@ -66618,11 +67188,11 @@ aaa
aaa
gXs
gXs
-apv
-apv
-aQd
+viT
+viT
+pNO
aag
-apv
+viT
aaa
aaa
aaa
@@ -66861,11 +67431,11 @@ aaa
aaa
aaa
aaa
-aGk
-aQe
+kyA
+maK
aaa
-aQe
-aRx
+maK
+hIi
gXs
aoV
aaa
@@ -66875,11 +67445,11 @@ aaa
aaa
aaa
gXs
-aGk
-aQe
+kyA
+maK
aaa
-aQe
-aRx
+maK
+hIi
aaa
aaa
aaa
@@ -67118,11 +67688,11 @@ aaa
aaa
aaa
aaa
-aab
+uFF
aaa
cpe
aaa
-asL
+eYr
aaa
aaa
aaa
@@ -67132,11 +67702,11 @@ aaa
aaa
aaa
aaa
-aab
+uFF
aaa
cwV
aaa
-asL
+eYr
aaa
aaa
aaa
@@ -67374,7 +67944,7 @@ aaa
aaa
aaa
aae
-alN
+kMg
gXs
aaa
aaa
@@ -67631,7 +68201,7 @@ aaa
aaa
aaa
aaa
-alN
+kMg
gXs
aaa
aaa
@@ -67888,7 +68458,7 @@ aaa
aaa
aaa
aaa
-alN
+kMg
gXs
aaa
aaa
@@ -68145,7 +68715,7 @@ aaa
aaa
aaa
aaa
-alN
+kMg
gXs
aaa
cqq
@@ -68402,7 +68972,7 @@ aaf
aaf
aaf
aaa
-alN
+kMg
arB
asE
cyb
@@ -69175,7 +69745,7 @@ apN
apN
apN
apJ
-xFY
+hUC
ayk
awW
aAD
@@ -69199,7 +69769,7 @@ aaa
aaa
aaa
arB
-uZN
+dqG
ayk
awW
aAD
@@ -70475,7 +71045,7 @@ aaa
awW
aOh
ayl
-bRf
+cPO
aRY
awW
aaa
@@ -70487,7 +71057,7 @@ awW
awZ
ayl
ayl
-aQR
+bgi
awW
aaa
aaa
@@ -71771,7 +72341,7 @@ awW
arB
awZ
aym
-qoW
+lre
awW
aaf
aaa
@@ -73052,7 +73622,7 @@ aUO
aUy
aWm
aWf
-bcW
+vAP
czK
bhN
bcl
@@ -74070,7 +74640,7 @@ aHy
ayl
aKk
aLA
-aHD
+iRI
aNf
aLA
aQD
@@ -76096,8 +76666,8 @@ ady
ady
ady
ady
+rMI
ajq
-aTp
ajW
akB
alh
@@ -76140,9 +76710,9 @@ aXQ
aXQ
aPz
aPz
-bcJ
+dSI
aPz
-bkg
+bhQ
bjj
bkF
aaa
@@ -76392,14 +76962,14 @@ aPA
aPA
aPA
aXQ
-baO
+aZt
aXQ
-bdV
+ljN
aPz
-axS
-bgs
-biM
-bkg
+eTc
+xIU
+hKX
+bhQ
bjj
bkF
aaa
@@ -76644,20 +77214,20 @@ aNm
aOl
aPA
aQO
+aSh
aTw
aUU
-cek
aWn
aXQ
-bbL
+aZv
aXQ
-bgl
+bbL
aPz
-aEb
-bhK
-biZ
-bvn
-bml
+bdJ
+fFp
+bgr
+niE
+mDU
bkF
aaa
aaa
@@ -76890,7 +77460,7 @@ ayw
atN
aAV
aBQ
-bbA
+aDh
aDo
aFQ
aHe
@@ -76908,12 +77478,12 @@ aTy
aWy
aYe
bbq
-bcS
+aZw
aPz
-aEc
-bhP
-bjD
-bkg
+bct
+bfa
+ftK
+bhQ
bjk
bkE
aaa
@@ -77163,14 +77733,14 @@ aSV
aUo
aUX
aXp
-bct
-bdJ
-bgr
+baO
+aZo
+baw
aPz
-aSG
-bhQ
-bjW
-bwP
+wdQ
+cBn
+bgs
+pKz
bjk
bkF
aaa
@@ -77414,9 +77984,9 @@ aLE
aLE
aOn
aPA
-aQQ
+aQP
aQN
-aTz
+aTB
aUt
aWo
aXQ
@@ -77427,7 +77997,7 @@ aPz
aPz
aPz
aPz
-bkg
+bhQ
bjk
aPz
aaa
@@ -77471,7 +78041,7 @@ ccb
ccb
ccb
aaa
-aUf
+fcu
aaa
ccb
ccb
@@ -77666,12 +78236,12 @@ bxk
aDo
aDo
aIX
-blt
+osd
aLE
aLE
aOp
aPA
-aMg
+aQR
aQN
aQN
aUt
@@ -77680,7 +78250,7 @@ aQN
aQN
aQN
aQN
-bfe
+jKM
bbO
aPA
bgt
@@ -77728,7 +78298,7 @@ aaa
aaf
aaa
aaa
-aUg
+uUC
aaa
aaa
aaf
@@ -77743,7 +78313,7 @@ aaa
aaa
aaa
aaa
-aaa
+wJq
aaa
aaa
aaa
@@ -77930,15 +78500,15 @@ aOl
aPC
aQN
aQN
-aTB
-aUq
-aUV
-aXv
-bbr
+aTz
+aUp
+rAJ
+aXr
+aZx
aQN
aQN
cBh
-bit
+bdL
aPA
bgt
bhR
@@ -77985,7 +78555,7 @@ aaf
aaf
aaf
aaf
-aUg
+uUC
aaf
aaf
aaf
@@ -78178,23 +78748,23 @@ aBQ
aDn
aDo
aDo
-aFU
+aHD
aIZ
aBQ
aLE
aLE
aOq
aPD
-aQV
+aQT
aQN
aTC
-aUr
+aUs
aUY
-aXw
-bbU
+aXv
+aYS
aQN
aQN
-bfe
+jKM
bbO
aPA
aSg
@@ -78437,18 +79007,18 @@ aDo
aDo
aDo
aIY
-blt
+osd
aLE
aLE
aOl
aPA
-aQX
+siG
aQN
aTC
-aUr
-aYX
-aXx
-bcu
+aUs
+qIZ
+aXt
+taU
aQN
aQN
aPA
@@ -78691,7 +79261,7 @@ aAY
aBQ
aDp
aDo
-aFS
+aFU
aDo
aJb
aKp
@@ -78699,13 +79269,13 @@ aLE
aLE
aOl
aPE
-aQY
+aQV
aQN
aTC
-aUs
-aWB
-aXx
-bcu
+aUu
+rTD
+aXt
+taU
aQN
aQN
aZB
@@ -78936,7 +79506,7 @@ alU
aaf
aaH
alU
-aQT
+arO
amC
amC
avc
@@ -78956,13 +79526,13 @@ aLH
aLE
aOl
aPA
-aSX
+aQU
aQN
-aTD
-aUu
-aXk
-aXA
-bcw
+unN
+qXl
+pdg
+aXw
+oVS
aQN
aQN
aZA
@@ -79213,7 +79783,7 @@ aLK
aLK
aOr
aPA
-aTx
+aQX
aQN
aSi
aUv
@@ -79222,8 +79792,8 @@ aTy
aTy
aTy
aTy
-bcT
-chZ
+bbs
+bcw
bfd
bgw
aZE
@@ -79470,18 +80040,18 @@ aLJ
aLE
aOl
aPA
-aTA
+jDh
aQN
-aUp
+aTD
+gDv
aUZ
-aXr
aYU
aYU
aYU
aYU
aYU
-ckE
-bTt
+bcu
+bfe
aYb
aZE
bjm
@@ -79713,15 +80283,15 @@ aoV
aaf
avY
axo
-ayB
-aaa
-aaf
-aaa
-aaf
-aaa
-aaf
-aaa
-aaa
+arP
+iCE
+joc
+aGD
+wbB
+aCr
+eDv
+rkR
+eDv
aKu
aLM
aLF
@@ -79731,14 +80301,14 @@ aPG
aPG
aPG
aPG
-aZx
+puG
aQW
aQW
aQW
aQW
-bdL
+wVp
aPA
-clP
+jOF
aYb
aZE
bjp
@@ -79967,25 +80537,25 @@ aaf
aoV
aoV
aoV
-aoV
+aaa
avY
axo
-ayA
-aaf
-aBa
-aBa
-aBa
-aBa
-aBa
-aBa
-aaf
+arP
+usD
+fZD
+aGr
+aHI
+kmw
+qIT
+trl
+eDv
aKt
aLL
bDe
aOl
aPF
-aSh
-aQt
+aQY
+aSk
aTE
aPG
aPA
@@ -80227,15 +80797,15 @@ aaf
aaf
avY
axo
-ayA
-aaa
-aBa
-aBT
-aDs
-aEN
-aGb
-aBa
-aaa
+arP
+aCh
+oSk
+dCk
+aHK
+aCr
+lUd
+wab
+eDv
aKt
aLN
aLE
@@ -80246,16 +80816,16 @@ aRa
aTG
aPG
aWu
-aYa
+aYc
aZD
aZD
-hcE
+hVk
aZD
aZD
bff
-bfk
+vGp
aZE
-bgx
+voH
bjr
ama
bmh
@@ -80314,18 +80884,18 @@ bLv
bLv
bLv
aaa
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+wJq
aaa
aaa
aaa
@@ -80486,13 +81056,13 @@ avZ
axp
ayC
azH
-aBb
-aBS
-aDr
-aEM
-aGa
-aHF
-aJd
+eJz
+aGv
+aCr
+aCr
+lUd
+wab
+eDv
aKv
aLN
aLE
@@ -80502,8 +81072,8 @@ aQZ
aRa
aTF
aPG
-aWw
-aYc
+aSX
+ffm
aZF
aZF
aZF
@@ -80571,15 +81141,15 @@ cqK
crl
bLv
aaa
-aaa
-aaa
-aae
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+uXD
+ctv
+ctv
+ctv
+ctv
+ctv
+ctv
+ctv
+uXD
aaa
aaa
aaa
@@ -80740,16 +81310,16 @@ aGh
aqR
aqR
awb
-axo
-ayA
-aaa
-aBa
+djB
+wCs
+eWl
+eyC
aBV
-alu
-aEM
-aGd
-aHG
-aJe
+hot
+nzc
+jRs
+aBU
+aMr
aKw
aLP
aMR
@@ -80764,7 +81334,7 @@ aXJ
bgA
aZp
baY
-aYZ
+bcJ
bcF
bfg
bgA
@@ -80828,15 +81398,15 @@ cAQ
crm
bLv
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
+uXD
aaa
aaa
aaa
@@ -81000,13 +81570,13 @@ awa
axq
ayD
azI
-aBc
+dyS
aBU
-aDt
-aEO
-aGc
-aHF
-aJd
+nGN
+gvC
+lUd
+tPS
+eDv
aKb
aLN
aMQ
@@ -81053,7 +81623,7 @@ aoV
bCq
bHE
bHE
-bad
+iQA
cdb
bCq
bVE
@@ -81087,17 +81657,17 @@ bLv
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+uXD
+uXD
+uXD
aaa
aaa
aaa
@@ -81254,16 +81824,16 @@ aaa
aaa
aag
avY
-axo
+hKI
ayA
-aaa
-aBa
-aBW
+fLb
+aMr
+sxe
aDv
-aEP
-aGe
-aBa
-aaa
+gvC
+lUd
+tPS
+eDv
aKt
aLN
aMS
@@ -81278,7 +81848,7 @@ aXM
bfi
cBi
bbS
-bdM
+bcS
bbt
bfi
beD
@@ -81341,20 +81911,20 @@ bCq
bCq
bCq
bCq
+gXs
+gXs
+aaa
+gXs
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+uXD
+ctv
+uXD
aaa
aaa
aaa
@@ -81511,21 +82081,21 @@ aaa
aaa
aag
avY
-axo
+hKI
ayA
-aaf
-aBa
-aBa
-aBa
-aBa
-aBa
-aBa
-aaf
+dLh
+aMr
+aMr
+aOH
+gvC
+tku
+joq
+eDv
aKt
aLN
aMS
aOi
-tlO
+wDQ
aPK
aSl
aTH
@@ -81580,14 +82150,14 @@ mrR
dKP
odx
rBq
-bat
+xzU
bCq
bUs
bLv
aaa
bLv
bJf
-cfS
+ccd
bCq
aaa
aaa
@@ -81596,22 +82166,22 @@ aaa
aaa
aaf
aaf
-cig
+aaa
aaf
+gXs
+muq
+crn
+bij
+bij
+bij
+bij
+bij
+vbc
+btG
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+uXD
+ctv
+uXD
aaa
aaa
aaa
@@ -81770,14 +82340,14 @@ aag
avY
axs
ayF
-aaa
-aaf
-aaa
-aaf
-aaa
-aaf
-aaa
-aaa
+xqV
+vOw
+eIe
+aOH
+eDv
+eDv
+fXH
+eDv
aKx
aLN
aMS
@@ -81792,7 +82362,7 @@ aWC
baS
aZI
baS
-bdW
+cCn
bdS
bdU
ckQ
@@ -81807,7 +82377,7 @@ bbR
btu
bbR
bOL
-bPR
+lNz
byF
bwW
bGm
@@ -81849,26 +82419,26 @@ cjJ
cjJ
cjJ
cjJ
-cjJ
-cjJ
-cjJ
-aaa
+oJs
+uGq
+uGq
+bij
crn
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bij
+bij
+ilO
+udS
+bnT
+bph
+bsc
+bsc
+bsc
+mdQ
+btG
+gXs
+uXD
+ctv
+uXD
aaa
aaa
aaa
@@ -82044,7 +82614,7 @@ aPK
aSm
aTI
aPK
-aXs
+aWB
cCj
apd
apd
@@ -82109,23 +82679,23 @@ cov
cpj
cpS
cjJ
+jUc
+mdQ
+btG
+uOn
+eeD
+srw
+bnV
+bph
+bih
+big
+bii
+bsc
+btG
aaa
-crn
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+uXD
+ctv
+uXD
aaa
aaa
aaa
@@ -82301,9 +82871,9 @@ aPK
aSn
aTK
aPK
-aXt
-aZo
-aYj
+yfs
+lev
+asW
baW
bLE
bLG
@@ -82365,24 +82935,24 @@ cnN
cox
cpl
cpU
-cjJ
-aaf
-crn
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+epP
+oLI
+oLI
+gro
+oLI
+oLI
+qZv
+wWF
+bph
+big
+bgN
+bkZ
+bsc
+btG
aaa
+uXD
+ctv
+uXD
aaa
aaa
aaa
@@ -82519,7 +83089,7 @@ aaa
acd
acd
acd
-afr
+eMV
acd
acd
aaa
@@ -82562,8 +83132,8 @@ apd
aYi
aqW
aqW
-aVT
-bSO
+bbQ
+sno
apd
aZH
aZK
@@ -82623,23 +83193,23 @@ cow
cpk
cpT
cjJ
+jUc
+qwZ
+btG
+qPJ
+nlN
+lQR
+bnV
+bph
+bii
+big
+bih
+bsc
+btG
aaa
-crn
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+uXD
+ctv
+uXD
aaa
aaa
aaa
@@ -82774,10 +83344,10 @@ abc
abc
afu
abc
-age
-aeE
-afs
-ahw
+iSB
+kBF
+knR
+eWv
acd
aaa
aaa
@@ -82841,7 +83411,7 @@ bwY
byJ
bwe
bAc
-bwL
+bBI
bGn
bGn
bGn
@@ -82878,25 +83448,25 @@ clG
cnP
coz
cpn
-cjJ
-cjJ
-aaa
-crn
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+lzY
+lzY
+bgO
+sWr
+bgO
+trk
+bsb
+iaq
+bnW
+bph
+bsc
+ncB
+bsc
+qwZ
+btG
+gXs
+uXD
+ctv
+uXD
aaa
aaa
aaa
@@ -83031,11 +83601,11 @@ aea
aeH
aft
abc
-agH
-aeF
-alr
-ajt
-afr
+fyr
+xbZ
+svt
+dQy
+eMV
aaa
aaa
aiU
@@ -83077,7 +83647,7 @@ aWG
aZa
baX
bcH
-bSZ
+bdE
apd
aZH
bnL
@@ -83138,22 +83708,22 @@ cpm
cjJ
aaf
aaf
-crn
aaa
aaa
+gXs
+szF
+bgO
+bgO
+bgO
+bgO
+bgO
+bgO
+wZk
+btG
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaT
-aaT
-aaa
+eMb
+ctv
+uXD
aaa
aaa
aaa
@@ -83277,7 +83847,7 @@ aaa
aaa
gXs
gXs
-brT
+sbs
abc
abu
abu
@@ -83289,10 +83859,10 @@ aeJ
afw
abc
abc
-aeF
+xbZ
aay
-ajt
-akd
+dQy
+uiR
aaf
aaf
aiU
@@ -83360,7 +83930,7 @@ bCq
bHD
bJe
bCq
-cib
+vnw
bHE
bHE
bHE
@@ -83395,22 +83965,22 @@ cjJ
cjJ
aaa
aaa
-crn
-aaf
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
aaa
-aaf
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+uXD
ctv
aaT
-aaT
aaa
aaa
aaa
@@ -83546,9 +84116,9 @@ aeI
afv
agf
abc
-aeF
+xbZ
aay
-ajt
+dQy
aiT
aiT
aiV
@@ -83581,17 +84151,17 @@ aKA
aLN
aMS
aOz
-qQP
+mMb
aPQ
aSa
aSr
aSr
apd
-asW
+aYZ
bLE
aqW
aqW
-bTq
+vQS
apd
beA
bqp
@@ -83599,7 +84169,7 @@ cNG
cNJ
bLF
aZK
-urE
+qdm
bbR
bqt
cBq
@@ -83652,21 +84222,21 @@ cpo
cjJ
aaa
aaa
-crn
-aaf
-aaT
-ctv
-ctv
-ctv
-ctv
-ctv
-ctv
-ctv
-aaT
aaa
-aaf
-ctv
-ctv
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+uXD
+uXD
aaT
aaa
aaa
@@ -83790,8 +84360,8 @@ aaa
aaa
aaa
aai
-cmH
-aay
+oNN
+lJX
abe
abw
acc
@@ -83803,9 +84373,9 @@ aeL
afy
agh
abc
-aeM
-afz
-aju
+qYi
+dEZ
+dIH
aiT
ajs
akb
@@ -83844,7 +84414,7 @@ aTL
aTP
aWD
apd
-aYh
+aYj
aZL
baU
baU
@@ -83860,8 +84430,8 @@ bnJ
bbR
bbR
bbR
-bWk
-bYG
+bty
+buJ
bwe
bxE
byM
@@ -83909,21 +84479,21 @@ cpp
cjJ
aaf
aaf
-cig
-aaf
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
-aaT
-aaf
-aaf
-aaf
-aaf
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
aaa
aaa
aaa
@@ -84047,7 +84617,7 @@ aaa
aaa
gXs
aai
-cmI
+rgv
aay
abd
abv
@@ -84060,9 +84630,9 @@ aeK
afx
agg
abc
-ajX
-alx
-alY
+qRq
+npV
+lyB
aiU
ajr
aka
@@ -84152,7 +84722,7 @@ bLw
bLw
bLw
caq
-bCA
+cbw
bHE
ciT
bCq
@@ -84178,7 +84748,7 @@ aaf
aaa
aaa
aaa
-aaf
+aaa
aaa
aaa
aaa
@@ -84305,9 +84875,9 @@ aaf
aaf
ctv
acd
-aaM
-aaP
-aaY
+tYn
+abg
+qKZ
aby
aby
aby
@@ -84317,12 +84887,12 @@ aeN
afA
afA
abc
-afq
-agv
-ajY
-akC
-akE
-akJ
+nTu
+fLX
+rfE
+hYH
+aju
+akd
akK
als
ame
@@ -84387,14 +84957,14 @@ bCn
bGq
bGq
bGq
-bGq
+tyg
bLw
bGq
bGq
bGq
bLw
bGq
-bGq
+tyg
bTD
bUx
bVI
@@ -84409,7 +84979,7 @@ bVI
bVI
bVI
bTA
-bHF
+sOO
bHE
bHE
bHE
@@ -84420,7 +84990,7 @@ cnr
cnU
chD
cpq
-bVH
+cpV
cqw
cqO
crp
@@ -84563,26 +85133,26 @@ aai
aai
abf
aat
-aaU
-abg
+vKR
+abx
acd
acC
ada
adF
-aad
-abz
aef
-aeD
+aeM
+afz
+ogU
aav
+ueP
+dfH
+oAV
+jSk
+ajt
akc
-alM
-alZ
-akD
-akF
-alj
-all
-alm
-alo
+akJ
+alr
+amd
amL
anu
alq
@@ -84666,8 +85236,8 @@ bWB
bWB
bVI
cax
-cbw
-cby
+cbx
+cdh
ciU
cjK
ckA
@@ -84885,12 +85455,12 @@ aYl
bBi
aLY
bnN
-bTv
+boY
bqw
aJq
aJq
aYl
-bTw
+ovG
aLX
aJq
aJq
@@ -84923,8 +85493,8 @@ cdd
cea
bVI
caz
-cbx
-ccu
+cby
+cdj
cdv
cem
cem
@@ -85073,8 +85643,8 @@ aaf
aai
aan
aaw
-aaD
-aaL
+aaB
+ncI
aaJ
aat
abh
@@ -85328,9 +85898,9 @@ aaa
aag
aaa
aak
-aao
-aaz
-aaE
+aap
+rfu
+aaD
aat
aat
aat
@@ -85367,7 +85937,7 @@ ats
atY
auo
axy
-ayM
+ayN
azE
aAW
aCa
@@ -85404,7 +85974,7 @@ bqy
cBr
bqy
buK
-bTx
+mnP
aJw
aJq
aJq
@@ -85436,10 +86006,10 @@ bWB
bWB
cec
bVI
-bUw
+mFJ
ccw
chY
-clK
+ciX
cjM
ckB
ckB
@@ -85585,9 +86155,9 @@ aaa
aag
aaf
aaj
-aap
-aaB
-aaF
+aao
+aax
+aaC
aat
aat
adO
@@ -85624,7 +86194,7 @@ atu
cCi
awg
axy
-ayN
+ayM
azs
aAR
aBP
@@ -85704,8 +86274,8 @@ ckC
ccw
cnX
coH
-cjZ
-ckq
+cps
+cpX
cqz
cqR
ccw
@@ -85842,13 +86412,13 @@ aaa
aag
aaa
aal
-aaq
-aax
-aaN
+aar
+gks
+aaF
aat
-aaV
-cmn
-cms
+aaO
+aaW
+qvo
abB
acf
abM
@@ -85918,11 +86488,11 @@ bqA
brW
btB
buM
-aOJ
+bwi
bmr
aMm
aJq
-byV
+xzw
bCs
bCs
bEY
@@ -86099,13 +86669,13 @@ aaa
aag
aaf
aaj
-aar
-aaC
-aaO
+aaq
+iGV
+aaE
aat
-aaW
-cmp
-cmE
+aaN
+aaV
+itP
aat
acd
abL
@@ -86181,10 +86751,10 @@ aMn
aJq
bBi
bCs
-bDw
-bDz
-bFb
+bDv
bEX
+bFb
+ope
bFa
bKt
bLx
@@ -86361,7 +86931,7 @@ aat
aat
aat
aat
-cmr
+rKZ
aat
abD
acd
@@ -86380,9 +86950,9 @@ agj
auj
akl
akO
-afM
-afM
-amR
+pet
+pet
+hMk
anw
anz
aox
@@ -86430,7 +87000,7 @@ bnR
bpe
bqB
bqq
-bbQ
+btD
buO
bwk
bmr
@@ -86662,7 +87232,7 @@ aGq
aHO
aJl
ayW
-clV
+gYR
aJq
aOE
aJn
@@ -86695,7 +87265,7 @@ byP
aJq
bBi
bCs
-bDy
+bDw
bEZ
bGv
bHH
@@ -86707,7 +87277,7 @@ bNJ
bNJ
bKx
cjL
-bNL
+gbq
bNI
bUz
bVJ
@@ -86935,7 +87505,7 @@ bde
bcd
bcd
bcd
-bcd
+gFY
bcd
bcd
bcd
@@ -86999,7 +87569,7 @@ cEL
cFb
cFu
cFI
-cdj
+cGd
cGs
cGr
ccw
@@ -87127,14 +87697,14 @@ aaa
aag
aaf
aai
-aaA
-aaA
+qxb
+qxb
aaG
-aaA
-aaQ
+qxb
+aaP
aaX
-abj
-abG
+vhc
+fSL
acd
acD
acY
@@ -87190,7 +87760,7 @@ aZP
bbh
bcc
bdd
-bbX
+nyF
bfr
bgM
bif
@@ -87207,12 +87777,12 @@ bmr
bmr
byQ
aJq
-aJq
+bBi
bCs
bFa
bFa
-bER
bGw
+bER
bJk
bFa
bLA
@@ -87244,7 +87814,7 @@ cTa
ceZ
clQ
cgR
-bUX
+dGY
coM
cpv
cqb
@@ -87259,11 +87829,11 @@ cqb
cAo
cGt
cgx
-chU
+jMY
csd
cHa
csd
-chW
+uhH
ccw
aaa
aaT
@@ -87390,7 +87960,7 @@ aai
aai
aai
aai
-abx
+abj
abF
acd
acd
@@ -87408,9 +87978,9 @@ aiz
ajg
akl
akR
-afM
-afM
-amR
+pet
+pet
+hMk
anw
anz
aov
@@ -87449,22 +88019,22 @@ bbk
bbk
bbk
bfs
-aZM
+ove
aZM
aZM
aaf
aaf
-aaa
+kMg
aaf
-aaa
+kMg
aaf
-aaa
-aaa
-aaa
-aJn
+kMg
+aaf
+kMg
+rLg
aXf
aJq
-aJq
+bBi
bCs
bAM
bFa
@@ -87483,7 +88053,7 @@ bNI
bEP
bVJ
bVJ
-bSF
+bOM
bQd
bQP
bSt
@@ -87648,7 +88218,7 @@ aaa
aaf
aai
abi
-bVL
+szH
ach
acK
adf
@@ -87706,19 +88276,19 @@ bce
bdf
beb
aYv
+tVp
+lNn
aaf
aaf
+kMg
+kMg
aaf
-aaf
-aaa
-aaa
-aaa
-aaa
-aaf
-aaa
-aaa
-aaa
-aJn
+rLg
+rLg
+rLg
+rLg
+rLg
+rLg
aXf
aJq
byU
@@ -87963,22 +88533,22 @@ aZR
bbm
bec
bfu
-bgO
-bgO
-bgO
-bmu
-bgO
-bgO
-bgO
-bgO
-bsb
-aaf
-aaf
-aaf
-aJn
+nnb
+aBa
+aBa
+aBa
+aBa
+aBa
+aBa
+rLg
+gGD
+tVQ
+wcX
+dBt
+kFf
aXf
aJq
-aJq
+bBi
bCs
bFa
bFa
@@ -88169,11 +88739,11 @@ cpg
acv
adi
adi
-arl
+fwD
aeW
agQ
ahv
-agX
+ahQ
aiI
aiH
ajB
@@ -88186,7 +88756,7 @@ anw
anz
aov
aph
-ayY
+gzJ
ard
ard
ard
@@ -88220,22 +88790,22 @@ aZR
aZR
aZR
bft
-bgN
-bgN
-bgN
-bmv
-bkI
-bnT
-bpg
+oaP
+aBa
+aBT
+aDs
+aEN
+aGb
+aBa
bqD
bsa
-bgO
-buP
-bwm
-bxH
+vfe
+bsa
+bsa
+kFf
byS
aJq
-aMh
+yar
bCs
bCs
bCs
@@ -88423,10 +88993,10 @@ aaa
aaZ
abH
acl
-ajC
+cxA
acL
adi
-anq
+vtO
agp
agT
ahx
@@ -88437,11 +89007,11 @@ ajI
akl
akT
aww
-afM
-amR
+pet
+hMk
anw
anz
-aJN
+oZl
apk
anw
anw
@@ -88450,9 +89020,9 @@ anw
aVh
avj
awl
-ayZ
-aCf
-aDh
+axC
+ayY
+rJv
azZ
azZ
azZ
@@ -88477,18 +89047,18 @@ bbm
bdh
bee
bfv
-bgN
-bih
-big
-bii
-bgN
-bnV
-bph
+nDn
+aBb
+pnx
+aDr
+aEM
+aGa
+aHF
bqF
-bsd
-btG
+bsa
+iFt
+buQ
buQ
-bwn
bxI
bwa
bAg
@@ -88734,18 +89304,18 @@ bcf
bdg
bed
bfv
-bgN
-big
-bgN
-bkZ
-bgN
-bnU
-bph
+sVN
+dqD
+wTu
+alu
+aEM
+aGd
+xyp
+bqE
+bqE
+bqE
+bqE
bqE
-bsc
-btF
-bph
-bsc
knx
bvW
bAf
@@ -88952,10 +89522,10 @@ akq
akQ
agj
agj
-amS
+aiX
anx
anz
-aKS
+aoz
apm
aqd
anA
@@ -88964,9 +89534,9 @@ atd
anA
avk
awk
-aCe
-aCV
-aHZ
+axE
+ayZ
+uqO
aBu
aAa
aAa
@@ -88991,18 +89561,18 @@ bbm
bdh
bef
bfv
-bgN
-bii
-big
-bih
-bgN
-bnV
-bph
-bqF
+jTp
+aBc
+xZN
+aDt
+aEO
+aGc
+aHF
+aKG
bsf
-btG
-buS
-bwp
+lrF
+lrF
+lrF
bxK
bwh
bAh
@@ -89201,7 +89771,7 @@ aeY
agt
agt
ahz
-ahQ
+aie
aiN
ajc
ajI
@@ -89212,7 +89782,7 @@ aml
amT
anw
anz
-aoz
+ltC
apl
aqc
aqc
@@ -89248,19 +89818,19 @@ aZR
aZR
aZR
bfw
-bgN
-bgN
-bgN
+uJI
+aBa
+aBW
bjy
-bmw
-bnW
-bpi
+aEP
+iEc
+aBa
bqG
-bse
-bij
-buR
-bwo
-bxJ
+bsa
+mRj
+bsa
+bsa
+kFf
bwb
aJq
bBr
@@ -89289,7 +89859,7 @@ bYH
bYH
bVg
bXn
-bRb
+bYG
cfb
cfF
cfb
@@ -89297,7 +89867,7 @@ cik
cjg
cjU
cfb
-caw
+clM
cfz
cgR
ccw
@@ -89469,7 +90039,7 @@ amn
amV
anw
anz
-aoz
+uWs
aod
aqf
ahT
@@ -89505,25 +90075,25 @@ aZR
bbm
beh
bfx
-bij
-bij
-bij
-bgR
-bij
-bij
-bij
-bij
-bsg
-aaf
-aaf
-aaf
-aJn
+kDw
+aBa
+aBa
+aBa
+aBa
+aBa
+aBa
+czD
+gGD
+tVQ
+wcX
+ekY
+kFf
aJq
aJq
bBu
bCv
bAT
-bDJ
+bDL
bDq
bCv
bJs
@@ -89542,7 +90112,7 @@ bWO
bXK
bYH
bZz
-cfV
+caw
bYH
bVo
bXq
@@ -89712,7 +90282,7 @@ bkA
acF
aes
avB
-afn
+amN
agt
awN
aHp
@@ -89722,8 +90292,8 @@ ajI
akp
akQ
alA
-amm
amU
+aiX
anw
anT
aoA
@@ -89762,26 +90332,26 @@ bcg
aZU
beg
aYB
+tVp
+lNn
aaf
aaf
+kMg
+kMg
aaf
-aaf
-aaa
-aaa
-aaa
-aaa
-aaf
-aaa
-aaa
-aaa
-aJn
+rLg
+rLg
+rLg
+rLg
+rLg
+rLg
aJq
aJq
bBt
bCv
bDH
bFf
-aNJ
+bGB
bCv
bJs
bKy
@@ -89979,22 +90549,22 @@ ajJ
akr
akX
alC
-alC
+xgZ
amX
-anz
+lUR
anz
aoB
aod
aqe
arf
-aqU
-awy
+aqa
+atf
arf
-aqU
-awy
+aqa
+atf
arf
-aqU
-awy
+aqa
+atf
dgz
tqg
ujF
@@ -90019,19 +90589,19 @@ bbp
bbp
bbp
bfz
-aZV
+maz
aZV
aZV
aaf
aaf
-aaa
+kMg
aaf
-aaa
+kMg
aaf
-aaa
-aaa
-aaa
-aJn
+kMg
+aaf
+kMg
+rLg
aJq
aJq
aXf
@@ -90238,19 +90808,19 @@ akW
aiG
amo
amW
+eWV
anz
-anz
-aoz
+uWs
aod
aqe
arf
-ari
+apY
ate
arf
-ari
+apY
ath
arf
-ari
+apY
ath
dgz
fvY
@@ -90274,9 +90844,9 @@ aZV
bbo
bch
bdi
-bei
bfy
bgS
+ffU
bik
aZV
aZV
@@ -90291,9 +90861,9 @@ bsh
bqH
aJq
aJq
-bPS
+vqa
bCv
-aNI
+bDJ
bCt
bGD
bCv
@@ -90328,7 +90898,7 @@ ckO
ckH
cja
cny
-bVw
+gUz
cip
cnx
cDx
@@ -90491,11 +91061,11 @@ adR
aiQ
ajI
akt
-akQ
-agj
-agj
+amS
aiX
-anB
+aiX
+aiX
+anw
anz
aoD
aod
@@ -90530,16 +91100,16 @@ aYD
aZX
baf
bdk
-bdk
bek
bfB
bgU
+pVa
bdk
bjF
blc
bmz
bnY
-aOH
+bpk
bqJ
bsj
btI
@@ -90582,7 +91152,7 @@ ciq
cfb
cfb
cfb
-ciX
+clR
cgR
cgR
cMm
@@ -90748,11 +91318,11 @@ cBV
ajf
ajK
aks
-akY
-afM
-amp
aiX
-axC
+nuI
+anw
+anw
+anw
anz
aoC
aod
@@ -90762,19 +91332,19 @@ asd
atg
arf
asd
-axT
+awo
arf
asd
-aFe
+aAb
dgz
iVU
aDK
vHj
eVC
dgz
-aBM
-aEs
aJv
+nqP
+aMg
bHt
aOE
aJn
@@ -90787,11 +91357,11 @@ aYq
aZW
aZG
bej
-bej
bdj
bfA
bgT
-bil
+fDV
+bej
bej
blb
bmy
@@ -90808,7 +91378,7 @@ aJq
aXf
bCv
bAU
-clO
+cAL
bFg
bFs
bJt
@@ -91003,30 +91573,30 @@ ahC
aia
aiP
aiR
-ajB
-akv
-ala
-akz
-alf
+eJk
+akl
aiX
-anA
+akz
+anz
+anz
+anz
anz
aoF
apo
aqh
arh
-auA
+asg
atj
aul
-axQ
+auR
atj
-azl
-aNH
+gnM
+fRa
atj
-aJQ
+aAX
azc
atj
-aMq
+aFe
aul
aHT
aJy
@@ -91044,15 +91614,15 @@ aPR
aZV
baq
baQ
-baQ
+kCq
bcQ
-bfC
bgV
+mpA
bim
bjG
aZV
bmB
-aDH
+bnZ
bpl
bqH
bsl
@@ -91065,8 +91635,8 @@ aLY
bBx
bCv
apG
-aPZ
-aQa
+bFk
+bDs
bCv
bJs
bHo
@@ -91262,10 +91832,10 @@ adR
aiG
ajL
aku
-akZ
-alE
-amq
aiX
+alE
+anA
+anA
anA
anz
aoE
@@ -91275,15 +91845,15 @@ aun
asf
ati
auk
-arQ
-aus
-aJk
-bbl
+aux
avt
-aJR
-aya
-aLs
-aMr
+axL
+bbl
+azT
+gxH
+tEy
+aDG
+aFd
auk
aHH
aJg
@@ -91304,7 +91874,7 @@ baP
bbZ
bcP
cBo
-bbw
+ffU
bbw
bbw
aZV
@@ -91333,8 +91903,8 @@ bNT
bOV
bQj
bRw
-bOM
-bPT
+bSF
+pmf
bTP
bRA
bWQ
@@ -91350,12 +91920,12 @@ cap
ctR
ccn
cdo
-bUA
+cek
ccw
cet
cfd
-cgH
-cgM
+cfB
+cfI
cgQ
cjS
cjN
@@ -91368,7 +91938,7 @@ cEW
cse
cse
csu
-chM
+cGl
ccw
aaa
aaa
@@ -91533,11 +92103,11 @@ arf
arf
arf
arf
-auC
-aKg
+dHP
+djq
awr
awr
-aKr
+wWo
aAh
aAh
aAh
@@ -91574,7 +92144,7 @@ btL
buY
buY
bqH
-clV
+gYR
aJq
aXf
bCv
@@ -91591,7 +92161,7 @@ bOV
bQo
bRz
bSH
-bQX
+kcg
bTP
bRA
bWQ
@@ -91786,23 +92356,23 @@ aoG
cSA
aqe
arf
-auu
+aqo
atm
atm
arf
-aAd
-auW
+avv
+awu
awr
-aXH
-aXO
+aAd
+qKJ
aAh
-aSp
+aDL
aAh
-aUP
+aGk
aAh
-bbN
+aJz
aAh
-aOL
+aLQ
aJq
aOE
aJn
@@ -91835,7 +92405,7 @@ aJq
aJq
bBy
bzs
-bTy
+bDO
bFl
bGH
bHU
@@ -91848,7 +92418,7 @@ bOV
bQj
bRy
bSG
-bPT
+pmf
bUK
bVT
bWR
@@ -92043,23 +92613,23 @@ aoH
cSA
aqe
arf
-aqC
+asm
blU
blU
-awA
-auy
-aKh
+avg
+awp
+axN
awr
awr
-aKJ
+oTI
aAh
-apH
+aDQ
aAh
-apQ
+aGl
aAh
-aqt
+aBy
aAh
-clX
+uOb
aJq
aOE
aJn
@@ -92072,7 +92642,7 @@ aYF
aZV
bbw
bcn
-bbw
+jNS
ben
bfE
bgX
@@ -92128,7 +92698,7 @@ clU
clU
bOh
ccw
-cgN
+coZ
cgU
cgU
cDK
@@ -92300,21 +92870,21 @@ ajo
cSA
aqe
arf
-aqD
-ask
+ari
asu
+gTx
aun
-awv
-aKg
-aYI
+avR
+djq
+vMd
awr
-bHg
+mPj
aAh
-aop
-bwi
-aop
-aop
-aop
+aDM
+aGx
+aDM
+aDM
+aDM
aAh
aMm
aJq
@@ -92347,7 +92917,7 @@ bqH
bqH
aJq
bHt
-bgi
+bBz
bzs
bzs
bFm
@@ -92381,11 +92951,11 @@ bMQ
aaf
bQA
ckU
-ccd
+clT
cmU
bOh
ccw
-cgP
+cpa
cjc
cqo
cDL
@@ -92561,18 +93131,18 @@ arf
arf
arf
arf
-auC
-aKN
-aYP
-baa
-aKM
-aKP
-aFE
-aDY
-aLQ
-aYS
-aop
-aMw
+dHP
+axP
+azb
+aAi
+sTt
+aCn
+mvB
+ipU
+aGm
+aHV
+aDM
+urH
aJq
aJq
aJq
@@ -92603,9 +93173,9 @@ bva
bwu
bwu
bwu
-bke
-cfI
-bBz
+pgY
+bBB
+pAE
bzs
bFp
bGJ
@@ -92814,21 +93384,21 @@ ajo
app
aqi
arf
-ars
+ask
atm
atm
arf
-aHt
-aKO
-aZb
-bab
-aSj
+awq
+axO
+aza
+moa
+uhG
aAh
aAh
aAh
aAh
aAh
-aMu
+aDN
aAh
aMo
aNC
@@ -92860,7 +93430,7 @@ aJq
aJq
aJq
aJq
-bnZ
+bAj
aJq
aKG
bzs
@@ -93071,22 +93641,22 @@ ajo
aps
aqk
arf
-auv
+dsV
blU
aHw
-awX
-axR
-aKq
-aZZ
+avn
+awv
+axX
+aze
awr
-bac
+uuT
aAh
-aVK
-azm
-azm
+aDU
+aBz
+aBz
aAh
-aAZ
-bJS
+tsY
+tTt
aJq
aJq
aJq
@@ -93119,7 +93689,7 @@ bxL
byX
aXh
bmE
-bAj
+bCA
bzs
bCC
bDA
@@ -93328,21 +93898,21 @@ ajo
apr
aqj
arf
-ary
-ask
-aua
+ark
+asu
+mOL
aun
-axU
+awt
awr
awr
-axW
-aHb
-aLh
-aUj
-aMv
-aMv
-aMx
-aZt
+azX
+aAZ
+aCe
+aDT
+mwm
+mwm
+qzE
+fPz
aAh
aJC
aJC
@@ -93409,7 +93979,7 @@ bMQ
aaf
bQA
ckX
-ccB
+clV
cmV
bOh
cig
@@ -93560,7 +94130,7 @@ aaa
aaa
aaa
aaa
-aaa
+aaf
aaa
aaf
abo
@@ -93583,35 +94153,35 @@ ajp
ajp
ajo
apt
-arn
+aqm
arf
arf
arf
arf
arf
-asX
+awz
awr
awr
avG
-axP
+aBA
aAh
-aCh
-azo
-azo
+aDP
+aBx
+aBx
aAh
-aAM
-aMH
-bRc
-bRe
-bty
-aFj
-ccS
-bXu
+oNq
+jtY
+aMq
+adq
+aQb
+aPZ
+aRu
+iWm
aKR
-aFd
-aDM
-cab
-bfa
+gJR
+aXi
+jRc
+baa
aJC
bcq
bcq
@@ -93810,13 +94380,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+aaf
+aaf
+aag
+aag
+aag
+aag
+aaf
aaf
aaf
aaf
@@ -93840,17 +94410,17 @@ ajo
aoa
ajo
apt
-aqr
+aql
aoJ
aoJ
aoJ
aoJ
-arr
-auN
+avw
+awy
awr
awr
avG
-aNt
+tQu
aAh
aAh
aAh
@@ -93860,15 +94430,15 @@ aAh
aAh
aKR
aKR
-buJ
-aDU
-aDX
-aEt
+fey
+aPY
+fOB
+aRx
aKR
-aFf
-aDN
-aDU
-aFF
+hFk
+xCs
+aPY
+aZZ
aQg
aYV
aYV
@@ -94097,35 +94667,35 @@ ahT
anb
ahT
anZ
-aqo
+apu
arf
arf
arf
arf
arf
-aDW
-avl
-avm
-avg
-awE
-aCr
-azP
+awA
+axT
+axW
+aAl
+vEA
+aJC
+aDR
aFl
-aGD
-bdE
-aCr
-boY
-bRd
+oaT
+aHZ
+aJC
+aKJ
+yeR
aKR
-aDO
-aFC
-cdM
-aEu
+eBm
+yhO
+aQd
+aQa
aKR
-aFg
-aDO
-caj
-ckP
+ndo
+eBm
+gbb
+bac
aJC
aYV
aYV
@@ -94348,43 +94918,43 @@ aif
aif
aif
bkV
-adq
-amB
+thY
+alK
aif
aif
-apw
-aqH
-aqI
+anc
+anD
+aoI
arf
-apu
-atl
-avw
-aut
-axM
-avx
-avn
-awp
-aNG
-aCr
-aLS
-aUC
-aGr
-aHI
-aOK
-aKR
-aKR
-aKR
-aKR
-aKR
-aKR
-aKR
-aKR
-aKR
-aKR
-aKR
-asq
+iTd
+asN
+aur
+avy
+neT
+axS
+azk
+aAk
+oxA
aJC
-bSL
+aDY
+aDY
+oaT
+aKR
+aJk
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+bab
+aJC
+jtp
aYV
ber
bfF
@@ -94581,11 +95151,11 @@ aaa
aaa
aaa
aaa
-aaf
-aaf
-aag
-aag
-aag
+aaa
+aaa
+aaa
+aaa
+aaa
aaa
aaa
aag
@@ -94596,13 +95166,13 @@ abp
afo
abp
abp
-aSq
+iHq
ahn
aiA
aiA
aiA
ahn
-and
+qaZ
anF
aod
ahn
@@ -94613,37 +95183,37 @@ ahn
ahn
ahn
arf
-aoI
-aqF
-awo
+pUo
+sPA
+aut
arf
-aoY
+aXF
awr
awr
-awt
-aXj
-aCr
-aQb
-aVA
-bcO
-aHK
-aCr
-bDO
+aAn
+dQz
+aJC
+aEc
+aFk
+aGw
+aKR
+aJC
+aKr
aKR
aKR
-aDP
-aDP
-aEo
+pIA
+pIA
+jcN
aKR
aKR
aKR
-aDP
+pIA
aKR
aKR
bbx
aYV
aYV
-bTs
+qVa
bfF
bhd
bis
@@ -94838,22 +95408,22 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+aaf
+aaf
+aag
+aag
+aag
aag
aaf
aaf
aaf
aaf
abp
-aRw
+rmC
afp
-aRw
+rmC
abp
-aqa
+fEo
ahn
aaa
aaf
@@ -94863,39 +95433,39 @@ ahn
anE
aod
aoK
-amI
+fBj
aqp
ahn
-anc
-anr
-anM
-aqF
-aqF
-aqF
-aur
+kMO
+oaB
+itE
+sPA
+sPA
+sPA
+xCE
aun
-aEr
+avz
awr
awr
-awt
-aSo
-aCr
-aCr
-aVD
-aGv
-aCr
-aCr
-aCm
+aAn
+tTh
+aJC
+aJC
+kiH
+qeZ
+aJC
+aJC
+aKq
aKR
-aDu
-aDT
-aDV
-aEp
-aHX
+aNF
+lmT
+gzA
+qet
+aSH
aKR
-aIs
-atT
-aFD
+dSM
+mTi
+hmv
aKR
aQg
aYV
@@ -94921,7 +95491,7 @@ bvj
bvj
bvd
bFu
-nWU
+thl
bvj
bvd
bKH
@@ -95123,36 +95693,36 @@ aoL
apy
aqq
ahn
-aql
-aqN
+ttp
+cJl
arf
-aqE
-ark
-aqF
-axN
+uNs
+ast
+sPA
+auv
arf
-aKi
-avm
-aAn
-aIG
-aXl
+avA
+axW
+azo
+aAp
+qPl
aBC
aCt
aEA
aGz
aIb
-aCr
-aCn
+aJC
+aKN
aKR
aKR
-axV
-aFh
-arC
+aOJ
+nNY
+hIJ
aKR
aKR
-aNn
-avR
-aFD
+aUg
+bFC
+hmv
aKR
bbx
aYV
@@ -95160,9 +95730,9 @@ aYV
bet
bfH
bhf
-bkl
+qqY
bhh
-bkl
+qqY
bmJ
bof
bpu
@@ -95388,38 +95958,38 @@ arf
arf
arf
arf
-aMJ
-azn
+fpd
+imi
+azf
aAo
-aJz
-amP
+coj
aBB
aBB
aBB
aGy
aIa
cNE
-aQP
-awB
-awB
-aaK
-aFi
-awB
-awB
-awB
-aIi
-aOu
+aKM
+aMu
+aMu
+ese
+sfY
+aMu
+aMu
+aMu
+mdp
+aSq
aKR
-asD
+bad
bby
aYV
aYV
bet
bfG
bhe
-blN
+bit
bjS
-bnd
+kQg
bli
boe
bli
@@ -95634,40 +96204,40 @@ aag
aag
aag
arf
-amJ
-axO
+xXW
+gYK
arf
-apu
-acN
-amP
-atz
-axL
-atQ
-awu
-aEv
-azj
-aAb
-aAr
-amN
-amN
-aza
-azX
+iTd
+uVo
+coj
+mcQ
+clO
+asZ
+aua
+sfO
+awB
+att
+azh
+mgT
+mgT
+uJq
+fcc
alP
aGI
aId
aJD
-aCx
-awC
-awC
-bbs
-aHW
-awC
-awC
-awC
-awC
-aIw
+aKP
+aMx
+aMx
+aQe
+aOL
+aMx
+aMx
+aMx
+aMx
+hvD
aKR
-asG
+aZb
aJC
aYV
aYV
@@ -95876,11 +96446,11 @@ aaa
aaa
aaa
aaa
-aab
+uFF
aaa
aqG
aaa
-asL
+eYr
aaa
aaa
aaa
@@ -95891,42 +96461,42 @@ aaa
aaa
aaa
arf
-amO
-anr
-anM
-aqF
-alK
+duc
+oaB
+itE
+sPA
+oIx
arf
-axZ
-amN
+arm
+mgT
+aya
+mgT
+mgT
+auB
atZ
-amN
-amN
-bBB
-cdP
-ceu
-cfA
-amN
-azb
-aUk
+azg
+azp
+mgT
+aCu
+gmc
alP
aGH
aIc
aJC
-aCy
-aTN
-aDS
+aKO
+aMw
+aNI
aKR
aKR
-aEq
-aEq
-aEq
-aEq
-aEq
+acN
+acN
+acN
+acN
+acN
aKR
aKR
aJC
-cmc
+bcr
aYV
bet
bfG
@@ -95969,7 +96539,7 @@ bYU
bXW
bOh
cbH
-cbX
+ccB
cbH
bOh
aaf
@@ -96133,11 +96703,11 @@ aaa
aaa
aaa
aaa
-aac
-apK
+oBB
+ixv
aaa
-apK
-atX
+ixv
+rrJ
aaa
aaa
aaa
@@ -96151,21 +96721,21 @@ arf
arf
arf
arf
-aoI
-anD
-arj
-art
-amN
-amN
-amN
-amN
-bDL
-amN
-aAX
-cfB
-amN
-azd
-aAf
+pUo
+xgY
+aqs
+gfn
+mgT
+mgT
+mgT
+mgT
+vBb
+mgT
+ayb
+fJA
+mgT
+aCv
+cFF
alP
aGJ
aIe
@@ -96175,13 +96745,13 @@ aJC
aJC
aJC
aJC
-aXF
-aEw
-aEx
-aEw
-aNF
-aEq
-aHU
+aXj
+aVy
+aSY
+aVy
+ydZ
+acN
+bah
aJC
aYV
bdo
@@ -96390,11 +96960,11 @@ aaa
aaa
aaa
aaa
-apv
-apv
+viT
+viT
gXs
-apv
-apv
+viT
+viT
aaa
aaa
aaa
@@ -96407,38 +96977,38 @@ aaa
aaa
aaa
arf
-aqm
-aqF
-axX
+jav
+sPA
+eDq
arf
-asb
-asr
-avu
-amN
-amN
-bDL
-amN
-aAX
-cfB
-amN
-aze
-aAg
+bHg
+iTD
+lBk
+mgT
+mgT
+vBb
+mgT
+ayb
+fJA
+mgT
+mHW
+sBu
alP
aGJ
aIe
-asm
+aJE
aLU
aKQ
-aYH
+aNu
aJC
aPw
-aZw
+eqs
aQc
aSZ
aQc
-aFk
-aEq
-aHV
+jxp
+acN
+bag
aJC
aYV
aYV
@@ -96664,22 +97234,22 @@ aaa
aaa
aaa
arf
-ast
-arD
-apX
+wSg
+vgX
+rak
arf
-arO
-aup
-atV
-amN
-asg
-bZf
-cdY
-cff
-cfC
-amN
-azb
-bvG
+lqe
+jYg
+jde
+mgT
+pbw
+neq
+mTj
+qGM
+ulP
+mgT
+aCu
+vbP
alP
aGA
aHS
@@ -96693,15 +97263,15 @@ aRz
aSF
aQc
aQc
-aFp
+aXl
aKR
-atk
+bai
aJC
aYV
aYV
bet
bfH
-hEm
+liD
bhh
bhg
bln
@@ -96905,9 +97475,9 @@ aaa
aaa
aaa
aaa
-apT
+oqa
aaa
-apT
+oqa
aaa
aaa
aaa
@@ -96925,38 +97495,38 @@ arf
arf
arf
arf
-asZ
-att
-avA
-awq
-aVy
-aVG
-amN
-aRu
-aVP
-aXi
-azV
-aPj
+mbl
+iiH
+udn
+vBN
+fLn
+vXW
+mgT
+cIW
+kmf
+uip
+jil
+ttF
alP
aGL
aHM
-asp
+aJm
aKz
-bLs
+mjr
aND
aJC
-aZv
+aab
aRg
aQc
-bai
+aac
aQc
-aFt
+aXk
aKR
aKR
aJC
aYV
aYV
-bNM
+bev
bfK
bhi
bhi
@@ -97181,32 +97751,32 @@ aaa
aaa
aaa
gXs
-aqs
-asY
-asY
-auB
-aws
-avy
-avy
-aws
-azp
-aCu
-aCu
-aCv
-auR
+jMa
+qMf
+qMf
+kte
+wgV
+odR
+odR
+wgV
+kCK
+cmm
+cmm
+dKg
+arj
alP
aGL
aIe
aJC
-atf
-bLt
+aKS
+aMC
aJC
aJC
aJI
aJI
aSI
aJI
-baw
+aVA
aJI
aYK
aJI
@@ -97416,7 +97986,7 @@ aaa
aaa
aaa
aaa
-aaa
+xlX
aaa
aaa
aaa
@@ -97456,7 +98026,7 @@ aGL
aIg
aJH
aKR
-bMF
+aMB
aJC
aOP
aJI
@@ -97467,7 +98037,7 @@ aVz
aVz
aYJ
aJI
-bSr
+xZr
aYV
aYV
aYV
@@ -97984,7 +98554,7 @@ baj
bbz
aYV
bdp
-bDv
+pWO
bfK
bfK
bfK
@@ -98233,11 +98803,11 @@ aON
aQk
aRD
aSM
-aEy
+aVD
aVE
aXm
aVz
-cam
+gIT
bbz
aYV
bdp
@@ -98490,7 +99060,7 @@ aOM
aQj
aRB
aSL
-cmm
+aTN
cCq
aVz
cAg
@@ -98723,19 +99293,19 @@ aaa
aaa
aaa
aaa
-arm
-asY
-asY
-asY
-awz
-avy
-avy
-aAm
-aCu
-aCu
-aCu
-aVx
-auR
+mHC
+qMf
+qMf
+qMf
+sXo
+odR
+odR
+ioS
+cmm
+cmm
+cmm
+aCy
+arj
alP
aGL
avI
@@ -98751,7 +99321,7 @@ aTO
cCq
aVz
aVz
-caB
+guh
bbz
aYV
bdp
@@ -98767,8 +99337,8 @@ boo
bqQ
bhg
bua
-bne
-bpk
+bvn
+bwL
bxX
bsL
bua
@@ -98983,16 +99553,16 @@ aaa
aaa
aaa
aaa
-auR
-azg
-avz
-ccH
-aAX
-aAp
-aAk
-aAl
-aCq
-aDR
+arj
+kOA
+avD
+awC
+ayb
+jYD
+ruS
+ukL
+lAY
+vpY
alP
aGJ
avI
@@ -99009,7 +99579,7 @@ aVF
aVF
aYM
aJI
-bSu
+bbA
aYV
bdr
bdb
@@ -99037,7 +99607,7 @@ bCR
bqQ
bGX
bCR
-rjA
+pMv
bRN
bIK
bPq
@@ -99240,17 +99810,17 @@ aaa
aaa
aaf
aaf
-auR
-auS
-ayb
-azk
-atZ
-amN
-amN
-aAs
-amN
-amN
-alP
+arj
+auz
+avC
+oGS
+aya
+mgT
+mgT
+rmY
+mgT
+mgT
+gOZ
aGJ
avI
aJL
@@ -99281,7 +99851,7 @@ boq
boq
brj
bpE
-bop
+btk
bum
bvq
bzn
@@ -99497,11 +100067,11 @@ aaa
aaf
aaf
alO
-auR
-auR
-auR
-azT
-aAi
+arj
+arj
+arj
+csp
+gOZ
cVb
cVb
cVb
@@ -99538,7 +100108,7 @@ bpE
bpE
bpE
bpE
-bot
+bti
bul
bvp
bzm
@@ -99778,7 +100348,7 @@ aSR
aUi
aVJ
aOX
-aPP
+aYP
bal
bam
aYV
@@ -100008,19 +100578,19 @@ aaa
aaa
aaa
aag
-ass
+cxW
anf
aqv
ayf
-aux
-auU
-avv
-avC
+hxw
+dKe
+awE
+pGr
cVb
vCb
-bBI
-bHx
-bHB
+wUY
+khb
+sxs
tal
aCI
aIj
@@ -100268,8 +100838,8 @@ aag
alO
anf
alO
-aud
-auz
+gqR
+pQA
alP
anf
aCG
@@ -100285,12 +100855,12 @@ aIq
aKK
aMy
aIp
-arg
+rXv
aQm
-aBx
-aGp
-aGp
-aHc
+eaD
+vAZ
+vAZ
+aVK
aRJ
aRJ
aRJ
@@ -100531,10 +101101,10 @@ alP
awF
aCG
alP
-bBM
+uTQ
aBE
aCz
-aQU
+fXo
aCJ
aGT
aIn
@@ -100544,10 +101114,10 @@ aMt
aIp
aOW
aQm
-aGm
-aGw
-aGP
-aHr
+ktc
+aSS
+aUj
+uao
aRJ
aYQ
cBg
@@ -100781,34 +101351,34 @@ aoN
apA
aof
arq
-asv
+qnd
atv
auD
alP
aoQ
-avD
+cqM
ayg
ayg
ayg
-azf
+aCA
aFn
-aAq
+aFp
aGW
anf
aIp
-bcr
+fGf
aMA
aIp
aOX
aQm
-aGm
-aGx
-aGR
-aHr
+ktc
+aST
+aUk
+uao
aRJ
aYQ
bam
-bBT
+oAc
aYV
aYV
aYV
@@ -101025,10 +101595,10 @@ adU
adU
adU
adU
-alg
-aTq
-aTq
-aTq
+xWW
+sCo
+sCo
+sCo
acx
amv
ane
@@ -101037,7 +101607,7 @@ aog
aoM
apz
aqw
-asM
+arr
asw
asw
auE
@@ -101058,14 +101628,14 @@ aMz
aNQ
aOX
aQm
-aGn
-aGK
-aGK
-aHs
+pmj
+lrH
+lrH
+rEQ
aRJ
aYR
ban
-bCI
+efo
aYV
aYV
bez
@@ -101294,7 +101864,7 @@ aoi
aoO
apB
aqx
-asN
+art
anf
anf
auF
@@ -101302,14 +101872,14 @@ alP
awH
auF
alP
-axd
+aAr
aBF
alP
aaa
aFq
aGX
aIp
-bHZ
+lwn
aKU
aME
aNN
@@ -101322,13 +101892,13 @@ aXo
aXo
aYO
bap
-bCI
+efo
aYV
bci
beB
bfS
bfS
-ckJ
+kQk
ipA
gbT
cTO
@@ -101551,7 +102121,7 @@ aof
aof
aof
aof
-asV
+gBY
aoP
atw
auF
@@ -101559,7 +102129,7 @@ alP
aoP
auF
azr
-aRv
+juV
atw
alP
alP
@@ -101573,13 +102143,13 @@ aNQ
aOZ
aOX
aOX
-cma
+ohe
aUz
aVM
aOX
aYT
bam
-bDs
+qcu
baR
bcb
bdl
@@ -101636,7 +102206,7 @@ bAw
bAw
clp
aag
-apv
+viT
aaa
aaa
aaa
@@ -101814,7 +102384,7 @@ aty
auF
alP
aAt
-aAu
+lHE
alP
alP
alP
@@ -102065,7 +102635,7 @@ aaa
aaa
apC
anf
-aRv
+juV
alP
atx
auF
@@ -102073,8 +102643,8 @@ alP
auD
auF
apE
-axJ
-awL
+aAs
+trM
alP
aCG
aFr
@@ -102327,12 +102897,12 @@ alP
apE
auG
alP
-clM
+hSS
auF
apE
anf
anf
-azh
+kwj
aCG
aDZ
aFu
@@ -102593,11 +103163,11 @@ aCB
aEB
aFs
bbE
-amd
+aIr
bav
aLf
-aCU
-aDG
+nvw
+oWe
aRO
aQp
aRN
@@ -102620,7 +103190,7 @@ bls
bfT
boD
bpY
-aPY
+bsP
box
btw
buT
@@ -102661,11 +103231,11 @@ cQB
czY
cOT
aaa
-apv
-apv
-apv
-apv
-apv
+viT
+viT
+viT
+viT
+viT
aaa
aaa
aaa
@@ -102838,12 +103408,12 @@ apC
alP
alP
alP
-ciw
+dHx
auH
avF
awI
ayc
-ciV
+nOD
asw
asw
aCD
@@ -102851,10 +103421,10 @@ aEa
aFv
aGG
aIu
-aBA
+aJQ
aIt
aIt
-aDG
+oWe
aRO
aIt
aRN
@@ -103107,11 +103677,11 @@ aCC
aDZ
anf
aFu
-aBy
-aJJ
-aCA
+aIs
+aJP
+xah
aIt
-aDJ
+xNd
aYW
aYW
aYW
@@ -103130,7 +103700,7 @@ cHJ
cHL
blw
bjP
-bTu
+blt
bfT
boG
bqa
@@ -103178,10 +103748,10 @@ aaa
aaa
aaa
aaa
-bsP
-bti
-btk
-buh
+tpb
+rnY
+oSW
+vPl
aaa
aaa
aaa
@@ -103364,11 +103934,11 @@ aCE
aDZ
aFu
aFu
-aBz
+aIw
aJS
-aCS
+wTC
aNP
-aDL
+kMY
aOS
aOS
aOS
@@ -103432,14 +104002,14 @@ cQB
cAa
cOT
gXs
-bqb
-brl
+lDF
+kTe
aaa
aaa
-bsP
-bsP
-bsP
-buh
+tpb
+tpb
+tpb
+vPl
aaa
aaa
aaa
@@ -103616,16 +104186,16 @@ awJ
anf
alP
aAv
-cih
+wZI
aCE
aDZ
aFu
-aIy
+aHb
aIv
-aBD
+aJR
aIt
aIt
-aDG
+oWe
aRO
aIt
aPd
@@ -103634,7 +104204,7 @@ aPb
aIt
aXu
aYW
-aVS
+bat
bbD
aYV
aXq
@@ -103689,14 +104259,14 @@ czU
czZ
cOT
aaa
-apv
-brT
-brT
-bsP
-bsP
-bsP
-buA
-bti
+viT
+sbs
+sbs
+tpb
+tpb
+tpb
+gqp
+rnY
aaa
aaa
aaa
@@ -103882,7 +104452,7 @@ aIx
aJF
aQq
aNS
-aDG
+oWe
aRO
aIt
aPd
@@ -103946,14 +104516,14 @@ cgm
czY
cOT
gXs
-bqb
-brl
-bsB
-brT
-brT
+lDF
+kTe
+nxN
+sbs
+sbs
aaa
aaa
-bsB
+nxN
aaa
aaa
aaa
@@ -104119,7 +104689,7 @@ aaf
aaa
aaa
alP
-aie
+apD
aEl
anf
arx
@@ -104143,12 +104713,12 @@ aFu
aPf
aQq
aRP
-cfE
+oIt
aIt
aIt
aWd
aXV
-aGl
+pWH
bbD
aYV
aXq
@@ -104205,10 +104775,10 @@ cNW
aaa
aaa
aaa
-bsB
-bsB
-bti
-bsP
+nxN
+nxN
+rnY
+tpb
gXs
aaa
aaa
@@ -104379,11 +104949,11 @@ alO
anf
anf
arw
-bxh
-clL
+uiT
+cII
anf
alP
-aqB
+awL
anf
anf
apE
@@ -104392,8 +104962,8 @@ aCH
aED
aFy
aGO
-aIA
-aJM
+aIB
+aJJ
aKZ
aFw
aFu
@@ -104402,7 +104972,7 @@ aFu
aFu
aTc
aUD
-aSk
+aVS
aYW
aYW
bax
@@ -104649,12 +105219,12 @@ aCk
aEC
aFx
aGM
-aIB
+aIy
aJG
-aMK
+cAz
aFw
-aMW
-aPi
+eAE
+aPg
aQr
aFu
aTb
@@ -104720,10 +105290,10 @@ aaa
aaa
aaa
aaa
-apv
-apv
-apv
-apv
+viT
+viT
+viT
+viT
aaa
aaa
aaa
@@ -104890,14 +105460,14 @@ aaa
aaa
gXs
alP
-apD
+pRx
ayf
-bev
-cil
+eUR
+imK
aFn
aFn
aBB
-bGB
+awM
ayg
ayg
ayg
@@ -104910,7 +105480,7 @@ aFw
aLo
aLb
aFw
-aPg
+xwI
aYW
aYW
aRQ
@@ -105144,13 +105714,13 @@ aaa
aaa
aaa
aaa
-amx
-amx
-amx
-amx
-aMB
-amx
-amx
+uBW
+uBW
+uBW
+uBW
+oFY
+uBW
+uBW
atB
alP
alP
@@ -105164,16 +105734,16 @@ aEd
aFw
aHf
aIz
-aJP
+aJM
aLa
aFw
-aPh
+kwW
aYW
aQs
aFu
aTd
aUE
-aVR
+aVT
aYW
aYW
aZd
@@ -105401,21 +105971,21 @@ aaa
aaa
aaa
aaa
-amx
-axE
-aIr
-aJm
-aNV
-bDX
-bFC
-bGg
-bGh
-bGg
-bGS
+uBW
+mKU
+wLe
+shX
+mJU
+cyi
+tcE
+dIA
+pNj
+dIA
+nhn
avI
asA
apE
-aCo
+fIK
aCG
aEf
aFw
@@ -105658,12 +106228,12 @@ aaa
aaa
aaa
aaa
-apY
-aIr
-aIr
-aIr
-aIr
-aMC
+lfx
+wLe
+wLe
+wLe
+wLe
+gGK
asB
asB
asB
@@ -105747,14 +106317,14 @@ cko
clq
cmq
ciI
-bae
-cmJ
+cnJ
+cri
cOe
cOe
-cmK
+cBT
aag
gXs
-apv
+viT
aaa
aaa
aaa
@@ -105915,12 +106485,12 @@ aaa
aaa
aaa
aaa
-apY
-aIr
-aIr
-aIr
-aIr
-aNu
+lfx
+wLe
+wLe
+wLe
+wLe
+sEJ
asB
atD
auJ
@@ -106172,12 +106742,12 @@ aaa
aaa
aaa
aaa
-amx
-aIr
-aIr
-aIr
-aIr
-aIr
+uBW
+wLe
+wLe
+wLe
+wLe
+wLe
asB
atC
auI
@@ -106261,8 +106831,8 @@ cNW
cNW
cNW
cOe
-bag
-clH
+xPX
+csy
cko
cAf
aaa
@@ -106429,12 +106999,12 @@ aaa
aaa
aaa
aaa
-apY
-aIr
-aIr
-aIr
-aIr
-aIr
+lfx
+wLe
+wLe
+wLe
+wLe
+wLe
asB
atE
auI
@@ -106512,11 +107082,11 @@ ceO
cNW
cgm
chw
-cgp
+ciK
cjC
-cgu
ckp
cls
+cmr
cOe
cOe
cou
@@ -106686,18 +107256,18 @@ aaa
aaa
aaa
aaa
-apY
-aIr
-aIr
-aIr
-aIr
-aIr
+lfx
+wLe
+wLe
+wLe
+wLe
+wLe
asB
asB
asB
avL
awR
-aMp
+kuT
azu
aAz
asB
@@ -106737,7 +107307,7 @@ buo
bvJ
bCk
byo
-btD
+aDH
bxP
bCf
bvK
@@ -106767,13 +107337,13 @@ bQZ
cdR
ceN
cNW
-axY
+cgp
chv
ciJ
cbf
-ciK
+xcw
clr
-bah
+bnt
cOe
cOe
bMB
@@ -106943,12 +107513,12 @@ aaa
aaa
aaa
aaa
-amx
-awM
-aIr
-aJE
-aIr
-bFk
+uBW
+kgf
+wLe
+pnl
+wLe
+oKy
asB
atG
auL
@@ -107200,12 +107770,12 @@ aaa
aaa
aaa
aaa
-amx
-amx
-amx
-amx
-amx
-amx
+uBW
+uBW
+uBW
+uBW
+uBW
+uBW
asB
atF
auK
@@ -107491,9 +108061,9 @@ aXB
aZh
baB
aCR
-bNa
+fkx
bdx
-bPv
+izL
bgc
bgc
biX
@@ -107807,13 +108377,13 @@ cOe
cOe
cOe
sQX
-cdi
-cdi
-cdi
-cdi
-cdi
-cdi
-cdi
+tDE
+tDE
+tDE
+tDE
+tDE
+tDE
+tDE
aaS
aaS
aba
@@ -108052,7 +108622,7 @@ ccT
bSc
bSc
cfu
-bnt
+cgu
chA
cNW
aaa
@@ -108565,7 +109135,7 @@ cbZ
bSl
cmo
cNW
-ckR
+sPj
cNW
chC
ciL
@@ -109617,7 +110187,7 @@ crD
aaa
aaa
aaa
-aSY
+csZ
aaa
aaa
aaa
@@ -109864,18 +110434,18 @@ cyU
cpi
cpi
cpi
-aSH
-aSS
+cqJ
+gnW
crk
crk
crk
crk
crk
-aST
-aSH
-aSS
+phP
+cqJ
+gnW
crk
-aST
+phP
cpi
cpi
ctB
@@ -110131,7 +110701,7 @@ crF
aaa
aaa
aaa
-aTa
+jvm
aaa
aaa
aaa
@@ -110870,7 +111440,7 @@ cNW
cNW
cNW
cNW
-clR
+dok
clt
cac
cbh
@@ -111136,7 +111706,7 @@ cbf
cbf
ceT
cNW
-clT
+wNd
chH
cNW
aaf
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 7d193ce05f..b47944146f 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -124,36 +124,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"aaq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/table,
-/obj/structure/bedsheetbin/towel,
-/turf/open/floor/plasteel,
-/area/crew_quarters/toilet/restrooms)
-"aar" = (
-/obj/structure/table,
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/structure/bedsheetbin/color,
-/turf/open/floor/plasteel/white/corner{
- dir = 1
- },
-/area/crew_quarters/dorms)
"aas" = (
/obj/docking_port/stationary/random{
id = "pod_lavaland1";
@@ -173,88 +143,6 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/space,
/area/solar/starboard/fore)
-"aav" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"aaw" = (
-/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 = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/fore)
-"aax" = (
-/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)
-"aay" = (
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"aaz" = (
-/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)
-"aaA" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"aaB" = (
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 1
- },
-/turf/open/floor/plating,
-/area/security/prison)
"aaE" = (
/obj/structure/lattice/catwalk,
/turf/open/space,
@@ -1183,10 +1071,6 @@
"aeF" = (
/turf/open/floor/plating,
/area/construction/mining/aux_base)
-"aeH" = (
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"aeR" = (
/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/dirt,
@@ -1565,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{
@@ -4645,6 +4549,14 @@
},
/turf/open/floor/plasteel,
/area/maintenance/starboard/fore)
+"anz" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/computer/arcade{
+ icon_state = "arcade";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"anA" = (
/obj/structure/cable/white{
icon_state = "0-2"
@@ -7199,6 +7111,13 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"arX" = (
+/obj/machinery/computer/arcade{
+ icon_state = "arcade";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"arY" = (
/obj/structure/table/wood,
/obj/item/toy/talking/codex_gigas,
@@ -7229,6 +7148,14 @@
},
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/fore)
+"asa" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/computer/arcade{
+ icon_state = "arcade";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"asb" = (
/obj/machinery/airalarm{
dir = 1;
@@ -22042,6 +21969,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/security/prison)
+"aRi" = (
+/obj/machinery/computer/arcade{
+ icon_state = "arcade";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/security/prison)
"aRj" = (
/obj/structure/cable/white{
icon_state = "0-2"
@@ -26869,6 +26803,7 @@
/area/engine/atmos)
"aXW" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"aXX" = (
@@ -29257,6 +29192,7 @@
/area/engine/atmos)
"bbO" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"bbP" = (
@@ -30753,6 +30689,7 @@
/area/engine/atmos)
"bev" = (
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bew" = (
@@ -32494,6 +32431,7 @@
/area/engine/atmos)
"bhw" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"bhx" = (
@@ -34606,6 +34544,7 @@
/obj/machinery/portable_atmospherics/canister/nitrous_oxide{
valve_open = 1
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bkI" = (
@@ -56101,6 +56040,10 @@
/obj/structure/window/reinforced{
dir = 1
},
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"bRv" = (
@@ -56145,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" = (
@@ -57182,6 +57127,10 @@
/obj/structure/window/reinforced{
dir = 4
},
+/obj/item/gun/energy/laser{
+ pixel_x = 3;
+ pixel_y = -3
+ },
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"bTk" = (
@@ -58731,10 +58680,6 @@
/obj/structure/window/reinforced{
dir = 4
},
-/obj/item/gun/energy/e_gun/advtaser{
- pixel_x = 3;
- pixel_y = -3
- },
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"bVr" = (
@@ -60664,6 +60609,7 @@
dir = 4
},
/obj/structure/window/reinforced,
+/obj/item/gun/energy/e_gun,
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"bXQ" = (
@@ -80915,6 +80861,23 @@
},
/turf/open/floor/plating,
/area/crew_quarters/toilet/restrooms)
+"cFc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel,
+/area/crew_quarters/toilet/restrooms)
"cFd" = (
/obj/machinery/shower{
dir = 8;
@@ -84407,6 +84370,19 @@
/obj/item/reagent_containers/dropper,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"cKT" = (
+/obj/structure/table,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/crew_quarters/dorms)
"cKU" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral{
@@ -119499,7 +119475,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/structure/closet/crate/coffin,
+/obj/structure/bodycontainer/morgue,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"dTy" = (
@@ -120828,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
@@ -126414,20 +126401,14 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
-"enO" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
+"euu" = (
+/obj/effect/turf_decal/tile/neutral,
/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)
+/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,
@@ -126442,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,
@@ -126535,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
@@ -126578,10 +126598,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/science/circuit)
-"fHS" = (
-/obj/structure/sign/warning/vacuum,
-/turf/closed/wall/r_wall,
-/area/chapel/office)
"fLR" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -126610,24 +126626,43 @@
},
/turf/open/floor/engine,
/area/science/mixing)
+"gkl" = (
+/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,
+/area/chapel/office)
"gmj" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/science/circuit)
-"gFk" = (
-/obj/structure/grille,
-/turf/open/space,
-/area/space/nearstation)
-"gJj" = (
-/obj/machinery/door/window/northleft{
- name = "Mass Driver"
+"gug" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"gER" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
},
-/obj/machinery/mass_driver{
- id = "chapelgun";
- name = "Holy Driver"
+/obj/structure/cable/white{
+ icon_state = "2-4"
},
-/turf/open/floor/plating,
-/area/chapel/office)
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
"gKr" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -126645,26 +126680,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/misc_lab)
-"gNJ" = (
-/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)
"gNS" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/tile/neutral{
@@ -126689,20 +126704,6 @@
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white,
/area/science/research)
-"gQw" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/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)
"gQS" = (
/turf/open/floor/plasteel/white/side{
dir = 9
@@ -126719,10 +126720,6 @@
dir = 1
},
/area/science/circuit)
-"gUV" = (
-/obj/item/twohanded/required/kirbyplants/random,
-/turf/open/floor/plasteel,
-/area/security/prison)
"gVS" = (
/obj/item/clothing/head/kitty,
/obj/item/clothing/under/maid,
@@ -126739,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{
@@ -126747,10 +126748,6 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
-"hei" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/closed/wall/r_wall,
-/area/chapel/office)
"hic" = (
/obj/structure/table/reinforced,
/obj/item/integrated_electronics/analyzer,
@@ -126760,9 +126757,21 @@
dir = 10
},
/area/science/circuit)
-"hlc" = (
+"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/security/prison)
+/area/maintenance/port/fore)
"hrP" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -126784,6 +126793,19 @@
},
/turf/open/floor/plasteel,
/area/maintenance/port/aft)
+"hsc" = (
+/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,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"hFo" = (
/obj/structure/lattice,
/obj/structure/disposalpipe/segment{
@@ -126815,22 +126837,9 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
-"hLO" = (
-/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)
+"hJk" = (
+/turf/open/space,
+/area/space)
"hNZ" = (
/obj/structure/chair/office/light{
dir = 8
@@ -126850,31 +126859,11 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/medical/medbay/central)
-"iaF" = (
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/science/research)
-"ibC" = (
-/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"
- })
-"iiH" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
-"ijd" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+"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{
@@ -126883,21 +126872,17 @@
/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)
"ijB" = (
/obj/structure/reagent_dispensers/keg/aphro/strong,
/obj/item/reagent_containers/glass/beaker,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"ivF" = (
-/obj/machinery/door/poddoor{
- id = "chapelgun";
- name = "Chapel Launcher Door"
- },
-/obj/structure/fans/tiny,
-/turf/open/floor/plating,
-/area/chapel/office)
"iwL" = (
/obj/machinery/status_display{
pixel_x = 32
@@ -126916,9 +126901,6 @@
},
/turf/open/floor/engine/vacuum,
/area/science/mixing)
-"iyd" = (
-/turf/open/space,
-/area/space)
"iQh" = (
/obj/structure/bodycontainer/morgue{
dir = 1
@@ -126959,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
@@ -126983,21 +126996,13 @@
},
/turf/open/floor/plasteel,
/area/science/research/abandoned)
-"jhK" = (
-/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
+"jie" = (
+/obj/machinery/vr_sleeper,
+/obj/structure/cable/white{
+ icon_state = "4-8"
},
/turf/open/floor/plasteel,
-/area/maintenance/port/aft)
+/area/security/prison)
"jjN" = (
/obj/structure/table/reinforced,
/obj/machinery/camera{
@@ -127095,18 +127100,9 @@
/obj/machinery/chem_master,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
-"jPA" = (
-/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,
+"jPL" = (
+/obj/structure/sign/warning/vacuum,
+/turf/closed/wall/r_wall,
/area/chapel/office)
"jRy" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -127128,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{
@@ -127136,6 +127142,12 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
+"ktV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/chapel/office)
"kvf" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -127161,31 +127173,6 @@
},
/turf/open/floor/plasteel,
/area/maintenance/port)
-"kzw" = (
-/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)
"kLu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -127201,15 +127188,27 @@
},
/turf/open/floor/plasteel/white,
/area/science/mixing)
-"kZu" = (
-/obj/effect/landmark/barthpot,
-/turf/open/floor/wood,
-/area/library)
+"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{
@@ -127241,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
@@ -127354,14 +127360,38 @@
dir = 1
},
/area/science/circuit)
-"mdk" = (
+"lYm" = (
+/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)
+"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
},
-/obj/machinery/light/small,
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"mkm" = (
/obj/machinery/atmospherics/components/binary/valve,
/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{
@@ -127380,16 +127410,8 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"mvf" = (
-/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,
+"mqT" = (
+/turf/open/floor/plasteel,
/area/security/prison)
"mvm" = (
/obj/effect/decal/cleanable/dirt,
@@ -127412,25 +127434,36 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/circuit/green,
/area/science/research/abandoned)
-"mEy" = (
-/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)
"mIi" = (
/obj/item/electropack/shockcollar,
/obj/item/assembly/signaler,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"mMC" = (
-/obj/structure/sign/warning/nosmoking,
-/turf/closed/wall,
-/area/medical/surgery)
+"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
+ },
+/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)
"mQE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -127454,118 +127487,54 @@
},
/turf/open/floor/engine,
/area/science/mixing)
-"mXJ" = (
-/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)
"nyN" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"nOV" = (
-/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,
-/area/chapel/office)
"nSh" = (
/obj/machinery/atmospherics/pipe/simple/general/hidden,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"oaP" = (
-/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"
- })
-"obe" = (
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
-"ost" = (
-/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)
-"owr" = (
-/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,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
-"owI" = (
+"nUj" = (
/obj/structure/cable/white{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
+/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
},
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
-"ozr" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/grape,
-/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned{
- name = "Maintenance Garden"
- })
+/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)
"oIl" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -127615,26 +127584,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"oNW" = (
-/obj/machinery/vr_sleeper,
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"oOb" = (
-/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)
"oSD" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
@@ -127725,27 +127674,36 @@
},
/turf/open/floor/plating,
/area/science/research/abandoned)
-"pEq" = (
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
+"pDQ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
},
-/obj/machinery/vr_sleeper,
-/obj/structure/cable/white{
- icon_state = "4-8"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/area/security/prison)
-"pHf" = (
+/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
},
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
+/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{
@@ -127763,6 +127721,27 @@
},
/turf/open/floor/plasteel,
/area/science/research/abandoned)
+"qbg" = (
+/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/computer/pod/old{
+ density = 0;
+ icon = 'icons/obj/airlock_machines.dmi';
+ icon_state = "airlock_control_standby";
+ id = "chapelgun";
+ name = "Mass Driver Controller";
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"qhc" = (
/obj/structure/table/reinforced,
/obj/item/integrated_electronics/analyzer,
@@ -127772,6 +127751,10 @@
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,
@@ -127781,23 +127764,20 @@
dir = 5
},
/area/science/circuit)
-"qBG" = (
-/obj/effect/spawner/lootdrop/keg,
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
-"qMR" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
+"qzY" = (
+/obj/machinery/door/window/northright{
+ name = "Coffin Storage"
},
-/turf/open/floor/plating,
-/area/chapel/office)
-"rbY" = (
/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
@@ -127811,6 +127791,18 @@
dir = 6
},
/area/science/circuit)
+"rTc" = (
+/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"
+ },
+/area/security/prison)
"rUD" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
@@ -127845,16 +127837,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
-"rYR" = (
-/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)
"saw" = (
/turf/closed/wall,
/area/science/circuit)
@@ -127862,27 +127844,66 @@
/obj/effect/decal/remains/xeno,
/turf/open/floor/engine/vacuum,
/area/science/mixing)
+"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)
-"tbC" = (
+"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 = 4
+ },
+/turf/open/floor/plasteel{
+ heat_capacity = 1e+006
+ },
+/area/maintenance/port/aft)
+"tma" = (
+/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/effect/turf_decal/tile/neutral,
+/obj/machinery/keycard_auth{
+ pixel_x = -25
+ },
/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
+/area/quartermaster/qm)
"tmi" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/plasteel,
/area/science/circuit)
-"tmZ" = (
-/obj/machinery/light/small,
-/turf/open/floor/plasteel,
-/area/security/prison)
+"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{
@@ -127890,8 +127911,15 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
-"tAi" = (
-/obj/structure/reagent_dispensers/watertank,
+"tzT" = (
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
@@ -127901,46 +127929,11 @@
"tCh" = (
/turf/closed/wall,
/area/science/misc_lab)
-"tEW" = (
-/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/bodycontainer/morgue,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
"tMk" = (
/turf/open/floor/plasteel/white/side{
dir = 10
},
/area/science/misc_lab)
-"tOQ" = (
-/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/computer/pod/old{
- density = 0;
- icon = 'icons/obj/airlock_machines.dmi';
- icon_state = "airlock_control_standby";
- id = "chapelgun";
- name = "Mass Driver Controller";
- pixel_x = -24
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
"tRT" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -127951,6 +127944,16 @@
/obj/machinery/chem_heater,
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"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"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"upk" = (
/obj/machinery/door/airlock/public/glass{
name = "Holodeck Access"
@@ -127983,6 +127986,10 @@
},
/turf/open/floor/plasteel/white,
/area/science/misc_lab)
+"uNx" = (
+/obj/item/twohanded/required/kirbyplants/random,
+/turf/open/floor/plasteel,
+/area/security/prison)
"uNP" = (
/obj/machinery/atmospherics/pipe/simple/general/visible,
/obj/effect/turf_decal/stripes/line{
@@ -128015,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
@@ -128024,40 +128040,22 @@
},
/turf/open/floor/plasteel/white,
/area/science/mixing)
-"vFw" = (
-/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)
-"vON" = (
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/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/aft)
"wei" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/circuit)
-"whX" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+"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
},
@@ -128078,6 +128076,28 @@
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white,
/area/science/misc_lab)
+"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/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"xaf" = (
/obj/machinery/door/airlock/public/glass{
name = "Holodeck Access"
@@ -128096,6 +128116,14 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
+"xdG" = (
+/obj/machinery/door/poddoor{
+ id = "chapelgun";
+ name = "Chapel Launcher Door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/chapel/office)
"xmt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -128183,22 +128211,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/science/research)
-"xWZ" = (
-/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)
"xXn" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output,
/turf/open/floor/engine/vacuum,
@@ -157105,7 +157117,7 @@ arB
aug
alg
alg
-whX
+pDQ
aKg
alf
aMO
@@ -157362,7 +157374,7 @@ aAb
aAb
aAb
aAb
-pHf
+vph
aKh
alf
aMN
@@ -157620,7 +157632,7 @@ aCv
aFJ
aAb
aIH
-tAi
+eIC
alf
aMP
aDw
@@ -158134,7 +158146,7 @@ aEB
aFL
aAb
aIH
-tbC
+lva
avm
arB
arB
@@ -158386,7 +158398,7 @@ alf
aAb
aBj
aCv
-oaP
+wQz
aEC
aFM
aAb
@@ -158517,7 +158529,7 @@ edL
eep
eff
aad
-aeH
+lag
aaa
ajr
aaa
@@ -158643,7 +158655,7 @@ alg
aAb
aBk
aCv
-ozr
+lem
aEC
aFN
aAb
@@ -158774,7 +158786,7 @@ edM
eeq
dLY
aad
-gFk
+hds
aaa
aad
aaa
@@ -158905,7 +158917,7 @@ aED
aFO
aHm
aII
-mdk
+euu
aLz
aMR
aOq
@@ -159162,7 +159174,7 @@ aEE
aFP
aHn
aIJ
-iiH
+wsI
aLz
aMS
aOr
@@ -159414,12 +159426,12 @@ ayX
aAb
aBn
aCx
-ibC
+wjb
aCv
aFQ
aAb
-owI
-iiH
+hig
+wsI
aLz
aMT
aOs
@@ -159792,7 +159804,7 @@ dXz
dYt
dON
dOl
-vON
+gER
eaX
dYu
ect
@@ -160048,8 +160060,8 @@ dON
dON
dON
dON
-gQw
-rYR
+sBk
+nUj
ebc
ebQ
ecu
@@ -160190,7 +160202,7 @@ aAb
aAb
aAb
aIL
-tbC
+lva
aLz
aLz
aLz
@@ -160311,12 +160323,12 @@ dZN
dZN
dZN
dZN
-fHS
+jPL
dZN
dZN
dLY
aad
-aeH
+lag
aad
aad
aaa
@@ -160447,7 +160459,7 @@ aEG
aFS
aHp
aIM
-obe
+tzT
aLB
aFS
aEG
@@ -160562,20 +160574,20 @@ dWJ
dLW
dYu
dZg
-hLO
-jhK
+lYm
+hUt
dZN
-owr
-nOV
-tOQ
-gJj
-qMR
-ivF
+hsc
+gkl
+qbg
+jTP
+ktV
+xdG
aaa
-iyd
+hJk
aaa
aaa
-iyd
+hJk
aaa
aaa
aaa
@@ -160751,7 +160763,7 @@ caG
chU
cjt
ckR
-kZu
+qkw
cnR
cpv
cqQ
@@ -160821,12 +160833,12 @@ dTw
dTw
dZN
dZN
-hei
-gNJ
-jPA
-jPA
-vFw
-rbY
+kTU
+agv
+eHb
+eHb
+qzY
+siB
dTw
aad
aad
@@ -161068,19 +161080,19 @@ dPJ
dQC
dRB
dSz
-tEW
+dTx
dUi
-dTx
+iUn
dVN
-dTx
+iUn
dXB
dYv
dTw
dZO
-kzw
-enO
-xWZ
-mXJ
+mIQ
+pPt
+mhH
+tra
dTw
dTw
dTw
@@ -161333,7 +161345,7 @@ dUj
dXC
dYw
dZh
-ijd
+wJf
eau
edr
ebS
@@ -168155,7 +168167,7 @@ aCP
avQ
aFe
aGp
-oOb
+nZa
aJg
aKF
aLP
@@ -170712,7 +170724,7 @@ aox
apu
aqy
arb
-aax
+flG
aig
auA
avU
@@ -170969,7 +170981,7 @@ aoy
apv
aqz
apu
-aay
+arX
aig
auB
avU
@@ -171478,8 +171490,8 @@ aiC
akU
alI
amE
-aav
-aaw
+anz
+oDr
apw
aqA
apy
@@ -171997,7 +172009,7 @@ aiC
apy
apy
apu
-aaz
+iZm
atw
auD
avW
@@ -172254,7 +172266,7 @@ aoB
apz
apw
apv
-aaA
+asa
atw
auE
avW
@@ -172842,7 +172854,7 @@ bsE
cAm
cBI
cDo
-aaq
+cFc
cAm
cHW
cIW
@@ -174922,7 +174934,7 @@ dkv
dma
dma
dma
-mMC
+pLz
dsI
dro
dvz
@@ -175358,7 +175370,7 @@ aaa
aaa
aad
aQR
-ost
+tma
aUq
aVR
aXF
@@ -177215,7 +177227,7 @@ cFr
cGP
cqd
cJe
-aar
+cKT
cMq
cAw
cPM
@@ -179461,7 +179473,7 @@ aaa
aaa
aaa
aaa
-aeH
+lag
aFm
aIc
aFm
@@ -179718,9 +179730,9 @@ aaa
aaa
aaa
aaa
-aeH
+lag
aFm
-mEy
+umo
bbt
aFm
aMc
@@ -179975,10 +179987,10 @@ aaa
aaa
aaa
aaa
-aeH
+lag
aFm
-oNW
-tmZ
+jie
+gug
aFm
aKV
aNy
@@ -180234,10 +180246,10 @@ ajr
ajr
aad
aFm
-pEq
-hlc
-gUV
-hlc
+rTc
+mqT
+uNx
+mqT
aNz
aPh
aQZ
@@ -180491,7 +180503,7 @@ ajr
aad
aad
aFn
-mvf
+dWi
aJA
aJA
aMe
@@ -182810,7 +182822,7 @@ aFn
aMn
aNI
aPr
-aaB
+aRi
aKV
aUC
aWk
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 10e0c1a9a7..f2eab05785 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -2,17 +2,6 @@
"aaa" = (
/turf/open/space/basic,
/area/space)
-"aab" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
- },
-/obj/structure/sign/poster/official/random{
- pixel_y = -32
- },
-/obj/structure/table,
-/obj/structure/bedsheetbin/towel,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/restrooms)
"aac" = (
/obj/effect/landmark/carpspawn,
/turf/open/space,
@@ -3063,7 +3052,6 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/item/gun/energy/e_gun/advtaser,
-/obj/item/gun/energy/e_gun/advtaser,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -3613,6 +3601,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/item/gun/energy/e_gun,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"agV" = (
@@ -3895,6 +3884,11 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/item/shield/riot,
+/obj/item/shield/riot,
+/obj/item/shield/riot,
+/obj/item/clothing/head/helmet/riot,
+/obj/item/clothing/suit/armor/riot,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"ahD" = (
@@ -3993,12 +3987,6 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"ahI" = (
-/obj/structure/rack,
-/obj/item/shield/riot{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/shield/riot,
/obj/machinery/button/door{
id = "armory";
name = "Armory Shutters";
@@ -4015,6 +4003,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/rack,
+/obj/item/gun/energy/pumpaction/blaster,
+/obj/item/gun/energy/pumpaction/blaster,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"ahJ" = (
@@ -14669,15 +14660,12 @@
/area/security/nuke_storage)
"aCh" = (
/obj/structure/safe,
-/obj/item/storage/secure/briefcase{
+/obj/item/storage/backpack/duffelbag/syndie/hitman{
contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/gun/ballistic/automatic/pistol,/obj/item/suppressor,/obj/item/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/soap/nanotrasen)
},
-/obj/item/storage/backpack/duffelbag/syndie/hitman,
/obj/item/card/id/silver/reaper,
/obj/item/lazarus_injector,
/obj/item/gun/energy/e_gun/advtaser,
-/obj/item/gun/ballistic/revolver/russian,
-/obj/item/ammo_box/a357,
/obj/item/clothing/neck/stethoscope,
/obj/item/book{
desc = "An undeniably handy book.";
@@ -45855,6 +45843,7 @@
/obj/machinery/portable_atmospherics/canister/nitrous_oxide{
valve_open = 1
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bKJ" = (
@@ -48899,6 +48888,7 @@
/area/engine/atmos)
"bQY" = (
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bQZ" = (
@@ -51342,6 +51332,7 @@
/area/engine/atmos)
"bVO" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bVP" = (
@@ -58454,6 +58445,7 @@
/area/engine/atmos)
"cjd" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"cje" = (
@@ -58468,6 +58460,7 @@
/area/engine/atmos)
"cjg" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cjh" = (
@@ -80873,6 +80866,17 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
+"dhD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/sign/poster/official/random{
+ pixel_y = -32
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/restrooms)
"dhE" = (
/obj/structure/sign/poster/contraband/random{
pixel_x = 32
@@ -83283,13 +83287,6 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/cryopod)
-"ghT" = (
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"gnZ" = (
/obj/item/radio/intercom{
pixel_y = -30
@@ -83404,15 +83401,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"hYs" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"ioI" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -83524,10 +83512,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
-"jVj" = (
-/obj/machinery/vr_sleeper,
-/turf/open/floor/plasteel,
-/area/security/prison)
"kfu" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/white,
@@ -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";
@@ -83783,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{
@@ -83819,17 +83831,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
-"odR" = (
-/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)
"ohj" = (
/obj/item/integrated_electronics/analyzer,
/obj/item/integrated_electronics/debugger,
@@ -83935,13 +83936,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"pzu" = (
-/obj/structure/chair/stool,
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"pCV" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -83997,10 +83991,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"qnB" = (
-/obj/machinery/smartfridge/organ/preloaded,
-/turf/closed/wall,
-/area/medical/surgery)
"qqg" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
@@ -84263,16 +84253,6 @@
/obj/machinery/vending/assist,
/turf/open/floor/plasteel,
/area/science/mixing)
-"uEa" = (
-/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)
"uGW" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -84291,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"
@@ -84375,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,
@@ -84447,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,
@@ -104233,7 +104237,7 @@ cia
cia
cpX
cia
-qnB
+vPN
cia
ceu
dyg
@@ -106706,11 +106710,11 @@ aaa
aaf
aaf
aay
-odR
-hYs
+xcb
+uHA
abC
-uEa
-hYs
+kwg
+uHA
abC
abC
acr
@@ -106964,10 +106968,10 @@ aaf
aaa
aax
abl
-pzu
-ghT
+oba
+lmg
aax
-jVj
+kRT
aaR
aaR
aaI
@@ -118821,7 +118825,7 @@ aBu
aCB
aDU
aFg
-aab
+dhD
axC
axC
axC
diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm
index de42e1ac63..99c536bd3c 100644
--- a/_maps/map_files/Mining/Lavaland.dmm
+++ b/_maps/map_files/Mining/Lavaland.dmm
@@ -3571,14 +3571,6 @@
},
/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
@@ -3630,26 +3622,6 @@
},
/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
@@ -3906,7 +3878,7 @@ aj
aj
aj
aj
-Wz
+aj
"}
(2,1,1) = {"
aa
@@ -8751,7 +8723,7 @@ aq
WB
aq
bi
-WF
+aq
WC
aq
bZ
@@ -9012,7 +8984,7 @@ az
az
aq
ca
-Wt
+ca
ca
aj
aj
@@ -12102,7 +12074,7 @@ ai
cQ
dk
dA
-WJ
+cQ
ed
er
eM
@@ -13134,7 +13106,7 @@ dR
ef
es
dZ
-WK
+cM
fg
cM
cM
@@ -20320,9 +20292,9 @@ bt
bH
bV
cq
-WH
+bf
+bq
bq
-WI
db
bP
bP
diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm
index b8484859f4..a9528ae61a 100644
--- a/_maps/map_files/OmegaStation/OmegaStation.dmm
+++ b/_maps/map_files/OmegaStation/OmegaStation.dmm
@@ -955,19 +955,6 @@
},
/turf/open/floor/plasteel/dark,
/area/bridge)
-"abn" = (
-/obj/structure/table,
-/obj/machinery/camera{
- c_tag = "Locker Room East";
- dir = 8
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/structure/bedsheetbin/color,
-/turf/open/floor/plasteel/white/corner,
-/area/crew_quarters/dorms)
"abo" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -1279,22 +1266,6 @@
},
/turf/open/floor/plasteel,
/area/science/mixing)
-"abQ" = (
-/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{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port)
"abR" = (
/obj/structure/lattice,
/turf/open/space,
@@ -4863,6 +4834,7 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/item/gun/energy/pumpaction/blaster,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"aip" = (
@@ -14753,7 +14725,7 @@
"azD" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
- name = "Cabin"
+ name = "Bar Back Room"
},
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -15311,6 +15283,19 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
+"aAJ" = (
+/obj/structure/table,
+/obj/machinery/camera{
+ c_tag = "Locker Room East";
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel/white/corner,
+/area/crew_quarters/dorms)
"aAK" = (
/obj/structure/sign/poster/random,
/turf/closed/wall,
@@ -16186,11 +16171,13 @@
"aCs" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"aCw" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"aCz" = (
@@ -37180,6 +37167,22 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
+"dEa" = (
+/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{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port)
"dFV" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
@@ -37669,6 +37672,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"gcw" = (
@@ -37974,6 +37978,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"hTn" = (
@@ -38421,6 +38426,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"kiw" = (
@@ -39022,6 +39028,12 @@
dir = 1
},
/area/engine/atmos)
+"ooX" = (
+/obj/machinery/smartfridge/organ/preloaded{
+ pixel_y = 2
+ },
+/turf/closed/wall,
+/area/medical/medbay/zone3)
"oql" = (
/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
@@ -42882,12 +42894,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"uvp" = (
-/obj/machinery/smartfridge/organ/preloaded{
- pixel_y = 2
- },
-/turf/closed/wall,
-/area/medical/medbay/zone3)
"uxJ" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -76204,7 +76210,7 @@ aZp
bak
bbc
bbQ
-abQ
+dEa
bdD
beu
sKE
@@ -81603,7 +81609,7 @@ aSh
bcf
bcW
blt
-uvp
+ooX
aOL
bfA
bfX
@@ -82342,7 +82348,7 @@ awQ
axK
ayC
awQ
-abn
+aAJ
aBT
awQ
aDI
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index 13922a15e2..be4128208a 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -2,63 +2,12 @@
"aaa" = (
/turf/open/space/basic,
/area/space)
-"aab" = (
-/obj/machinery/newscaster{
- pixel_x = 32
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/structure/bedsheetbin/color,
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/dorms)
-"aac" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/obj/structure/table,
-/obj/structure/bedsheetbin/towel,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/restrooms)
"aad" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
-"aae" = (
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/security/prison)
-"aaf" = (
-/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/crew_quarters/heads/captain)
"abf" = (
/obj/structure/bed,
/turf/open/floor/plating,
@@ -68,13 +17,6 @@
/obj/structure/grille,
/turf/open/space,
/area/space/nearstation)
-"abD" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"abI" = (
/obj/structure/lattice,
/turf/open/space,
@@ -1620,6 +1562,13 @@
},
/turf/open/floor/plasteel/dark,
/area/security/prison)
+"afI" = (
+/obj/machinery/computer/arcade{
+ icon_state = "arcade";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"afJ" = (
/obj/effect/landmark/carpspawn,
/turf/open/space/basic,
@@ -3898,15 +3847,9 @@
/area/security/armory)
"akN" = (
/obj/effect/landmark/event_spawn,
-/mob/living/simple_animal/bot/secbot{
- arrest_type = 1;
- health = 45;
- icon_state = "secbot1";
- idcheck = 1;
- name = "Sergeant-at-Armsky";
- on = 1;
- weaponscheck = 1
- },
+/obj/structure/rack,
+/obj/item/gun/energy/pumpaction/blaster,
+/obj/item/gun/energy/pumpaction/blaster,
/turf/open/floor/plasteel/dark,
/area/security/armory)
"akO" = (
@@ -7276,6 +7219,22 @@
},
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/dorms)
+"asg" = (
+/obj/machinery/newscaster{
+ pixel_x = 32
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/dorms)
"ash" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -13679,6 +13638,23 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
+"aGm" = (
+/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/crew_quarters/heads/captain)
"aGn" = (
/obj/item/twohanded/required/kirbyplants/photosynthetic{
layer = 3.1
@@ -14546,18 +14522,6 @@
},
/turf/open/space,
/area/solar/port)
-"aIA" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"aIC" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -14870,6 +14834,17 @@
},
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet/restrooms)
+"aJo" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/restrooms)
"aJp" = (
/obj/item/chair,
/turf/open/floor/plating,
@@ -15277,6 +15252,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"aKm" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"aKn" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -16681,19 +16663,6 @@
/turf/open/floor/plating,
/area/maintenance/disposal)
"aNV" = (
-/obj/machinery/mineral/stacking_unit_console{
- dir = 2;
- machinedir = 8;
- pixel_x = -32;
- pixel_y = 32
- },
-/obj/machinery/conveyor{
- dir = 4;
- id = "garbagestacked"
- },
-/turf/open/floor/plating,
-/area/maintenance/disposal)
-"aNW" = (
/obj/machinery/conveyor{
dir = 4;
id = "garbagestacked"
@@ -24177,17 +24146,6 @@
/obj/item/caution,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"beT" = (
-/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)
"beU" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -24603,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,
@@ -29419,13 +29383,6 @@
dir = 1
},
/obj/effect/landmark/start/chemist,
-/obj/machinery/button/door{
- id = "chemistry_shutters";
- name = "Shutters Control";
- pixel_x = 26;
- pixel_y = 4;
- req_access_txt = "5; 33"
- },
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
@@ -29467,15 +29424,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/chemistry)
-"brp" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-03"
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = -24
- },
-/turf/open/floor/plasteel/dark,
-/area/science/lab)
"brq" = (
/obj/structure/sink/kitchen{
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
@@ -31957,13 +31905,27 @@
/turf/open/floor/plasteel/white,
/area/medical/chemistry)
"bwW" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "chemistry_shutters";
- name = "chemistry shutters"
+/obj/structure/rack,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
/area/medical/chemistry)
+"bxa" = (
+/obj/structure/table/glass,
+/obj/item/book/manual/wiki/research_and_development,
+/obj/item/disk/tech_disk,
+/obj/item/disk/design_disk,
+/turf/open/floor/plasteel/dark,
+/area/science/lab)
"bxc" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -37170,7 +37132,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/purple{
dir = 1
},
@@ -37295,6 +37256,19 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
+"bHp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"bHq" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -38068,6 +38042,11 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/dock)
+"bIY" = (
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/hallway/secondary/entry)
"bIZ" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -39145,6 +39124,15 @@
heat_capacity = 1e+006
},
/area/chapel/dock)
+"bLs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/hallway/secondary/entry)
"bLt" = (
/obj/effect/decal/cleanable/oil{
icon_state = "floor6"
@@ -39655,6 +39643,14 @@
heat_capacity = 1e+006
},
/area/chapel/dock)
+"bMy" = (
+/obj/structure/window/reinforced{
+ dir = 8;
+ layer = 2.9
+ },
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
"bMA" = (
/obj/effect/landmark/event_spawn,
/turf/open/floor/engine,
@@ -40506,6 +40502,19 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/dock)
+"bOy" = (
+/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/dock)
"bOz" = (
/obj/structure/chair/comfy/black{
dir = 1
@@ -41105,6 +41114,7 @@
/area/engine/atmos)
"bQa" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bQb" = (
@@ -42214,6 +42224,12 @@
/obj/structure/flora/ausbushes,
/turf/open/floor/plating/asteroid,
/area/chapel/asteroid/monastery)
+"bSn" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/space,
+/area/space/nearstation)
"bSo" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -42511,6 +42527,7 @@
/area/engine/atmos)
"bSX" = (
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bSY" = (
@@ -44016,6 +44033,7 @@
/area/engine/atmos)
"bWf" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bWg" = (
@@ -44747,6 +44765,12 @@
},
/turf/closed/wall/r_wall,
/area/engine/atmos)
+"bXI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main/monastery)
"bXJ" = (
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
@@ -45068,24 +45092,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"bYM" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"bYN" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -45158,15 +45164,15 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
/turf/open/floor/plasteel,
/area/engine/engineering)
"bYR" = (
@@ -46129,6 +46135,7 @@
/area/engine/atmos)
"cbt" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"cbu" = (
@@ -46136,6 +46143,7 @@
/area/engine/atmos)
"cbv" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cbw" = (
@@ -46660,7 +46668,6 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/obj/machinery/power/port_gen/pacman,
/turf/open/floor/plasteel,
/area/engine/engineering)
"cdK" = (
@@ -46829,15 +46836,6 @@
},
/turf/open/floor/plating/asteroid,
/area/chapel/asteroid/monastery)
-"cep" = (
-/obj/structure/sign/poster/official/random{
- pixel_x = -32
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"ceq" = (
/obj/machinery/power/emitter,
/turf/open/floor/plating,
@@ -46928,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
@@ -47098,6 +47106,22 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
+"cfp" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/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/main/monastery)
"cfr" = (
/obj/structure/transit_tube_pod,
/obj/structure/transit_tube/station/reverse{
@@ -47385,13 +47409,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
-"cgt" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"cgu" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
@@ -50127,19 +50144,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/dock)
-"cqI" = (
-/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/dock)
"cqS" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -50881,22 +50885,6 @@
/obj/machinery/vending/wardrobe/chap_wardrobe,
/turf/open/floor/carpet,
/area/chapel/office)
-"cua" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
- },
-/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/main/monastery)
"cuc" = (
/obj/machinery/light,
/obj/machinery/camera{
@@ -50917,6 +50905,13 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"cui" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
"cuk" = (
/obj/structure/closet{
name = "beekeeping wardrobe"
@@ -51829,22 +51824,6 @@
},
/turf/open/space/basic,
/area/space/nearstation)
-"cxj" = (
-/obj/structure/table,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/pipe_dispenser,
-/obj/item/pipe_dispenser,
-/obj/item/pipe_dispenser,
-/obj/machinery/light,
-/obj/effect/turf_decal/delivery,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cxk" = (
/obj/structure/window/reinforced{
dir = 1;
@@ -51993,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
@@ -52389,12 +52374,6 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
-"cAp" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"cAr" = (
/obj/machinery/light/small{
dir = 8
@@ -52546,6 +52525,15 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
+"cAQ" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"cAS" = (
/obj/machinery/vending/wardrobe/curator_wardrobe,
/turf/open/floor/plasteel/dark,
@@ -52843,19 +52831,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/security/brig)
-"cJd" = (
-/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)
"cJo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -52874,6 +52849,23 @@
},
/turf/open/floor/plasteel,
/area/science/explab)
+"cKV" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"cLw" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"cOp" = (
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
@@ -52883,13 +52875,6 @@
/obj/structure/table,
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"cOA" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"cPy" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 2
@@ -52924,14 +52909,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
-"cQZ" = (
-/obj/machinery/door/airlock/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/department/engine)
-"cRJ" = (
-/obj/machinery/status_display/supply,
-/turf/closed/wall,
-/area/quartermaster/warehouse)
"cSJ" = (
/obj/item/reagent_containers/glass/beaker/cryoxadone{
pixel_x = -2;
@@ -52987,15 +52964,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/lab)
-"cUT" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 9
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"cXW" = (
/obj/structure/grille,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -53048,6 +53016,13 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
+"dgj" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"dgz" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -53069,13 +53044,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"dhu" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 6
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"dhz" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -53120,12 +53088,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/explab)
-"dlI" = (
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"dmP" = (
/obj/structure/chair{
dir = 8
@@ -53197,21 +53159,10 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
-"dqi" = (
-/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)
+"dps" = (
+/obj/machinery/status_display/ai,
+/turf/closed/wall,
+/area/quartermaster/qm)
"dqw" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "0";
@@ -53247,6 +53198,13 @@
/obj/machinery/reagentgrinder,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"dsz" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 5
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"dtm" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -53312,24 +53270,6 @@
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"dzA" = (
-/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)
-"dAa" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"dAF" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external,
@@ -53344,30 +53284,54 @@
icon_state = "platingdmg1"
},
/area/maintenance/department/engine)
-"dFF" = (
-/turf/closed/wall/r_wall,
+"dEy" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"dFJ" = (
+/turf/open/floor/engine,
/area/engine/supermatter)
-"dGd" = (
+"dHr" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/machinery/meter,
+/obj/machinery/button/door{
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_y = 24;
+ req_access_txt = "10"
+ },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/engine,
/area/engine/engineering)
-"dGp" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
+"dHZ" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/obj/effect/landmark/start/chemist,
+/obj/machinery/button/door{
+ id = "chemistry_shutters";
+ name = "Shutters Control";
+ pixel_x = 26;
+ pixel_y = 4;
+ req_access_txt = "5; 33"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
-"dHF" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"dJk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
"dJm" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -53427,47 +53391,57 @@
/obj/machinery/shieldwallgen/xenobiologyaccess,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"dPZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+"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,
+/turf/open/floor/plasteel/dark,
+/area/security/armory)
+"dSp" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
/area/engine/engineering)
-"dRs" = (
-/obj/structure/lattice,
-/obj/structure/grille,
-/turf/open/space/basic,
-/area/space)
"dSr" = (
/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)
-"dUk" = (
-/obj/machinery/cryopod{
+"dUI" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
-/turf/open/floor/plasteel/dark,
-/area/security/prison)
-"dVt" = (
-/obj/structure/chair/office/light{
- dir = 1
- },
-/obj/effect/landmark/start/chemist,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
/turf/open/floor/plasteel/white,
-/area/medical/chemistry)
+/area/hallway/secondary/entry)
"dVI" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 4;
@@ -53521,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
@@ -53534,6 +53512,10 @@
/obj/structure/chair/office/light,
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
+"eex" = (
+/obj/machinery/status_display/supply,
+/turf/closed/wall,
+/area/quartermaster/office)
"eeQ" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -53569,22 +53551,50 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"eiV" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/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)
+"epj" = (
+/obj/machinery/cryopod{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"epJ" = (
/obj/structure/sign/poster/contraband/random{
pixel_y = 32
},
/turf/open/floor/carpet,
/area/maintenance/department/crew_quarters/dorms)
+"epV" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"eqD" = (
/obj/structure/sign/poster/contraband/random{
pixel_x = -32
@@ -53594,20 +53604,6 @@
icon_state = "wood-broken"
},
/area/maintenance/department/crew_quarters/dorms)
-"eqM" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 5
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
-"erV" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"eta" = (
/obj/machinery/door/airlock/engineering{
name = "Engineering Supplies";
@@ -53626,40 +53622,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"eue" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"eux" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
-"euN" = (
-/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)
"euQ" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
@@ -53669,20 +53631,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"eyT" = (
-/obj/machinery/jukebox,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/bar)
-"ezo" = (
-/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)
+"eyj" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
"ezF" = (
/obj/structure/table/wood,
/obj/item/paper_bin,
@@ -53714,6 +53666,23 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
+"eAH" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"eAZ" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
"eCw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -53752,6 +53721,19 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
+"eFG" = (
+/obj/machinery/mineral/stacking_unit_console{
+ dir = 2;
+ machinedir = 8;
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbagestacked"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
"eHI" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
@@ -53776,17 +53758,6 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
-"eMz" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 4
- },
-/obj/machinery/door/airlock/engineering/glass{
- name = "Supermatter Engine";
- req_access_txt = "10"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"eMC" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -53806,15 +53777,6 @@
/obj/structure/lattice,
/turf/closed/wall,
/area/space/nearstation)
-"eOA" = (
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/lattice,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"eOZ" = (
/obj/structure/closet,
/obj/item/clothing/suit/judgerobe,
@@ -53822,25 +53784,18 @@
/obj/item/gavelhammer,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"ePS" = (
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = -28
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"ePU" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/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{
@@ -53862,6 +53817,18 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/security/brig)
+"eRp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"eSB" = (
+/obj/machinery/computer/cryopod{
+ dir = 1;
+ pixel_y = -26
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"eSL" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/item/beacon,
@@ -53883,10 +53850,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"eVW" = (
-/obj/machinery/portable_atmospherics/canister/toxins,
-/turf/open/floor/plating,
-/area/engine/engineering)
"eWi" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -53916,12 +53879,6 @@
/obj/item/stack/cable_coil/cut/random,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"fbu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 6
- },
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
"fdQ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -53980,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
@@ -54006,6 +53966,22 @@
},
/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
+ },
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"fkH" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -54018,20 +53994,16 @@
},
/turf/open/floor/plasteel,
/area/science/explab)
-"flP" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"fmh" = (
/turf/open/floor/wood,
/area/maintenance/department/engine)
-"fml" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
+"fmL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
},
-/turf/closed/wall/r_wall,
+/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"fmU" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -54072,6 +54044,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"frj" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
"ftp" = (
/turf/open/floor/plating{
icon_state = "platingdmg1"
@@ -54121,10 +54099,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/sorting)
-"fwo" = (
-/obj/machinery/door/airlock/maintenance,
-/turf/open/floor/plating,
-/area/chapel/main/monastery)
"fwr" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -54138,6 +54112,21 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"fxC" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"fym" = (
+/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)
"fyF" = (
/obj/structure/cable/yellow{
icon_state = "0-4"
@@ -54206,6 +54195,23 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"fBZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/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{
@@ -54214,14 +54220,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"fGt" = (
-/obj/structure/chair/stool,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/landmark/start/station_engineer,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"fIu" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -54294,9 +54292,19 @@
/obj/structure/bookcase/random/religion,
/turf/open/floor/plasteel/dark,
/area/library/lounge)
-"fWE" = (
+"fZK" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
/turf/open/floor/engine,
-/area/engine/supermatter)
+/area/engine/engineering)
"gam" = (
/obj/machinery/door/airlock/medical/glass{
name = "Service Door";
@@ -54309,18 +54317,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/kitchen)
-"gaJ" = (
-/obj/machinery/status_display/ai,
-/turf/closed/wall,
-/area/quartermaster/qm)
-"gaQ" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"gcj" = (
/obj/machinery/vending/kink,
/obj/effect/turf_decal/tile/blue{
@@ -54368,13 +54364,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
-"gfh" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 6
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"gfi" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -54385,21 +54374,10 @@
/turf/open/floor/plating,
/area/maintenance/department/cargo)
"ggg" = (
-/mob/living/simple_animal/hostile/retaliate/goose,
-/turf/open/floor/wood,
-/area/maintenance/department/crew_quarters/dorms)
-"gih" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
},
-/obj/machinery/light{
- dir = 1;
- light_color = "#d1dfff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
+/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"giI" = (
/obj/machinery/light/small{
@@ -54444,12 +54422,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"gkN" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"gkR" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/structure/extinguisher_cabinet{
@@ -54579,14 +54551,6 @@
heat_capacity = 1e+006
},
/area/hallway/secondary/exit/departure_lounge)
-"gvO" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/white{
- heat_capacity = 1e+006
- },
-/area/chapel/dock)
"gwn" = (
/obj/structure/sign/warning{
pixel_y = 32
@@ -54639,6 +54603,24 @@
/obj/item/flashlight/lamp/green,
/turf/open/floor/carpet,
/area/lawoffice)
+"gBb" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"gDR" = (
+/obj/machinery/camera{
+ c_tag = "Central Primary Hallway Escape";
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"gDZ" = (
/obj/effect/turf_decal/box/corners{
dir = 1
@@ -54658,6 +54640,11 @@
},
/turf/open/floor/plasteel/dark,
/area/science/explab)
+"gEo" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"gFo" = (
/obj/structure/window/reinforced,
/obj/structure/table/glass,
@@ -54684,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
@@ -54691,39 +54686,17 @@
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
"gGA" = (
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "chemistry_shutters";
- name = "chemistry shutters"
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/white,
/area/medical/chemistry)
-"gHp" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/light{
- dir = 8;
- light_color = "#e8eaff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"gHy" = (
-/obj/machinery/computer/cryopod{
- dir = 1;
- pixel_y = -26
- },
-/turf/open/floor/plasteel/dark,
-/area/security/prison)
"gHZ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -54774,13 +54747,6 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"gLn" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"gLF" = (
/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/tile/neutral{
@@ -54826,12 +54792,29 @@
},
/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
},
/turf/open/floor/wood,
/area/lawoffice)
+"gQf" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"gSH" = (
/turf/closed/wall,
/area/lawoffice)
@@ -54849,21 +54832,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"gUS" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Fore";
- dir = 1;
- network = list("ss13","engine")
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"gVc" = (
/turf/open/floor/wood{
icon_state = "wood-broken4"
@@ -54876,10 +54844,39 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
+"gXZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Fore";
+ dir = 4;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"gYo" = (
/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,
+/obj/item/stack/rods/fifty,
+/obj/item/clothing/glasses/welding,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"heC" = (
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
@@ -54926,6 +54923,24 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
+"hjk" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"hjD" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"hkQ" = (
/obj/machinery/light{
dir = 4
@@ -54948,6 +54963,26 @@
},
/turf/open/floor/wood,
/area/lawoffice)
+"hon" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Gas to Filter"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"hoS" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/engine,
+/area/engine/engineering)
"hqo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -54963,13 +54998,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"hrx" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"hvW" = (
/obj/machinery/door/poddoor/preopen{
id = "xenobio4";
@@ -55005,27 +55033,18 @@
/obj/machinery/portable_atmospherics/canister/toxins,
/turf/open/floor/plating,
/area/security/execution/transfer)
-"hxh" = (
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"hxn" = (
/obj/structure/chair,
/obj/item/clothing/glasses/regular,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"hyl" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+"hyh" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 9
},
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/security/prison)
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"hzc" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -55055,21 +55074,12 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/port)
-"hCg" = (
-/obj/machinery/conveyor{
- dir = 8;
- id = "garbage"
+"hCR" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
},
-/turf/open/floor/plating,
-/area/maintenance/disposal)
-"hDy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/holopad,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+/area/maintenance/department/chapel/monastery)
"hDG" = (
/obj/machinery/door/airlock/engineering{
name = "Auxillary Base Construction";
@@ -55102,20 +55112,43 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"hGB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"hHr" = (
/obj/structure/chair/comfy/black{
dir = 4
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"hJO" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+"hIZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"hKp" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/obj/structure/window/plasma/reinforced{
dir = 4
},
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
+/obj/machinery/power/rad_collector/anchored,
+/turf/open/floor/engine,
+/area/engine/supermatter)
"hOx" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -55153,6 +55186,17 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
+"hQy" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/item/tank/internals/plasma,
+/turf/open/floor/plating,
+/area/engine/supermatter)
"hQz" = (
/obj/structure/closet/emcloset/anchored,
/obj/structure/cable/yellow{
@@ -55164,14 +55208,29 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/engine/engineering)
-"hRQ" = (
-/obj/structure/window/reinforced{
- dir = 8;
- layer = 2.9
+"hSt" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Gas to Cooling Loop"
},
-/obj/structure/lattice,
-/turf/open/space,
-/area/space/nearstation)
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"hSC" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"hSM" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
@@ -55196,23 +55255,18 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"hUf" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 9
- },
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
-"hUi" = (
-/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
-/obj/machinery/meter,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"hUt" = (
/obj/structure/closet/crate{
icon_state = "crateopen"
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"hUw" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
"hUJ" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55228,25 +55282,17 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"hWa" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
-"hXm" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"hXt" = (
/obj/structure/girder,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"hXK" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"hYe" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red{
@@ -55288,15 +55334,20 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
-"iaZ" = (
-/turf/open/space/basic,
-/area/hallway/secondary/entry)
"ick" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel/dark,
/area/library)
+"iej" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
"igE" = (
/obj/structure/table/reinforced,
/obj/machinery/button/door{
@@ -55345,24 +55396,30 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
-"ikm" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Mix to Gas"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"ikB" = (
/obj/structure/closet/secure_closet/medical2,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"ikO" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"ilD" = (
/obj/machinery/processor/slime,
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
+"imE" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"ioj" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -55379,13 +55436,43 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
+"iop" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/visible{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"ioF" = (
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"iqc" = (
/turf/open/floor/plasteel/stairs/right,
/area/maintenance/department/crew_quarters/dorms)
-"irs" = (
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space)
+"irD" = (
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
+"irM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"itl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55418,6 +55505,13 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"iwe" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"iyg" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55434,6 +55528,11 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
+"izm" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/engine/engineering)
"izB" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod"
@@ -55516,20 +55615,6 @@
},
/turf/open/floor/plasteel/white,
/area/storage/emergency/port)
-"iHe" = (
-/obj/machinery/camera{
- c_tag = "Central Primary Hallway Escape";
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"iHI" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
"iJi" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -55543,6 +55628,13 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/quartermaster/sorting)
+"iLh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/engine/engineering)
"iLl" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -55604,22 +55696,6 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
-"iSi" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Cooling Loop Bypass"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"iSz" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -55632,14 +55708,9 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"iSL" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plating,
-/area/engine/atmos)
-"iTE" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine,
+"iTF" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
/area/engine/supermatter)
"iVJ" = (
/obj/effect/spawner/lootdrop/organ_spawner,
@@ -55659,10 +55730,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"jdA" = (
-/obj/machinery/smartfridge/organ/preloaded,
-/turf/closed/wall,
-/area/medical/surgery)
"jeq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55677,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"
@@ -55710,16 +55784,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/crew_quarters/dorms)
-"jjA" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "Gas to Cooling Loop"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"jjC" = (
/obj/structure/rack,
/obj/item/storage/briefcase{
@@ -55732,18 +55796,6 @@
},
/turf/open/floor/wood,
/area/lawoffice)
-"jkm" = (
-/obj/structure/closet/emcloset,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
- },
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
-"jrb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"jrG" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -55799,17 +55851,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"jtv" = (
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Starboard";
- dir = 8;
- network = list("ss13","engine")
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"jvi" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -55855,6 +55896,17 @@
/obj/structure/sign/warning/vacuum/external,
/turf/open/floor/plating,
/area/hallway/secondary/entry)
+"jzE" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Engine";
+ req_access_txt = "10"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"jAy" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -55933,39 +55985,15 @@
/obj/machinery/atmospherics/pipe/simple/purple/visible,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"jOw" = (
-/obj/structure/closet/secure_closet/engineering_electrical,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"jOB" = (
/turf/open/floor/plating,
/area/storage/emergency/starboard)
-"jOX" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Monastery Transit"
- },
-/turf/open/floor/plasteel/white{
- heat_capacity = 1e+006
- },
-/area/chapel/dock)
"jPf" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance,
/obj/item/kitchen/knife,
/turf/open/floor/plasteel,
/area/maintenance/department/engine)
-"jPC" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/space,
-/area/space/nearstation)
"jQh" = (
/obj/item/stack/sheet/animalhide/xeno,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -55975,15 +56003,6 @@
icon_state = "platingdmg1"
},
/area/maintenance/department/science)
-"jQn" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"jRG" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -55994,13 +56013,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"jTc" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "Gas to Filter"
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"jTh" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -56022,6 +56034,24 @@
},
/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{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"jUV" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -56042,6 +56072,12 @@
/obj/item/stack/ore/iron,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"jXF" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"jXV" = (
/obj/machinery/light/small{
dir = 1
@@ -56066,14 +56102,20 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/engine)
-"kec" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/light{
- dir = 8;
- light_color = "#e8eaff"
+"jZG" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "chemistry_shutters";
+ name = "chemistry shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"kaR" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 8
},
/obj/effect/turf_decal/stripes/line{
- dir = 8
+ dir = 1
},
/turf/open/floor/engine,
/area/engine/engineering)
@@ -56131,6 +56173,10 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
+"klb" = (
+/obj/machinery/status_display/supply,
+/turf/closed/wall,
+/area/quartermaster/sorting)
"klo" = (
/obj/structure/dresser,
/obj/structure/mirror{
@@ -56149,16 +56195,32 @@
/obj/item/clothing/under/rank/clown/sexy,
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
+"kmd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"kmn" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/science/mixing)
+"koz" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"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
@@ -56172,12 +56234,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"ksC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
+"kuT" = (
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/department/engine)
"kvj" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -56191,20 +56251,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
-"kvu" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"kvx" = (
-/obj/machinery/light,
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
"kwm" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -56249,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
@@ -56265,22 +56320,12 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
-"kBe" = (
-/obj/structure/reflector/double/anchored{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"kDf" = (
/obj/machinery/light/small{
dir = 2
},
/turf/open/floor/carpet/black,
/area/chapel/office)
-"kDI" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/turf/open/floor/plating,
-/area/engine/supermatter)
"kDJ" = (
/obj/machinery/light{
dir = 8
@@ -56362,6 +56407,10 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"kGc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"kIo" = (
/obj/structure/table,
/obj/item/paper_bin{
@@ -56396,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";
@@ -56413,11 +56472,6 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"kNK" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/engine/engineering)
"kPi" = (
/obj/structure/table,
/obj/machinery/microwave,
@@ -56491,10 +56545,20 @@
},
/turf/open/floor/plating,
/area/storage/emergency/port)
-"kVA" = (
-/obj/machinery/status_display/supply,
-/turf/closed/wall,
-/area/quartermaster/sorting)
+"kTj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"kTR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"kWQ" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible,
/obj/structure/cable/yellow{
@@ -56508,15 +56572,16 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"kYR" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+"kYM" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
},
-/obj/machinery/light,
-/turf/open/floor/plasteel/white{
- heat_capacity = 1e+006
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
},
-/area/hallway/secondary/entry)
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"lcU" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -56544,14 +56609,29 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
-"lfZ" = (
-/obj/machinery/status_display/supply,
-/turf/closed/wall,
-/area/quartermaster/office)
+"lfx" = (
+/obj/structure/table,
+/obj/item/clothing/suit/hooded/wintercoat/engineering,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"lhA" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"lhP" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"liR" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
@@ -56566,30 +56646,18 @@
/obj/machinery/atmospherics/pipe/simple/general/hidden,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"llS" = (
-/turf/open/floor/plasteel/white{
- heat_capacity = 1e+006
+"ljG" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 6
},
-/area/hallway/secondary/entry)
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"lms" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
},
/turf/closed/wall,
/area/maintenance/department/engine)
-"lmv" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/obj/machinery/light{
- dir = 1;
- light_color = "#d1dfff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"lnn" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral,
@@ -56598,17 +56666,32 @@
},
/turf/open/floor/plasteel,
/area/storage/primary)
+"lnr" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"loz" = (
+/obj/structure/closet/radiation,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"lqc" = (
/obj/item/toy/gun,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"lqo" = (
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/maintenance/department/chapel/monastery)
"lqy" = (
/obj/machinery/door/airlock/grunge{
name = "Library"
@@ -56618,13 +56701,27 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/library/lounge)
-"lxh" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
+"lrM" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ltB" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"lxm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/space,
-/area/space/nearstation)
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/chapel/dock)
"lzJ" = (
/obj/structure/closet/crate/bin,
/turf/open/floor/carpet,
@@ -56658,24 +56755,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"lCR" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"lCY" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"lDW" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"lEn" = (
/obj/structure/window/reinforced{
dir = 1
@@ -56746,6 +56825,12 @@
/obj/item/wrench,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"lJI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"lKL" = (
/obj/machinery/door/airlock/abandoned{
name = "Starboard Emergency Storage";
@@ -56780,13 +56865,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"lQy" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/open/space,
-/area/space/nearstation)
"lQQ" = (
/obj/machinery/door/poddoor/preopen{
id = "bridgespace";
@@ -56812,6 +56890,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"lRX" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"lTC" = (
/obj/item/shard,
/obj/effect/turf_decal/stripes/line{
@@ -56822,6 +56907,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"lUO" = (
+/obj/structure/sign/warning/radiation,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"lWy" = (
/turf/open/floor/plating,
/area/maintenance/department/science)
@@ -56843,11 +56932,28 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"lXb" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Gas to Mix"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"lXc" = (
/obj/structure/table,
/obj/item/clothing/head/beret,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"lXJ" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"mal" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -56888,32 +56994,10 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"mbD" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
+"mci" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
/turf/open/floor/plating,
/area/engine/engineering)
-"mcf" = (
-/obj/structure/table/glass,
-/obj/machinery/reagentgrinder,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/medical/chemistry)
-"mdi" = (
-/obj/machinery/rnd/production/circuit_imprinter,
-/obj/machinery/camera{
- c_tag = "Engineering Starboard Aft";
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"mdL" = (
/obj/structure/table,
/obj/item/paper_bin,
@@ -56930,19 +57014,19 @@
/obj/machinery/status_display/evac,
/turf/closed/wall/r_wall,
/area/engine/supermatter)
-"mfg" = (
-/obj/structure/window/reinforced{
- dir = 8
+"mfC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/turf/open/space,
-/area/space/nearstation)
-"mfx" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 10
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"mgz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"mhl" = (
/obj/machinery/power/emitter,
/obj/machinery/light{
@@ -56950,14 +57034,45 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
-"mlb" = (
-/obj/structure/cable{
- icon_state = "1-8"
+"mhn" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/poster/random{
+ pixel_x = 32
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"miw" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Fore";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/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,
+/area/crew_quarters/bar)
+"mjK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/closed/wall/r_wall,
/area/engine/engineering)
"mlr" = (
/obj/structure/lattice,
@@ -56966,26 +57081,6 @@
},
/turf/open/space/basic,
/area/space/nearstation)
-"mlx" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"mlS" = (
-/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)
"mmv" = (
/obj/machinery/door/airlock/engineering{
name = "Engineering Supplies";
@@ -57033,6 +57128,19 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
+"mqp" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -28
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"msX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -57071,21 +57179,6 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"mvA" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"mvY" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
- name = "Gas to Filter"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine,
-/area/engine/supermatter)
"mwg" = (
/obj/structure/closet/crate{
icon_state = "crateopen"
@@ -57096,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{
@@ -57104,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
@@ -57153,12 +57261,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/maintenance/department/engine)
-"mAi" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"mCe" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -57167,27 +57269,6 @@
},
/turf/open/floor/plating,
/area/security/checkpoint/engineering)
-"mCP" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"mCU" = (
-/obj/structure/table,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/rods/fifty,
-/obj/item/clothing/glasses/welding,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"mDW" = (
/obj/machinery/power/smes{
charge = 5e+006
@@ -57195,6 +57276,16 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/tcommsat/computer)
+"mEu" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"mES" = (
/obj/machinery/door/airlock/maintenance/abandoned{
name = "Surgical Room"
@@ -57224,10 +57315,6 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
-"mLc" = (
-/obj/structure/sign/warning/electricshock,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"mLB" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -57267,16 +57354,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"mVj" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"mVM" = (
/turf/open/floor/plating/airless,
/area/space/nearstation)
@@ -57289,20 +57366,6 @@
"mZE" = (
/turf/open/space/basic,
/area/space/nearstation)
-"mZK" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"mZV" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"naq" = (
/obj/structure/disposaloutlet{
dir = 4
@@ -57312,14 +57375,14 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"ndf" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Gas to Mix"
+"ncm" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
},
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/engine/engineering)
"ndI" = (
@@ -57364,37 +57427,10 @@
/obj/structure/lattice,
/turf/open/space,
/area/space/nearstation)
-"ngg" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"ngp" = (
/obj/item/chair/stool,
/turf/open/floor/carpet,
/area/maintenance/department/crew_quarters/dorms)
-"nhW" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -23
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"nif" = (
-/obj/structure/table/glass,
-/obj/item/book/manual/wiki/engineering_hacking{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/book/manual/wiki/engineering_construction,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"nih" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/costume,
@@ -57418,30 +57454,6 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
-"nkk" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/obj/structure/chair{
- dir = 8;
- name = "Defense"
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics Starboard";
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"nku" = (
/obj/machinery/door/airlock/centcom{
name = "Crematorium";
@@ -57451,21 +57463,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
-"nnf" = (
-/obj/structure/rack,
-/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
-/obj/item/clothing/glasses/science,
-/obj/item/clothing/glasses/science,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/white,
-/area/medical/chemistry)
"nnh" = (
/obj/structure/chair{
dir = 8
@@ -57473,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,
@@ -57487,6 +57489,13 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"nqu" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 10
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"nqV" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -57497,19 +57506,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"nqW" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 4
- },
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"nsy" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -57539,6 +57535,14 @@
},
/turf/closed/wall/r_wall,
/area/science/mixing)
+"nsJ" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"ntj" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -57575,10 +57579,6 @@
},
/turf/open/floor/plasteel/white/corner,
/area/hallway/primary/central)
-"nyN" = (
-/obj/machinery/power/supermatter_crystal/engine,
-/turf/open/floor/engine,
-/area/engine/supermatter)
"nyO" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-22"
@@ -57605,6 +57605,12 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
+"nAY" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"nBw" = (
/obj/machinery/computer/crew{
dir = 1
@@ -57677,15 +57683,6 @@
/obj/structure/table/reinforced,
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"nIq" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Fore";
- dir = 4;
- network = list("ss13","engine")
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"nIU" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -57709,17 +57706,6 @@
},
/turf/open/floor/engine,
/area/science/explab)
-"nKF" = (
-/obj/machinery/door/firedoor,
-/obj/structure/sign/poster/random{
- pixel_x = 32
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"nLl" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -57755,17 +57741,6 @@
},
/turf/open/floor/plasteel,
/area/tcommsat/computer)
-"nNn" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"nNJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -57800,13 +57775,6 @@
/obj/item/chair,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"nPW" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 6
- },
-/obj/machinery/meter,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"nQc" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -57817,9 +57785,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"nQf" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/turf/closed/wall/r_wall,
+"nRM" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel,
/area/engine/engineering)
"nSj" = (
/obj/structure/grille/broken,
@@ -57833,6 +57805,16 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood,
/area/lawoffice)
+"nTr" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"nUQ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/engine/supermatter)
"nVU" = (
/obj/item/twohanded/spear,
/turf/open/floor/plating,
@@ -57845,24 +57827,25 @@
/obj/structure/table_frame/wood,
/turf/open/floor/wood,
/area/maintenance/department/engine)
-"nYe" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Mix to Engine"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"nYn" = (
/obj/structure/sign/warning/docking,
/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"
@@ -57878,23 +57861,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"obl" = (
-/obj/structure/sign/warning/radiation,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
-"obG" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/machinery/button/door{
- id = "engsm";
- name = "Radiation Shutters Control";
- pixel_y = 24;
- req_access_txt = "10"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"obP" = (
/obj/structure/table,
/obj/item/paper_bin,
@@ -57904,11 +57870,6 @@
initial_gas_mix = "o2=0.01;n2=0.01"
},
/area/maintenance/department/science)
-"ocy" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
-/area/engine/engineering)
"oep" = (
/obj/structure/table/glass,
/obj/item/paper_bin,
@@ -57941,10 +57902,14 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"oge" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/turf/open/floor/plating,
-/area/engine/engineering)
+"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,
@@ -57959,18 +57924,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"ona" = (
-/obj/machinery/atmospherics/pipe/manifold/green/visible{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"onX" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -58028,12 +57981,6 @@
/obj/structure/window/reinforced,
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"oto" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
"ous" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/button/door{
@@ -58056,14 +58003,13 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
-"ovE" = (
-/obj/machinery/light/small{
- dir = 8
+"ovg" = (
+/obj/structure/transit_tube/horizontal,
+/obj/structure/sign/departments/holy{
+ pixel_x = -32
},
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/maintenance/department/chapel/monastery)
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
"ovM" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
@@ -58089,17 +58035,11 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
-"oxt" = (
-/obj/structure/table/glass,
-/obj/item/book/manual/wiki/research_and_development,
-/obj/item/disk/tech_disk,
-/obj/item/disk/design_disk,
-/turf/open/floor/plasteel/dark,
-/area/science/lab)
-"oyE" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 6
+"oxw" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/engine/engineering)
"oyF" = (
@@ -58127,19 +58067,6 @@
},
/turf/closed/wall/r_wall,
/area/science/xenobiology)
-"oBY" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/meter,
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"oCn" = (
/obj/structure/chair/office/dark{
dir = 1
@@ -58210,15 +58137,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"oFi" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"oFo" = (
/obj/structure/closet/emcloset/anchored,
/obj/structure/sign/warning/vacuum/external{
@@ -58235,6 +58153,23 @@
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/plasteel,
/area/maintenance/department/engine)
+"oHa" = (
+/obj/machinery/power/emitter/anchored{
+ dir = 8;
+ state = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"oJr" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"oKa" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -58250,6 +58185,18 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
+"oKv" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"oKJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"oLR" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -58356,12 +58303,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/security/brig)
-"oTD" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible,
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/engine,
-/area/engine/engineering)
"oUa" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -58377,6 +58318,14 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"oWu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"oWw" = (
/obj/item/flashlight,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -58397,6 +58346,22 @@
},
/turf/open/floor/plasteel/white,
/area/security/execution/transfer)
+"oXq" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Cooling Loop Bypass"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"oYj" = (
/obj/effect/turf_decal/loading_area{
dir = 4
@@ -58409,6 +58374,12 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"paU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
"pbm" = (
/obj/machinery/door/airlock/external{
name = "Pod Docking Bay"
@@ -58444,19 +58415,6 @@
},
/turf/open/floor/plating,
/area/science/explab)
-"peb" = (
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
-/obj/structure/window/plasma/reinforced{
- dir = 4
- },
-/obj/machinery/power/rad_collector/anchored,
-/turf/open/floor/engine,
-/area/engine/supermatter)
"pfz" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -58477,12 +58435,13 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"pga" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
+"pgH" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
+/turf/open/floor/engine,
+/area/engine/engineering)
"phJ" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -58504,6 +58463,13 @@
/obj/structure/piano,
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
+"pmB" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"pnU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
dir = 4;
@@ -58512,16 +58478,14 @@
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
-"ppi" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = 29
- },
-/obj/effect/turf_decal/stripes/line{
+"poP" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
-/turf/open/floor/engine,
-/area/engine/engineering)
+/turf/open/space,
+/area/space/nearstation)
"pps" = (
/turf/closed/wall,
/area/engine/break_room)
@@ -58540,20 +58504,33 @@
},
/turf/open/floor/engine,
/area/engine/supermatter)
-"ptk" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+"psd" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 2;
+ name = "Gas to Filter"
},
-/obj/effect/turf_decal/stripes/line,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine,
-/area/engine/engineering)
-"puO" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 10
+/area/engine/supermatter)
+"pua" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
+/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,
+/area/engine/supermatter)
"pvK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
@@ -58588,13 +58565,17 @@
},
/turf/open/space/basic,
/area/space/nearstation)
-"pBs" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
+"pxD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/engine,
-/area/engine/engineering)
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "chemistry_shutters";
+ name = "chemistry shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/chemistry)
"pBD" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -58605,6 +58586,28 @@
/obj/machinery/shieldwallgen/xenobiologyaccess,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"pBJ" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 10
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"pCo" = (
+/obj/structure/reflector/single/anchored{
+ dir = 6
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/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{
@@ -58619,12 +58622,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/explab)
-"pED" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/security/prison)
"pEL" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
@@ -58667,29 +58664,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/heads/hop)
-"pIk" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/engine,
-/area/engine/engineering)
-"pJx" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 6
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/engine,
-/area/engine/engineering)
"pKd" = (
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 2;
@@ -58698,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;
@@ -58749,12 +58731,6 @@
dir = 1
},
/area/hallway/secondary/exit/departure_lounge)
-"pPu" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
- dir = 1
- },
-/turf/open/floor/plating/airless,
-/area/engine/engineering)
"pQw" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -58835,6 +58811,19 @@
/obj/structure/cable,
/turf/open/floor/wood,
/area/lawoffice)
+"pYh" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"pYw" = (
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-03"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/lab)
"pYC" = (
/obj/structure/sign/warning{
pixel_y = -32
@@ -58849,25 +58838,12 @@
},
/turf/open/floor/plasteel/white,
/area/medical/virology)
-"qbm" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"qbp" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"qbV" = (
-/obj/structure/lattice,
-/turf/open/space,
-/area/space)
"qbZ" = (
/obj/structure/rack,
/obj/item/clothing/mask/gas,
@@ -58922,6 +58898,18 @@
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"qeY" = (
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"qhE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"qjx" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/stripes/line,
@@ -58931,10 +58919,38 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"qkM" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"qnT" = (
/obj/machinery/iv_drip,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"qpd" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"qpS" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"qtA" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
@@ -59075,6 +59091,21 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"qLI" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty{
+ layer = 4
+ },
+/obj/item/stack/cable_coil,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"qMi" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/general/visible,
@@ -59111,10 +59142,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"qPh" = (
-/obj/structure/chair,
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/plasteel,
+"qOS" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
/area/engine/engineering)
"qPB" = (
/obj/structure/chair/stool,
@@ -59123,8 +59154,22 @@
},
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
-"qUe" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+"qRl" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"qTV" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -27
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 8
},
/turf/open/floor/plasteel,
@@ -59154,12 +59199,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"qWB" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"qWG" = (
/obj/structure/closet/emcloset/anchored,
/turf/open/floor/plating,
@@ -59236,13 +59275,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"rax" = (
-/obj/machinery/conveyor{
- dir = 1;
- id = "garbage"
- },
-/turf/open/floor/plating,
-/area/maintenance/disposal)
"reH" = (
/obj/item/reagent_containers/food/drinks/bottle/vodka,
/obj/structure/disposalpipe/segment{
@@ -59398,23 +59430,6 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
-"rwf" = (
-/obj/machinery/power/emitter/anchored{
- dir = 8;
- state = 2
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"rwt" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 9
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/engine,
-/area/engine/engineering)
"rxa" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -59448,13 +59463,6 @@
icon_state = "panelscorched"
},
/area/maintenance/department/engine)
-"rAZ" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 9
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"rBh" = (
/obj/structure/mopbucket,
/obj/item/mop,
@@ -59469,19 +59477,6 @@
/obj/item/reagent_containers/blood/random,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"rEt" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"rFq" = (
/obj/structure/chair,
/obj/item/reagent_containers/food/snacks/donkpocket,
@@ -59489,24 +59484,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
-"rGz" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"rHv" = (
-/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)
"rHA" = (
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
@@ -59565,16 +59542,6 @@
/obj/item/ammo_casing/shotgun/improvised,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"rMt" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = 27
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"rMV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -59586,16 +59553,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"rPd" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = -27
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"rPg" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
dir = 8
@@ -59610,12 +59567,13 @@
/obj/item/trash/can,
/turf/open/floor/wood,
/area/maintenance/department/engine)
-"rTZ" = (
-/obj/machinery/cryopod{
- dir = 8
+"rTd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/engine/engineering)
"rWE" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -59642,14 +59600,6 @@
},
/turf/open/floor/plating,
/area/storage/emergency/starboard)
-"saW" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Monastery Transit"
- },
-/turf/open/floor/plasteel/white{
- heat_capacity = 1e+006
- },
-/area/hallway/secondary/entry)
"sbk" = (
/obj/structure/girder,
/turf/open/floor/plating,
@@ -59692,17 +59642,6 @@
},
/turf/open/space,
/area/space/nearstation)
-"sdZ" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"sfr" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"sgc" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/neutral{
@@ -59717,23 +59656,51 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
-"sho" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/white{
- heat_capacity = 1e+006
- },
-/area/hallway/secondary/entry)
+"shH" = (
+/turf/closed/wall/r_wall,
+/area/space/nearstation)
"sij" = (
/obj/structure/closet,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"sjC" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/power/port_gen/pacman,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"skw" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/closed/wall,
/area/maintenance/department/security/brig)
+"slJ" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"smv" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Cooling Loop to Gas"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"spz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
@@ -59779,6 +59746,12 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/starboard)
+"svA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
"svN" = (
/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/sign/departments/restroom{
@@ -59786,6 +59759,11 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
+"swg" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"sww" = (
/obj/effect/decal/cleanable/blood/old,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
@@ -59820,12 +59798,6 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
-"sAF" = (
-/obj/structure/chair/stool,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/landmark/start/station_engineer,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"sAK" = (
/obj/item/clothing/mask/gas/plaguedoctor,
/turf/open/floor/plating,
@@ -59862,17 +59834,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"sHX" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 8;
- name = "Cooling Loop to Gas"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"sJp" = (
/obj/machinery/atmospherics/pipe/simple/general/visible,
/obj/effect/turf_decal/stripes/line,
@@ -59894,21 +59855,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"sKw" = (
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty{
- layer = 4
- },
-/obj/item/stack/cable_coil,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"sNz" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -59922,12 +59868,6 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
-"sOQ" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/space/basic,
-/area/space)
"sQt" = (
/obj/machinery/door/airlock/external{
name = "Supply Dock Airlock";
@@ -59938,37 +59878,6 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
-"sQG" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
-"sQV" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/engine,
-/area/engine/engineering)
-"sRH" = (
-/obj/structure/lattice,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced,
-/turf/open/space,
-/area/space/nearstation)
-"sTg" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/lattice,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"sUP" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 8
@@ -59995,6 +59904,19 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
+"sWW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"sXi" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -60009,6 +59931,16 @@
/obj/structure/disposalpipe/segment,
/turf/closed/wall/r_wall,
/area/science/xenobiology)
+"sYQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"sZh" = (
/obj/structure/closet/crate,
/turf/open/floor/plating,
@@ -60046,16 +59978,13 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"tcC" = (
-/obj/machinery/door/firedoor,
-/obj/structure/sign/poster/official/random{
- pixel_x = -32
+"tbw" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
},
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
+/turf/open/space,
+/area/space/nearstation)
"tcY" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -60103,6 +60032,10 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
+"tdL" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"tfw" = (
/obj/structure/cable{
icon_state = "0-2";
@@ -60148,6 +60081,17 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
+"tkL" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"tlc" = (
/obj/machinery/recharger,
/obj/structure/table,
@@ -60166,14 +60110,12 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"tmi" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
+"tlV" = (
+/obj/structure/reflector/double/anchored{
+ dir = 9
},
-/turf/open/space,
-/area/space/nearstation)
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"tnY" = (
/obj/machinery/button/door{
id = "aux_base_shutters";
@@ -60195,13 +60137,15 @@
icon_state = "panelscorched"
},
/area/maintenance/department/security/brig)
-"tpX" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/light{
+"tqO" = (
+/obj/structure/sign/poster/official/random{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"tqX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -60213,13 +60157,6 @@
},
/turf/open/floor/plating,
/area/science/xenobiology)
-"ttX" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"tue" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -60240,6 +60177,7 @@
"tvj" = (
/obj/structure/festivus{
anchored = 1;
+ desc = "A pole for dancing.";
name = "pole"
},
/turf/open/floor/plasteel/dark,
@@ -60276,19 +60214,14 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"tzh" = (
-/obj/structure/chair/office/dark{
- dir = 4
+"tzH" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "research_shutters_2";
+ name = "research shutters"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"tAv" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 6
- },
-/turf/open/floor/plating/airless,
-/area/engine/engineering)
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/lab)
"tAK" = (
/obj/structure/table,
/obj/structure/window/reinforced{
@@ -60306,6 +60239,13 @@
/obj/item/wrench,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"tDE" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Engine"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"tHk" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -60321,19 +60261,44 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"tMA" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 5
+"tJr" = (
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "research_shutters_2";
+ name = "research shutters"
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
+/turf/open/floor/plasteel,
+/area/science/lab)
+"tLP" = (
+/obj/machinery/status_display/supply,
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"tOD" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"tQT" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"tRc" = (
/obj/structure/ore_box,
/turf/open/floor/plating{
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"
@@ -60360,11 +60325,25 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
-"uaa" = (
-/turf/open/floor/plating{
- icon_state = "panelscorched"
+"tZk" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Monastery Transit"
},
-/area/maintenance/department/chapel/monastery)
+/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
@@ -60377,6 +60356,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"uaO" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 6
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"uaP" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -60390,6 +60376,19 @@
/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,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
"uek" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -60418,27 +60417,21 @@
icon_state = "panelscorched"
},
/area/maintenance/department/science)
+"ueX" = (
+/obj/structure/table/glass,
+/obj/item/book/manual/wiki/engineering_hacking{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/book/manual/wiki/engineering_construction,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"ufa" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"ufr" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"ufx" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "research_shutters_2";
- name = "research shutters"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/science/lab)
"ugC" = (
/obj/structure/chair/office/light{
icon_state = "officechair_white";
@@ -60471,6 +60464,16 @@
},
/turf/closed/wall,
/area/maintenance/department/engine)
+"ukp" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Mix to Gas"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"ulu" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -60533,12 +60536,13 @@
"uoS" = (
/turf/open/floor/plating,
/area/construction/mining/aux_base)
-"upg" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
+"upc" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 6
},
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"uqJ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -60607,17 +60611,44 @@
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
-"uwT" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"uwX" = (
/obj/machinery/field/generator,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"uxP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/chair{
+ dir = 8;
+ name = "Defense"
+ },
+/obj/machinery/camera{
+ c_tag = "Atmospherics Starboard";
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"uzh" = (
+/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)
"uzn" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/structure/cable{
@@ -60631,10 +60662,6 @@
},
/turf/open/floor/plasteel,
/area/tcommsat/computer)
-"uAL" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
"uAU" = (
/obj/structure/table/wood,
/obj/item/folder/blue,
@@ -60656,11 +60683,6 @@
},
/turf/open/floor/engine,
/area/science/explab)
-"uBu" = (
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
-/area/maintenance/department/chapel/monastery)
"uCS" = (
/obj/machinery/door/poddoor/shutters{
id = "aux_base_shutters";
@@ -60669,16 +60691,6 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
-"uDr" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"uER" = (
-/turf/closed/wall/r_wall,
-/area/space/nearstation)
"uHG" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -60691,6 +60703,22 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"uIB" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
+ dir = 4
+ },
+/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"
@@ -60727,12 +60755,10 @@
/obj/effect/turf_decal/plaque,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"uQa" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/supermatter)
+"uNP" = (
+/obj/effect/landmark/barthpot,
+/turf/open/floor/carpet,
+/area/library/lounge)
"uQR" = (
/obj/item/ammo_casing/shotgun/beanbag,
/turf/open/floor/plating,
@@ -60746,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";
@@ -60772,14 +60803,19 @@
/obj/item/stamp/law,
/turf/open/floor/carpet,
/area/lawoffice)
-"uWe" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
- name = "External Gas to Loop"
+"uWP" = (
+/obj/machinery/seed_extractor,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
},
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/engine,
-/area/engine/engineering)
+/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
@@ -60802,28 +60838,21 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/starboard)
-"uZs" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+"uYk" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
},
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+/obj/structure/lattice,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"vay" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"vbQ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
-"vdb" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"veM" = (
/obj/machinery/suit_storage_unit/rd,
/obj/machinery/light{
@@ -60841,15 +60870,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"vfn" = (
-/obj/structure/plasticflaps/opaque,
-/obj/effect/turf_decal/delivery,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "research_shutters_2";
- name = "research shutters"
- },
-/turf/open/floor/plasteel,
-/area/science/lab)
"vgp" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -60867,14 +60887,6 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"vgX" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/space,
-/area/space/nearstation)
"vhk" = (
/obj/structure/chair,
/turf/open/floor/carpet,
@@ -60888,10 +60900,31 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"vkd" = (
-/obj/effect/landmark/barthpot,
-/turf/open/floor/carpet,
-/area/library/lounge)
+"vli" = (
+/obj/structure/table,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/pipe_dispenser,
+/obj/item/pipe_dispenser,
+/obj/item/pipe_dispenser,
+/obj/machinery/light,
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"vlC" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"vlF" = (
/obj/item/coin/silver,
/obj/effect/decal/cleanable/oil{
@@ -60926,6 +60959,20 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"voh" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 5
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"vor" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"vpz" = (
/obj/structure/girder,
/turf/open/floor/plating{
@@ -60933,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
@@ -60943,6 +60995,31 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"vsw" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Starboard";
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"vsG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Research Lab Maintenance";
+ req_access_txt = "0";
+ req_one_access_txt = "7;29"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/engine)
"vsJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral{
@@ -60962,12 +61039,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"vtz" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/dark,
-/area/security/prison)
"vtT" = (
/turf/open/floor/plating,
/area/maintenance/solars/port)
@@ -60982,13 +61053,6 @@
/obj/item/clothing/mask/gas,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"vvr" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"vxp" = (
/obj/machinery/door/window/eastright{
base_state = "left";
@@ -61002,12 +61066,17 @@
/obj/item/assembly/mousetrap,
/turf/open/floor/engine,
/area/science/explab)
-"vyN" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+"vxr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/turf/closed/wall/r_wall,
-/area/crew_quarters/heads/hor)
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"vzz" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -61018,6 +61087,15 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
+"vzA" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"vzP" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
@@ -61048,6 +61126,19 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"vBE" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"vCC" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -61058,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
@@ -61073,36 +61171,16 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"vIn" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 6
- },
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
-"vIU" = (
-/obj/structure/transit_tube/horizontal,
-/obj/structure/sign/departments/holy{
+"vKq" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/poster/official/random{
pixel_x = -32
},
-/turf/open/floor/plating,
-/area/hallway/secondary/entry)
-"vJS" = (
-/obj/structure/closet/radiation,
-/obj/effect/turf_decal/tile/yellow{
+/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
/turf/open/floor/plasteel,
-/area/engine/engineering)
-"vMv" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/main/monastery)
+/area/hallway/primary/aft)
"vMx" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -61112,19 +61190,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"vMH" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"vMQ" = (
-/obj/structure/sign/warning/fire,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"vOw" = (
/obj/machinery/door/airlock/grunge{
name = "Library"
@@ -61139,13 +61204,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/library)
-"vPU" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"vRi" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -61214,20 +61272,16 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"vYi" = (
-/obj/structure/cable{
- icon_state = "4-8"
+"vVO" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
},
-/obj/machinery/door/airlock/maintenance{
- name = "Research Lab Maintenance";
- req_access_txt = "0";
- req_one_access_txt = "7;29"
- },
-/turf/open/floor/plating,
-/area/maintenance/department/engine)
+/turf/open/floor/engine,
+/area/engine/engineering)
"vYN" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8;
@@ -61237,16 +61291,22 @@
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
-"waN" = (
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 3;
- name = "3maintenance loot spawner"
+"wbB" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 2;
+ name = "External Gas to Loop"
},
-/obj/structure/rack,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"wbF" = (
+/obj/machinery/rnd/production/circuit_imprinter,
+/obj/machinery/camera{
+ c_tag = "Engineering Starboard Aft";
+ dir = 8
},
-/area/maintenance/department/chapel/monastery)
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"wcs" = (
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
@@ -61283,10 +61343,24 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
+"wfG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/hor)
"wfO" = (
/mob/living/simple_animal/hostile/retaliate/poison/snake,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"wfP" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"wig" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/plating{
@@ -61301,14 +61375,22 @@
/turf/open/floor/plating,
/area/maintenance/department/engine)
"wjm" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/structure/cable/yellow{
+/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 6
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/engine,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
/area/engine/engineering)
"wkZ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -61337,27 +61419,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/explab)
-"wlZ" = (
-/obj/machinery/light/small,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/maintenance/department/chapel/monastery)
-"wmA" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
-"wnw" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"wnJ" = (
/obj/structure/sign/warning,
/turf/closed/wall,
@@ -61391,17 +61452,6 @@
},
/turf/open/floor/wood,
/area/lawoffice)
-"wsx" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"wun" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -61429,9 +61479,19 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"wwK" = (
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
+"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"
@@ -61479,21 +61539,15 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
+"wDl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"wDm" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"wDH" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/item/tank/internals/plasma,
-/turf/open/floor/plating,
-/area/engine/supermatter)
"wDZ" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -61521,6 +61575,18 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
+"wHI" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"wIo" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"wIv" = (
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
@@ -61555,6 +61621,12 @@
},
/turf/open/floor/plating,
/area/crew_quarters/heads/cmo)
+"wLK" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"wMF" = (
/obj/effect/spawner/lootdrop/three_course_meal,
/obj/effect/spawner/lootdrop/three_course_meal,
@@ -61570,6 +61642,10 @@
/obj/structure/grille,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"wMX" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/supermatter)
"wNq" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -61640,12 +61716,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"wSU" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/plasteel/white,
-/area/hallway/secondary/entry)
"wTD" = (
/obj/structure/table/wood,
/obj/item/folder/red,
@@ -61681,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";
@@ -61688,16 +61762,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"wXe" = (
-/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)
"wXu" = (
/obj/machinery/disposal/bin,
/obj/structure/window/reinforced{
@@ -61715,6 +61779,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"wYK" = (
+/obj/machinery/power/supermatter_crystal/engine,
+/turf/open/floor/engine,
+/area/engine/supermatter)
"xah" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -61761,15 +61829,18 @@
/obj/structure/sign/warning/vacuum/external,
/turf/open/floor/plating,
/area/hallway/secondary/exit/departure_lounge)
+"xer" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
"xeB" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood,
/area/lawoffice)
-"xgB" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
"xgG" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -61794,11 +61865,16 @@
dir = 1
},
/area/hallway/secondary/exit/departure_lounge)
-"xiY" = (
-/obj/structure/lattice,
+"xhI" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"xhW" = (
/obj/structure/lattice,
/turf/open/space/basic,
-/area/space/nearstation)
+/area/space)
"xja" = (
/obj/machinery/light/small{
dir = 4
@@ -61846,34 +61922,10 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"xkf" = (
-/obj/effect/landmark/carpspawn,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space)
-"xkL" = (
-/obj/structure/table,
-/obj/item/clothing/suit/hooded/wintercoat/engineering,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/effect/turf_decal/delivery,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"xlA" = (
/obj/machinery/door/airlock/maintenance/abandoned,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"xlY" = (
-/obj/effect/landmark/xeno_spawn,
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/maintenance/department/chapel/monastery)
"xmp" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -61928,20 +61980,6 @@
/obj/item/broken_bottle,
/turf/open/floor/plating,
/area/maintenance/solars/port)
-"xuW" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
-"xvK" = (
-/obj/structure/reflector/single/anchored{
- dir = 6
- },
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"xvO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -61999,10 +62037,6 @@
icon_state = "panelscorched"
},
/area/maintenance/department/security/brig)
-"xyT" = (
-/obj/machinery/light/small,
-/turf/open/floor/plating,
-/area/maintenance/department/chapel/monastery)
"xzp" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -62010,6 +62044,13 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"xzR" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"xCV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -62089,11 +62130,22 @@
/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,
/turf/open/space/basic,
/area/space/nearstation)
+"xNy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"xOC" = (
/obj/machinery/door/airlock/external{
name = "Construction Zone";
@@ -62124,6 +62176,13 @@
/obj/effect/mapping_helpers/airlock/unres,
/turf/open/floor/plasteel/freezer,
/area/storage/emergency/port)
+"xRE" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
"xSX" = (
/obj/machinery/airalarm/unlocked{
pixel_y = 23
@@ -62137,12 +62196,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
-"xVT" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"xWl" = (
/obj/item/pen,
/obj/item/paper_bin{
@@ -62154,10 +62207,6 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"xXh" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/maintenance/department/chapel/monastery)
"ybX" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance,
@@ -62179,19 +62228,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"yff" = (
-/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)
"yfO" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/yellow,
@@ -62208,30 +62244,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"yhs" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/security/prison)
-"yjy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/light{
- dir = 8;
- light_color = "#e8eaff"
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
-"ykV" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"ymb" = (
/obj/machinery/camera{
c_tag = "Engineering Telecomms Access";
@@ -77846,7 +77858,7 @@ ctL
cgg
cfE
cfE
-cua
+cfp
cfE
cuW
cfE
@@ -79116,7 +79128,7 @@ bQf
bQf
bQf
bWW
-vMv
+bXI
bZn
bZn
bZn
@@ -79358,10 +79370,10 @@ bGG
bHL
bIW
bKc
-cqI
+bOy
bMt
bLn
-cqI
+bOy
bPo
bQg
bQg
@@ -79915,7 +79927,7 @@ ckT
xhj
xhj
cwK
-vkd
+uNP
xhj
cxn
xhj
@@ -80366,7 +80378,7 @@ aaa
aaa
aaa
aaa
-iaZ
+ffK
bsl
btL
aZx
@@ -80382,11 +80394,11 @@ aaa
aaa
aaa
aaa
-irs
+xhW
aqG
bGE
bKf
-gvO
+lxm
bMw
bNy
bNw
@@ -80623,7 +80635,7 @@ aaa
aaa
aaa
aaa
-iaZ
+ffK
aZx
bcX
aZx
@@ -80638,12 +80650,12 @@ aaa
aaa
aaa
aaa
-irs
-irs
+xhW
+xhW
aqG
bGE
bKf
-gvO
+lxm
bMx
bNz
bHM
@@ -80670,7 +80682,7 @@ ccJ
cdw
cel
ceM
-cua
+cfp
cfE
cfE
chn
@@ -80894,13 +80906,13 @@ aaa
aaa
aaa
aaa
-irs
-irs
-irs
+xhW
+xhW
+xhW
aqG
bGE
-jOX
-beT
+haq
+gOI
bHM
bNA
bHM
@@ -80937,7 +80949,7 @@ cvc
cho
cvk
cdx
-euN
+dTz
csS
cfm
cwe
@@ -81150,17 +81162,17 @@ bVp
bVp
bVp
bVp
-gLn
-sTg
-gLn
-gLn
-eOA
+jfr
+jTN
+jfr
+jfr
+uYk
aZx
-llS
-kYR
+bIY
+bLs
aZx
bNB
-hRQ
+bMy
abI
aby
abI
@@ -81195,7 +81207,7 @@ ciF
cuQ
cfm
cfm
-fwo
+xNw
cfm
cwe
ckp
@@ -81413,8 +81425,8 @@ aZx
aZx
aZx
aZx
-llS
-sho
+bIY
+pKg
aZx
amC
aaa
@@ -81422,8 +81434,8 @@ aht
aby
aby
abI
-mfg
-sRH
+bSn
+ogn
cqS
bNs
bQe
@@ -81660,18 +81672,18 @@ aaa
aaa
bGI
aZx
-jkm
-tpX
-iHI
-iHI
-iHI
-tpX
-iHI
-hWa
-wwK
-wSU
-llS
-wmA
+vFZ
+tZu
+uau
+uau
+uau
+tZu
+uau
+dUI
+irD
+mjk
+bIY
+mxu
aZx
amB
aht
@@ -81681,7 +81693,7 @@ aaa
abI
abI
abI
-sRH
+ogn
bNs
bNs
bNs
@@ -81709,7 +81721,7 @@ chr
chL
cfm
cfN
-xyT
+obh
cfN
cfN
cfN
@@ -81917,18 +81929,18 @@ aaa
aaa
bGI
aZx
-oto
-wwK
-wwK
-wwK
-uAL
-vbQ
-vbQ
-vbQ
-vbQ
-vbQ
-vbQ
-pga
+cxW
+irD
+irD
+irD
+ejJ
+kGc
+kGc
+kGc
+kGc
+kGc
+kGc
+ekV
aZx
amC
aaa
@@ -81939,7 +81951,7 @@ aaa
aaa
abI
aaa
-sOQ
+uJI
bQR
bNs
bNs
@@ -82174,8 +82186,8 @@ aaa
aaa
bGI
aZx
-oto
-wwK
+cxW
+irD
aZx
aZx
aZx
@@ -82431,19 +82443,19 @@ aaa
aaa
aqG
aZx
-oto
-wwK
+cxW
+irD
aZx
-irs
-irs
-irs
-irs
-irs
-irs
-irs
-irs
-irs
-irs
+xhW
+xhW
+xhW
+xhW
+xhW
+xhW
+xhW
+xhW
+xhW
+xhW
amD
aaa
aht
@@ -82685,11 +82697,11 @@ bon
aZx
aaa
aaa
-irs
+xhW
aqG
aZx
-oto
-wwK
+cxW
+irD
aZx
bBV
bDf
@@ -82945,12 +82957,12 @@ aZx
aZx
aZx
aZx
-oto
-kvx
+cxW
+nYM
bAI
-qbV
+kqV
abI
-irs
+xhW
abI
aaa
bva
@@ -82994,7 +83006,7 @@ cfN
cfN
cfN
cfN
-wlZ
+hCR
cjm
cfN
cfN
@@ -83124,11 +83136,11 @@ abI
aen
aet
aeH
-vtz
+bfQ
afo
afG
aeU
-gHy
+eSB
agy
agL
agZ
@@ -83202,8 +83214,8 @@ bbR
bbR
bbR
aZx
-rHv
-saW
+fCC
+tZk
bAJ
bBX
bBX
@@ -83251,9 +83263,9 @@ cfN
cfN
cfN
cfN
-uaa
+nog
cjm
-irs
+xhW
aaa
aaa
aaa
@@ -83380,8 +83392,8 @@ adR
aaa
aem
aeu
-cJd
-pED
+uWP
+ltB
aeH
afH
aeH
@@ -83461,7 +83473,7 @@ baK
aZx
bxY
bzz
-vIU
+ovg
bBX
bDg
bEj
@@ -83508,10 +83520,10 @@ cfN
cfN
cfN
cfN
-uBu
+uTY
cjm
cjm
-irs
+xhW
aaa
aaa
aaa
@@ -83640,9 +83652,9 @@ agy
agy
lGp
aeU
-aae
+afI
aeU
-dUk
+jXF
agy
agN
agY
@@ -83751,22 +83763,22 @@ bIZ
cba
cbT
bDi
-cQZ
+kuT
cwA
cwA
cwA
cwA
-lqo
+pDd
cwA
cwA
cwA
cwA
-uaa
-ovE
-uaa
-uBu
-xlY
-ezo
+nog
+gFw
+nog
+uTY
+eQa
+ceG
cjm
aht
aaa
@@ -83894,8 +83906,8 @@ adR
aaa
aem
aeW
-yhs
-hyl
+mwl
+kzK
afr
agy
agc
@@ -84011,19 +84023,19 @@ ccO
bIZ
cjm
cjm
-xXh
-xXh
+wUW
+wUW
cjm
cjm
cjm
-xXh
-xXh
+wUW
+wUW
cjm
cjm
cjm
cjm
-waN
-dzA
+fjC
+kLT
cjm
aht
aaa
@@ -84151,9 +84163,9 @@ adR
aaa
aem
aeX
-dqi
-yff
-yff
+pua
+wxa
+wxa
agy
agd
agp
@@ -84266,10 +84278,10 @@ bva
bNK
bva
bva
-irs
-xkf
-dRs
-dRs
+xhW
+ucT
+vsc
+vsc
aht
aht
mau
@@ -84535,11 +84547,11 @@ aaa
aaa
aaa
aaa
-dRs
-dRs
-irs
-irs
-xiY
+vsc
+vsc
+xhW
+xhW
+tSk
aaa
aaa
aaa
@@ -85195,7 +85207,7 @@ aiM
ajh
ajR
akN
-aiM
+dQj
amj
amX
anH
@@ -89146,9 +89158,9 @@ eQN
tcY
cam
cam
-cdI
+sjC
bXk
-eVW
+mci
cbX
ceq
mhl
@@ -89403,7 +89415,7 @@ bpL
fQf
cbW
cbd
-gaQ
+cdI
cri
cbX
cbX
@@ -90871,7 +90883,7 @@ aCC
aDG
aBm
aFz
-aaf
+aGm
awR
aHQ
aIO
@@ -90941,9 +90953,9 @@ bXh
bXZ
bYK
bZz
-sAF
+nAY
cbd
-fGt
+nRM
cam
cdM
bXq
@@ -90953,8 +90965,8 @@ cfQ
bXk
qWG
bXk
-tAv
-pPu
+paU
+dSp
cdm
aaa
aht
@@ -91206,22 +91218,22 @@ qtO
bXk
bXk
bXk
-fbu
-nQf
-nQf
-nQf
-cgt
-oge
-oge
+svA
+mjK
+mjK
+mjK
+wHI
+eyj
+eyj
bXk
-uER
-uER
-uER
-uER
-uER
-uER
-uER
-uER
+shH
+shH
+shH
+shH
+shH
+shH
+shH
+shH
fon
fon
mau
@@ -91453,23 +91465,23 @@ bVH
bWr
bXj
qGZ
-bYM
+bYQ
bZD
caj
cbf
ccb
cah
cdO
-jOw
+ioF
ceX
-ocy
+qOS
cfS
fFv
-yjy
-nIq
-mAi
-abD
-abD
+fmL
+gXZ
+kmd
+lXJ
+lXJ
bXk
aaa
aht
@@ -91722,10 +91734,10 @@ mwG
nAs
cfT
wcs
-upg
+ggg
qbp
qbp
-hUi
+gEo
dMG
bXk
aaa
@@ -91969,14 +91981,14 @@ bXk
bYc
bYO
bZA
-dlI
+xhI
cbh
cbh
cbh
cbh
cbh
-nNn
-mvA
+hjD
+vor
cfU
tIS
iCs
@@ -92207,7 +92219,7 @@ bFU
bFU
bIn
bJt
-jdA
+uKS
bFU
bFU
bFU
@@ -92226,21 +92238,21 @@ bXk
bYd
bYP
bZF
-uZs
-lDW
-wsx
-uwT
-uwT
+rTd
+wDl
+vxr
+irM
+irM
qFu
cet
ulY
cfV
cgu
cgU
-kNK
+izm
chw
-oge
-eMz
+eyj
+jzE
bXk
bXk
bXk
@@ -92481,31 +92493,31 @@ bVK
bWu
bXk
bYe
-bYM
+bYQ
bZA
can
cbi
ccc
-oge
+eyj
cdR
-vvr
+tQT
bXk
bXk
-oBY
+sWW
cgv
-ndf
+lXb
cgv
uaP
cgv
-ikm
+ukp
cgV
cgv
cgv
-gkN
+gQf
bXk
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -92742,27 +92754,27 @@ bYR
bZA
can
cbj
-oge
+eyj
cbX
wcs
iyJ
cfa
-oge
+eyj
twv
-pJx
+hoS
sWj
dnS
-rEt
-mZK
-nqW
-pBs
-pBs
+hSC
+jTU
+fZK
+pgH
+pgH
uRk
ciG
bXk
aaa
fon
-uER
+shH
fon
aaa
aaa
@@ -92998,7 +93010,7 @@ bYf
bYS
bZA
can
-eue
+qpS
ccd
ccX
ccX
@@ -93006,20 +93018,20 @@ ceu
cbX
cfu
tlN
-pIk
+ncm
cCI
uoq
-wDH
+hQy
chA
meF
-oTD
-uWe
-dHF
+oKv
+wbB
+xzR
hQC
bXk
aht
fon
-uER
+shH
fon
aht
aaa
@@ -93220,7 +93232,7 @@ bmz
bnG
boN
bpW
-brk
+dHZ
bsK
buk
bvs
@@ -93256,27 +93268,27 @@ bYT
bZB
caq
cbk
-oge
+eyj
ccY
cdT
ccY
cbX
-oge
-jQn
-sQV
-dFF
+eyj
+vlC
+iej
+qeY
fyO
fyO
fyO
-dFF
-oTD
-uWe
-dGd
+qeY
+oKv
+wbB
+wfP
hQC
bXk
aaa
fon
-uER
+shH
fon
aaa
aaa
@@ -93512,28 +93524,28 @@ bYh
bYU
bZE
car
-sdZ
-oge
+mgz
+eyj
cbX
wcs
wcs
cfd
bXk
tlN
-pIk
-obl
+ncm
+lUO
mpd
-peb
-peb
+hKp
+hKp
cit
-dFF
-vMQ
-gih
+qeY
+puw
+vBE
hQC
bXk
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -93734,7 +93746,7 @@ bkh
bkh
boN
bpW
-dVt
+brk
bsM
bum
bvt
@@ -93775,22 +93787,22 @@ cda
wcs
wcs
wcs
-oge
-oFi
-wjm
-dFF
-uQa
-uQa
-uQa
+eyj
+eAH
+lnr
+qeY
+fBZ
+fBZ
+fBZ
cgY
ciI
-mZV
-obG
+tdL
+dHr
hQC
bXk
aaa
fon
-uER
+shH
fon
aaa
aaa
@@ -93971,7 +93983,7 @@ aSS
aUg
aVf
aWi
-eyT
+mjn
aYe
aZb
bag
@@ -93994,8 +94006,8 @@ bpV
brm
bsN
bun
-mcf
-nnf
+gGA
+bwW
byA
bAi
bpY
@@ -94024,30 +94036,30 @@ bWz
bVN
bYf
bYW
-hDy
+oWu
cam
-cxj
+vli
ckJ
cey
cdW
wcs
cdW
-oge
-vPU
-eux
-kDI
-fWE
-nyN
-fWE
-wXe
-iTE
-mlS
-jTc
+eyj
+kTR
+mEu
+wMX
+dFJ
+wYK
+dFJ
+uzh
+nUQ
+fym
+hon
hQC
bXk
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -94251,12 +94263,12 @@ bpY
bpY
bpY
bpY
-gGA
-bwW
+pxD
+jZG
bpY
bpY
bpY
-vYi
+vsG
bva
bva
bva
@@ -94283,28 +94295,28 @@ bUT
bYX
bZA
cam
-xkL
+lfx
bXk
-xvK
+pCo
wcs
wcs
-kBe
-oge
-mlx
-gUS
-dFF
+tlV
+eyj
+qkM
+miw
+qeY
prQ
prQ
prQ
-nPW
-mvY
-sfr
+dgj
+psd
+fxC
dZj
hQC
bXk
aaa
fon
-uER
+shH
fon
aaa
aaa
@@ -94504,17 +94516,17 @@ bls
aBI
aBI
bmB
-tcC
-qWB
-iHe
-qbm
+vKq
+nTr
+gDR
+vzA
bvu
-wnw
-cep
-ePS
-nhW
-rGz
-rPd
+hIZ
+tqO
+mqp
+cKV
+iwe
+qTV
xDj
blt
jCv
@@ -94537,31 +94549,31 @@ bVO
bWA
mCe
bYj
-bYM
+bYQ
bZA
cam
-sdZ
-oge
+mgz
+eyj
cbX
wcs
wcs
-hxh
+dEy
bXk
tlN
-pIk
-vMQ
+ncm
+puw
fyF
cZt
cZt
-hUf
-dFF
-mLc
-lmv
+fjD
+qeY
+iTF
+slJ
hQC
bXk
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -94769,11 +94781,11 @@ gkS
tTl
tTl
tTl
-qUe
+koz
dgg
phJ
phJ
-lCY
+lJI
bAk
bIt
bJB
@@ -94794,31 +94806,31 @@ bVP
bWB
mCe
bYk
-bYQ
+wjm
bZF
cbm
-sdZ
-oge
-rwf
-rwf
+mgz
+eyj
+oHa
+oHa
eWi
cbX
-oge
-jQn
+eyj
+vlC
cgx
-dFF
+qeY
fyO
fyO
fyO
-dFF
+qeY
cBS
cjt
-mCP
+kaR
hQC
bXk
aaa
fon
-uER
+shH
fon
aht
aaa
@@ -95018,19 +95030,19 @@ blu
aDZ
aDZ
bjm
-nKF
+mhn
cqi
cqi
cqi
cqi
cqi
-erV
-rMt
-ksC
+imE
+kYM
+mfC
fdQ
bmD
bmD
-jrb
+eRp
bAl
bIu
bJC
@@ -95054,28 +95066,28 @@ bYl
bYO
bZA
cam
-lCR
+lrM
ccd
-mlb
-mlb
-mbD
+cAQ
+cAQ
+cLw
cbX
cfu
jBn
-ptk
+oxw
meF
chA
chA
woh
cCI
cBS
-rwt
+iLh
liR
hQC
bXk
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -95278,18 +95290,18 @@ bKM
cCl
cCl
cCl
-vfn
-ufx
-ufx
+tJr
+tzH
+tzH
byD
bAm
dhz
-nkk
+uxP
bDA
bEQ
bGa
-bHg
-mVj
+bHp
+sYQ
bJD
bBo
bBo
@@ -95312,27 +95324,27 @@ bYY
bZA
cam
cbn
-oge
+eyj
cbX
wcs
cfP
cff
-oge
+eyj
cfX
-kvu
-gHp
+vVO
+iop
kWQ
-iSi
-ona
-kec
-ngg
-ngg
-cUT
+oXq
+qpd
+tkL
+tOD
+tOD
+ikO
hQC
bXk
aaa
fon
-uER
+shH
fon
aaa
aaa
@@ -95533,14 +95545,14 @@ bmC
cqi
boP
bqb
-brp
+pYw
gFo
cSK
duF
-oxt
+bxa
byE
bBp
-vyN
+wfG
bBp
bBp
bBp
@@ -95570,22 +95582,22 @@ bZG
cax
cbo
ccc
-oge
+eyj
cdR
-uDr
+oJr
bXq
bXq
cfY
-hrx
-sHX
-hrx
-hXm
-jjA
+xNy
+smv
+xNy
+hGB
+hSt
civ
civ
-jtv
-ppi
-oyE
+vsw
+qRl
+oKJ
bXk
aht
fon
@@ -95827,19 +95839,19 @@ bZF
cal
cbp
cci
-dPZ
-dPZ
-vMH
-vJS
-vIn
-ttX
-oge
-dGp
-oge
-oge
-dGp
-oge
-oge
+kTj
+kTj
+qhE
+loz
+frj
+lRX
+eyj
+uIB
+eyj
+eyj
+uIB
+eyj
+eyj
bXk
bXk
bXk
@@ -96079,24 +96091,24 @@ bVU
bWG
bXq
bYo
-tzh
+hXK
bZI
-tzh
+hXK
cbq
cbd
cam
cam
cam
-mCU
-cOA
-gfh
-vdb
-rAZ
-gfh
-tMA
-puO
-vdb
-tMA
+haA
+aKm
+upc
+wIo
+hyh
+upc
+voh
+pBJ
+wIo
+voh
cdm
aaa
aaa
@@ -96337,23 +96349,23 @@ bWH
bXk
bTE
bZc
-nif
+ueX
cCU
bZJ
-mdi
+wbF
cCV
ceb
-qPh
-sKw
-cOA
-sQG
-gfh
-eqM
-sQG
-sQG
-dhu
-tMA
-sQG
+epV
+qLI
+aKm
+eiV
+upc
+dsz
+eiV
+eiV
+uaO
+voh
+eiV
cdm
aaa
aaa
@@ -96593,29 +96605,29 @@ bJN
bJN
bJN
bJN
-vIn
-xgB
-xgB
-xgB
-xgB
-xgB
-xgB
-xgB
-xgB
-fml
-mfx
-hJO
-dAa
-hJO
-hJO
-dAa
-hJO
-hJO
-eqM
+frj
+pYh
+pYh
+pYh
+pYh
+pYh
+pYh
+pYh
+pYh
+hUw
+nqu
+nsJ
+gBb
+nsJ
+nsJ
+gBb
+nsJ
+nsJ
+dsz
aht
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -96850,7 +96862,7 @@ bVV
bWI
bXr
bKQ
-vgX
+udl
bZK
abI
abI
@@ -96859,20 +96871,20 @@ abI
aaa
aaa
aaa
-dhu
-vdb
-hJO
-dAa
-hJO
-hJO
-dAa
-hJO
-hJO
-rAZ
+uaO
+wIo
+nsJ
+gBb
+nsJ
+nsJ
+gBb
+nsJ
+nsJ
+hyh
aaa
aaa
fon
-uER
+shH
fon
aaa
aaa
@@ -97107,7 +97119,7 @@ bQI
bWJ
bXs
bJN
-lxh
+cui
bJP
bJP
bJP
@@ -97116,20 +97128,20 @@ bJP
abI
abI
aht
-puO
-vdb
-hJO
-dAa
-hJO
-hJO
-dAa
-hJO
-hJO
-eqM
+pBJ
+wIo
+nsJ
+gBb
+nsJ
+nsJ
+gBb
+nsJ
+nsJ
+dsz
aht
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -97344,7 +97356,7 @@ bCK
bDG
bEW
bAt
-aIA
+bHg
cqw
cqD
bKO
@@ -97364,7 +97376,7 @@ bMf
fuR
bXt
bYp
-jPC
+eAZ
bZL
caz
cbs
@@ -97373,20 +97385,20 @@ bJP
aaa
aaa
aaa
-dhu
-vdb
-hJO
-dAa
-hJO
-hJO
-dAa
-hJO
-hJO
-rAZ
+uaO
+wIo
+nsJ
+gBb
+nsJ
+nsJ
+gBb
+nsJ
+nsJ
+hyh
aaa
aaa
fon
-uER
+shH
fon
aaa
aaa
@@ -97621,7 +97633,7 @@ bVW
bWL
bXu
bLW
-lxh
+cui
bMi
caA
cbt
@@ -97630,20 +97642,20 @@ bJP
aaa
aaa
aaa
-puO
-xuW
-rAZ
-puO
-rAZ
-puO
-rAZ
-puO
-rAZ
+pBJ
+swg
+hyh
+pBJ
+hyh
+pBJ
+hyh
+pBJ
+hyh
cdm
aht
aht
fon
-uER
+shH
fon
aaa
aaa
@@ -97878,7 +97890,7 @@ bVX
bWM
bXv
bWc
-tmi
+poP
bZL
caB
cbs
@@ -98115,7 +98127,7 @@ bAt
bAt
bAu
bAu
-bHg
+bHp
cqx
bJJ
bKQ
@@ -98130,12 +98142,12 @@ bQI
bQI
bTM
bUs
-cAp
-ykV
-ufr
+ljG
+hjk
+pmB
bXw
-iSL
-lQy
+dJk
+tbw
bJP
bJP
bJP
@@ -98387,7 +98399,7 @@ bMf
bMf
bTN
bUt
-flP
+wLK
bOk
bWK
bXt
@@ -98643,8 +98655,8 @@ bRx
bQJ
bPQ
bTO
-cAp
-xVT
+ljG
+lhP
bOk
bWL
bXx
@@ -98658,21 +98670,21 @@ bJP
aaa
aaa
fon
-uER
-uER
-uER
-uER
-uER
-uER
-uER
-uER
-uER
-uER
+shH
+shH
+shH
+shH
+shH
+shH
+shH
+shH
+shH
+shH
fon
aaa
aht
-uER
-uER
+shH
+shH
fon
aaa
aaa
@@ -98900,7 +98912,7 @@ bPQ
bPQ
bPQ
bTP
-flP
+wLK
bVh
bVY
bWM
@@ -98928,7 +98940,7 @@ fon
fon
aaa
aht
-uER
+shH
fon
fon
aaa
@@ -99157,7 +99169,7 @@ bQK
bQK
bPQ
bTQ
-flP
+wLK
bKX
bOk
bWN
@@ -99325,7 +99337,7 @@ cBk
jhD
cBo
alQ
-ggg
+ebT
cBw
noC
aiS
@@ -99414,7 +99426,7 @@ bRy
bSf
bSR
bTM
-flP
+wLK
bKX
bVZ
bWO
@@ -99671,7 +99683,7 @@ bRz
bMf
bSS
bTR
-nYe
+tDE
bKX
bWa
bMf
@@ -100128,7 +100140,7 @@ aHn
aIi
aJi
aKe
-kVA
+klb
aMi
aNJ
fwl
@@ -100880,7 +100892,7 @@ aiT
aiS
apX
cod
-aab
+asg
atj
apX
avi
@@ -101166,7 +101178,7 @@ lAs
eeQ
aUs
aLf
-lfZ
+eex
aLf
aLf
aUl
@@ -101690,7 +101702,7 @@ bcA
bdF
beJ
bfB
-gaJ
+dps
aZv
aUC
biz
@@ -102427,7 +102439,7 @@ apX
apX
avl
fIu
-rTZ
+epj
aIh
azA
dbi
@@ -102439,7 +102451,7 @@ aFH
aGG
aHo
aIk
-aac
+aJo
aGF
aEd
aMr
@@ -102961,7 +102973,7 @@ aNP
aPb
aNO
aNP
-cRJ
+tLP
aTq
aSk
aTm
@@ -107839,7 +107851,7 @@ aaa
aaa
aLn
aNT
-rax
+xer
aQo
aPg
aRu
@@ -108097,7 +108109,7 @@ aaa
aLm
aLm
aNU
-hCg
+xRE
dqY
aRv
sZh
@@ -108353,8 +108365,8 @@ aaa
aaa
aLm
aME
-aNV
-hCg
+eFG
+xRE
dqY
aRw
sqQ
@@ -108610,8 +108622,8 @@ aaa
aaa
aLo
aMF
-aNW
-hCg
+aNV
+xRE
cvf
aQn
sqQ
@@ -108868,8 +108880,8 @@ aaa
aLo
aMG
aNX
-hCg
-rax
+xRE
+xer
aRy
aSn
aSn
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index 6a323ee86f..7e095329af 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -63,21 +63,21 @@
pixel_y = 4
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"am" = (
/obj/structure/closet/crate/bin,
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"an" = (
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"ao" = (
@@ -86,8 +86,8 @@
layer = 3.3
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"ap" = (
@@ -166,15 +166,15 @@
pixel_y = 8
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aA" = (
/obj/structure/chair/wood/normal,
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aB" = (
@@ -218,16 +218,16 @@
dir = 4
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aJ" = (
/obj/structure/table/wood/poker,
/obj/item/clothing/mask/cigarette/pipe,
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aK" = (
@@ -235,8 +235,8 @@
/obj/structure/table/wood/poker,
/obj/effect/holodeck_effect/cards,
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aL" = (
@@ -244,8 +244,8 @@
dir = 8
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aM" = (
@@ -259,8 +259,8 @@
dir = 1
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aO" = (
@@ -272,15 +272,15 @@
dir = 4
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aQ" = (
/obj/structure/window/reinforced,
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aR" = (
@@ -299,8 +299,8 @@
pixel_y = 10
},
/turf/open/floor/holofloor{
- icon_state = "wood";
- dir = 9
+ dir = 9;
+ icon_state = "wood"
},
/area/holodeck/rec_center/lounge)
"aU" = (
@@ -1403,7 +1403,6 @@
/obj/structure/window/reinforced,
/obj/machinery/mass_driver{
dir = 1;
- icon_state = "mass_driver";
id = "trektorpedo1";
name = "photon torpedo tube"
},
@@ -1452,7 +1451,6 @@
/obj/structure/window/reinforced,
/obj/machinery/mass_driver{
dir = 1;
- icon_state = "mass_driver";
id = "trektorpedo2";
name = "photon torpedo tube"
},
@@ -1470,14 +1468,14 @@
dir = 4
},
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 1
+ dir = 1;
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"dT" = (
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 4
+ dir = 4;
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"dU" = (
@@ -1489,8 +1487,8 @@
/area/holodeck/rec_center/chapelcourt)
"dV" = (
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 1
+ dir = 1;
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"dW" = (
@@ -1498,8 +1496,8 @@
dir = 8
},
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 4
+ dir = 4;
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"dX" = (
@@ -1523,8 +1521,8 @@
dir = 8
},
/turf/open/floor/holofloor{
- icon_state = "white";
- dir = 8
+ dir = 8;
+ icon_state = "white"
},
/area/holodeck/rec_center/firingrange)
"eb" = (
@@ -1539,8 +1537,8 @@
dir = 4
},
/turf/open/floor/holofloor{
- icon_state = "white";
- dir = 4
+ dir = 4;
+ icon_state = "white"
},
/area/holodeck/rec_center/firingrange)
"ed" = (
@@ -1611,8 +1609,7 @@
/area/holodeck/rec_center/chapelcourt)
"en" = (
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 2
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"eo" = (
@@ -1635,8 +1632,7 @@
dir = 8
},
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 2
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"er" = (
@@ -1644,8 +1640,8 @@
dir = 8
},
/turf/open/floor/holofloor{
- icon_state = "white";
- dir = 10
+ dir = 10;
+ icon_state = "white"
},
/area/holodeck/rec_center/firingrange)
"es" = (
@@ -1658,8 +1654,8 @@
dir = 4
},
/turf/open/floor/holofloor{
- icon_state = "white";
- dir = 6
+ dir = 6;
+ icon_state = "white"
},
/area/holodeck/rec_center/firingrange)
"eu" = (
@@ -1679,8 +1675,8 @@
/area/holodeck/rec_center/spacechess)
"ex" = (
/turf/open/floor/holofloor{
- icon_state = "stairs-old";
- dir = 8
+ dir = 8;
+ icon_state = "stairs-old"
},
/area/holodeck/rec_center/thunderdome1218)
"ey" = (
@@ -1780,8 +1776,8 @@
dir = 1
},
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 1
+ dir = 1;
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"eN" = (
@@ -1789,8 +1785,8 @@
dir = 1
},
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 4
+ dir = 4;
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"eO" = (
@@ -1827,8 +1823,7 @@
dir = 1
},
/turf/open/floor/holofloor{
- icon_state = "chapel";
- dir = 2
+ icon_state = "chapel"
},
/area/holodeck/rec_center/chapelcourt)
"eT" = (
@@ -2114,7 +2109,6 @@
/turf/closed/indestructible/riveted,
/area/space)
"fy" = (
-/obj/machinery/igniter/on,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/tdome/arena_source)
@@ -2517,9 +2511,9 @@
/area/ctf)
"gB" = (
/obj/structure/window/reinforced/fulltile{
- obj_integrity = 5000;
max_integrity = 5000;
- name = "hardened window"
+ name = "hardened window";
+ obj_integrity = 5000
},
/turf/open/floor/plating,
/area/ctf)
@@ -3471,8 +3465,7 @@
"ja" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
- name = "CentCom";
- opacity = 1
+ name = "CentCom"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -3565,7 +3558,6 @@
/area/centcom/control)
"jk" = (
/obj/machinery/door/poddoor{
- density = 1;
id = "XCCQMLoaddoor2";
name = "Supply Dock Loading Door"
},
@@ -3580,9 +3572,7 @@
/area/centcom/supply)
"jl" = (
/obj/structure/plasticflaps,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
@@ -3591,13 +3581,10 @@
/area/centcom/supply)
"jm" = (
/obj/machinery/door/poddoor{
- density = 1;
id = "XCCQMLoaddoor2";
name = "Supply Dock Loading Door"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
@@ -3683,7 +3670,6 @@
pixel_y = -5
},
/obj/machinery/button/door{
- dir = 2;
id = "XCCQMLoaddoor2";
layer = 4;
name = "Loading Doors";
@@ -3760,7 +3746,6 @@
/area/centcom/control)
"jI" = (
/obj/machinery/door/poddoor{
- density = 1;
id = "XCCQMLoaddoor";
name = "Supply Dock Loading Door"
},
@@ -3779,14 +3764,11 @@
dir = 8;
id = "XCCQMLoad"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/supply)
"jK" = (
/obj/machinery/door/poddoor{
- density = 1;
id = "XCCQMLoaddoor";
name = "Supply Dock Loading Door"
},
@@ -3794,9 +3776,7 @@
dir = 8;
id = "XCCQMLoad"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/supply)
"jL" = (
@@ -4103,7 +4083,6 @@
"ki" = (
/obj/docking_port/stationary{
area_type = /area/syndicate_mothership;
- dir = 1;
dwidth = 25;
height = 50;
id = "emergency_syndicate";
@@ -4282,8 +4261,7 @@
/area/centcom/control)
"kG" = (
/obj/structure/chair/comfy/brown{
- color = "#596479";
- dir = 2
+ color = "#596479"
},
/turf/open/floor/plasteel/grimy,
/area/centcom/control)
@@ -4431,19 +4409,14 @@
"kZ" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/control)
"la" = (
/obj/machinery/door/window/brigdoor{
base_state = "rightsecure";
- dir = 2;
- icon_state = "leftsecure";
name = "CentCom Stand";
req_access_txt = "109"
},
@@ -4479,8 +4452,6 @@
},
/obj/machinery/door/window/brigdoor{
base_state = "rightsecure";
- dir = 2;
- icon_state = "leftsecure";
name = "CentCom Stand";
req_access_txt = "109"
},
@@ -4498,8 +4469,6 @@
"lf" = (
/obj/machinery/door/window/brigdoor{
base_state = "rightsecure";
- dir = 2;
- icon_state = "leftsecure";
name = "CentCom Stand";
req_access_txt = "109"
},
@@ -4701,12 +4670,9 @@
"lJ" = (
/obj/machinery/door/airlock/centcom{
name = "Shuttle Control Office";
- opacity = 1;
req_access_txt = "109"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/supply)
"lK" = (
@@ -4714,9 +4680,7 @@
name = "CentCom Supply";
req_access_txt = "106"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/supply)
"lL" = (
@@ -4792,10 +4756,16 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/control)
+"lS" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Ninja1";
+ name = "Dorm 1"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"lT" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -4852,6 +4822,16 @@
icon_state = "alien11"
},
/area/abductor_ship)
+"ma" = (
+/obj/machinery/button/door{
+ id = "Ninja7";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"mb" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/tile/neutral{
@@ -5249,9 +5229,7 @@
/area/centcom/control)
"mR" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/control)
"mS" = (
@@ -5769,8 +5747,6 @@
"nQ" = (
/obj/machinery/door/window/brigdoor{
base_state = "rightsecure";
- dir = 2;
- icon_state = "leftsecure";
name = "CentCom Stand";
req_access_txt = "109"
},
@@ -5793,8 +5769,6 @@
"nR" = (
/obj/machinery/door/window/brigdoor{
base_state = "rightsecure";
- dir = 2;
- icon_state = "leftsecure";
name = "CentCom Stand";
req_access_txt = "109"
},
@@ -6295,7 +6269,6 @@
"oJ" = (
/obj/machinery/door/airlock/centcom{
name = "Administrative Office";
- opacity = 1;
req_access_txt = "109"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -6610,11 +6583,11 @@
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
/obj/machinery/door/window/brigdoor{
- name = "CentCom Customs";
- icon_state = "rightsecure";
+ base_state = "rightsecure";
dir = 4;
- req_access_txt = "109";
- base_state = "rightsecure"
+ icon_state = "rightsecure";
+ name = "CentCom Customs";
+ req_access_txt = "109"
},
/obj/item/clipboard,
/obj/item/folder/yellow,
@@ -6990,9 +6963,7 @@
/area/ai_multicam_room)
"pZ" = (
/obj/machinery/washing_machine,
-/turf/open/floor/plasteel/freezer{
- dir = 2
- },
+/turf/open/floor/plasteel/freezer,
/area/syndicate_mothership)
"qa" = (
/obj/structure/flora/tree/pine,
@@ -7275,8 +7246,8 @@
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/fernybush,
/turf/open/floor/plasteel{
- name = "plating";
- icon_state = "asteroid5"
+ icon_state = "asteroid5";
+ name = "plating"
},
/area/centcom/control)
"qx" = (
@@ -7334,24 +7305,26 @@
/turf/closed/indestructible/riveted/uranium,
/area/wizard_station)
"qI" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/plating,
/area/syndicate_mothership)
+"qP" = (
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"qQ" = (
/obj/machinery/door/airlock/centcom{
name = "Administrative Office";
- opacity = 1;
req_access_txt = "109"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/ferry)
"qR" = (
@@ -7361,23 +7334,17 @@
"qS" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/centcom/supply)
"qT" = (
/obj/machinery/door/airlock/centcom{
- name = "CentCom";
- opacity = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 2
+ name = "CentCom"
},
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/centcom/control)
@@ -7747,8 +7714,8 @@
dir = 4
},
/turf/open/floor/plasteel{
- name = "plating";
- icon_state = "asteroid5"
+ icon_state = "asteroid5";
+ name = "plating"
},
/area/centcom/control)
"rI" = (
@@ -7940,7 +7907,6 @@
"sc" = (
/obj/docking_port/stationary{
area_type = /area/syndicate_mothership/control;
- dir = 1;
dwidth = 3;
height = 7;
name = "escape pod loader";
@@ -8259,7 +8225,6 @@
"sL" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -8388,7 +8353,6 @@
"te" = (
/obj/machinery/door/airlock/centcom{
name = "Auxillary Dock";
- opacity = 1;
req_access_txt = ""
},
/turf/open/floor/plating,
@@ -8751,6 +8715,10 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plasteel,
/area/centcom/supplypod)
+"tZ" = (
+/obj/structure/chair/wood/normal,
+/turf/open/floor/wood,
+/area/centcom/holding)
"uc" = (
/obj/effect/turf_decal/tile/green{
dir = 1
@@ -8764,9 +8732,7 @@
/obj/item/storage/crayons,
/obj/structure/table,
/obj/item/storage/crayons,
-/turf/open/floor/plasteel/freezer{
- dir = 2
- },
+/turf/open/floor/plasteel/freezer,
/area/syndicate_mothership)
"uf" = (
/obj/effect/turf_decal/tile/brown{
@@ -8777,6 +8743,13 @@
},
/turf/open/floor/plasteel,
/area/centcom/supplypod/loading/three)
+"uh" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Ninja2";
+ name = "Dorm 2"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"uj" = (
/obj/item/clipboard,
/obj/item/folder/red,
@@ -9078,12 +9051,9 @@
"uO" = (
/obj/machinery/door/airlock/centcom{
name = "Shuttle Control Office";
- opacity = 1;
req_access_txt = "109"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/ferry)
"uP" = (
@@ -9309,9 +9279,9 @@
dwidth = 25;
height = 50;
id = "emergency_away";
+ json_key = "emergency";
name = "CentCom Emergency Shuttle Dock";
- width = 50;
- json_key = "emergency"
+ width = 50
},
/turf/open/space,
/area/space)
@@ -9446,12 +9416,9 @@
"vF" = (
/obj/machinery/door/airlock/centcom{
name = "Administrative Office";
- opacity = 1;
req_access_txt = "109"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/ferry)
"vG" = (
@@ -9755,6 +9722,13 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/centcom/supplypod/loading/three)
+"wj" = (
+/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"
+ },
+/turf/open/floor/carpet/royalblue,
+/area/centcom/holding)
"wl" = (
/obj/structure/table/wood,
/obj/item/paicard,
@@ -9814,7 +9788,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -9881,7 +9854,6 @@
"wC" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Customs";
- opacity = 1;
req_access_txt = "109"
},
/obj/effect/turf_decal/stripes/line{
@@ -9914,8 +9886,7 @@
/area/centcom/control)
"wE" = (
/obj/structure/chair/comfy/brown{
- color = "#596479";
- dir = 2
+ color = "#596479"
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -9967,8 +9938,7 @@
"wJ" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
- name = "CentCom";
- opacity = 1
+ name = "CentCom"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -10033,9 +10003,7 @@
/area/syndicate_mothership)
"xa" = (
/obj/machinery/door/window/northright{
- base_state = "right";
dir = 4;
- icon_state = "right";
name = "Security Desk";
req_access_txt = "103"
},
@@ -10266,6 +10234,14 @@
/obj/item/bedsheet/syndie,
/turf/open/floor/plasteel/dark,
/area/syndicate_mothership)
+"xO" = (
+/obj/structure/curtain,
+/obj/machinery/shower,
+/obj/structure/window{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/centcom/holding)
"xQ" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/light,
@@ -10396,7 +10372,6 @@
"yj" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -10441,12 +10416,9 @@
"yr" = (
/obj/machinery/door/airlock/centcom{
name = "Briefing Room";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/ferry)
"ys" = (
@@ -10652,11 +10624,17 @@
},
/turf/open/floor/plating,
/area/syndicate_mothership)
+"yS" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Ninja7";
+ name = "Dorm 7"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"yU" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
- name = "CentCom";
- opacity = 1
+ name = "CentCom"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -10828,7 +10806,6 @@
"zj" = (
/obj/structure/closet/secure_closet/ertCom,
/obj/structure/sign/directions/command{
- dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/stripes/line,
@@ -10838,9 +10815,7 @@
/obj/machinery/door/airlock/medical/glass{
name = "Infirmary"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/control)
"zl" = (
@@ -11098,6 +11073,13 @@
/obj/item/reagent_containers/food/snacks/carpmeat,
/turf/open/floor/plasteel/cafeteria,
/area/centcom/holding)
+"zW" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Ninja5";
+ name = "Dorm 5"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"zX" = (
/obj/structure/table,
/obj/machinery/light{
@@ -11106,6 +11088,14 @@
/obj/item/soap/deluxe,
/turf/open/floor/plasteel/cafeteria,
/area/centcom/holding)
+"zY" = (
+/obj/item/bedsheet/wiz{
+ desc = "A glow in the dark blue bedsheet.";
+ name = "blue bedsheet"
+ },
+/obj/structure/bed,
+/turf/open/floor/carpet/royalblue,
+/area/centcom/holding)
"Aa" = (
/turf/open/floor/mech_bay_recharge_floor,
/area/syndicate_mothership)
@@ -11344,6 +11334,16 @@
/obj/effect/decal/remains/xeno,
/turf/open/floor/grass,
/area/wizard_station)
+"AC" = (
+/obj/machinery/button/door{
+ id = "Ninja5";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = 25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"AD" = (
/obj/machinery/door/airlock/centcom{
name = "Leader's Room";
@@ -11585,11 +11585,6 @@
},
/turf/open/floor/plasteel/white,
/area/centcom/holding)
-"Bp" = (
-/obj/item/paicard,
-/obj/structure/table/wood,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
"Bs" = (
/obj/structure/table/wood,
/obj/machinery/computer/libraryconsole/bookmanagement,
@@ -11846,12 +11841,9 @@
"BM" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/evac)
"BN" = (
@@ -12157,7 +12149,6 @@
icon_state = "plant-22"
},
/obj/machinery/power/apc{
- dir = 2;
name = "Briefing Room APC";
pixel_y = -26
},
@@ -12876,11 +12867,11 @@
/obj/item/folder/red,
/obj/item/pen/red,
/obj/machinery/door/window/brigdoor{
- name = "CentCom Customs";
- icon_state = "rightsecure";
+ base_state = "rightsecure";
dir = 4;
- req_access_txt = "109";
- base_state = "rightsecure"
+ icon_state = "rightsecure";
+ name = "CentCom Customs";
+ req_access_txt = "109"
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
@@ -12891,11 +12882,11 @@
/obj/item/folder/white,
/obj/item/pen/blue,
/obj/machinery/door/window/brigdoor{
- name = "CentCom Customs";
- icon_state = "rightsecure";
+ base_state = "rightsecure";
dir = 8;
- req_access_txt = "109";
- base_state = "rightsecure"
+ icon_state = "rightsecure";
+ name = "CentCom Customs";
+ req_access_txt = "109"
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
@@ -13101,12 +13092,9 @@
/area/wizard_station)
"Eg" = (
/obj/machinery/door/airlock/centcom{
- name = "Thunderdome Booth";
- opacity = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 2
+ name = "Thunderdome Booth"
},
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/control)
"Eh" = (
@@ -13121,7 +13109,6 @@
/area/wizard_station)
"Ej" = (
/obj/vehicle/ridden/scooter/skateboard{
- icon_state = "skateboard";
dir = 4
},
/obj/effect/turf_decal/stripes/line,
@@ -13161,9 +13148,7 @@
/area/tdome/tdomeobserve)
"Eq" = (
/obj/machinery/door/airlock/external,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
"Er" = (
@@ -13263,12 +13248,9 @@
"EB" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
@@ -13281,9 +13263,7 @@
/turf/open/floor/engine/cult,
/area/wizard_station)
"ED" = (
-/obj/machinery/vending/boozeomat{
- req_access_txt = "0"
- },
+/obj/machinery/vending/boozeomat,
/turf/closed/indestructible{
icon = 'icons/turf/walls/wood_wall.dmi';
icon_state = "wood";
@@ -13323,8 +13303,8 @@
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/fernybush,
/turf/open/floor/plasteel{
- name = "plating";
- icon_state = "asteroid5"
+ icon_state = "asteroid5";
+ name = "plating"
},
/area/tdome/tdomeobserve)
"EH" = (
@@ -13591,7 +13571,6 @@
"Fr" = (
/obj/machinery/door/window/brigdoor{
base_state = "rightsecure";
- dir = 2;
icon_state = "rightsecure";
name = "Thunderdome Booth";
req_access_txt = "109"
@@ -13731,8 +13710,7 @@
/area/tdome/tdomeobserve)
"FK" = (
/obj/machinery/door/airlock/centcom{
- name = "Thunderdome Backstage";
- opacity = 1
+ name = "Thunderdome Backstage"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -13984,9 +13962,9 @@
/area/tdome/tdomeobserve)
"Gr" = (
/obj/structure/window/reinforced{
- resistance_flags = 3;
color = "#008000";
- dir = 1
+ dir = 1;
+ resistance_flags = 3
},
/turf/open/lava,
/area/wizard_station)
@@ -14004,9 +13982,7 @@
/area/tdome/tdomeobserve)
"Gv" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
"Gw" = (
@@ -14016,12 +13992,9 @@
"Gx" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
"Gy" = (
@@ -14033,9 +14006,9 @@
resistance_flags = 3
},
/obj/structure/window/reinforced{
- resistance_flags = 3;
color = "#008000";
- dir = 1
+ dir = 1;
+ resistance_flags = 3
},
/turf/open/lava/airless,
/area/wizard_station)
@@ -14823,12 +14796,9 @@
"HS" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome Locker Room";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
"HT" = (
@@ -15148,7 +15118,6 @@
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
"Is" = (
-/obj/machinery/igniter/on,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/tdome/arena)
@@ -15176,12 +15145,9 @@
"Ix" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome Administration";
- opacity = 1;
req_access_txt = "102"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/tdome/tdomeadmin)
@@ -15348,9 +15314,7 @@
/area/tdome/tdomeadmin)
"IS" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/tdome/tdomeadmin)
"IT" = (
@@ -15442,8 +15406,8 @@
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/fernybush,
/turf/open/floor/plasteel{
- name = "plating";
- icon_state = "asteroid5"
+ icon_state = "asteroid5";
+ name = "plating"
},
/area/tdome/tdomeadmin)
"Je" = (
@@ -15878,6 +15842,14 @@
},
/turf/open/floor/plasteel/dark,
/area/tdome/tdomeadmin)
+"Kf" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/item/lighter,
+/obj/item/stack/sheet/mineral/wood{
+ amount = 10
+ },
+/turf/open/floor/carpet/red,
+/area/centcom/holding)
"Kg" = (
/turf/closed/indestructible/fakedoor{
name = "Thunderdome Admin"
@@ -15887,7 +15859,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
name = "Thunderdome Administration";
- opacity = 1;
req_access_txt = "102"
},
/obj/effect/turf_decal/stripes/line{
@@ -16199,7 +16170,6 @@
/area/centcom/evac)
"KL" = (
/obj/docking_port/stationary{
- dir = 1;
dwidth = 1;
height = 4;
id = "pod4_away";
@@ -16210,7 +16180,6 @@
/area/space)
"KM" = (
/obj/docking_port/stationary{
- dir = 1;
dwidth = 1;
height = 4;
id = "pod3_away";
@@ -16322,6 +16291,12 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/centcom/evac)
+"Ln" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/centcom/holding)
"Lp" = (
/obj/structure/chair{
dir = 4
@@ -16598,6 +16573,12 @@
"Mm" = (
/turf/open/floor/grass,
/area/centcom/holding)
+"Ms" = (
+/obj/effect/mob_spawn/human/ghostcafe{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"Mt" = (
/obj/structure/window/reinforced{
dir = 4
@@ -16701,6 +16682,13 @@
"MI" = (
/turf/open/floor/plating,
/area/syndicate_mothership)
+"MJ" = (
+/obj/structure/bed,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"MM" = (
/obj/structure/window/reinforced,
/turf/open/floor/carpet/black,
@@ -16767,12 +16755,9 @@
"Nk" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -16810,9 +16795,7 @@
/area/syndicate_mothership)
"Nv" = (
/obj/structure/table,
-/turf/open/floor/plasteel/cafeteria{
- dir = 2
- },
+/turf/open/floor/plasteel/cafeteria,
/area/centcom/holding)
"Nw" = (
/obj/machinery/recharge_station,
@@ -16852,12 +16835,9 @@
"NG" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -16888,12 +16868,9 @@
/area/centcom/holding)
"NU" = (
/obj/machinery/door/airlock/centcom{
- name = "CentCom";
- opacity = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 2
+ name = "CentCom"
},
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -16933,6 +16910,9 @@
/obj/machinery/deepfryer,
/turf/open/floor/plasteel/cafeteria,
/area/syndicate_mothership)
+"Of" = (
+/turf/open/floor/carpet/red,
+/area/centcom/holding)
"Oh" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -16942,8 +16922,7 @@
"Oj" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
- name = "CentCom";
- opacity = 1
+ name = "CentCom"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -16953,6 +16932,10 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
+"Ol" = (
+/obj/structure/table/wood/fancy,
+/turf/open/floor/wood,
+/area/centcom/holding)
"Om" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
@@ -16986,6 +16969,12 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/dark,
/area/centcom/supplypod)
+"Ox" = (
+/obj/machinery/door/airlock/wood/glass{
+ name = "Cryo"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"Oz" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -17121,7 +17110,9 @@
/turf/open/floor/wood,
/area/syndicate_mothership)
"Px" = (
-/obj/machinery/vr_sleeper,
+/obj/structure/mineral_door/paperframe{
+ name = "Arcade"
+ },
/turf/open/floor/wood,
/area/centcom/holding)
"PA" = (
@@ -17135,7 +17126,10 @@
/area/syndicate_mothership)
"PF" = (
/obj/machinery/vr_sleeper{
- dir = 1
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
},
/turf/open/floor/wood,
/area/centcom/holding)
@@ -17168,6 +17162,12 @@
/obj/machinery/autolathe,
/turf/open/floor/wood,
/area/centcom/holding)
+"PM" = (
+/obj/machinery/vending/clothing{
+ extended_inventory = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"PO" = (
/obj/machinery/hydroponics/constructable,
/obj/effect/turf_decal/tile/green{
@@ -17246,6 +17246,11 @@
"Qe" = (
/turf/open/ai_visible,
/area/ai_multicam_room)
+"Qi" = (
+/obj/item/paicard,
+/obj/structure/table/wood,
+/turf/open/floor/engine/cult,
+/area/wizard_station)
"Qk" = (
/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/ppflowers,
@@ -17273,11 +17278,8 @@
/turf/open/floor/plasteel,
/area/syndicate_mothership)
"Qu" = (
-/obj/machinery/vr_sleeper{
- dir = 8
- },
-/obj/machinery/light{
- dir = 4
+/obj/machinery/door/airlock/wood/glass{
+ name = "Dorms"
},
/turf/open/floor/wood,
/area/centcom/holding)
@@ -17292,9 +17294,25 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/syndicate_mothership)
+"QC" = (
+/obj/machinery/door/airlock/wood{
+ name = "Bathroom"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/centcom/holding)
"QE" = (
/turf/open/floor/plasteel,
/area/centcom/supplypod)
+"QF" = (
+/obj/machinery/button/door{
+ id = "Ninja3";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"QH" = (
/obj/machinery/chem_master/condimaster{
desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments.";
@@ -17330,6 +17348,12 @@
/obj/structure/window/reinforced/fulltile,
/turf/open/floor/grass,
/area/centcom/holding)
+"QN" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/centcom/holding)
"QP" = (
/obj/machinery/computer/mech_bay_power_console{
dir = 1
@@ -17466,6 +17490,21 @@
/obj/item/tank/internals/plasmaman/belt/full,
/turf/open/floor/wood,
/area/centcom/holding)
+"Rq" = (
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
+"Ru" = (
+/obj/structure/fireplace,
+/turf/open/floor/carpet/red,
+/area/centcom/holding)
+"Rv" = (
+/obj/structure/dresser,
+/turf/open/floor/carpet/royalblue,
+/area/centcom/holding)
"Rz" = (
/obj/effect/turf_decal/loading_area,
/turf/open/floor/plating,
@@ -17480,9 +17519,20 @@
},
/turf/open/floor/holofloor,
/area/holodeck/rec_center/basketball)
-"RL" = (
-/obj/structure/mineral_door/paperframe{
- name = "Arcade"
+"RO" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/structure/curtain,
+/turf/open/floor/mineral/titanium/blue,
+/area/centcom/holding)
+"RP" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Ninja4";
+ name = "Dorm 4"
},
/turf/open/floor/wood,
/area/centcom/holding)
@@ -17508,6 +17558,12 @@
},
/turf/open/floor/wood,
/area/centcom/holding)
+"RX" = (
+/obj/structure/chair/comfy/brown{
+ color = "#596479"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"RZ" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -17618,9 +17674,7 @@
pixel_x = -3;
pixel_y = 6
},
-/turf/open/floor/plasteel/cafeteria{
- dir = 2
- },
+/turf/open/floor/plasteel/cafeteria,
/area/centcom/holding)
"SH" = (
/obj/effect/turf_decal/tile/green{
@@ -17648,6 +17702,9 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/space/basic,
/area/centcom/supplypod)
+"ST" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/centcom/holding)
"SU" = (
/obj/structure/table/wood,
/obj/item/camera/detective{
@@ -17686,10 +17743,27 @@
/obj/structure/table/wood,
/turf/open/floor/wood,
/area/centcom/holding)
+"SZ" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Ninja3";
+ name = "Dorm 3"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"Tb" = (
/obj/structure/closet/crate/freezer/blood,
/turf/open/floor/wood,
/area/centcom/holding)
+"Tc" = (
+/obj/machinery/button/door{
+ id = "Ninja2";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"Tj" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -17804,6 +17878,10 @@
/obj/effect/landmark/holding_facility,
/turf/open/floor/wood,
/area/centcom/holding)
+"Uf" = (
+/obj/structure/closet/secure_closet,
+/turf/open/floor/wood,
+/area/centcom/holding)
"Ug" = (
/obj/machinery/door/poddoor/shuttledock{
checkdir = 1;
@@ -17861,15 +17939,15 @@
"Un" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
+"Ur" = (
+/turf/open/floor/carpet/royalblue,
+/area/centcom/holding)
"Uu" = (
/obj/machinery/light{
dir = 8
@@ -17895,6 +17973,13 @@
/obj/machinery/vending/cola,
/turf/open/floor/plasteel,
/area/centcom/supplypod)
+"UD" = (
+/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"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"UE" = (
/obj/structure/chair/stool/bar,
/turf/open/floor/wood,
@@ -17918,7 +18003,6 @@
"UO" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -17998,15 +18082,13 @@
dir = 8
},
/obj/machinery/door/window{
- name = "Tactical Toilet";
- icon_state = "right";
dir = 8;
+ icon_state = "right";
+ name = "Tactical Toilet";
opacity = 1
},
/obj/structure/window/reinforced/tinted,
-/turf/open/floor/plasteel/freezer{
- dir = 2
- },
+/turf/open/floor/plasteel/freezer,
/area/syndicate_mothership)
"Vm" = (
/obj/machinery/gibber,
@@ -18124,7 +18206,6 @@
"Wc" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -18155,11 +18236,24 @@
"Wr" = (
/turf/open/floor/plasteel/dark,
/area/centcom/supplypod)
+"Ws" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Ninja6";
+ name = "Dorm 6"
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"WC" = (
/obj/structure/table/reinforced,
/obj/item/pen,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/evac)
+"WE" = (
+/obj/machinery/vending/kink{
+ extended_inventory = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"WH" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/food/drinks/bottle/whiskey{
@@ -18170,12 +18264,9 @@
"WJ" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome Administration";
- opacity = 1;
req_access_txt = "102"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -18194,6 +18285,16 @@
},
/turf/open/floor/wood,
/area/centcom/holding)
+"WN" = (
+/obj/machinery/button/door{
+ id = "Ninja6";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = 25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"WO" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
@@ -18205,7 +18306,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -18220,6 +18320,14 @@
/obj/structure/closet/syndicate/personal,
/turf/open/floor/wood,
/area/syndicate_mothership)
+"WV" = (
+/obj/structure/bed,
+/obj/item/bedsheet/hos{
+ desc = "A fancy red bedsheet.";
+ name = "red bedsheet"
+ },
+/turf/open/floor/carpet/red,
+/area/centcom/holding)
"WW" = (
/obj/machinery/processor,
/turf/open/floor/plasteel/cafeteria,
@@ -18232,9 +18340,7 @@
/turf/open/floor/grass,
/area/centcom/holding)
"Xe" = (
-/obj/machinery/vending/autodrobe{
- req_access_txt = "0"
- },
+/obj/machinery/vending/autodrobe,
/turf/open/floor/wood,
/area/centcom/holding)
"Xg" = (
@@ -18260,9 +18366,8 @@
/turf/open/floor/mineral/plastitanium/red,
/area/syndicate_mothership)
"Xn" = (
-/obj/machinery/door/airlock/wood{
- req_one_access_txt = "0"
- },
+/obj/structure/bed,
+/obj/item/bedsheet/random,
/turf/open/floor/wood,
/area/centcom/holding)
"Xo" = (
@@ -18287,20 +18392,15 @@
/turf/open/floor/plasteel,
/area/centcom/supplypod/loading/four)
"Xs" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
-/turf/open/floor/plating,
-/area/syndicate_mothership)
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
+/area/centcom/holding)
"Xt" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/centcom/control)
@@ -18314,6 +18414,10 @@
/obj/effect/turf_decal/tile/green,
/turf/open/floor/holofloor,
/area/holodeck/rec_center/firingrange)
+"Xw" = (
+/obj/structure/table/wood/fancy/royalblue,
+/turf/open/floor/wood,
+/area/centcom/holding)
"Xx" = (
/obj/machinery/light{
dir = 4
@@ -18332,6 +18436,16 @@
},
/turf/open/floor/plasteel,
/area/centcom/ferry)
+"XD" = (
+/obj/machinery/button/door{
+ id = "Ninja4";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = 25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"XE" = (
/obj/machinery/door/airlock/centcom{
name = "Kitchen";
@@ -18372,6 +18486,16 @@
},
/turf/open/floor/plating,
/area/syndicate_mothership)
+"Ya" = (
+/obj/machinery/button/door{
+ id = "Ninja1";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"Yc" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
@@ -18428,12 +18552,9 @@
"Yt" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -18473,6 +18594,12 @@
/mob/living/simple_animal/chicken,
/turf/open/floor/grass,
/area/centcom/holding)
+"YO" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding)
"YQ" = (
/obj/structure/table,
/obj/item/reagent_containers/glass/beaker,
@@ -18495,6 +18622,9 @@
},
/turf/open/floor/wood,
/area/centcom/holding)
+"YW" = (
+/turf/open/floor/plating,
+/area/centcom/holding)
"Za" = (
/obj/machinery/door/airlock/wood{
id_tag = "lmrestroom"
@@ -18529,11 +18659,10 @@
/obj/machinery/light,
/turf/open/floor/plasteel/dark,
/area/syndicate_mothership)
-"Zt" = (
-/obj/machinery/vr_sleeper{
- dir = 1
+"Zu" = (
+/obj/machinery/vending/autodrobe/all_access{
+ extended_inventory = 1
},
-/obj/machinery/light,
/turf/open/floor/wood,
/area/centcom/holding)
"Zw" = (
@@ -18554,6 +18683,16 @@
/obj/effect/landmark/start/nukeop_leader,
/turf/open/floor/wood,
/area/syndicate_mothership)
+"ZE" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/centcom/holding)
"ZF" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
@@ -18570,7 +18709,6 @@
"ZJ" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
@@ -18629,12 +18767,9 @@
"ZX" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
- opacity = 1;
req_access_txt = "101"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -25747,7 +25882,7 @@ lI
lI
lI
Ax
-Bp
+Qi
qZ
qZ
Ax
@@ -39895,7 +40030,7 @@ aa
aa
aa
QV
-Xs
+Yc
MI
MI
MI
@@ -40409,7 +40544,7 @@ aa
aa
aa
QV
-Xs
+Yc
MI
MI
MI
@@ -40666,7 +40801,7 @@ aa
aa
aa
QV
-Xs
+Yc
MI
MI
MI
@@ -42755,17 +42890,17 @@ Nd
Nd
Nd
Nd
+Nd
+Nd
+Nd
+Nd
+Nd
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+Nd
+Nd
+Nd
+Nd
aa
aa
aa
@@ -43009,20 +43144,20 @@ CT
oV
CT
CT
+CT
oV
CT
Nd
+Xk
+Xk
+Xk
+Nd
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+Uf
+Xk
+Xk
+Nd
aa
aa
aa
@@ -43268,18 +43403,18 @@ Xk
Xk
Xk
Xk
+Xk
+Nd
+Gs
+Xk
+HH
Nd
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+MJ
+Xk
+YW
+Nd
aa
aa
aa
@@ -43519,24 +43654,24 @@ UV
CV
Xk
NT
-Xk
+Dj
PF
+Dj
+Xk
+Dj
+PF
+Dj
+Nd
+Xk
Xk
-Px
Xk
-Zt
Nd
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+ma
+YW
+Xk
+Nd
aa
aa
aa
@@ -43775,25 +43910,25 @@ Nd
Gs
Xk
Xk
-RL
-Xk
-PF
-Xk
-Px
-Xk
-PF
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+Nd
+Nd
+Px
+Nd
+Nd
+Nd
+Nd
+Nd
+Ox
+Nd
+Nd
+Nd
+Nd
+Nd
+yS
+Nd
+Nd
aa
aa
aa
@@ -44034,23 +44169,23 @@ CV
Xk
NT
Xk
-PF
+Yo
Xk
-Px
Xk
-Zt
+Xk
+Yo
+Xk
+Nd
+Xk
+Xk
+Yo
+Xk
+Xk
+Yo
+Xk
+Xk
+WE
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
aa
aa
aa
@@ -44277,7 +44412,7 @@ Nd
Xk
Yo
Xk
-Xn
+XL
Xk
Xk
Tn
@@ -44289,13 +44424,24 @@ NT
Zh
Xk
Xk
-NT
+Re
Xk
Xk
Xk
Xk
Xk
Xk
+Xk
+Qu
+Xk
+Xk
+Xk
+Xk
+Xk
+Xk
+Xk
+Xk
+Zu
Nd
aa
aa
@@ -44303,17 +44449,6 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
KH
KH
KS
@@ -44547,24 +44682,24 @@ Ym
CV
Xk
NT
-Dj
-Qu
-Dj
-Dj
-Qu
-Dj
+Xk
+Xx
+Xk
+Xk
+Xk
+Xx
+Xk
+Nd
+Xk
+Xk
+Xk
+Xk
+Xk
+Xk
+Xk
+Xk
+PM
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
aa
aa
aa
@@ -44811,17 +44946,17 @@ Nd
Nd
Nd
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+Nd
+Nd
+Nd
+Rq
+HH
+Nd
+Nd
+Nd
+Nd
+Nd
aa
aa
aa
@@ -45068,17 +45203,17 @@ OU
RS
VF
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+UD
+tZ
+SY
+Nd
+Xk
+Xk
+Nd
+SY
+Ri
+UD
+Nd
aa
aa
aa
@@ -45325,17 +45460,17 @@ Xk
Xk
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Gs
+Xk
+Xk
+lS
+Xk
+Xk
+RP
+Xk
+Xk
+HH
+Nd
aa
aa
aa
@@ -45582,17 +45717,17 @@ XM
XM
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Xn
+Xk
+Ya
+Nd
+Xk
+Xk
+Nd
+XD
+Xk
+Xn
+Nd
aa
aa
aa
@@ -45839,17 +45974,17 @@ Po
ZU
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+Nd
+Nd
+Nd
+Xk
+Xk
+Nd
+Nd
+Nd
+Nd
+Nd
aa
aa
aa
@@ -46096,17 +46231,17 @@ Sd
MM
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+UD
+tZ
+SY
+Nd
+Xk
+Xk
+Nd
+SY
+Ri
+UD
+Nd
aa
aa
aa
@@ -46353,17 +46488,17 @@ Sd
MM
TM
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Gs
+Xk
+Xk
+uh
+Xk
+Xk
+zW
+Xk
+Xk
+HH
+Nd
aa
aa
aa
@@ -46610,17 +46745,17 @@ Sd
MM
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Xn
+Xk
+Tc
+Nd
+Xk
+Xk
+Nd
+AC
+Xk
+Xn
+Nd
aa
aa
aa
@@ -46867,17 +47002,17 @@ PA
Pl
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+Nd
+Nd
+Nd
+Rq
+HH
+Nd
+Nd
+Nd
+Nd
+Nd
aa
aa
aa
@@ -47124,17 +47259,17 @@ GY
GY
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Xs
+Ol
+YO
+Nd
+Xk
+Xk
+Nd
+RX
+Xw
+qP
+Nd
aa
aa
aa
@@ -47381,17 +47516,17 @@ Xk
Xk
Xk
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Gs
+Xk
+Xk
+SZ
+Xk
+Xk
+Ws
+Xk
+Xk
+HH
+Nd
aa
aa
aa
@@ -47628,7 +47763,7 @@ Xk
GY
NT
Xk
-Xk
+Ms
Xk
NT
vt
@@ -47638,17 +47773,17 @@ Tb
Uh
tW
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Ru
+Of
+QF
+Nd
+Xk
+Xk
+Nd
+WN
+Ur
+wj
+Nd
aa
aa
aa
@@ -47895,17 +48030,17 @@ Nd
Nd
Nd
Nd
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Kf
+WV
+Xk
+Nd
+Nd
+Nd
+Nd
+Xk
+zY
+Rv
+Nd
aa
aa
aa
@@ -48151,18 +48286,18 @@ aa
aa
aa
aa
+Nd
+Nd
+Nd
+QC
+Nd
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+QC
+Nd
+Nd
+Nd
aa
aa
aa
@@ -48408,18 +48543,18 @@ aa
aa
aa
aa
+Nd
+Ln
+ST
+ST
+Nd
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+ST
+ST
+Ln
+Nd
aa
aa
aa
@@ -48665,18 +48800,18 @@ aa
aa
aa
aa
+Nd
+xO
+QN
+ZE
+Nd
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+ZE
+QN
+RO
+Nd
aa
aa
aa
@@ -48922,18 +49057,18 @@ aa
aa
aa
aa
+Nd
+Nd
+Nd
+Nd
+Nd
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Nd
+Nd
+Nd
+Nd
+Nd
aa
aa
aa
diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm
new file mode 100644
index 0000000000..b71da1fba0
--- /dev/null
+++ b/_maps/templates/shelter_3.dmm
@@ -0,0 +1,414 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/survivalpod)
+"b" = (
+/obj/structure/sign/mining/survival{
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/survivalpod)
+"c" = (
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"d" = (
+/obj/structure/sign/mining/survival{
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"e" = (
+/obj/structure/sign/mining/survival{
+ dir = 8
+ },
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"f" = (
+/obj/structure/table/wood/fancy/black,
+/obj/machinery/chem_dispenser/drinks,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"g" = (
+/obj/structure/table/wood/fancy/black,
+/obj/machinery/chem_dispenser/drinks/beer,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"h" = (
+/obj/machinery/vending/boozeomat,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"i" = (
+/obj/item/book/manual/wiki/barman_recipes,
+/obj/item/reagent_containers/food/drinks/shaker,
+/obj/item/reagent_containers/rag,
+/obj/structure/table/wood/fancy/black,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"j" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/clipboard,
+/obj/item/toy/figure/bartender,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"k" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/storage/fancy/cigarettes/cigars,
+/obj/item/storage/fancy/cigarettes/cigars/cohiba{
+ pixel_y = 4
+ },
+/obj/item/storage/fancy/cigarettes/cigars/havana{
+ pixel_y = 8
+ },
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"l" = (
+/obj/structure/table/wood/fancy/black,
+/obj/structure/reagent_dispensers/beerkeg,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"m" = (
+/obj/structure/closet/secure_closet/bar,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"n" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"o" = (
+/obj/structure/sign/mining/survival{
+ dir = 4
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/survivalpod)
+"p" = (
+/obj/machinery/door/airlock/survival_pod/glass{
+ req_access_txt = "25"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"q" = (
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"r" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"s" = (
+/obj/structure/table/reinforced,
+/obj/item/lighter{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/lighter,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"t" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"u" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/matches{
+ pixel_x = -4;
+ pixel_y = 8
+ },
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"v" = (
+/obj/machinery/door/window/survival_pod{
+ req_access_txt = "25"
+ },
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"w" = (
+/obj/structure/sign/mining/survival{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"x" = (
+/obj/structure/chair/stool/bar,
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"y" = (
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"z" = (
+/obj/machinery/vending/cigarette/beach,
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"A" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"B" = (
+/obj/structure/sign/mining/survival{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"C" = (
+/obj/structure/window/reinforced/survival_pod{
+ dir = 8
+ },
+/obj/structure/window/reinforced/survival_pod{
+ dir = 4
+ },
+/obj/structure/window/reinforced/survival_pod{
+ dir = 1
+ },
+/obj/structure/window/reinforced/survival_pod,
+/obj/structure/grille,
+/turf/open/floor/pod/dark,
+/area/survivalpod)
+"D" = (
+/obj/structure/chair/comfy/black,
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"E" = (
+/obj/machinery/door/airlock/survival_pod,
+/turf/open/floor/pod/light,
+/area/survivalpod)
+"F" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -4;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"G" = (
+/obj/structure/urinal{
+ pixel_y = 24
+ },
+/turf/open/floor/pod/light,
+/area/survivalpod)
+"H" = (
+/turf/open/floor/pod/light,
+/area/survivalpod)
+"I" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/survivalpod)
+"J" = (
+/obj/structure/sign/mining/survival{
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"K" = (
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"L" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"M" = (
+/obj/machinery/light,
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+"N" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/survivalpod)
+"O" = (
+/obj/structure/sign/mining/survival{
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/survivalpod)
+"P" = (
+/obj/structure/sign/mining/survival,
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/survivalpod)
+"Q" = (
+/obj/structure/sign/mining/survival,
+/turf/closed/wall/mineral/titanium/survival/nodiagonal,
+/area/survivalpod)
+"R" = (
+/obj/machinery/door/airlock/survival_pod/glass,
+/obj/structure/fans/tiny,
+/turf/open/floor/carpet/black,
+/area/survivalpod)
+
+(1,1,1) = {"
+a
+e
+p
+e
+c
+e
+C
+e
+C
+e
+a
+"}
+(2,1,1) = {"
+b
+f
+q
+s
+x
+y
+D
+F
+K
+L
+P
+"}
+(3,1,1) = {"
+c
+g
+q
+t
+x
+y
+y
+y
+y
+M
+c
+"}
+(4,1,1) = {"
+d
+h
+q
+t
+x
+y
+D
+F
+K
+y
+Q
+"}
+(5,1,1) = {"
+c
+i
+q
+u
+x
+y
+D
+F
+K
+y
+c
+"}
+(6,1,1) = {"
+d
+j
+q
+t
+x
+y
+y
+y
+y
+y
+R
+"}
+(7,1,1) = {"
+c
+k
+q
+t
+x
+y
+c
+c
+c
+c
+c
+"}
+(8,1,1) = {"
+d
+l
+q
+t
+x
+y
+c
+G
+H
+H
+Q
+"}
+(9,1,1) = {"
+c
+m
+q
+v
+y
+y
+E
+H
+c
+E
+c
+"}
+(10,1,1) = {"
+b
+n
+q
+t
+z
+A
+c
+I
+c
+N
+P
+"}
+(11,1,1) = {"
+a
+o
+r
+w
+r
+B
+c
+J
+c
+O
+a
+"}
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index 74a6796bd2..41b5deb302 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -9,13 +9,12 @@
#define META_GAS_FUSION_POWER 7
//ATMOS
//stuff you should probably leave well alone!
-#define R_IDEAL_GAS_EQUATION 8.31446261815324 //kPa*L/(K*mol)
-#define ONE_ATMOSPHERE 101.325 //kPa
-#define TCMB 2.7 // -270.3degC
-#define TCRYO 225 // -48.15degC
-#define T0C 273.15 // 0degC
-#define T20C 293.15 // 20degC
-#define STEFANBOLTZMANN (5.670373*10e-8) // W/(m^2*K^4)
+#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol)
+#define ONE_ATMOSPHERE 101.325 //kPa
+#define TCMB 2.7 // -270.3degC
+#define TCRYO 225 // -48.15degC
+#define T0C 273.15 // 0degC
+#define T20C 293.15 // 20degC
#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC
#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) //compared against for superconductivity
@@ -150,9 +149,9 @@
//OPEN TURF ATMOS
#define OPENTURF_DEFAULT_ATMOS "o2=22;n2=82;TEMP=293.15" //the default air mix that open turfs spawn
-#define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15°C telecommunications. also used for xenobiology slime killrooms
+#define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15°C telecommunications. also used for xenobiology slime killrooms
#define AIRLESS_ATMOS "TEMP=2.7" //space
-#define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15°C snow and ice turfs
+#define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15°C snow and ice turfs
#define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370" //used in the holodeck burn test program
//ATMOSPHERICS DEPARTMENT GAS TANK TURFS
diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index 47b5c2f602..e29be375e6 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -109,8 +109,16 @@
#define MEDIHOUND_SLEEPER (1<<0)
#define EATING_NOISES (1<<1)
#define DIGESTION_NOISES (1<<2)
+#define BREAST_ENLARGEMENT (1<<3)
+#define PENIS_ENLARGEMENT (1<<4)
+#define FORCED_FEM (1<<5)
+#define FORCED_MASC (1<<6)
+#define HYPNO (1<<7)
+#define NEVER_HYPNO (1<<8)
+#define NO_APHRO (1<<9)
+#define NO_ASS_SLAP (1<<10)
-#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES)
+#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES|BREAST_ENLARGEMENT|PENIS_ENLARGEMENT)
//component stuff
#define COMSIG_COMBAT_TOGGLED "combatmode_toggled" //called by combat mode toggle on all equipped items. args: (mob/user, combatmode)
diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm
index f95ff93ac3..7b2dd8663c 100644
--- a/code/__DEFINES/components.dm
+++ b/code/__DEFINES/components.dm
@@ -54,6 +54,10 @@
#define EXAMINE_POSITION_BEFORE 2
//End positions
#define COMPONENT_EXNAME_CHANGED 1
+#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon" //from base of atom/update_icon(): ()
+ #define COMSIG_ATOM_NO_UPDATE_ICON_STATE 1
+ #define COMSIG_ATOM_NO_UPDATE_OVERLAYS 2
+#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" //from base of atom/update_overlays(): (list/new_overlays)
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (atom/movable/entering, /atom)
#define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
#define COMPONENT_ATOM_BLOCK_EXIT 1
diff --git a/code/__DEFINES/dynamic.dm b/code/__DEFINES/dynamic.dm
new file mode 100644
index 0000000000..45c1ba9cb2
--- /dev/null
+++ b/code/__DEFINES/dynamic.dm
@@ -0,0 +1,14 @@
+#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/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 09ef814f68..55bfcaff79 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -224,6 +224,8 @@ GLOBAL_LIST_INIT(heavyfootmob, typecacheof(list(
#define isorgan(A) (istype(A, /obj/item/organ))
+#define isclothing(A) (istype(A, /obj/item/clothing))
+
GLOBAL_LIST_INIT(pointed_types, typecacheof(list(
/obj/item/pen,
/obj/item/screwdriver,
diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm
index 1b42217fe1..73e900226e 100644
--- a/code/__DEFINES/maps.dm
+++ b/code/__DEFINES/maps.dm
@@ -38,8 +38,6 @@ 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"
@@ -60,11 +58,18 @@ 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)
+#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_REEBE list(ZTRAIT_REEBE = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 0.5)
#define DL_NAME "name"
diff --git a/code/__DEFINES/melee.dm b/code/__DEFINES/melee.dm
index cb4a433211..b166b9d21a 100644
--- a/code/__DEFINES/melee.dm
+++ b/code/__DEFINES/melee.dm
@@ -7,4 +7,5 @@
#define MARTIALART_MUSHPUNCH "mushroom punch"
#define MARTIALART_KRAVMAGA "krav maga"
#define MARTIALART_CQC "CQC"
-#define MARTIALART_PLASMAFIST "plasma fist"
\ No newline at end of file
+#define MARTIALART_PLASMAFIST "plasma fist"
+#define MARTIALART_RISINGBASS "rising bass"
\ No newline at end of file
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index bf54fc4ead..0a1edff5f9 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -504,3 +504,5 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define FOURSPACES " "
#define CRYOMOBS 'icons/obj/cryo_mobs.dmi'
+
+#define CANT_REENTER_ROUND -1
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index 94c2c372f0..831f73ac74 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -41,6 +41,7 @@
#define VOICEBOX_TOGGLABLE (1<<6) //The voicebox in this clothing can be toggled.
#define VOICEBOX_DISABLED (1<<7) //The voicebox is currently turned off.
#define IGNORE_HAT_TOSS (1<<8) //Hats with negative effects when worn (i.e the tinfoil hat).
+#define SCAN_REAGENTS (1<<9) // Allows helmets and glasses to scan reagents.
// Flags for the organ_flags var on /obj/item/organ
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 428d569531..4f66482f51 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -134,6 +134,7 @@
#define TRAIT_NORUNNING "norunning" // You walk!
#define TRAIT_NOMARROW "nomarrow" // You don't make blood, with chemicals or nanites.
#define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat.
+#define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events"
//non-mob traits
@@ -160,17 +161,16 @@
#define TRAIT_TAGGER "tagger"
#define TRAIT_PHOTOGRAPHER "photographer"
#define TRAIT_MUSICIAN "musician"
-#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
#define TRAIT_NYMPHO "nymphomania"
#define TRAIT_MASO "masochism"
#define TRAIT_EXHIBITIONIST "exhibitionist"
#define TRAIT_HIGH_BLOOD "high_blood"
-#define TRAIT_PHARMA "hepatic_pharmacokinesis"
#define TRAIT_PARA "paraplegic"
#define TRAIT_EMPATH "empath"
#define TRAIT_FRIENDLY "friendly"
-#define TRAIT_ASSBLASTUSA "assblastusa"
#define TRAIT_CULT_EYES "cult_eyes"
+#define TRAIT_AUTO_CATCH_ITEM "auto_catch_item"
+#define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman.
#define TRAIT_FREESPRINT "free_sprinting"
@@ -193,6 +193,7 @@
#define ABSTRACT_ITEM_TRAIT "abstract-item"
#define STATUS_EFFECT_TRAIT "status-effect"
#define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention
+#define GHOSTROLE_TRAIT "ghostrole"
// unique trait sources, still defines
#define STATUE_MUTE "statue"
@@ -226,7 +227,9 @@
#define NINJA_SUIT_TRAIT "ninja-suit"
#define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant"
#define SLEEPING_CARP_TRAIT "sleeping_carp"
+#define RISING_BASS_TRAIT "rising_bass"
#define ABDUCTOR_ANTAGONIST "abductor-antagonist"
+#define NUKEOP_ANTAGONIST "nukeop-antagonist"
#define MADE_UNCLONEABLE "made-uncloneable"
#define NUKEOP_TRAIT "nuke-op"
#define DEATHSQUAD_TRAIT "deathsquad"
diff --git a/code/__DEFINES/vote.dm b/code/__DEFINES/vote.dm
new file mode 100644
index 0000000000..8fb2e6deab
--- /dev/null
+++ b/code/__DEFINES/vote.dm
@@ -0,0 +1,6 @@
+#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 c259831f94..3ee77d3edc 100644
--- a/code/__HELPERS/_logging.dm
+++ b/code/__HELPERS/_logging.dm
@@ -157,6 +157,8 @@
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/game.dm b/code/__HELPERS/game.dm
index d76fc7731a..222002f512 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -447,7 +447,7 @@
var/list/candidates = list()
for(var/mob/dead/observer/G in GLOB.player_list)
- if(G.reenter_round_timeout < world.realtime)
+ if(G.can_reenter_round(TRUE))
candidates += G
return pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates)
diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm
index 55ee069321..3e6e88c8fa 100644
--- a/code/__HELPERS/level_traits.dm
+++ b/code/__HELPERS/level_traits.dm
@@ -12,6 +12,3 @@
#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/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 0d6345dae2..cdf0f604b8 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -20,8 +20,6 @@
else
return "000"
-#define UNDIE_COLORABLE(U) (U?.has_color)
-
/proc/random_underwear(gender)
if(!GLOB.underwear_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/bottom, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f)
@@ -76,6 +74,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_wings, GLOB.insect_wings_list)
if(!GLOB.insect_fluffs_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_fluff, GLOB.insect_fluffs_list)
+ if(!GLOB.insect_markings_list.len)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_markings, GLOB.insect_markings_list)
//CIT CHANGES - genitals and such
if(!GLOB.cock_shapes_list.len)
@@ -151,6 +151,7 @@
"caps" = pick(GLOB.caps_list),
"insect_wings" = pick(GLOB.insect_wings_list),
"insect_fluff" = "None",
+ "insect_markings" = pick(GLOB.insect_markings_list),
"taur" = "None",
"mam_body_markings" = pick(snowflake_markings_list),
"mam_ears" = pick(snowflake_ears_list),
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index 27f1a81fef..49825bcb50 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -19,6 +19,9 @@
var/list/mob_data = list()
if(isnewplayer(m))
continue
+ if (m.client && m.client.prefs && m.client.prefs.auto_ooc)
+ if (!(m.client.prefs.chat_toggles & CHAT_OOC))
+ m.client.prefs.chat_toggles ^= CHAT_OOC
if(m.mind)
if(m.stat != DEAD && !isbrain(m) && !iscameramob(m))
num_survivors++
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index da437fe0bd..a7ce5870ce 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -758,16 +758,6 @@ GLOBAL_LIST_INIT(can_embed_types, typecacheof(list(
/obj/item/stack/rods,
/obj/item/pipe)))
-/proc/can_embed(obj/item/W)
- if(W.get_sharpness())
- return 1
- if(is_pointed(W))
- return 1
-
- if(is_type_in_typecache(W, GLOB.can_embed_types))
- return 1
-
-
/*
Checks if that loc and dir has an item on the wall
*/
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index e0cf8ebdd5..bf179760c0 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -143,6 +143,7 @@ GLOBAL_LIST_INIT(bitfields, list(
"VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE,
"VOICEBOX_DISABLED" = VOICEBOX_DISABLED,
"IGNORE_HAT_TOSS" = IGNORE_HAT_TOSS,
+ "SCAN_REAGENTS" = SCAN_REAGENTS
),
"tesla_flags" = list(
"TESLA_MOB_DAMAGE" = TESLA_MOB_DAMAGE,
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index e2705ad49f..2391d39b3a 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -37,6 +37,7 @@ GLOBAL_LIST_EMPTY(deco_wings_list)
GLOBAL_LIST_EMPTY(r_wings_list)
GLOBAL_LIST_EMPTY(insect_wings_list)
GLOBAL_LIST_EMPTY(insect_fluffs_list)
+GLOBAL_LIST_EMPTY(insect_markings_list)
GLOBAL_LIST_EMPTY(caps_list)
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index c25ebf5b0a..914e45add5 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -115,5 +115,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/clothing/shoes/kindleKicks = 1,
/obj/item/autosurgeon/penis = 1,
/obj/item/autosurgeon/testicles = 1,
+ /obj/item/storage/box/marshmallow = 2,
"" = 3
))
diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm
index 6b8d91acf9..7340581d25 100644
--- a/code/_globalvars/lists/mapping.dm
+++ b/code/_globalvars/lists/mapping.dm
@@ -48,3 +48,5 @@ GLOBAL_LIST_EMPTY(sortedAreas)
GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area)
GLOBAL_LIST_EMPTY(all_abstract_markers)
+
+GLOBAL_LIST_EMPTY(stationroom_landmarks) //List of all spawns for stationrooms
diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm
index 8e5da083e3..5ca3513e66 100644
--- a/code/_globalvars/logging.dm
+++ b/code/_globalvars/logging.dm
@@ -28,6 +28,8 @@ 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/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index 49bdd3f3c0..93c3b63d1e 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -195,89 +195,107 @@
// Language menu
using = new /obj/screen/language_menu
using.screen_loc = ui_borg_language_menu
+ using.hud = src
static_inventory += using
//AI core
using = new /obj/screen/ai/aicore()
using.screen_loc = ui_ai_core
+ using.hud = src
static_inventory += using
//Camera list
using = new /obj/screen/ai/camera_list()
using.screen_loc = ui_ai_camera_list
+ using.hud = src
static_inventory += using
//Track
using = new /obj/screen/ai/camera_track()
using.screen_loc = ui_ai_track_with_camera
+ using.hud = src
static_inventory += using
//Camera light
using = new /obj/screen/ai/camera_light()
using.screen_loc = ui_ai_camera_light
+ using.hud = src
static_inventory += using
//Crew Monitoring
using = new /obj/screen/ai/crew_monitor()
using.screen_loc = ui_ai_crew_monitor
+ using.hud = src
static_inventory += using
//Crew Manifest
using = new /obj/screen/ai/crew_manifest()
using.screen_loc = ui_ai_crew_manifest
+ using.hud = src
static_inventory += using
//Alerts
using = new /obj/screen/ai/alerts()
using.screen_loc = ui_ai_alerts
+ using.hud = src
static_inventory += using
//Announcement
using = new /obj/screen/ai/announcement()
using.screen_loc = ui_ai_announcement
+ using.hud = src
static_inventory += using
//Shuttle
using = new /obj/screen/ai/call_shuttle()
using.screen_loc = ui_ai_shuttle
+ using.hud = src
static_inventory += using
//Laws
using = new /obj/screen/ai/state_laws()
using.screen_loc = ui_ai_state_laws
+ using.hud = src
static_inventory += using
//PDA message
using = new /obj/screen/ai/pda_msg_send()
using.screen_loc = ui_ai_pda_send
+ using.hud = src
static_inventory += using
//PDA log
using = new /obj/screen/ai/pda_msg_show()
using.screen_loc = ui_ai_pda_log
+ using.hud = src
static_inventory += using
//Take image
using = new /obj/screen/ai/image_take()
using.screen_loc = ui_ai_take_picture
+ using.hud = src
static_inventory += using
//View images
using = new /obj/screen/ai/image_view()
using.screen_loc = ui_ai_view_images
+ using.hud = src
static_inventory += using
//Medical/Security sensors
using = new /obj/screen/ai/sensors()
using.screen_loc = ui_ai_sensor
+ using.hud = src
static_inventory += using
//Multicamera mode
using = new /obj/screen/ai/multicam()
using.screen_loc = ui_ai_multicam
+ using.hud = src
static_inventory += using
//Add multicamera camera
using = new /obj/screen/ai/add_multicam()
using.screen_loc = ui_ai_add_multicam
+ using.hud = src
static_inventory += using
diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm
index 1f6ba28391..94585cbd52 100644
--- a/code/_onclick/hud/alien.dm
+++ b/code/_onclick/hud/alien.dm
@@ -43,18 +43,20 @@
using.icon = ui_style
using.icon_state = "swap_1"
using.screen_loc = ui_swaphand_position(owner,1)
+ using.hud = src
static_inventory += using
using = new /obj/screen/swap_hand()
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
+ using.hud = src
static_inventory += using
- using = new /obj/screen/act_intent/alien()
- using.icon_state = mymob.a_intent
- static_inventory += using
- action_intent = using
+ action_intent = new /obj/screen/act_intent/alien()
+ action_intent.icon_state = mymob.a_intent
+ action_intent.hud = src
+ static_inventory += action_intent
if(isalienhunter(mymob))
var/mob/living/carbon/alien/humanoid/hunter/H = mymob
@@ -64,43 +66,52 @@
using = new/obj/screen/language_menu
using.screen_loc = ui_alien_language_menu
+ using.hud = src
static_inventory += using
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drop_throw
+ using.hud = src
static_inventory += using
using = new /obj/screen/resist()
using.icon = ui_style
using.screen_loc = ui_pull_resist
+ using.hud = src
hotkeybuttons += using
throw_icon = new /obj/screen/throw_catch()
throw_icon.icon = ui_style
throw_icon.screen_loc = ui_drop_throw
+ throw_icon.hud = src
hotkeybuttons += throw_icon
pull_icon = new /obj/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.hud = src
+ pull_icon.update_icon()
pull_icon.screen_loc = ui_pull_resist
static_inventory += pull_icon
//begin indicators
healths = new /obj/screen/healths/alien()
+ healths.hud = src
infodisplay += healths
alien_plasma_display = new /obj/screen/alien/plasma_display()
+ alien_plasma_display.hud = src
infodisplay += alien_plasma_display
if(!isalienqueen(mymob))
alien_queen_finder = new /obj/screen/alien/alien_queen_finder
+ alien_queen_finder.hud = src
infodisplay += alien_queen_finder
zone_select = new /obj/screen/zone_sel/alien()
- zone_select.update_icon(mymob)
+ zone_select.hud = src
+ zone_select.update_icon()
static_inventory += zone_select
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm
index 3ffdd66fcd..0f3c6ccf17 100644
--- a/code/_onclick/hud/alien_larva.dm
+++ b/code/_onclick/hud/alien_larva.dm
@@ -5,26 +5,32 @@
..()
var/obj/screen/using
- using = new /obj/screen/act_intent/alien()
- using.icon_state = mymob.a_intent
- static_inventory += using
- action_intent = using
+ action_intent = new /obj/screen/act_intent/alien()
+ action_intent.icon_state = mymob.a_intent
+ action_intent.hud = src
+ static_inventory += action_intent
healths = new /obj/screen/healths/alien()
+ healths.hud = src
infodisplay += healths
alien_queen_finder = new /obj/screen/alien/alien_queen_finder()
+ alien_queen_finder.hud = src
infodisplay += alien_queen_finder
+
pull_icon = new /obj/screen/pull()
pull_icon.icon = 'icons/mob/screen_alien.dmi'
- pull_icon.update_icon(mymob)
+ pull_icon.hud = src
+ pull_icon.update_icon()
pull_icon.screen_loc = ui_pull_resist
hotkeybuttons += pull_icon
using = new/obj/screen/language_menu
using.screen_loc = ui_alien_language_menu
+ using.hud = src
static_inventory += using
zone_select = new /obj/screen/zone_sel/alien()
- zone_select.update_icon(mymob)
+ zone_select.hud = src
+ zone_select.update_icon()
static_inventory += zone_select
diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm
index ab8bc459ae..8257b744d6 100644
--- a/code/_onclick/hud/blob_overmind.dm
+++ b/code/_onclick/hud/blob_overmind.dm
@@ -133,17 +133,21 @@
blobpwrdisplay.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
blobpwrdisplay.layer = ABOVE_HUD_LAYER
blobpwrdisplay.plane = ABOVE_HUD_PLANE
+ blobpwrdisplay.hud = src
infodisplay += blobpwrdisplay
healths = new /obj/screen/healths/blob()
+ healths.hud = src
infodisplay += healths
using = new /obj/screen/blob/BlobHelp()
using.screen_loc = "WEST:6,NORTH:-3"
+ using.hud = src
static_inventory += using
using = new /obj/screen/blob/JumpToNode()
using.screen_loc = ui_inventory
+ using.hud = src
static_inventory += using
using = new /obj/screen/blob/JumpToCore()
@@ -153,18 +157,22 @@
using = new /obj/screen/blob/Blobbernaut()
using.screen_loc = ui_belt
+ using.hud = src
static_inventory += using
using = new /obj/screen/blob/ResourceBlob()
using.screen_loc = ui_back
+ using.hud = src
static_inventory += using
using = new /obj/screen/blob/NodeBlob()
using.screen_loc = ui_hand_position(2)
+ using.hud = src
static_inventory += using
using = new /obj/screen/blob/FactoryBlob()
using.screen_loc = ui_hand_position(1)
+ using.hud = src
static_inventory += using
using = new /obj/screen/blob/ReadaptChemical()
@@ -174,4 +182,5 @@
using = new /obj/screen/blob/RelocateCore()
using.screen_loc = ui_storage2
+ using.hud = src
static_inventory += using
diff --git a/code/_onclick/hud/blobbernauthud.dm b/code/_onclick/hud/blobbernauthud.dm
index 17d3b11a72..ed45d5b1f6 100644
--- a/code/_onclick/hud/blobbernauthud.dm
+++ b/code/_onclick/hud/blobbernauthud.dm
@@ -3,7 +3,9 @@
..()
blobpwrdisplay = new /obj/screen/healths/blob/naut/core()
+ blobpwrdisplay.hud = src
infodisplay += blobpwrdisplay
healths = new /obj/screen/healths/blob/naut()
+ healths.hud = src
infodisplay += healths
diff --git a/code/_onclick/hud/constructs.dm b/code/_onclick/hud/constructs.dm
index 182495c236..06e657d136 100644
--- a/code/_onclick/hud/constructs.dm
+++ b/code/_onclick/hud/constructs.dm
@@ -5,9 +5,11 @@
..()
pull_icon = new /obj/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.hud = src
+ pull_icon.update_icon()
pull_icon.screen_loc = ui_construct_pull
static_inventory += pull_icon
healths = new /obj/screen/healths/construct()
+ healths.hud = src
infodisplay += healths
diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm
index 40fdc37da3..fd2146424c 100644
--- a/code/_onclick/hud/devil.dm
+++ b/code/_onclick/hud/devil.dm
@@ -9,11 +9,13 @@
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drone_drop
+ using.hud = src
static_inventory += using
pull_icon = new /obj/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.hud = src
+ pull_icon.update_icon()
pull_icon.screen_loc = ui_drone_pull
static_inventory += pull_icon
@@ -26,6 +28,7 @@
using.screen_loc = ui_swaphand_position(owner,1)
using.layer = HUD_LAYER
using.plane = HUD_PLANE
+ using.hud = src
static_inventory += using
using = new /obj/screen/inventory()
@@ -35,14 +38,19 @@
using.screen_loc = ui_swaphand_position(owner,2)
using.layer = HUD_LAYER
using.plane = HUD_PLANE
+ using.hud = src
static_inventory += using
zone_select = new /obj/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.hud = src
+ zone_select.update_icon()
lingchemdisplay = new /obj/screen/ling/chems()
+ lingchemdisplay.hud = src
+
devilsouldisplay = new /obj/screen/devil/soul_counter
+ devilsouldisplay.hud = src
infodisplay += devilsouldisplay
diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm
index 131b510f9b..dba9a59748 100644
--- a/code/_onclick/hud/generic_dextrous.dm
+++ b/code/_onclick/hud/generic_dextrous.dm
@@ -6,11 +6,13 @@
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drone_drop
+ using.hud = src
static_inventory += using
pull_icon = new /obj/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.hud = src
+ pull_icon.update_icon()
pull_icon.screen_loc = ui_drone_pull
static_inventory += pull_icon
@@ -20,12 +22,14 @@
using.icon = ui_style
using.icon_state = "swap_1_m"
using.screen_loc = ui_swaphand_position(owner,1)
+ using.hud = src
static_inventory += using
using = new /obj/screen/swap_hand()
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
+ using.hud = src
static_inventory += using
if(mymob.possible_a_intents)
@@ -36,20 +40,24 @@
action_intent = new /obj/screen/act_intent
action_intent.icon = ui_style
action_intent.icon_state = mymob.a_intent
+ action_intent.hud = src
static_inventory += action_intent
zone_select = new /obj/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.hud = src
+ zone_select.update_icon()
static_inventory += zone_select
using = new /obj/screen/craft
using.icon = ui_style
+ using.hud = src
static_inventory += using
using = new /obj/screen/area_creator
using.icon = ui_style
+ using.hud = src
static_inventory += using
mymob.client.screen = list()
diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm
index 2b70392b39..549b6346ce 100644
--- a/code/_onclick/hud/ghost.dm
+++ b/code/_onclick/hud/ghost.dm
@@ -50,26 +50,32 @@
using = new /obj/screen/ghost/jumptomob()
using.screen_loc = ui_ghost_jumptomob
+ using.hud = src
static_inventory += using
using = new /obj/screen/ghost/orbit()
using.screen_loc = ui_ghost_orbit
+ using.hud = src
static_inventory += using
using = new /obj/screen/ghost/reenter_corpse()
using.screen_loc = ui_ghost_reenter_corpse
+ using.hud = src
static_inventory += using
using = new /obj/screen/ghost/teleport()
using.screen_loc = ui_ghost_teleport
+ using.hud = src
static_inventory += using
using = new /obj/screen/ghost/pai()
using.screen_loc = ui_ghost_pai
+ using.hud = src
static_inventory += using
using = new /obj/screen/language_menu
using.icon = ui_style
+ using.hud = src
static_inventory += using
/datum/hud/ghost/show_hud(version = 0, mob/viewmob)
diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm
index a66558950a..35b40ee5db 100644
--- a/code/_onclick/hud/guardian.dm
+++ b/code/_onclick/hud/guardian.dm
@@ -4,26 +4,32 @@
var/obj/screen/using
healths = new /obj/screen/healths/guardian()
+ healths.hud = src
infodisplay += healths
using = new /obj/screen/guardian/Manifest()
using.screen_loc = ui_hand_position(2)
+ using.hud = src
static_inventory += using
using = new /obj/screen/guardian/Recall()
using.screen_loc = ui_hand_position(1)
+ using.hud = src
static_inventory += using
using = new owner.toggle_button_type()
using.screen_loc = ui_storage1
+ using.hud = src
static_inventory += using
using = new /obj/screen/guardian/ToggleLight()
using.screen_loc = ui_inventory
+ using.hud = src
static_inventory += using
using = new /obj/screen/guardian/Communicate()
using.screen_loc = ui_back
+ using.hud = src
static_inventory += using
/datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner) //for a dextrous guardian
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 1d1836716b..09794444d1 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -61,6 +61,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
// subtypes can override this to force a specific UI style
var/ui_style
+ //Citadel stuff
+ var/obj/screen/arousal
+
/datum/hud/New(mob/owner)
mymob = owner
diff --git a/code/_onclick/hud/hud_cit.dm b/code/_onclick/hud/hud_cit.dm
deleted file mode 100644
index 18ecf2e929..0000000000
--- a/code/_onclick/hud/hud_cit.dm
+++ /dev/null
@@ -1,2 +0,0 @@
-/datum/hud
- var/obj/screen/arousal
\ No newline at end of file
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 3b5f851333..78a2d2fd17 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -95,18 +95,21 @@
using.icon = ui_style
if(!widescreenlayout) // CIT CHANGE
using.screen_loc = ui_boxcraft // CIT CHANGE
+ using.hud = src
static_inventory += using
using = new/obj/screen/language_menu
using.icon = ui_style
if(!widescreenlayout) // CIT CHANGE
using.screen_loc = ui_boxlang // CIT CHANGE
+ using.hud = src
static_inventory += using
using = new /obj/screen/area_creator
using.icon = ui_style
if(!widescreenlayout) // CIT CHANGE
using.screen_loc = ui_boxarea // CIT CHANGE
+ using.hud = src
static_inventory += using
using = new /obj/screen/voretoggle() //We fancy Vore now
@@ -114,16 +117,19 @@
using.screen_loc = ui_voremode
if(!widescreenlayout)
using.screen_loc = ui_boxvore
+ using.hud = src
static_inventory += using
action_intent = new /obj/screen/act_intent/segmented
action_intent.icon_state = mymob.a_intent
+ action_intent.hud = src
static_inventory += action_intent
using = new /obj/screen/mov_intent
using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
+ using.hud = src
static_inventory += using
//CITADEL CHANGES - sprint button
@@ -131,19 +137,21 @@
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.icon_state = (owner.sprinting ? "act_sprint_on" : "act_sprint")
using.screen_loc = ui_movi
+ using.hud = src
static_inventory += using
//END OF CITADEL CHANGES
//same as above but buffer.
- using = new /obj/screen/sprint_buffer
- using.screen_loc = ui_sprintbufferloc
- sprint_buffer = using
- static_inventory += using
+ sprint_buffer = new /obj/screen/sprint_buffer
+ sprint_buffer.screen_loc = ui_sprintbufferloc
+ sprint_buffer.hud = src
+ static_inventory += sprint_buffer
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drop_throw
+ using.hud = src
static_inventory += using
inv_box = new /obj/screen/inventory()
@@ -168,12 +176,14 @@
using.icon = ui_style
using.icon_state = "swap_1"
using.screen_loc = ui_swaphand_position(owner,1)
+ using.hud = src
static_inventory += using
using = new /obj/screen/swap_hand()
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
+ using.hud = src
static_inventory += using
inv_box = new /obj/screen/inventory()
@@ -235,28 +245,33 @@
using = new /obj/screen/resist()
using.icon = ui_style
using.screen_loc = ui_overridden_resist // CIT CHANGE - changes this to overridden resist
+ using.hud = src
hotkeybuttons += using
//CIT CHANGES - rest and combat mode buttons
using = new /obj/screen/restbutton()
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.screen_loc = ui_pull_resist
+ using.hud = src
static_inventory += using
using = new /obj/screen/combattoggle()
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.screen_loc = ui_combat_toggle
+ using.hud = src
static_inventory += using
//END OF CIT CHANGES
using = new /obj/screen/human/toggle()
using.icon = ui_style
using.screen_loc = ui_inventory
+ using.hud = src
static_inventory += using
using = new /obj/screen/human/equip()
using.icon = ui_style
using.screen_loc = ui_equip_position(mymob)
+ using.hud = src
static_inventory += using
inv_box = new /obj/screen/inventory()
@@ -311,54 +326,71 @@
throw_icon = new /obj/screen/throw_catch()
throw_icon.icon = ui_style
throw_icon.screen_loc = ui_drop_throw
+ throw_icon.hud = src
hotkeybuttons += throw_icon
internals = new /obj/screen/internals()
+ internals.hud = src
infodisplay += internals
healths = new /obj/screen/healths()
+ healths.hud = src
infodisplay += healths
//CIT CHANGE - adds arousal and stamina to hud
arousal = new /obj/screen/arousal()
arousal.icon_state = (owner.canbearoused == 1 ? "arousal0" : "")
+ arousal.hud = src
infodisplay += arousal
staminas = new /obj/screen/staminas()
+ staminas.hud = src
infodisplay += staminas
if(!CONFIG_GET(flag/disable_stambuffer))
staminabuffer = new /obj/screen/staminabuffer()
+ staminabuffer.hud = src
infodisplay += staminabuffer
//END OF CIT CHANGES
healthdoll = new /obj/screen/healthdoll()
+ healthdoll.hud = src
infodisplay += healthdoll
pull_icon = new /obj/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.hud = src
+ pull_icon.update_icon()
pull_icon.screen_loc = ui_pull_resist
static_inventory += pull_icon
lingchemdisplay = new /obj/screen/ling/chems()
+ lingchemdisplay.hud = src
infodisplay += lingchemdisplay
lingstingdisplay = new /obj/screen/ling/sting()
+ lingstingdisplay.hud = src
infodisplay += lingstingdisplay
devilsouldisplay = new /obj/screen/devil/soul_counter
+ devilsouldisplay.hud = src
infodisplay += devilsouldisplay
blood_display = new /obj/screen/bloodsucker/blood_counter // Blood Volume
+ blood_display.hud = src
infodisplay += blood_display
+
vamprank_display = new /obj/screen/bloodsucker/rank_counter // Vampire Rank
+ vamprank_display.hud = src
infodisplay += vamprank_display
+
sunlight_display = new /obj/screen/bloodsucker/sunlight_counter // Sunlight
+ sunlight_display.hud = src
infodisplay += sunlight_display
zone_select = new /obj/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.hud = src
+ zone_select.update_icon()
static_inventory += zone_select
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
diff --git a/code/_onclick/hud/lavaland_elite.dm b/code/_onclick/hud/lavaland_elite.dm
index 277ea8b898..a36d9a0f36 100644
--- a/code/_onclick/hud/lavaland_elite.dm
+++ b/code/_onclick/hud/lavaland_elite.dm
@@ -6,9 +6,9 @@
pull_icon = new /obj/screen/pull()
pull_icon.icon = ui_style
+ pull_icon.hud = src
pull_icon.update_icon()
pull_icon.screen_loc = ui_living_pull
- pull_icon.hud = src
static_inventory += pull_icon
healths = new /obj/screen/healths/lavaland_elite()
diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm
index bbf2cca9f9..3d3c3cf64a 100644
--- a/code/_onclick/hud/monkey.dm
+++ b/code/_onclick/hud/monkey.dm
@@ -7,21 +7,25 @@
action_intent.icon = ui_style
action_intent.icon_state = mymob.a_intent
action_intent.screen_loc = ui_acti
+ action_intent.hud = src
static_inventory += action_intent
using = new /obj/screen/mov_intent()
using.icon = ui_style
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
+ using.hud = src
static_inventory += using
using = new/obj/screen/language_menu
using.icon = ui_style
+ using.hud = src
static_inventory += using
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drop_throw
+ using.hud = src
static_inventory += using
build_hand_slots()
@@ -30,12 +34,14 @@
using.icon = ui_style
using.icon_state = "swap_1_m" //extra wide!
using.screen_loc = ui_swaphand_position(owner,1)
+ using.hud = src
static_inventory += using
using = new /obj/screen/swap_hand()
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
+ using.hud = src
static_inventory += using
inv_box = new /obj/screen/inventory()
@@ -76,30 +82,37 @@
throw_icon = new /obj/screen/throw_catch()
throw_icon.icon = ui_style
throw_icon.screen_loc = ui_drop_throw
+ throw_icon.hud = src
hotkeybuttons += throw_icon
internals = new /obj/screen/internals()
+ internals.hud = src
infodisplay += internals
healths = new /obj/screen/healths()
+ healths.hud = src
infodisplay += healths
pull_icon = new /obj/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
pull_icon.screen_loc = ui_pull_resist
+ pull_icon.hud = src
+ pull_icon.update_icon()
static_inventory += pull_icon
lingchemdisplay = new /obj/screen/ling/chems()
+ lingchemdisplay.hud = src
infodisplay += lingchemdisplay
lingstingdisplay = new /obj/screen/ling/sting()
+ lingstingdisplay.hud = src
infodisplay += lingstingdisplay
zone_select = new /obj/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.hud = src
+ zone_select.update_icon()
static_inventory += zone_select
mymob.client.screen = list()
@@ -107,6 +120,7 @@
using = new /obj/screen/resist()
using.icon = ui_style
using.screen_loc = ui_pull_resist
+ using.hud = src
hotkeybuttons += using
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
diff --git a/code/_onclick/hud/revenanthud.dm b/code/_onclick/hud/revenanthud.dm
index bc8a2bde7d..9369313941 100644
--- a/code/_onclick/hud/revenanthud.dm
+++ b/code/_onclick/hud/revenanthud.dm
@@ -3,4 +3,5 @@
..()
healths = new /obj/screen/healths/revenant()
+ healths.hud = src
infodisplay += healths
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 11517d79b8..00c89644b6 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -118,26 +118,31 @@
using = new/obj/screen/robot/language_menu
using.screen_loc = ui_borg_language_menu
+ using.hud = src
static_inventory += using
//Radio
using = new /obj/screen/robot/radio()
using.screen_loc = ui_borg_radio
+ using.hud = src
static_inventory += using
//Module select
using = new /obj/screen/robot/module1()
using.screen_loc = ui_inv1
+ using.hud = src
static_inventory += using
mymobR.inv1 = using
using = new /obj/screen/robot/module2()
using.screen_loc = ui_inv2
+ using.hud = src
static_inventory += using
mymobR.inv2 = using
using = new /obj/screen/robot/module3()
using.screen_loc = ui_inv3
+ using.hud = src
static_inventory += using
mymobR.inv3 = using
@@ -146,36 +151,43 @@
//Photography stuff
using = new /obj/screen/ai/image_take()
using.screen_loc = ui_borg_camera
+ using.hud = src
static_inventory += using
using = new /obj/screen/ai/image_view()
using.screen_loc = ui_borg_album
+ using.hud = src
static_inventory += using
//Sec/Med HUDs
using = new /obj/screen/robot/sensors()
using.screen_loc = ui_borg_sensor
+ using.hud = src
static_inventory += using
//Headlamp control
using = new /obj/screen/robot/lamp()
using.screen_loc = ui_borg_lamp
+ using.hud = src
static_inventory += using
mymobR.lamp_button = using
//Thrusters
using = new /obj/screen/robot/thrusters()
using.screen_loc = ui_borg_thrusters
+ using.hud = src
static_inventory += using
mymobR.thruster_button = using
//Intent
action_intent = new /obj/screen/act_intent/robot()
action_intent.icon_state = mymob.a_intent
+ action_intent.hud = src
static_inventory += action_intent
//Health
healths = new /obj/screen/healths/robot()
+ healths.hud = src
infodisplay += healths
//Installed Module
@@ -185,17 +197,20 @@
//Store
module_store_icon = new /obj/screen/robot/store()
+ module_store_icon.hud = src
module_store_icon.screen_loc = ui_borg_store
pull_icon = new /obj/screen/pull()
pull_icon.icon = 'icons/mob/screen_cyborg.dmi'
- pull_icon.update_icon(mymob)
+ pull_icon.hud = src
+ pull_icon.update_icon()
pull_icon.screen_loc = ui_borg_pull
hotkeybuttons += pull_icon
zone_select = new /obj/screen/zone_sel/robot()
- zone_select.update_icon(mymob)
+ zone_select.hud = src
+ zone_select.update_icon()
static_inventory += zone_select
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 86b4b0c024..dec743d35c 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -110,21 +110,21 @@
// At this point in client Click() code we have passed the 1/10 sec check and little else
// We don't even know if it's a middle click
if(world.time <= usr.next_move)
- return 1
+ return TRUE
if(usr.incapacitated())
- return 1
+ return TRUE
if(ismecha(usr.loc)) // stops inventory actions in a mech
- return 1
+ return TRUE
- if(hud && hud.mymob && slot_id)
+ if(hud?.mymob && slot_id)
var/obj/item/inv_item = hud.mymob.get_item_by_slot(slot_id)
if(inv_item)
return inv_item.Click(location, control, params)
if(usr.attack_ui(slot_id))
usr.update_inv_hands()
- return 1
+ return TRUE
/obj/screen/inventory/MouseEntered()
..()
@@ -135,35 +135,37 @@
cut_overlay(object_overlays)
object_overlays.Cut()
-/obj/screen/inventory/update_icon()
+/obj/screen/inventory/update_icon_state()
if(!icon_empty)
icon_empty = icon_state
- if(hud && hud.mymob && slot_id && icon_full)
+ if(hud?.mymob && slot_id && icon_full)
if(hud.mymob.get_item_by_slot(slot_id))
icon_state = icon_full
else
icon_state = icon_empty
/obj/screen/inventory/proc/add_overlays()
- var/mob/user = hud.mymob
+ var/mob/user = hud?.mymob
- if(hud && user && slot_id)
- var/obj/item/holding = user.get_active_held_item()
+ if(!user || !slot_id)
+ return
- if(!holding || user.get_item_by_slot(slot_id))
- return
+ var/obj/item/holding = user.get_active_held_item()
- var/image/item_overlay = image(holding)
- item_overlay.alpha = 92
+ if(!holding || user.get_item_by_slot(slot_id))
+ return
- if(!user.can_equip(holding, slot_id, TRUE))
- item_overlay.color = "#FF0000"
- else
- item_overlay.color = "#00ff00"
+ var/image/item_overlay = image(holding)
+ item_overlay.alpha = 92
- object_overlays += item_overlay
- add_overlay(object_overlays)
+ if(!user.can_equip(holding, slot_id, TRUE))
+ item_overlay.color = "#FF0000"
+ else
+ item_overlay.color = "#00ff00"
+
+ object_overlays += item_overlay
+ add_overlay(object_overlays)
/obj/screen/inventory/hand
var/mutable_appearance/handcuff_overlay
@@ -171,45 +173,50 @@
var/held_index = 0
/obj/screen/inventory/hand/update_icon()
- ..()
+ . = ..()
if(!handcuff_overlay)
var/state = (!(held_index % 2)) ? "markus" : "gabrielle"
handcuff_overlay = mutable_appearance('icons/mob/screen_gen.dmi', state)
- cut_overlays()
+ cut_overlay(list(handcuff_overlay, blocked_overlay, "hand_active"))
- if(hud && hud.mymob)
- if(iscarbon(hud.mymob))
- var/mob/living/carbon/C = hud.mymob
- if(C.handcuffed)
- add_overlay(handcuff_overlay)
+ if(!hud?.mymob)
+ return
- if(held_index)
- if(!C.has_hand_for_held_index(held_index))
- add_overlay(blocked_overlay)
+ if(iscarbon(hud.mymob))
+ var/mob/living/carbon/C = hud.mymob
+ if(C.handcuffed)
+ add_overlay(handcuff_overlay)
- if(held_index == hud.mymob.active_hand_index)
- add_overlay("hand_active")
+ if(held_index)
+ if(!C.has_hand_for_held_index(held_index))
+ add_overlay(blocked_overlay)
+
+ if(held_index == hud.mymob.active_hand_index)
+ add_overlay("hand_active")
/obj/screen/inventory/hand/Click(location, control, params)
// At this point in client Click() code we have passed the 1/10 sec check and little else
// We don't even know if it's a middle click
- if(world.time <= usr.next_move)
- return 1
- if(usr.incapacitated() || isobserver(usr))
- return 1
- if (ismecha(usr.loc)) // stops inventory actions in a mech
- return 1
+ var/mob/user = hud?.mymob
+ if(usr != user)
+ return TRUE
+ if(world.time <= user.next_move)
+ return TRUE
+ if(user.incapacitated())
+ return TRUE
+ if (ismecha(user.loc)) // stops inventory actions in a mech
+ return TRUE
- if(hud.mymob.active_hand_index == held_index)
- var/obj/item/I = hud.mymob.get_active_held_item()
+ if(user.active_hand_index == held_index)
+ var/obj/item/I = user.get_active_held_item()
if(I)
I.Click(location, control, params)
else
- hud.mymob.swap_hand(held_index)
- return 1
+ user.swap_hand(held_index)
+ return TRUE
/obj/screen/close
name = "close"
@@ -343,12 +350,8 @@
/obj/screen/mov_intent/Click()
toggle(usr)
-/obj/screen/mov_intent/update_icon(mob/user)
- if(!user && hud)
- user = hud.mymob
- if(!user)
- return
- switch(user.m_intent)
+/obj/screen/mov_intent/update_icon_state()
+ switch(hud?.mymob?.m_intent)
if(MOVE_INTENT_WALK)
icon_state = "walking"
if(MOVE_INTENT_RUN)
@@ -369,10 +372,8 @@
return
usr.stop_pulling()
-/obj/screen/pull/update_icon(mob/mymob)
- if(!mymob)
- return
- if(mymob.pulling)
+/obj/screen/pull/update_icon_state()
+ if(hud?.mymob?.pulling)
icon_state = "pull"
else
icon_state = "pull0"
@@ -401,11 +402,11 @@
var/mob/living/L = usr
L.lay_down()
-/obj/screen/rest/update_icon(mob/mymob)
- if(!isliving(mymob))
+/obj/screen/rest/update_icon_state()
+ var/mob/living/user = hud?.mymob
+ if(!istype(user))
return
- var/mob/living/L = mymob
- if(!L.resting)
+ if(!user.resting)
icon_state = "act_rest"
else
icon_state = "act_rest0"
@@ -448,7 +449,7 @@
name = "damage zone"
icon_state = "zone_sel"
screen_loc = ui_zonesel
- var/selecting = BODY_ZONE_CHEST
+ var/overlay_icon = 'icons/mob/screen_gen.dmi'
var/static/list/hover_overlays_cache = list()
var/hovering
@@ -541,26 +542,24 @@
return BODY_ZONE_HEAD
/obj/screen/zone_sel/proc/set_selected_zone(choice, mob/user)
- if(isobserver(user))
+ if(user != hud?.mymob)
return
- if(choice != selecting)
- selecting = choice
- update_icon(usr)
- return 1
+ if(choice != hud.mymob.zone_selected)
+ hud.mymob.zone_selected = choice
+ update_icon()
-/obj/screen/zone_sel/update_icon(mob/user)
- cut_overlays()
- add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[selecting]"))
- user.zone_selected = selecting
+ return TRUE
+
+/obj/screen/zone_sel/update_overlays()
+ . = ..()
+ if(!hud?.mymob)
+ return
+ . += mutable_appearance(overlay_icon, "[hud.mymob.zone_selected]")
/obj/screen/zone_sel/alien
icon = 'icons/mob/screen_alien.dmi'
-
-/obj/screen/zone_sel/alien/update_icon(mob/user)
- cut_overlays()
- add_overlay(mutable_appearance('icons/mob/screen_alien.dmi', "[selecting]"))
- user.zone_selected = selecting
+ overlay_icon = 'icons/mob/screen_alien.dmi'
/obj/screen/zone_sel/robot
icon = 'icons/mob/screen_cyborg.dmi'
diff --git a/code/_onclick/hud/swarmer.dm b/code/_onclick/hud/swarmer.dm
index 6cf4c73e44..80cc01c3b3 100644
--- a/code/_onclick/hud/swarmer.dm
+++ b/code/_onclick/hud/swarmer.dm
@@ -69,24 +69,30 @@
using = new /obj/screen/swarmer/FabricateTrap()
using.screen_loc = ui_hand_position(2)
+ using.hud = src
static_inventory += using
using = new /obj/screen/swarmer/Barricade()
using.screen_loc = ui_hand_position(1)
+ using.hud = src
static_inventory += using
using = new /obj/screen/swarmer/Replicate()
using.screen_loc = ui_zonesel
+ using.hud = src
static_inventory += using
using = new /obj/screen/swarmer/RepairSelf()
using.screen_loc = ui_storage1
+ using.hud = src
static_inventory += using
using = new /obj/screen/swarmer/ToggleLight()
using.screen_loc = ui_back
+ using.hud = src
static_inventory += using
using = new /obj/screen/swarmer/ContactSwarmers()
using.screen_loc = ui_inventory
+ using.hud = src
static_inventory += using
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index f082f2ad16..e6b2a63673 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -98,17 +98,19 @@
take_damage(I.force, I.damtype, "melee", 1)
/mob/living/attacked_by(obj/item/I, mob/living/user)
+ //CIT CHANGES START HERE - combatmode and resting checks
+ var/totitemdamage = I.force
+ if(iscarbon(user))
+ var/mob/living/carbon/tempcarb = user
+ if(!tempcarb.combatmode)
+ totitemdamage *= 0.5
+ if(user.resting)
+ totitemdamage *= 0.5
+ //CIT CHANGES END HERE
+ if(user != src && check_shields(I, totitemdamage, "the [I.name]", MELEE_ATTACK, I.armour_penetration))
+ return FALSE
send_item_attack_message(I, user)
if(I.force)
- //CIT CHANGES START HERE - combatmode and resting checks
- var/totitemdamage = I.force
- if(iscarbon(user))
- var/mob/living/carbon/tempcarb = user
- if(!tempcarb.combatmode)
- totitemdamage *= 0.5
- if(user.resting)
- totitemdamage *= 0.5
- //CIT CHANGES END HERE
apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage
if(I.damtype == BRUTE && !HAS_TRAIT(src, TRAIT_NOMARROW))
if(prob(33))
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 30e6883d24..6ee7d51091 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -91,6 +91,8 @@
var/obj/item/clothing/gloves/G = gloves
if(istype(G) && G.Touch(A,0)) // for magic gloves
return
+ if (istype(glasses) && glasses.ranged_attack(src,A,mouseparams))
+ return
for(var/datum/mutation/human/HM in dna.mutations)
HM.on_ranged_attack(src, A, mouseparams)
diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm
index be9f7e116b..3f07eed029 100644
--- a/code/controllers/configuration/config_entry.dm
+++ b/code/controllers/configuration/config_entry.dm
@@ -151,6 +151,7 @@
var/key_mode
var/value_mode
var/splitter = " "
+ var/lowercase = TRUE
/datum/config_entry/keyed_list/New()
. = ..()
@@ -167,7 +168,9 @@
var/key_value = null
if(key_pos || value_mode == VALUE_MODE_FLAG)
- key_name = lowertext(copytext(str_val, 1, key_pos))
+ key_name = copytext(str_val, 1, key_pos)
+ if(lowercase)
+ key_name = lowertext(key_name)
key_value = copytext(str_val, key_pos + 1)
var/new_key
var/new_value
diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm
index a5d27819b8..14954524fa 100644
--- a/code/controllers/configuration/configuration.dm
+++ b/code/controllers/configuration/configuration.dm
@@ -14,6 +14,7 @@
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
@@ -37,6 +38,7 @@
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)
@@ -227,6 +229,7 @@
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)
@@ -317,6 +320,14 @@
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 21d9d4e093..61b5788ef8 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -376,6 +376,12 @@
/datum/config_entry/flag/disable_stambuffer
+/datum/config_entry/keyed_list/box_random_engine
+ key_mode = KEY_MODE_TEXT
+ value_mode = VALUE_MODE_FLAG
+ lowercase = FALSE
+ splitter = "-"
+
/datum/config_entry/number/auto_transfer_delay
config_entry_value = 72000
min_val = 0
diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm
index 5bcc911005..2a59558bcd 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
- 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)")
+ 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).")
for(var/turf/T in active_turfs)
GLOB.active_turfs_startlist += T
@@ -382,6 +382,9 @@ SUBSYSTEM_DEF(air)
CHECK_TICK
/datum/controller/subsystem/air/proc/setup_template_machinery(list/atmos_machines)
+ if(!initialized)
+ return
+
for(var/A in atmos_machines)
var/obj/machinery/atmospherics/AM = A
AM.atmosinit()
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 29762338fb..8c8ad2d337 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -91,6 +91,7 @@ SUBSYSTEM_DEF(mapping)
var/list/space_ruins = levels_by_trait(ZTRAIT_SPACE_RUINS)
if (space_ruins.len)
seedRuins(space_ruins, CONFIG_GET(number/space_budget), /area/space, space_ruins_templates)
+ SSmapping.seedStation()
loading_ruins = FALSE
#endif
repopulate_sorted_areas()
@@ -363,6 +364,8 @@ GLOBAL_LIST_EMPTY(the_station_areas)
lava_ruins_templates[R.name] = R
else if(istype(R, /datum/map_template/ruin/space))
space_ruins_templates[R.name] = R
+ else if(istype(R, /datum/map_template/ruin/station))
+ station_room_templates[R.name] = R
/datum/controller/subsystem/mapping/proc/preloadShuttleTemplates()
var/list/unbuyable = generateMapList("[global.config.directory]/unbuyableshuttles.txt")
@@ -524,4 +527,15 @@ GLOBAL_LIST_EMPTY(the_station_areas)
if(!isolated_ruins_z)
isolated_ruins_z = add_new_zlevel("Isolated Ruins/Reserved", list(ZTRAIT_RESERVED = TRUE, ZTRAIT_ISOLATED_RUINS = TRUE))
initialize_reserved_level(isolated_ruins_z.z_value)
- return isolated_ruins_z.z_value
\ No newline at end of file
+ return isolated_ruins_z.z_value
+
+ // Station Ruins
+/datum/controller/subsystem/mapping
+ var/list/station_room_templates = list()
+
+/datum/controller/subsystem/mapping/proc/seedStation()
+ for(var/V in GLOB.stationroom_landmarks)
+ var/obj/effect/landmark/stationroom/LM = V
+ LM.load()
+ if(GLOB.stationroom_landmarks.len)
+ seedStation() //I'm sure we can trust everyone not to insert a 1x1 rooms which loads a landmark which loads a landmark which loads a la...
diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm
index 8329493818..e43c8f21a2 100644
--- a/code/controllers/subsystem/persistence.dm
+++ b/code/controllers/subsystem/persistence.dm
@@ -13,13 +13,14 @@ 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_threat_levels = list(1,1,1)
+ var/list/saved_storytellers = list("foo","bar","baz","foo again","bar again")
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
@@ -29,9 +30,12 @@ SUBSYSTEM_DEF(persistence)
LoadChiselMessages()
LoadTrophies()
LoadRecentModes()
- LoadRecentThreats()
+ LoadRecentStorytellers()
+ LoadRecentRulesets()
LoadRecentMaps()
LoadPhotoPersistence()
+ for(var/client/C in GLOB.clients)
+ LoadSavedVote(C.ckey)
if(CONFIG_GET(flag/use_antag_rep))
LoadAntagReputation()
LoadRandomizedRecipes()
@@ -169,14 +173,23 @@ SUBSYSTEM_DEF(persistence)
return
saved_modes = json["data"]
-/datum/controller/subsystem/persistence/proc/LoadRecentThreats()
- var/json_file = file("data/RecentThreatLevels.json")
+/datum/controller/subsystem/persistence/proc/LoadRecentRulesets()
+ var/json_file = file("data/RecentRulesets.json")
if(!fexists(json_file))
return
var/list/json = json_decode(file2text(json_file))
if(!json)
return
- saved_threat_levels = json["data"]
+ 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"]
/datum/controller/subsystem/persistence/proc/LoadRecentMaps()
var/json_file = file("data/RecentMaps.json")
@@ -197,6 +210,15 @@ 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
@@ -230,7 +252,7 @@ SUBSYSTEM_DEF(persistence)
CollectRoundtype()
if(istype(SSticker.mode, /datum/game_mode/dynamic))
var/datum/game_mode/dynamic/mode = SSticker.mode
- CollectThreatLevel(mode)
+ CollectStoryteller(mode)
CollectRulesets(mode)
RecordMaps()
SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION.
@@ -388,13 +410,16 @@ SUBSYSTEM_DEF(persistence)
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
-/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")
+/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")
var/list/file_data = list()
- file_data["data"] = saved_threat_levels
+ file_data["data"] = saved_storytellers
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
@@ -402,8 +427,9 @@ 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/datum/dynamic_ruleset/ruleset in mode.executed_rules)
- saved_dynamic_rules[1] += ruleset.config_tag
+ for(var/r in mode.executed_rules)
+ var/datum/dynamic_ruleset/rule = r
+ saved_dynamic_rules[1] += rule.config_tag
var/json_file = file("data/RecentRulesets.json")
var/list/file_data = list()
file_data["data"] = saved_dynamic_rules
@@ -473,3 +499,11 @@ 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/nanites.dm b/code/controllers/subsystem/processing/nanites.dm
index 69bd5781de..5b53f9f884 100644
--- a/code/controllers/subsystem/processing/nanites.dm
+++ b/code/controllers/subsystem/processing/nanites.dm
@@ -6,6 +6,7 @@ PROCESSING_SUBSYSTEM_DEF(nanites)
var/list/datum/nanite_cloud_backup/cloud_backups = list()
var/list/mob/living/nanite_monitored_mobs = list()
var/list/datum/nanite_program/relay/nanite_relays = list()
+ var/neural_network_count = 0
/datum/controller/subsystem/processing/nanites/proc/check_hardware(datum/nanite_cloud_backup/backup)
if(QDELETED(backup.storage) || (backup.storage.stat & (NOPOWER|BROKEN)))
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 890725fbb1..45c8e3c8fe 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -401,6 +401,9 @@ SUBSYSTEM_DEF(ticker)
qdel(player)
living.notransform = TRUE
if(living.client)
+ if (living.client.prefs && living.client.prefs.auto_ooc)
+ if (living.client.prefs.chat_toggles & CHAT_OOC)
+ living.client.prefs.chat_toggles ^= CHAT_OOC
var/obj/screen/splash/S = new(living.client, TRUE)
S.Fade(TRUE)
livings += living
@@ -480,7 +483,10 @@ SUBSYSTEM_DEF(ticker)
SSticker.timeLeft = 900
SSticker.modevoted = TRUE
var/dynamic = CONFIG_GET(flag/dynamic_voting)
- SSvote.initiate_vote(dynamic ? "dynamic" : "roundtype","server",TRUE)
+ 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)
/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 dee10e4998..573c89a5af 100644
--- a/code/controllers/subsystem/vote.dm
+++ b/code/controllers/subsystem/vote.dm
@@ -1,3 +1,5 @@
+#define VOTE_COOLDOWN 10
+
SUBSYSTEM_DEF(vote)
name = "Vote"
wait = 10
@@ -8,13 +10,17 @@ SUBSYSTEM_DEF(vote)
var/initiator = null
var/started_time = null
- var/time_remaining = 0
+ var/end_time = 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
@@ -22,28 +28,30 @@ SUBSYSTEM_DEF(vote)
/datum/controller/subsystem/vote/fire() //called by master_controller
if(mode)
- time_remaining = round((started_time + CONFIG_GET(number/vote_period) - world.time)/10)
-
- if(time_remaining < 0)
+ if(end_time < world.time)
result()
+ SSpersistence.SaveSavedVotes()
for(var/client/C in voting)
C << browse(null, "window=vote;can_close=0")
reset()
- else
+ else if(next_pop < world.time)
var/datum/browser/client_popup
for(var/client/C in voting)
- client_popup = new(C, "vote", "Voting Panel")
+ client_popup = new(C, "vote", "Voting Panel", nwidth=600,nheight=700)
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
- time_remaining = 0
+ end_time = 0
mode = null
question = null
choices.Cut()
+ choice_descs.Cut()
voted.Cut()
voting.Cut()
obfuscated = FALSE //CIT CHANGE - obfuscated votes
@@ -84,17 +92,114 @@ 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/list/winners = get_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/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)
@@ -116,17 +221,25 @@ 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
@@ -152,33 +265,15 @@ 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.")
- 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(. == "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
if("map")
var/datum/map_config/VM = config.maplist[.]
message_admins("The map has been voted for and will change to: [VM.map_name]")
@@ -196,27 +291,58 @@ 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)
+/datum/controller/subsystem/vote/proc/submit_vote(vote, score = 0)
if(mode)
if(CONFIG_GET(flag/no_dead_vote) && usr.stat == DEAD && !usr.client.holder)
return 0
- 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
+ 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
return 0
-/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, hideresults)//CIT CHANGE - adds hideresults argument to votes to allow for obfuscated votes
+/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
if(!mode)
if(started_time)
var/next_allowed_time = (started_time + CONFIG_GET(number/vote_delay))
@@ -257,11 +383,17 @@ SUBSYSTEM_DEF(vote)
if("roundtype") //CIT CHANGE - adds the roundstart secret/extended vote
choices.Add("secret", "extended")
if("dynamic")
- 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)
+ 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.")
if("custom")
question = stripped_input(usr,"What is the vote for?")
if(!question)
@@ -280,9 +412,11 @@ SUBSYSTEM_DEF(vote)
if(mode == "custom")
text += "\n[question]"
log_vote(text)
- var/vp = CONFIG_GET(number/vote_period)
+ var/vp = vote_time
+ if(vp == -1)
+ 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.")
- time_remaining = round(vp/10)
+ end_time = started_time+vp
for(var/c in GLOB.clients)
SEND_SOUND(c, sound('sound/misc/server-ready.ogg'))
var/client/C = c
@@ -292,6 +426,11 @@ 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
@@ -311,14 +450,71 @@ SUBSYSTEM_DEF(vote)
. += "Vote: '[question]'
"
else
. += "Vote: [capitalize(mode)]
"
- . += "Time Left: [time_remaining] s
"
- for(var/i=1,i<=choices.len,i++)
- var/votes = choices[choices[i]]
- var/ivotedforthis = ((C.ckey in voted) && (voted[C.ckey] == i) ? TRUE : FALSE)
- if(!votes)
- votes = 0
- . += "- [ivotedforthis ? "" : ""][choices[i]] ([obfuscated ? (admin ? "??? ([votes])" : "???") : votes] votes)[ivotedforthis ? "" : ""]
" // CIT CHANGE - adds obfuscated votes
- . += "
"
+ 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)]
"
+ switch(vote_system)
+ if(PLURALITY_VOTING, APPROVAL_VOTING)
+ for(var/i=1,i<=choices.len,i++)
+ var/votes = choices[choices[i]]
+ var/ivotedforthis = FALSE
+ switch(vote_system)
+ if(PLURALITY_VOTING)
+ ivotedforthis = ((C.ckey in voted) && (voted[C.ckey] == i))
+ if(APPROVAL_VOTING)
+ ivotedforthis = ((C.ckey in voted) && (i in voted[C.ckey]))
+ if(!votes)
+ votes = 0
+ . += "- [ivotedforthis ? "" : ""][choices[i]] ([obfuscated ? (admin ? "??? ([votes])" : "???") : votes] votes)[ivotedforthis ? "" : ""]
" // CIT CHANGE - adds obfuscated votes
+ if(choice_descs.len >= i)
+ . += "- [choice_descs[i]]
"
+ . += "
"
+ 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)"
if(admin)
. += "(Cancel Vote) "
else
@@ -376,8 +572,31 @@ 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
- submit_vote(round(text2num(href_list["vote"])))
+ 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"])))
usr.vote()
/datum/controller/subsystem/vote/proc/remove_action_buttons()
@@ -392,7 +611,7 @@ SUBSYSTEM_DEF(vote)
set category = "OOC"
set name = "Vote"
- var/datum/browser/popup = new(src, "vote", "Voting Panel")
+ var/datum/browser/popup = new(src, "vote", "Voting Panel",nwidth=600,nheight=700)
popup.set_window_options("can_close=0")
popup.set_content(SSvote.interface(client))
popup.open(0)
@@ -419,6 +638,3 @@ 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/components/butchering.dm b/code/datums/components/butchering.dm
index d5af47ea1f..06169f64bf 100644
--- a/code/datums/components/butchering.dm
+++ b/code/datums/components/butchering.dm
@@ -32,7 +32,7 @@
if(ishuman(M) && source.force && source.get_sharpness())
var/mob/living/carbon/human/H = M
- if((H.health <= H.crit_threshold || (user.pulling == H && user.grab_state >= GRAB_NECK) || H.IsSleeping()) && user.zone_selected == BODY_ZONE_HEAD) // Only sleeping, neck grabbed, or crit, can be sliced.
+ if((H.health <= H.crit_threshold || (user.pulling == H && user.grab_state >= GRAB_NECK) || H.IsSleeping()) && user.zone_selected == BODY_ZONE_PRECISE_MOUTH) // Only sleeping, neck grabbed, or crit, can be sliced.
if(H.has_status_effect(/datum/status_effect/neck_slice))
user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", 1, \
"Their neck has already been already cut, you can't make the bleeding any worse!")
@@ -120,4 +120,4 @@
if(eater.safety_mode || (eater.stat & (BROKEN|NOPOWER))) //I'm so sorry.
return
if(L.stat == DEAD && (L.butcher_results || L.guaranteed_butcher_results))
- Butcher(parent, L)
\ No newline at end of file
+ Butcher(parent, L)
diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm
index 0ef13b514b..89c4deb2e9 100644
--- a/code/datums/components/nanites.dm
+++ b/code/datums/components/nanites.dm
@@ -11,8 +11,9 @@
var/list/datum/nanite_program/programs = list()
var/max_programs = NANITE_PROGRAM_LIMIT
- var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans, and does not display the program list on nanite scans
-
+ var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans
+ var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners
+
/datum/component/nanites/Initialize(amount = 100, cloud = 0)
if(!isliving(parent) && !istype(parent, /datum/nanite_cloud_backup))
return COMPONENT_INCOMPATIBLE
@@ -252,8 +253,8 @@
to_chat(user, "Cloud ID: [cloud_id ? cloud_id : "Disabled"]")
to_chat(user, "================")
to_chat(user, "Program List:")
- if(stealth)
- to_chat(user, "%#$ENCRYPTED&^@")
+ if(!diagnostics)
+ to_chat(user, "Diagnostics Disabled")
else
for(var/X in programs)
var/datum/nanite_program/NP = X
diff --git a/code/datums/martial.dm b/code/datums/martial.dm
index 32850c69df..c8caa853c3 100644
--- a/code/datums/martial.dm
+++ b/code/datums/martial.dm
@@ -8,6 +8,8 @@
var/deflection_chance = 0 //Chance to deflect projectiles
var/reroute_deflection = FALSE //Delete the bullet, or actually deflect it in some direction?
var/block_chance = 0 //Chance to block melee attacks using items while on throw mode.
+ var/dodge_chance = 0
+ var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not
var/help_verb
var/pacifism_check = TRUE //are the martial arts combos/attacks unable to be used by pacifist.
var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts
diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm
index 09a493a670..4ec16ac18c 100644
--- a/code/datums/martial/cqc.dm
+++ b/code/datums/martial/cqc.dm
@@ -10,7 +10,6 @@
help_verb = /mob/living/carbon/human/proc/CQC_help
block_chance = 75
var/old_grab_state = null
- var/restraining = FALSE
/datum/martial_art/cqc/reset_streak(mob/living/carbon/human/new_target)
. = ..()
diff --git a/code/datums/martial/rising_bass.dm b/code/datums/martial/rising_bass.dm
new file mode 100644
index 0000000000..9e00c90a92
--- /dev/null
+++ b/code/datums/martial/rising_bass.dm
@@ -0,0 +1,158 @@
+#define SIDE_KICK_COMBO "DH"
+#define SHOULDER_FLIP_COMBO "GHDGHH"
+#define REPULSE_PUNCH_COMBO "GHGH"
+#define FOOT_SMASH_COMBO "HH"
+#define DEFT_SWITCH_COMBO "GDD"
+
+/datum/martial_art/the_rising_bass
+ name = "The Rising Bass"
+ id = MARTIALART_RISINGBASS
+ dodge_chance = 100
+ allow_temp_override = FALSE
+ help_verb = /mob/living/carbon/human/proc/rising_bass_help
+
+/datum/martial_art/the_rising_bass/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(findtext(streak,SIDE_KICK_COMBO))
+ streak = ""
+ sideKick(A,D)
+ return 1
+ if(findtext(streak,SHOULDER_FLIP_COMBO))
+ streak = ""
+ shoulderFlip(A,D)
+ return 1
+ if(findtext(streak,REPULSE_PUNCH_COMBO))
+ streak = ""
+ repulsePunch(A,D)
+ return 1
+ if(findtext(streak,FOOT_SMASH_COMBO))
+ streak = ""
+ footSmash(A,D)
+ return 1
+ if(findtext(streak,DEFT_SWITCH_COMBO))
+ streak = ""
+ deftSwitch(A,D)
+ return 1
+ return 0
+
+
+/datum/martial_art/the_rising_bass/proc/sideKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D.IsKnockdown() || D.lying == 0)
+ var/turf/H = get_step(D, A.dir & (NORTH | SOUTH) ? pick(EAST, WEST) : pick(NORTH, SOUTH))
+ A.do_attack_animation(D, ATTACK_EFFECT_KICK)
+ D.visible_message("[A] kicks [D] in the side, sliding them over!", \
+ "[A] kicks you in the side, forcing you to step away!")
+ playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+ D.apply_damage(5, BRUTE, BODY_ZONE_CHEST)
+ D.Knockdown(60)
+ var/L = H
+ for(var/obj/i in H.contents)
+ if(!istype(i,/mob) && i.density == 1)
+ L = D.loc
+ D.forceMove(L)
+ log_combat(A, D, "side kicked (Rising Bass)")
+ return 1
+ return basic_hit(A,D)
+
+/datum/martial_art/the_rising_bass/proc/shoulderFlip(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D.IsKnockdown() || !D.lying)
+ var/turf/H = get_step(A, get_dir(D,A))
+ var/L = H
+ for(var/obj/i in H.contents)
+ if(!istype(i,/mob) && i.density == 1)//(i.anchored == 1 && i.density == 1) || istype(i,/obj/structure) || istype(i,/turf/closed)
+ L = A.loc
+ A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
+ D.visible_message("[A] flips [D] over their shoulder, slamming them into the ground!", \
+ "[A] flips you over their shoulder, slamming you into the ground!")
+ playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+ D.emote("scream")
+ D.apply_damage(10, BRUTE, BODY_ZONE_CHEST)
+ D.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
+ D.Sleeping(60)
+ D.Knockdown(300)
+ D.forceMove(L)
+ log_combat(A, D, "shoulder flipped (Rising Bass)")
+ return 1
+ return basic_hit(A,D)
+
+/datum/martial_art/the_rising_bass/proc/repulsePunch(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D.IsKnockdown() || !D.lying)
+ A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
+ D.visible_message("[A] smashes [D] in the chest, throwing them away!", \
+ "[A] smashes you in the chest, repelling you away!")
+ playsound(get_turf(A), 'sound/weapons/punch1.ogg', 50, 1, -1)
+ var/atom/F = get_edge_target_turf(D, get_dir(A, get_step_away(D, A)))
+ D.throw_at(F, 10, 1)
+ D.apply_damage(10, BRUTE, BODY_ZONE_CHEST)
+ D.Knockdown(90)
+ log_combat(A, D, "repulse punched (Rising Bass)")
+ return 1
+ return basic_hit(A,D)
+
+/datum/martial_art/the_rising_bass/proc/footSmash(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D.IsKnockdown() || !D.lying)
+ A.do_attack_animation(D, ATTACK_EFFECT_KICK)
+ D.visible_message("[A] smashes their foot down on [D]'s foot!", \
+ "[A] smashes your foot!")
+ playsound(get_turf(A), 'sound/weapons/punch1.ogg', 50, 1, -1)
+ D.apply_damage(5, BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
+ D.dropItemToGround(D.get_active_held_item())
+ log_combat(A, D, "foot smashed (Rising Bass)")
+ return 1
+ return basic_hit(A,D)
+
+/datum/martial_art/the_rising_bass/proc/deftSwitch(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D.IsKnockdown() || !D.lying)
+ if (D.get_active_held_item())
+ var/obj/item/G = D.get_active_held_item()
+ if (G && !(G.item_flags & (ABSTRACT|DROPDEL)) && D.temporarilyRemoveItemFromInventory(G))
+ A.put_in_hands(G)
+ D.visible_message("[A] slaps [D]'s hands, taking [G] from them!", \
+ "[A] slaps you, taking [G] from you!")
+ log_combat(A, D, "deft switched (Rising Bass)")
+ return 1
+ else
+ to_chat(A, "[G] can't be taken out of [D]'s hands!")
+ return 0
+
+/datum/martial_art/the_rising_bass/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ add_to_streak("D",D)
+ if(check_streak(A,D))
+ return 1
+ return ..()
+
+/datum/martial_art/the_rising_bass/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ add_to_streak("H",D)
+ if(check_streak(A,D))
+ return 1
+ return ..()
+
+/datum/martial_art/the_rising_bass/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ add_to_streak("G",D)
+ if(check_streak(A,D))
+ return 1
+ return ..()
+
+/mob/living/carbon/human/proc/rising_bass_help()
+ set name = "Recall Teachings"
+ set desc = "Remember the martial techniques of the Rising Bass clan."
+ set category = "Rising Bass"
+
+ to_chat(usr, "You retreat inward and recall the teachings of the Rising Bass...")
+
+ to_chat(usr, "Side Kick: Disarm Harm. Forces opponent to step to the side.")
+ to_chat(usr, "Shoulder Flip: Grab Harm Disarm Grab Harm Harm. Flips opponent over your shoulder and stuns.")
+ to_chat(usr, "Repulse Punch: Grab Harm Grab Harm. Slams the opponent far away from you.")
+ to_chat(usr, "Foot Smash: Harm Harm. Stuns opponent, minor damage.")
+ to_chat(usr, "Deft Switch: Grab Disarm Disarm. Switches the opponent's held item for your own. Most useful with nothing in your hand.")
+
+/datum/martial_art/the_rising_bass/teach(mob/living/carbon/human/H, make_temporary = FALSE)
+ . = ..()
+ if(!.)
+ return
+ ADD_TRAIT(H, TRAIT_NOGUNS, RISING_BASS_TRAIT)
+ ADD_TRAIT(H, TRAIT_AUTO_CATCH_ITEM, RISING_BASS_TRAIT)
+
+/datum/martial_art/the_rising_bass/on_remove(mob/living/carbon/human/H)
+ . = ..()
+ REMOVE_TRAIT(H, TRAIT_NOGUNS, RISING_BASS_TRAIT)
+ REMOVE_TRAIT(H, TRAIT_AUTO_CATCH_ITEM, RISING_BASS_TRAIT)
\ No newline at end of file
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index bb652208ee..85f8a4a101 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -185,9 +185,8 @@
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
block_chance = 50
-/obj/item/twohanded/bostaff/update_icon()
+/obj/item/twohanded/bostaff/update_icon_state()
icon_state = "bostaff[wielded]"
- return
/obj/item/twohanded/bostaff/attack(mob/target, mob/living/user)
add_fingerprint(user)
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index d1b4e51a7d..a0aa729a8d 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -135,6 +135,9 @@
if(L.client && L.client.prefs)
L.canbearoused = L.client.prefs.arousable //Technically this should make taking over a character mean the body gain the new minds setting...
L.update_arousal_hud() //Removes the old icon
+ if (L.client.prefs.auto_ooc)
+ if (L.client.prefs.chat_toggles & CHAT_OOC)
+ L.client.prefs.chat_toggles ^= CHAT_OOC
SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character)
diff --git a/code/datums/radiation_wave.dm b/code/datums/radiation_wave.dm
index 8555e4cf3f..4795f8da60 100644
--- a/code/datums/radiation_wave.dm
+++ b/code/datums/radiation_wave.dm
@@ -3,6 +3,7 @@
var/turf/master_turf //The center of the wave
var/steps=0 //How far we've moved
var/intensity //How strong it was originaly
+ var/remaining_contam //How much contaminated material it still has
var/range_modifier //Higher than 1 makes it drop off faster, 0.5 makes it drop off half etc
var/move_dir //The direction of movement
var/list/__dirs //The directions to the side of the wave, stored for easy looping
@@ -18,6 +19,7 @@
__dirs+=turn(dir, -90)
intensity = _intensity
+ remaining_contam = intensity
range_modifier = _range_modifier
can_contaminate = _can_contaminate
@@ -46,8 +48,9 @@
qdel(src)
return
- radiate(atoms, FLOOR(strength, 1))
-
+ if(radiate(atoms, FLOOR(min(strength,remaining_contam), 1)))
+ //oof ow ouch
+ remaining_contam = max(0,remaining_contam-((min(strength,remaining_contam)-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT))
check_obstructions(atoms) // reduce our overall strength if there are radiation insulators
/datum/radiation_wave/proc/get_rad_atoms()
@@ -89,7 +92,8 @@
intensity *= (1-((1-thing.rad_insulation)/width))
/datum/radiation_wave/proc/radiate(list/atoms, strength)
- var/contamination_chance = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_CHANCE_COEFFICIENT * min(1, 1/(steps*range_modifier))
+ var/can_contam = strength >= RAD_MINIMUM_CONTAMINATION
+ var/list/contam_atoms = list()
for(var/k in 1 to atoms.len)
var/atom/thing = atoms[k]
if(!thing)
@@ -109,8 +113,14 @@
))
if(!can_contaminate || blacklisted[thing.type])
continue
- if(prob(contamination_chance)) // Only stronk rads get to have little baby rads
- if(CHECK_BITFIELD(thing.rad_flags, RAD_NO_CONTAMINATE) || SEND_SIGNAL(thing, COMSIG_ATOM_RAD_CONTAMINATING, strength) & COMPONENT_BLOCK_CONTAMINATION)
- continue
- var/rad_strength = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT
+ if(CHECK_BITFIELD(thing.rad_flags, RAD_NO_CONTAMINATE) || SEND_SIGNAL(thing, COMSIG_ATOM_RAD_CONTAMINATING, strength) & COMPONENT_BLOCK_CONTAMINATION)
+ continue
+ contam_atoms += thing
+ var/did_contam = 0
+ if(length(can_contam))
+ var/rad_strength = ((strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT)/contam_atoms.len
+ for(var/k in 1 to contam_atoms.len)
+ var/atom/thing = contam_atoms[k]
thing.AddComponent(/datum/component/radioactive, rad_strength, source)
+ did_contam = 1
+ return did_contam
diff --git a/code/datums/ruins/station.dm b/code/datums/ruins/station.dm
new file mode 100644
index 0000000000..156356788f
--- /dev/null
+++ b/code/datums/ruins/station.dm
@@ -0,0 +1,21 @@
+/datum/map_template/ruin/station
+ prefix = "_maps/RandomRuins/StationRuins/"
+ cost = 0
+
+// Boxstation
+ // Engine
+
+/datum/map_template/ruin/station/box/engine
+ id = "engine_sm"
+ suffix = "Box/Engine/engine_sm.dmm"
+ name = "Engine SM"
+
+/datum/map_template/ruin/station/box/engine/singulo
+ id = "engine_singulo"
+ suffix = "Box/Engine/engine_singulo.dmm"
+ name = "Engine Singulo"
+
+/datum/map_template/ruin/station/box/engine/tesla
+ id = "engine_tesla"
+ suffix = "Box/Engine/engine_tesla.dmm"
+ name = "Engine Tesla"
\ No newline at end of file
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index 5c4fc61827..5dab98d5ca 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -292,6 +292,7 @@
var/mob/living/carbon/C = owner
for(var/X in C.bodyparts)
var/obj/item/bodypart/BP = X
+ BP.max_damage *= 10
BP.brute_dam *= 10
BP.burn_dam *= 10
owner.toxloss *= 10
@@ -377,6 +378,7 @@
var/obj/item/bodypart/BP = X
BP.brute_dam *= 0.1
BP.burn_dam *= 0.1
+ BP.max_damage /= 10
owner.toxloss *= 0.1
owner.oxyloss *= 0.1
owner.cloneloss *= 0.1
diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm
index eae2db6a5f..911929896b 100644
--- a/code/datums/traits/neutral.dm
+++ b/code/datums/traits/neutral.dm
@@ -88,15 +88,6 @@
if(quirk_holder)
quirk_holder.remove_client_colour(/datum/client_colour/monochrome)
-/datum/quirk/crocrin_immunity
- name = "Crocin Immunity"
- desc = "You're one of the few people in the galaxy who are genetically immune to Crocin and Hexacrocin products and their addictive properties! However, you can still get brain damage from Hexacrocin addiction."
- mob_trait = TRAIT_CROCRIN_IMMUNE
- value = 0
- gain_text = "You feel more prudish."
- lose_text = "You don't feel as prudish as before."
- medical_record_text = "Patient exhibits a special gene that makes them immune to aphrodisiacs."
-
/datum/quirk/libido
name = "Nymphomania"
desc = "You're always feeling a bit in heat. Also, you get aroused faster than usual."
@@ -130,23 +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/pharmacokinesis //Prevents unwanted organ additions.
- name = "Acute hepatic pharmacokinesis"
- desc = "You've a rare genetic disorder that causes Incubus draft and Sucubus milk to be absorbed by your liver instead."
- value = 0
- mob_trait = TRAIT_PHARMA
- lose_text = "Your liver feels different."
- medical_record_text = "Non-invasive tests report that the patient's metabolism is indeed incompatible with a certain \"stimulants\"."
- var/active = FALSE
- var/power = 0
- var/cachedmoveCalc = 1
-
-/datum/quirk/assblastusa
- name = "Buns of Steel"
- desc = "You've never skipped ass day. With this trait, you are completely immune to all forms of ass slapping and anyone who tries to slap your rock hard ass usually gets a broken hand."
- mob_trait = TRAIT_ASSBLASTUSA
- value = 0
- medical_record_text = "Patient never skipped ass day."
- gain_text = "Your ass rivals those of golems."
- lose_text = "Your butt feels more squishy and slappable."
\ No newline at end of file
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index f5e285a5c2..f65ea98cab 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -326,8 +326,13 @@ GLOBAL_LIST_EMPTY(teleportlocs)
F.update_fire_light(fire)
for(var/obj/machinery/light/L in src)
L.update()
-
-/area/proc/update_icon()
+/**
+ * Update the icon state of the area
+ *
+ * Im not sure what the heck this does, somethign to do with weather being able to set icon
+ * states on areas?? where the heck would that even display?
+ */
+/area/update_icon_state()
var/weather_icon
for(var/V in SSweather.processing)
var/datum/weather/W = V
@@ -337,7 +342,10 @@ GLOBAL_LIST_EMPTY(teleportlocs)
if(!weather_icon)
icon_state = null
-/area/space/update_icon()
+/**
+ * Update the icon of the area (overridden to always be null for space
+ */
+/area/space/update_icon_state()
icon_state = null
/*
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 810fa6a6c9..4662f43dd4 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -24,6 +24,8 @@
var/list/add_overlays // a very temporary list of overlays to add
var/list/managed_vis_overlays //vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays
+ ///overlays managed by update_overlays() to prevent removing overlays that weren't added by the same proc
+ var/list/managed_overlays
var/datum/proximity_monitor/proximity_monitor
var/buckle_message_cooldown = 0
@@ -45,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()
- GLOB._preloader.load(src)
+ world.preloader_load(src)
if(datum_flags & DF_USE_TAG)
GenerateTag()
@@ -164,7 +166,7 @@
return FALSE
-/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
SEND_SIGNAL(src, COMSIG_ATOM_HULK_ATTACK, user)
if(does_attack_animation)
user.changeNext_move(CLICK_CD_MELEE)
@@ -310,6 +312,32 @@
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .)
+/// Updates the icon of the atom
+/atom/proc/update_icon()
+ // I expect we're going to need more return flags and options in this proc
+ var/signalOut = SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON)
+
+ if(!(signalOut & COMSIG_ATOM_NO_UPDATE_ICON_STATE))
+ update_icon_state()
+
+ if(!(signalOut & COMSIG_ATOM_NO_UPDATE_OVERLAYS))
+ var/list/new_overlays = update_overlays()
+ if(managed_overlays)
+ cut_overlay(managed_overlays)
+ managed_overlays = null
+ if(length(new_overlays))
+ managed_overlays = new_overlays
+ add_overlay(new_overlays)
+
+/// Updates the icon state of the atom
+/atom/proc/update_icon_state()
+
+/// Updates the overlays of the atom
+/atom/proc/update_overlays()
+ SHOULD_CALL_PARENT(1)
+ . = list()
+ SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_OVERLAYS, .)
+
/atom/proc/relaymove(mob/user)
if(buckle_message_cooldown <= world.time)
buckle_message_cooldown = world.time + 50
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 5d931828ca..e10299500e 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -519,12 +519,12 @@
step(src, AM.dir)
..()
-/atom/movable/proc/safe_throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY)
+/atom/movable/proc/safe_throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY, messy_throw = TRUE)
if((force < (move_resist * MOVE_FORCE_THROW_RATIO)) || (move_resist == INFINITY))
return
- return throw_at(target, range, speed, thrower, spin, diagonals_first, callback, force)
+ return throw_at(target, range, speed, thrower, spin, diagonals_first, callback, force, messy_throw)
-/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY) //If this returns FALSE then callback will not be called.
+/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY, messy_throw = TRUE) //If this returns FALSE then callback will not be called.
. = FALSE
if (!target || speed <= 0)
return
diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm
index 49a336e16a..11898701fa 100644
--- a/code/game/gamemodes/clown_ops/clown_ops.dm
+++ b/code/game/gamemodes/clown_ops/clown_ops.dm
@@ -57,7 +57,6 @@
..()
if(visualsOnly)
return
- H.dna.add_mutation(CLOWNMUT)
H.dna.add_mutation(SMILE)
/datum/outfit/syndicate/clownop/leader
diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm
index 075184046d..821c819664 100644
--- a/code/game/gamemodes/dynamic/dynamic.dm
+++ b/code/game/gamemodes/dynamic/dynamic.dm
@@ -1,14 +1,3 @@
-#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))
@@ -52,6 +41,8 @@ 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"
@@ -60,7 +51,8 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
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
@@ -164,6 +156,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
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"]
"
@@ -178,7 +171,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
dat += "[DR.ruletype] - [DR.name]
"
else
dat += "none.
"
- dat += "
Injection Timers: ([get_injection_chance(TRUE)]% chance)
"
+ dat += "
Injection Timers: ([storyteller.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!\]
"
@@ -336,6 +329,9 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
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].")
@@ -345,19 +341,12 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
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 by admins)")
+ SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Threat level (forced)")
else
generate_threat()
- 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
+ storyteller.start_injection_cooldowns()
- 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
@@ -391,7 +380,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
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_rules.len,"Players readied up")
+ SSblackbox.record_feedback("tally","dynamic",roundstart_pop_ready,"Players readied up")
if(GLOB.dynamic_forced_roundstart_ruleset.len > 0)
rigged_roundstart()
else
@@ -429,13 +418,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if (GLOB.dynamic_forced_extended)
log_game("DYNAMIC: Starting a round of forced extended.")
return TRUE
- 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
+ var/list/drafted_rules = storyteller.roundstart_draft()
if(!drafted_rules.len)
message_admins("Not enough threat level for roundstart antags!")
log_game("DYNAMIC: Not enough threat level for roundstart antags!")
@@ -653,7 +636,6 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if (rule.persistent)
current_rules += rule
return TRUE
- rule.clean_up()
stack_trace("The [rule.ruletype] rule \"[rule.name]\" failed to execute.")
return FALSE
@@ -667,62 +649,41 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
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.
- 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)
+ midround_injection_cooldown = storyteller.get_midround_cooldown() + 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 (get_injection_chance())
+ if (prob(storyteller.get_injection_chance()))
SSblackbox.record_feedback("tally","dynamic",1,"Attempted midround injections")
- 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")
+ var/list/drafted_rules = storyteller.midround_draft()
if (drafted_rules.len > 0)
SSblackbox.record_feedback("tally","dynamic",1,"Successful midround injections")
picking_midround_latejoin_rule(drafted_rules)
- else
- midround_injection_cooldown = (midround_injection_cooldown + world.time)/2
+ // get_injection_chance can do things on fail
if(event_injection_cooldown < world.time)
SSblackbox.record_feedback("tally","dynamic",1,"Attempted event injections")
- 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)
+ event_injection_cooldown = storyteller.get_event_cooldown() + world.time
message_admins("DYNAMIC: Doing event injection.")
log_game("DYNAMIC: Doing event injection.")
update_playercounts()
- 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")
+ var/list/drafted_rules = storyteller.event_draft()
if(drafted_rules.len > 0)
SSblackbox.record_feedback("tally","dynamic",1,"Successful event injections")
picking_midround_latejoin_rule(drafted_rules)
@@ -741,38 +702,13 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if (M.mind && (M.mind.special_role || M.mind.antag_datums?.len > 0))
current_players[CURRENT_LIVING_ANTAGS].Add(M)
else
- if (istype(M,/mob/dead/observer))
+ if (isobserver(M))
var/mob/dead/observer/O = M
if (O.started_as_observer) // Observers
current_players[CURRENT_OBSERVERS].Add(M)
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)
@@ -803,7 +739,8 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
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)
@@ -814,28 +751,12 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
picking_midround_latejoin_rule(list(forced_latejoin_rule), forced = TRUE)
forced_latejoin_rule = null
- else if (latejoin_injection_cooldown < world.time && prob(get_injection_chance()))
+ else if (latejoin_injection_cooldown < world.time && prob(storyteller.get_injection_chance()))
SSblackbox.record_feedback("tally","dynamic",1,"Attempted latejoin injections")
- 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()
-
+ var/list/drafted_rules = storyteller.latejoin_draft(newPlayer)
if (drafted_rules.len > 0 && picking_midround_latejoin_rule(drafted_rules))
SSblackbox.record_feedback("tally","dynamic",1,"Successful latejoin injections")
- 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
+ latejoin_injection_cooldown = storyteller.get_latejoin_cooldown() + 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 7f6ea088a1..2f143f7233 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm
@@ -80,9 +80,13 @@
/// 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()
..()
@@ -96,13 +100,11 @@
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 b6cd313bfc..23e94c4065 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm
@@ -58,6 +58,7 @@
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)
@@ -81,6 +82,7 @@
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)
//////////////////////////////////////////////
// //
@@ -100,6 +102,7 @@
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))
@@ -133,10 +136,11 @@
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 = 3
+ cost = 1
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
//////////////////////////////////////////////
@@ -156,6 +160,7 @@
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))
@@ -190,6 +195,7 @@
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"
@@ -203,6 +209,7 @@
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"
@@ -214,6 +221,7 @@
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"
@@ -227,6 +235,7 @@
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"
@@ -240,6 +249,7 @@
requirements = list(10,10,10,10,10,10,10,10,10,10)
high_population_requirement = 10
repeatable = TRUE
+ property_weights = list("extended" = 1)
//////////////////////////////////////////////
// //
@@ -259,6 +269,7 @@
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"
@@ -270,6 +281,7 @@
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"
@@ -283,6 +295,7 @@
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"
@@ -296,6 +309,7 @@
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
@@ -310,6 +324,7 @@
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
@@ -324,6 +339,7 @@
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"
@@ -337,6 +353,7 @@
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"
@@ -350,6 +367,7 @@
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
@@ -362,3 +380,4 @@
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 fe9347d9d5..f4e9971a05 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
@@ -69,8 +69,15 @@
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 //
@@ -94,6 +101,7 @@
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
@@ -123,6 +131,8 @@
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.")
@@ -187,30 +197,31 @@
//////////////////////////////////////////////
// //
-// VAMPIRE //
+// BLOODSUCKERS //
// //
//////////////////////////////////////////////
-/*
-/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")
+/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 = 5
- cost = 15
- requirements = list(80,70,60,50,40,20,20,15,15,15)
+ 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
repeatable = TRUE
- high_population_requirement = 15
-/datum/dynamic_ruleset/latejoin/vampire/pre_execute()
+/datum/dynamic_ruleset/latejoin/bloodsucker/execute()
var/mob/M = pick(candidates)
- candidates -= M
assigned += M.mind
- M.mind.restricted_roles = restricted_roles
- M.mind.special_role = ROLE_VAMPIRE
+ 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.")
return TRUE
-*/
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
index 91ac73d142..c89562c9f9 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
@@ -108,8 +108,12 @@
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
@@ -180,6 +184,7 @@
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)
@@ -214,6 +219,8 @@
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
@@ -237,6 +244,7 @@
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
@@ -261,6 +269,8 @@
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))
@@ -289,6 +299,7 @@
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)
@@ -337,6 +348,7 @@
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
@@ -390,6 +402,7 @@
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))
@@ -421,6 +434,7 @@
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)
@@ -476,6 +490,7 @@
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()
@@ -521,6 +536,7 @@
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)
@@ -555,14 +571,18 @@
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/ready(forced = FALSE)
+/datum/dynamic_ruleset/midround/from_ghosts/revenant/acceptable(population = 0,threat = 0)
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
@@ -607,6 +627,7 @@
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()
@@ -659,6 +680,7 @@
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
@@ -699,6 +721,7 @@
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
@@ -745,31 +768,3 @@
#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 e5bb0af464..abd40a1756 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
@@ -21,6 +21,7 @@
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)
@@ -61,6 +62,7 @@
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
@@ -108,6 +110,7 @@
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
@@ -160,6 +163,7 @@
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)
@@ -222,6 +226,7 @@
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)
@@ -283,6 +288,7 @@
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)
@@ -373,6 +379,7 @@
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
@@ -490,6 +497,7 @@
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()
@@ -517,6 +525,7 @@
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()
@@ -616,6 +625,8 @@
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()
. = ..()
@@ -647,6 +658,7 @@
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]
@@ -698,6 +710,7 @@
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
@@ -759,6 +772,7 @@
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
@@ -799,7 +813,8 @@
weight = 2
cost = 15
scaling_cost = 10
- requirements = list(90,80,70,60,50,50,50,50,50,50)
+ property_weights = list("story_potential" = 1, "extended" = 1, "trust" = -2, "valid" = 1)
+ requirements = list(70,65,60,55,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
new file mode 100644
index 0000000000..afa6ed8ba7
--- /dev/null
+++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm
@@ -0,0 +1,235 @@
+/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/buttons.dm b/code/game/machinery/buttons.dm
index 968cbe7254..24c9e32969 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -38,21 +38,22 @@
board.one_access = 1
board.accesses = req_one_access
-
-/obj/machinery/button/update_icon()
- cut_overlays()
+/obj/machinery/button/update_icon_state()
if(panel_open)
icon_state = "button-open"
- if(device)
- add_overlay("button-device")
- if(board)
- add_overlay("button-board")
-
+ else if(stat & (NOPOWER|BROKEN))
+ icon_state = "[skin]-p"
else
- if(stat & (NOPOWER|BROKEN))
- icon_state = "[skin]-p"
- else
- icon_state = skin
+ icon_state = skin
+
+/obj/machinery/button/update_overlays()
+ . = ..()
+ if(!panel_open)
+ return
+ if(device)
+ . += "button-device"
+ if(board)
+ . += "button-board"
/obj/machinery/button/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/screwdriver))
@@ -168,7 +169,7 @@
if(device)
device.pulsed()
- addtimer(CALLBACK(src, .proc/update_icon), 15)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 15)
/obj/machinery/button/power_change()
..()
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 17136d3c4f..bef5effb54 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -292,7 +292,7 @@
new /obj/item/stack/cable_coil(loc, 2)
qdel(src)
-/obj/machinery/camera/update_icon()
+/obj/machinery/camera/update_icon_state()
if(!status)
icon_state = "[initial(icon_state)]1"
else if (stat & EMPED)
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index 8d950f8458..b561224668 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -67,7 +67,9 @@
/obj/item/clothing/shoes/kindleKicks = ARCADE_WEIGHT_RARE,
/obj/item/storage/belt/military/snack = ARCADE_WEIGHT_RARE,
- /obj/item/clothing/mask/fakemoustache/italian = ARCADE_WEIGHT_RARE
+ /obj/item/clothing/mask/fakemoustache/italian = ARCADE_WEIGHT_RARE,
+ /obj/item/clothing/suit/hooded/wintercoat/ratvar/fake = ARCADE_WEIGHT_TRICK,
+ /obj/item/clothing/suit/hooded/wintercoat/narsie/fake = ARCADE_WEIGHT_TRICK
)
light_color = LIGHT_COLOR_GREEN
diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm
index 40ccc61b2b..f3be6ac214 100644
--- a/code/game/machinery/defibrillator_mount.dm
+++ b/code/game/machinery/defibrillator_mount.dm
@@ -38,17 +38,21 @@
defib.cell.give(180) //90% efficiency, slightly better than the cell charger's 87.5%
update_icon()
-/obj/machinery/defibrillator_mount/update_icon()
- cut_overlays()
- if(defib)
- add_overlay("defib")
- if(defib.powered)
- add_overlay(defib.safety ? "online" : "emagged")
- var/ratio = defib.cell.charge / defib.cell.maxcharge
- ratio = CEILING(ratio * 4, 1) * 25
- add_overlay("charge[ratio]")
- if(clamps_locked)
- add_overlay("clamps")
+/obj/machinery/defibrillator_mount/update_overlays()
+ . = ..()
+ if(!defib)
+ return
+
+ . += "defib"
+
+ if(defib.powered)
+ . += (defib.safety ? "online" : "emagged")
+ var/ratio = defib.cell.charge / defib.cell.maxcharge
+ ratio = CEILING(ratio * 4, 1) * 25
+ . += "charge[ratio]"
+
+ if(clamps_locked)
+ . += "clamps"
/obj/machinery/defibrillator_mount/get_cell()
if(defib)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 52b52eb288..03c1bb3bc8 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_world("### MAP WARNING, [src] at [AREACOORD(src)] failed to find a valid airlock to cyclelink with!")
+ log_mapping("[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/iv_drip.dm b/code/game/machinery/iv_drip.dm
index aee1cf4f69..6d19776d86 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -222,5 +222,21 @@
. += "\t[attached ? attached : "No one"] is attached."
+/obj/machinery/iv_drip/telescopic
+ name = "telescopic IV drip"
+ desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. This one is telescopic, and can be picked up and put down."
+ icon_state = "iv_drip"
+
+/obj/machinery/iv_drip/telescopic/update_icon()
+ ..()
+ icon_state = icon_state + "_tele"
+
+/obj/machinery/iv_drip/telescopic/AltClick(mob/user)
+ if (attached || beaker || !user.canUseTopic(src, BE_CLOSE))
+ return ..()
+ new /obj/item/tele_iv(get_turf(src))
+ qdel(src)
+ return TRUE
+
#undef IV_TAKING
-#undef IV_INJECTING
\ No newline at end of file
+#undef IV_INJECTING
diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm
index 36708fcf90..ca8e8cecd9 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()
+ W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
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()
+ F.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
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)
+ S.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
playsound(S, 'sound/items/deconstruct.ogg', 50, 1)
chassis.spark_system.start()
else if(isfloorturf(target))
diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm
index 10ee73915c..b6deaa1d06 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)
+ T.PlaceOnTop(/turf/open/floor/plating/foam, flags = CHANGETURF_INHERIT_AIR)
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/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index ed88d51c2d..e01010baa5 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -432,3 +432,52 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
GLOB.ruin_landmarks -= src
ruin_template = null
. = ..()
+
+//------Station Rooms Landmarks------------//
+/obj/effect/landmark/stationroom
+ var/list/template_names = list()
+ layer = BULLET_HOLE_LAYER
+
+/obj/effect/landmark/stationroom/New()
+ ..()
+ GLOB.stationroom_landmarks += src
+
+/obj/effect/landmark/stationroom/Destroy()
+ if(src in GLOB.stationroom_landmarks)
+ GLOB.stationroom_landmarks -= src
+ return ..()
+
+/obj/effect/landmark/stationroom/proc/load(template_name)
+ var/turf/T = get_turf(src)
+ if(!T)
+ return FALSE
+ if(!template_name)
+ for(var/t in template_names)
+ if(!SSmapping.station_room_templates[t])
+ log_world("Station room spawner placed at ([T.x], [T.y], [T.z]) has invalid ruin name of \"[t]\" in its list")
+ template_names -= t
+ template_name = safepick(template_names)
+ if(!template_name)
+ GLOB.stationroom_landmarks -= src
+ qdel(src)
+ return FALSE
+ var/datum/map_template/template = SSmapping.station_room_templates[template_name]
+ if(!template)
+ return FALSE
+ testing("Room \"[template_name]\" placed at ([T.x], [T.y], [T.z])")
+ template.load(T, centered = FALSE)
+ template.loaded++
+ GLOB.stationroom_landmarks -= src
+ qdel(src)
+ return TRUE
+
+// The landmark for the Engine on Box
+
+/obj/effect/landmark/stationroom/box/engine
+ template_names = list("Engine SM", "Engine Singulo", "Engine Tesla")
+ icon = 'icons/rooms/box/engine.dmi'
+
+
+/obj/effect/landmark/stationroom/box/engine/New()
+ . = ..()
+ template_names = CONFIG_GET(keyed_list/box_random_engine)
\ No newline at end of file
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index f105881411..0525944b28 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -578,21 +578,22 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
itempush = 0 //too light to push anything
return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum)
-/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force)
+/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, messy_throw = TRUE)
thrownby = thrower
- callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own
+ callback = CALLBACK(src, .proc/after_throw, callback, (spin && messy_throw)) //replace their callback with our own
. = ..(target, range, speed, thrower, spin, diagonals_first, callback, force)
-/obj/item/proc/after_throw(datum/callback/callback)
+/obj/item/proc/after_throw(datum/callback/callback, messy_throw)
if (callback) //call the original callback
. = callback.Invoke()
throw_speed = initial(throw_speed) //explosions change this.
item_flags &= ~IN_INVENTORY
- var/matrix/M = matrix(transform)
- M.Turn(rand(-170, 170))
- transform = M
- pixel_x = rand(-8, 8)
- pixel_y = rand(-8, 8)
+ if(messy_throw)
+ var/matrix/M = matrix(transform)
+ M.Turn(rand(-170, 170))
+ transform = M
+ pixel_x = rand(-8, 8)
+ pixel_y = rand(-8, 8)
/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/storage
if(!newLoc)
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index cf8d38d9c9..884f5c4400 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -863,3 +863,205 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(reagents && reagents.total_volume)
hand_reagents()
+
+///////////////
+/////BONGS/////
+///////////////
+
+/obj/item/bong
+ name = "bong"
+ desc = "A water bong used for smoking dried plants."
+ icon = 'icons/obj/bongs.dmi'
+ icon_state = null
+ item_state = null
+ w_class = WEIGHT_CLASS_NORMAL
+ light_color = "#FFCC66"
+ var/icon_off = "bong"
+ var/icon_on = "bong_lit"
+ var/chem_volume = 100
+ var/last_used_time //for cooldown
+ var/firecharges = 0 //used for counting how many hits can be taken before the flame goes out
+ var/list/list_reagents = list() //For the base reagents bongs could get
+
+
+/obj/item/bong/Initialize()
+ . = ..()
+ create_reagents(chem_volume, NO_REACT) // so it doesn't react until you light it
+ reagents.add_reagent_list(list_reagents)
+ icon_state = icon_off
+
+/obj/item/bong/attackby(obj/item/O, mob/user, params)
+ . = ..()
+ //If we're using a dried plant..
+ if(istype(O,/obj/item/reagent_containers/food/snacks))
+ var/obj/item/reagent_containers/food/snacks/DP = O
+ if (DP.dry)
+ //Nothing if our bong is full
+ if (reagents.holder_full())
+ user.show_message("The bowl is full!", MSG_VISUAL)
+ return
+
+ //Transfer reagents and remove the plant
+ user.show_message("You stuff the [DP] into the [src]'s bowl.", MSG_VISUAL)
+ DP.reagents.trans_to(src, 100)
+ qdel(DP)
+ return
+ else
+ user.show_message("[DP] must be dried first!", MSG_VISUAL)
+ return
+
+ if (O.get_temperature() <= 500)
+ return
+ if (reagents && reagents.total_volume) //if there's stuff in the bong
+ var/lighting_text = O.ignition_effect(src, user)
+ if(lighting_text)
+ //Logic regarding igniting it on
+ if (firecharges == 0)
+ user.show_message("You light the [src] with the [O]!", MSG_VISUAL)
+ bongturnon()
+ else
+ user.show_message("You rekindle [src]'s flame with the [O]!", MSG_VISUAL)
+
+ firecharges = 1
+ return
+ else
+ user.show_message("There's nothing to light up in the bowl.", MSG_VISUAL)
+ return
+
+/obj/item/bong/CtrlShiftClick(mob/user) //empty reagents on alt click
+ ..()
+ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ return
+
+ if (reagents && reagents.total_volume)
+ user.show_message("You empty the [src].", MSG_VISUAL)
+ reagents.clear_reagents()
+ if(firecharges)
+ firecharges = 0
+ bongturnoff()
+ else
+ user.show_message("The [src] is already empty.", MSG_VISUAL)
+
+/obj/item/bong/AltClick(mob/user)
+ ..()
+ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ return
+
+ if(firecharges)
+ firecharges = 0
+ bongturnoff()
+ user.show_message("You quench the flame.", MSG_VISUAL)
+ return TRUE
+
+/obj/item/bong/examine(mob/user)
+ . = ..()
+ if(!reagents.total_volume)
+ . += "The bowl is empty."
+ else if (reagents.total_volume > 80)
+ . += "The bowl is filled to the brim."
+ else if (reagents.total_volume > 40)
+ . += "The bowl has plenty weed in it."
+ else
+ . += "The bowl has some weed in it."
+
+ . += "Ctrl+Shift-click to empty."
+ . += "Alt-click to extinguish."
+
+/obj/item/bong/ignition_effect(atom/A, mob/user)
+ if(firecharges)
+ . = "[user] lights [A] off of the [src]."
+ else
+ . = ""
+
+/obj/item/bong/attack(mob/living/carbon/M, mob/living/carbon/user, obj/target)
+ //if it's lit up, some stuff in the bowl and the user is a target, and we're not on cooldown
+
+ if (M != user)
+ return ..()
+
+ if(user.is_mouth_covered(head_only = 1))
+ to_chat(user, "Remove your headgear first.")
+ return ..()
+
+ if(user.is_mouth_covered(mask_only = 1))
+ to_chat(user, "Remove your mask first.")
+ return ..()
+
+ if (!reagents.total_volume)
+ to_chat(user, "There's nothing in the bowl.")
+ return ..()
+
+ if (!firecharges)
+ to_chat(user, "You have to light it up first.")
+ return ..()
+
+ if (last_used_time + 30 >= world.time)
+ return ..()
+ var/hit_strength
+ var/noise
+ var/hittext = ""
+ //if the intent is help then you take a small hit, else a big one
+ if (user.a_intent == INTENT_HARM)
+ hit_strength = 2
+ noise = 100
+ hittext = "big hit"
+ else
+ hit_strength = 1
+ noise = 70
+ hittext = "hit"
+ //bubbling sound
+ playsound(user.loc,'sound/effects/bonghit.ogg', noise, 1)
+
+ last_used_time = world.time
+
+ //message
+ user.visible_message("[user] begins to take a [hittext] from the [src]!", \
+ "You begin to take a [hittext] from [src].")
+
+ //we take a hit here, after an uninterrupted delay
+ if(!do_after(user, 25, target = user))
+ return
+ if (!(reagents && reagents.total_volume))
+ return
+
+ var/fraction = 12 * hit_strength
+
+ var/datum/effect_system/smoke_spread/chem/smoke_machine/s = new
+ s.set_up(reagents, hit_strength, 18, user.loc)
+ s.start()
+
+ reagents.reaction(user, INGEST, fraction)
+ if(!reagents.trans_to(user, fraction))
+ reagents.remove_any(fraction)
+
+ if (hit_strength == 2 && prob(15))
+ user.emote("cough")
+ user.adjustOxyLoss(15)
+
+ user.visible_message("[user] takes a [hittext] from the [src]!", \
+ "You take a [hittext] from [src].")
+
+ firecharges = firecharges - 1
+ if (!firecharges)
+ bongturnoff()
+ if (!reagents.total_volume)
+ firecharges = 0
+ bongturnoff()
+
+
+
+/obj/item/bong/proc/bongturnon()
+ icon_state = icon_on
+ set_light(3, 0.8)
+
+/obj/item/bong/proc/bongturnoff()
+ icon_state = icon_off
+ set_light(0, 0.0)
+
+
+
+/obj/item/bong/coconut
+ name = "coconut bong"
+ icon_off = "coconut_bong"
+ icon_on = "coconut_bong_lit"
+ desc = "A water bong used for smoking dried plants. This one's made out of a coconut and some bamboo."
\ No newline at end of file
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 702347c220..07d58c1754 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -47,8 +47,7 @@
/obj/item/defibrillator/update_icon()
update_power()
- update_overlays()
- update_charge()
+ return ..()
/obj/item/defibrillator/proc/update_power()
if(!QDELETED(cell))
@@ -59,23 +58,20 @@
else
powered = FALSE
-/obj/item/defibrillator/proc/update_overlays()
- cut_overlays()
+/obj/item/defibrillator/update_overlays()
+ . = ..()
if(!on)
- add_overlay("[initial(icon_state)]-paddles")
+ . += "[initial(icon_state)]-paddles"
if(powered)
- add_overlay("[initial(icon_state)]-powered")
- if(!cell)
- add_overlay("[initial(icon_state)]-nocell")
- if(!safety)
- add_overlay("[initial(icon_state)]-emagged")
-
-/obj/item/defibrillator/proc/update_charge()
- if(powered) //so it doesn't show charge if it's unpowered
+ . += "[initial(icon_state)]-powered"
if(!QDELETED(cell))
var/ratio = cell.charge / cell.maxcharge
ratio = CEILING(ratio*4, 1) * 25
add_overlay("[initial(icon_state)]-charge[ratio]")
+ if(!cell)
+ . += "[initial(icon_state)]-nocell"
+ if(!safety)
+ . += "[initial(icon_state)]-emagged"
/obj/item/defibrillator/CheckParts(list/parts_list)
..()
diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm
index 0c73d829ff..bf9c5daccd 100644
--- a/code/game/objects/items/devices/forcefieldprojector.dm
+++ b/code/game/objects/items/devices/forcefieldprojector.dm
@@ -2,7 +2,7 @@
name = "forcefield projector"
desc = "An experimental device that can create several forcefields at a distance."
icon = 'icons/obj/device.dmi'
- icon_state = "signmaker_engi"
+ icon_state = "signmaker_forcefield"
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
item_flags = NOBLUDGEON
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index 4d91fee9aa..cc009b5fc2 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -44,11 +44,6 @@
icon_state = "eng_cypherkey"
channels = list(RADIO_CHANNEL_ENGINEERING = 1)
-/obj/item/encryptionkey/headset_rob
- name = "robotics radio encryption key"
- icon_state = "rob_cypherkey"
- channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_ENGINEERING = 1)
-
/obj/item/encryptionkey/headset_med
name = "medical radio encryption key"
icon_state = "med_cypherkey"
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 1d0f94de71..42d9ec0269 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -123,12 +123,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
icon_state = "eng_headset"
keyslot = new /obj/item/encryptionkey/headset_eng
-/obj/item/radio/headset/headset_rob
- name = "robotics radio headset"
- desc = "Made specifically for the roboticists, who cannot decide between departments."
- icon_state = "rob_headset"
- keyslot = new /obj/item/encryptionkey/headset_rob
-
/obj/item/radio/headset/headset_med
name = "medical radio headset"
desc = "A headset for the trained staff of the medbay."
@@ -230,6 +224,14 @@ GLOBAL_LIST_INIT(channel_tokens, list(
icon_state = "srv_headset"
keyslot = new /obj/item/encryptionkey/headset_service
+/obj/item/radio/headset/headset_clown
+ name = "clown's headset"
+ desc = "A headset for the clown. Finally. A megaphone you can't take away."
+ icon_state = "srv_headset"
+ keyslot = new /obj/item/encryptionkey/headset_service
+ command = TRUE
+ commandspan = SPAN_CLOWN
+
/obj/item/radio/headset/headset_cent
name = "\improper CentCom headset"
desc = "A headset used by the upper echelons of Nanotrasen."
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 7823e6bf87..22012a114f 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -29,6 +29,7 @@
var/freqlock = FALSE // Frequency lock to stop the user from untuning specialist radios.
var/use_command = FALSE // If true, broadcasts will be large and BOLD.
var/command = FALSE // If true, use_command can be toggled at will.
+ var/commandspan = SPAN_COMMAND //allow us to set what the fuck we want for headsets
// Encryption key handling
var/obj/item/encryptionkey/keyslot
@@ -206,7 +207,7 @@
return
if(use_command)
- spans |= SPAN_COMMAND
+ spans |= commandspan
/*
Roughly speaking, radios attempt to make a subspace transmission (which
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index fca7f9bc6d..a8d57fab69 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -224,7 +224,7 @@
merge_gases()
for(var/i in 1 to 6)
- addtimer(CALLBACK(src, .proc/update_icon), 20 + (i - 1) * 10)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 20 + (i - 1) * 10)
else if(valve_open && tank_one && tank_two)
split_gases()
diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm
index 62a7742628..70cd503ef4 100644
--- a/code/game/objects/items/granters.dm
+++ b/code/game/objects/items/granters.dm
@@ -414,6 +414,23 @@
name = "empty scroll"
icon_state = "blankscroll"
+/obj/item/book/granter/martial/bass
+ martial = /datum/martial_art/the_rising_bass
+ name = "shifting scroll"
+ martialname = "rising bass"
+ desc = "A paper scroll that seems to move even as you read it, the letters never seem to stay still."
+ greet = "You have learned the ancient martial art of the Rising Bass. Your skill at running away has increased quite a bit. Use the combos to get away from opponents quickly. Along with this, you now dodge all projectiles and catch anything thrown at you."
+ icon = 'icons/obj/wizard.dmi'
+ icon_state = "scroll2"
+ remarks = list("The trick is to disarm them...","Running away helps in many situations...","Never stay still...","Fighting won't help unless you're forced to...", "Crush their limbs to incapacitate them...", "Stay as far away as possible...")
+
+/obj/item/book/granter/martial/bass/onlearned(mob/living/carbon/user)
+ ..()
+ if(oneuse == TRUE)
+ desc = "It's completely blank."
+ name = "empty scroll"
+ icon_state = "blankscroll"
+
/obj/item/book/granter/martial/plasma_fist
martial = /datum/martial_art/plasma_fist
name = "frayed scroll"
diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm
index 78881d901e..eb58089293 100644
--- a/code/game/objects/items/holosign_creator.dm
+++ b/code/game/objects/items/holosign_creator.dm
@@ -79,7 +79,7 @@
/obj/item/holosign_creator/atmos
name = "ATMOS holofan projector"
desc = "A holographic projector that creates holographic barriers that prevent changes in atmosphere conditions."
- icon_state = "signmaker_engi"
+ icon_state = "signmaker_atmos"
holosign_type = /obj/structure/holosign/barrier/atmos
creation_time = 0
max_signs = 3
diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm
index 16262d61c3..4549dc73b6 100644
--- a/code/game/objects/items/melee/energy.dm
+++ b/code/game/objects/items/melee/energy.dm
@@ -374,7 +374,7 @@
It appears to have a wooden grip and a shaved down guard."
icon_state = "cxsword_hilt_traitor"
force_on = 30
- armour_penetration = 50
+ armour_penetration = 35
embedding = list("embedded_pain_multiplier" = 10, "embed_chance" = 75, "embedded_fall_chance" = 0, "embedded_impact_pain_multiplier" = 10)
block_chance = 50
hitsound_on = 'sound/weapons/blade1.ogg'
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index d68c3a19b0..aa7df5e4b9 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -216,10 +216,11 @@
return
else
if(last_hit < world.time)
+ if(target.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK))
+ playsound(target, 'sound/weapons/genhit.ogg', 50, 1)
+ return
if(ishuman(target))
var/mob/living/carbon/human/H = target
- if (H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK))
- return
if(check_martial_counter(H, user))
return
playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1)
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 77bc7ed810..c09f5b1b65 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -11,11 +11,9 @@
var/charge_cost = 30
/obj/item/borg/stun/attack(mob/living/M, mob/living/user)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- if(H.check_shields(src, 0, "[M]'s [name]", MELEE_ATTACK))
- playsound(M, 'sound/weapons/genhit.ogg', 50, 1)
- return FALSE
+ if(M.check_shields(src, 0, "[M]'s [name]", MELEE_ATTACK))
+ playsound(M, 'sound/weapons/genhit.ogg', 50, 1)
+ return FALSE
if(iscyborg(user))
var/mob/living/silicon/robot/R = user
if(!R.cell.use(charge_cost))
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index f25c2c2265..178bdd8a5e 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -2,8 +2,8 @@
name = "medical pack"
singular_name = "medical pack"
icon = 'icons/obj/stack_objects.dmi'
- amount = 6
- max_amount = 6
+ amount = 12
+ max_amount = 12
w_class = WEIGHT_CLASS_TINY
full_w_class = WEIGHT_CLASS_TINY
throw_speed = 3
@@ -55,9 +55,8 @@
icon_state = "brutepack"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- var/heal_brute = 25
+ var/heal_brute = 20
self_delay = 20
- max_amount = 12
grind_results = list("styptic_powder" = 10)
/obj/item/stack/medical/bruise_pack/heal(mob/living/M, mob/user)
@@ -92,7 +91,6 @@
var/stop_bleeding = 1800
var/heal_brute = 5
self_delay = 10
- max_amount = 12
/obj/item/stack/medical/gauze/heal(mob/living/M, mob/user)
if(ishuman(M))
@@ -125,6 +123,7 @@
singular_name = "improvised gauze"
desc = "A roll of cloth roughly cut from something that can stop bleeding, but does not heal wounds."
stop_bleeding = 900
+ heal_brute = 0
/obj/item/stack/medical/gauze/cyborg
materials = list()
@@ -139,9 +138,8 @@
icon_state = "ointment"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- var/heal_burn = 25
+ var/heal_burn = 20
self_delay = 20
- max_amount = 12
grind_results = list("silver_sulfadiazine" = 10)
/obj/item/stack/medical/ointment/heal(mob/living/M, mob/user)
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 4fc31ea674..34146d89b3 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -673,7 +673,8 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
merge_type = /obj/item/stack/sheet/bone
GLOBAL_LIST_INIT(plastic_recipes, list(
- new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \
+ 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("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 7c602a8f1c..cb7b59b50b 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -192,9 +192,14 @@
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
+ 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)
O = new R.result_type(usr.drop_location())
- O.setDir(usr.dir)
+ if(O)
+ O.setDir(usr.dir)
use(R.req_amount * multiplier)
//START: oh fuck i'm so sorry
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 3a4579d3f8..6c250029a6 100755
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -61,6 +61,7 @@
/obj/item/radio,
/obj/item/clothing/gloves,
/obj/item/holosign_creator,
+ /obj/item/forcefield_projector,
/obj/item/assembly/signaler
))
STR.can_hold = can_hold
@@ -458,8 +459,7 @@
/obj/item/extinguisher/mini,
/obj/item/radio,
/obj/item/clothing/gloves,
- /obj/item/holosign_creator/atmos,
- /obj/item/holosign_creator/engineering,
+ /obj/item/holosign_creator,
/obj/item/forcefield_projector,
/obj/item/assembly/signaler,
/obj/item/lightreplacer,
@@ -571,6 +571,7 @@
/obj/item/reagent_containers/spray,
/obj/item/soap,
/obj/item/holosign_creator,
+ /obj/item/forcefield_projector,
/obj/item/key/janitor,
/obj/item/clothing/gloves,
/obj/item/melee/flyswatter,
@@ -582,7 +583,7 @@
/obj/item/storage/belt/bandolier
name = "bandolier"
- desc = "A bandolier for holding shotgun ammunition."
+ desc = "A bandolier for holding ammunition."
icon_state = "bandolier"
item_state = "bandolier"
@@ -592,7 +593,7 @@
STR.max_items = 18
STR.display_numerical_stacking = TRUE
STR.can_hold = typecacheof(list(
- /obj/item/ammo_casing/shotgun
+ /obj/item/ammo_casing
))
/obj/item/storage/belt/bandolier/durathread
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index e214db3c71..4b2b3e2203 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -1259,3 +1259,12 @@
var/obj/item/stack/sheet/cardboard/I = new(user.drop_location())
qdel(src)
user.put_in_hands(I)
+
+/obj/item/storage/box/marshmallow
+ name = "box of marshmallows"
+ desc = "A box of marshmallows."
+ illustration = "marshmallow"
+
+/obj/item/storage/box/marshmallow/PopulateContents()
+ for (var/i in 1 to 5)
+ new /obj/item/reagent_containers/food/snacks/marshmallow(src)
\ No newline at end of file
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index 223c8e9cf6..817465a16c 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -390,4 +390,10 @@
new /obj/item/seeds/random(src)
if(prob(50))
- new /obj/item/seeds/random(src) //oops, an additional packet might have slipped its way into the box
\ No newline at end of file
+ new /obj/item/seeds/random(src) //oops, an additional packet might have slipped its way into the box
+
+/obj/item/storage/box/syndie_kit/revolver
+
+/obj/item/storage/box/syndie_kit/revolver/PopulateContents()
+ new /obj/item/gun/ballistic/revolver(src)
+ new /obj/item/ammo_box/a357(src)
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index f5f26246c7..685e1cd5c4 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_world("### MAP WARNING, [src] at [AREACOORD(src)] had an invalid preload_cell_type: [preload_cell_type].")
+ log_mapping("[src] at [AREACOORD(src)] had an invalid preload_cell_type: [preload_cell_type].")
else
cell = new preload_cell_type(src)
update_icon()
@@ -168,11 +168,9 @@
/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user)
- if(ishuman(L))
- var/mob/living/carbon/human/H = L
- if(H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that
- playsound(L, 'sound/weapons/genhit.ogg', 50, 1)
- return FALSE
+ if(L.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that
+ playsound(L, 'sound/weapons/genhit.ogg', 50, 1)
+ return FALSE
var/stunpwr = stunforce
var/obj/item/stock_parts/cell/our_cell = get_cell()
if(!our_cell)
diff --git a/code/game/objects/items/telescopic_iv.dm b/code/game/objects/items/telescopic_iv.dm
new file mode 100644
index 0000000000..9b0b714ea5
--- /dev/null
+++ b/code/game/objects/items/telescopic_iv.dm
@@ -0,0 +1,17 @@
+/obj/item/tele_iv
+ name = "telescopic IV drip"
+ desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. This one is telescopic, and can be picked up and put down."
+ icon = 'icons/obj/iv_drip.dmi'
+ icon_state = "tele_iv"
+
+/obj/item/tele_iv/attack_self(mob/user)
+ deploy_iv(user, user.loc)
+
+/obj/item/tele_iv/afterattack(atom/target, mob/user, proximity)
+ . = ..()
+ if(proximity && isopenturf(target) && user.CanReach(target))
+ deploy_iv(user, target)
+
+/obj/item/tele_iv/proc/deploy_iv(mob/user, atom/location)
+ new /obj/machinery/iv_drip/telescopic(location)
+ qdel(src)
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index dd7d46d0d7..d7891feaa0 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()
+ W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
return
//HF blade
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index f08f5ef095..73d1c9b3e8 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -80,13 +80,12 @@
SEND_SIGNAL(src, COMSIG_OBJ_SETANCHORED, anchorvalue)
anchored = anchorvalue
-/obj/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force)
- ..()
+/obj/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, messy_throw = TRUE)
+ . = ..()
if(obj_flags & FROZEN)
visible_message("[src] shatters into a million pieces!")
qdel(src)
-
/obj/assume_air(datum/gas_mixture/giver)
if(loc)
return loc.assume_air(giver)
@@ -173,9 +172,6 @@
/obj/proc/container_resist(mob/living/user)
return
-/obj/proc/update_icon()
- return
-
/mob/proc/unset_machine()
if(machine)
machine.on_unset_machine(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 8da50d488f..579b1444a5 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -12,18 +12,12 @@
new /obj/item/clothing/head/hardhat/white(src)
new /obj/item/clothing/head/hardhat/weldhat/white(src)
new /obj/item/clothing/gloves/color/yellow(src)
- new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/tank/jetpack/suit(src)
new /obj/item/cartridge/ce(src)
new /obj/item/radio/headset/heads/ce(src)
- new /obj/item/storage/toolbox/mechanical(src)
- new /obj/item/clothing/suit/hazardvest(src)
new /obj/item/megaphone/command(src)
new /obj/item/areaeditor/blueprints(src)
- new /obj/item/airlock_painter(src)
new /obj/item/holosign_creator/engineering(src)
- new /obj/item/clothing/mask/gas(src)
- new /obj/item/multitool(src)
new /obj/item/assembly/flash/handheld(src)
new /obj/item/clothing/glasses/meson/engine(src)
new /obj/item/door_remote/chief_engineer(src)
@@ -67,7 +61,7 @@
for(var/i in 1 to 3)
new /obj/item/clothing/head/welding(src)
for(var/i in 1 to 3)
- new /obj/item/weldingtool(src)
+ new /obj/item/weldingtool/largetank(src)
/obj/structure/closet/secure_closet/engineering_personal
name = "engineer's locker"
@@ -84,7 +78,6 @@
new /obj/item/clothing/glasses/meson/engine(src)
new /obj/item/storage/box/emptysandbags(src)
-
/obj/structure/closet/secure_closet/atmospherics
name = "\proper atmospheric technician's locker"
req_access = list(ACCESS_ATMOSPHERICS)
@@ -103,3 +96,33 @@
new /obj/item/clothing/head/hardhat/atmos(src)
new /obj/item/clothing/glasses/meson/engine/tray(src)
new /obj/item/extinguisher/advanced(src)
+
+/*
+ * Empty lockers
+ * Some of the lockers are filled with junk, and sometimes its nice to just fill it with your own set-up for your own map gimmicks.
+ */
+
+/obj/structure/closet/secure_closet/engineering_chief/empty
+
+/obj/structure/closet/secure_closet/engineering_chief/empty/PopulateContents()
+ return
+
+/obj/structure/closet/secure_closet/engineering_electrical/empty
+
+/obj/structure/closet/secure_closet/engineering_electrical/empty/PopulateContents()
+ return
+
+/obj/structure/closet/secure_closet/engineering_welding/empty
+
+/obj/structure/closet/secure_closet/engineering_welding/empty/PopulateContents()
+ return
+
+/obj/structure/closet/secure_closet/engineering_personal/empty
+
+/obj/structure/closet/secure_closet/engineering_personal/empty/PopulateContents()
+ return
+
+/obj/structure/closet/secure_closet/atmospherics/empty
+
+/obj/structure/closet/secure_closet/atmospherics/empty/PopulateContents()
+ return
diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm
index b8137d831b..e7a0ac2d04 100644
--- a/code/game/objects/structures/divine.dm
+++ b/code/game/objects/structures/divine.dm
@@ -41,7 +41,7 @@
to_chat(user, "The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards.")
user.reagents.add_reagent("godblood",20)
update_icon()
- addtimer(CALLBACK(src, .proc/update_icon), time_between_uses)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), time_between_uses)
/obj/structure/healingfountain/update_icon()
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 07a66505e7..271ae72d47 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -73,7 +73,7 @@
else if(glass)
user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly...")
- if(W.use_tool(src, user, 40, volume=50))
+ if(W.use_tool(src, user, 40, volume=50) && glass)
to_chat(user, "You weld the glass panel out.")
if(heat_proof_finished)
new /obj/item/stack/sheet/rglass(get_turf(src))
diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm
index 05e62c196f..7f0c3c6eb8 100644
--- a/code/game/objects/structures/dresser.dm
+++ b/code/game/objects/structures/dresser.dm
@@ -30,11 +30,11 @@
return
var/list/undergarment_choices = list("Underwear", "Underwear Color", "Undershirt", "Undershirt Color", "Socks", "Socks Color")
- if(!UNDIE_COLORABLE(GLOB.underwear_list[H.underwear]))
+ if(!(GLOB.underwear_list[H.underwear]?.has_color))
undergarment_choices -= "Underwear Color"
- if(!UNDIE_COLORABLE(GLOB.undershirt_list[H.undershirt]))
+ if(!(GLOB.undershirt_list[H.undershirt]?.has_color))
undergarment_choices -= "Undershirt Color"
- if(!UNDIE_COLORABLE(GLOB.socks_list[H.socks]))
+ if(!(GLOB.socks_list[H.socks]?.has_color))
undergarment_choices -= "Socks Color"
var/choice = input(H, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in undergarment_choices
diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index b41009b01b..f00fbd1706 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -30,6 +30,8 @@
new/obj/structure/fluff/empty_terrarium(get_turf(src))
return ..()
+/obj/effect/mob_spawn/human/seed_vault/special(mob/living/carbon/human/new_spawn)
+ ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
//Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers.
/obj/effect/mob_spawn/human/ash_walker
@@ -253,6 +255,9 @@
new/obj/structure/fluff/empty_cryostasis_sleeper(get_turf(src))
return ..()
+/obj/effect/mob_spawn/human/hermit/special(mob/living/carbon/human/new_spawn)
+ ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
+
//Broken rejuvenation pod: Spawns in animal hospitals in lavaland. Ghosts become disoriented interns and are advised to search for help.
/obj/effect/mob_spawn/human/doctor/alive/lavaland
name = "broken rejuvenation pod"
@@ -355,6 +360,9 @@
new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src))
..()
+/obj/effect/mob_spawn/human/hotel_staff/special(mob/living/carbon/human/new_spawn)
+ ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
+
/obj/effect/mob_spawn/human/demonic_friend
name = "Essence of friendship"
desc = "Oh boy! Oh boy! A friend!"
@@ -597,3 +605,64 @@
/obj/effect/mob_spawn/human/pirate/gunner
rank = "Gunner"
+
+/obj/effect/mob_spawn/human/ghostcafe
+ name = "Ghost Cafe Sleeper"
+ uses = -1
+ icon = 'icons/obj/machines/sleeper.dmi'
+ icon_state = "sleeper"
+ mob_name = "a ghost cafe visitor"
+ roundstart = FALSE
+ anchored = TRUE
+ density = FALSE
+ death = FALSE
+ assignedrole = "Ghost Cafe Visitor"
+ flavour_text = "Is this what life after death is like?"
+ skip_reentry_check = TRUE
+ banType = "ghostcafe"
+
+/obj/effect/mob_spawn/human/ghostcafe/special(mob/living/carbon/human/new_spawn)
+ if(new_spawn.client)
+ new_spawn.client.prefs.copy_to(new_spawn)
+ var/datum/outfit/O = new /datum/outfit/ghostcafe()
+ 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)
+ ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
+
+/datum/outfit/ghostcafe
+ name = "ID, jumpsuit and shoes"
+ uniform = /obj/item/clothing/under/color/random
+ shoes = /obj/item/clothing/shoes/sneakers/black
+ id = /obj/item/card/id
+ r_hand = /obj/item/storage/box/syndie_kit/chameleon/ghostcafe
+
+
+/datum/outfit/ghostcafe/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
+ ..()
+ var/suited = !preference_source || preference_source.prefs.jumpsuit_style == PREF_SUIT
+ if (CONFIG_GET(flag/grey_assistants))
+ if(suited)
+ uniform = /obj/item/clothing/under/color/grey
+ else
+ uniform = /obj/item/clothing/under/skirt/color/grey
+ else
+ if(suited)
+ uniform = /obj/item/clothing/under/color/random
+ else
+ uniform = /obj/item/clothing/under/skirt/color/random
+
+/obj/item/storage/box/syndie_kit/chameleon/ghostcafe
+ name = "ghost cafe costuming kit"
+ desc = "Look just the way you did in life - or better!"
+
+/obj/item/storage/box/syndie_kit/chameleon/ghostcafe/PopulateContents() // Doesn't contain a PDA, for isolation reasons.
+ new /obj/item/clothing/under/chameleon(src)
+ new /obj/item/clothing/suit/chameleon(src)
+ new /obj/item/clothing/gloves/chameleon(src)
+ new /obj/item/clothing/shoes/chameleon(src)
+ new /obj/item/clothing/glasses/chameleon(src)
+ new /obj/item/clothing/head/chameleon(src)
+ new /obj/item/clothing/mask/chameleon(src)
+ new /obj/item/storage/backpack/chameleon(src)
+ new /obj/item/clothing/neck/cloak/chameleon(src)
diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index b946a06432..a7eaea0d16 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)
+ T.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
qdel(src)
return TRUE
return FALSE
diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm
index b1e9a81087..6ce0228f54 100644
--- a/code/game/objects/structures/lavaland/necropolis_tendril.dm
+++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm
@@ -93,5 +93,5 @@ GLOBAL_LIST_INIT(tendrils, list())
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)
+ T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland, flags = CHANGETURF_INHERIT_AIR)
qdel(src)
\ No newline at end of file
diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm
index bd657fe1e8..f2c4e628e0 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)
+ T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR)
/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)
+ T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR)
/obj/structure/stairs/intercept_zImpact(atom/movable/AM, levels = 1)
. = ..()
diff --git a/code/game/turfs/baseturf_skipover.dm b/code/game/turfs/baseturf_skipover.dm
index 644714f8ed..4df8c86e62 100644
--- a/code/game/turfs/baseturf_skipover.dm
+++ b/code/game/turfs/baseturf_skipover.dm
@@ -10,4 +10,9 @@
/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."
\ No newline at end of file
+ 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
diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm
index 6a055bbd35..bc4cd8df33 100644
--- a/code/game/turfs/change_turf.dm
+++ b/code/game/turfs/change_turf.dm
@@ -1,6 +1,7 @@
// 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)
@@ -56,12 +57,20 @@ 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)
- 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
+ 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(!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)
@@ -128,16 +137,15 @@ 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/stashed_air = air
- air = null // so that it doesn't get deleted
+ var/datum/gas_mixture/stashed_air = new()
+ stashed_air.copy_from(air)
. = ..()
- if (!. || . == src) // changeturf failed or didn't do anything
- air = stashed_air
+ if (!.) // changeturf failed or didn't do anything
+ QDEL_NULL(stashed_air)
return
var/turf/open/newTurf = .
- if (!istype(newTurf.air, /datum/gas_mixture/immutable/space))
- QDEL_NULL(newTurf.air)
- newTurf.air = stashed_air
+ newTurf.air.copy_from(stashed_air)
+ QDEL_NULL(stashed_air)
SSair.add_to_active(newTurf)
else
if(ispath(path,/turf/closed))
@@ -215,7 +223,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 -= newT.baseturfs & GLOB.blacklisted_automated_baseturfs
+ newT.baseturfs -= GLOB.blacklisted_automated_baseturfs
newT.baseturfs.Insert(1, old_baseturfs) // The old baseturfs are put underneath
return newT
if(!length(baseturfs))
@@ -315,5 +323,5 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
SSair.add_to_active(src)
/turf/proc/ReplaceWithLattice()
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
new /obj/structure/lattice(locate(x, y, z))
diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm
index 6297cadc63..9e593cafce 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, defer_change = FALSE, ignore_air = FALSE)
+/turf/closed/indestructible/TerraformTurf(path, new_baseturf, flags, 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 4bdb13effc..577c45a7f0 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, defer_change = FALSE, ignore_air = FALSE)
+/turf/open/indestructible/TerraformTurf(path, new_baseturf, flags, 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 e68aabcd08..66507e7053 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)
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
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 0a7b507488..dab0c1c376 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)
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
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)
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
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 194014b61a..3f46994da9 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()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
return
if(target != null)
severity = 3
switch(severity)
if(1)
- ScrapeAway(2)
+ ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
if(2)
switch(pick(1,2;75,3))
if(1)
if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor))
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
ReplaceWithLattice()
else
- ScrapeAway(2)
+ ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
if(prob(33))
new /obj/item/stack/sheet/metal(src)
if(2)
- ScrapeAway(2)
+ ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
if(3)
if(prob(80))
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
else
break_tile()
hotspot_expose(1000,CELL_VOLUME)
@@ -103,9 +103,9 @@
/turf/open/floor/blob_act(obj/structure/blob/B)
return
-/turf/open/floor/proc/update_icon()
+/turf/open/floor/update_icon()
+ . = ..()
update_visuals()
- return 1
/turf/open/floor/attack_paw(mob/user)
return attack_hand(user)
@@ -135,7 +135,7 @@
burnt = 1
/turf/open/floor/proc/make_plating()
- return ScrapeAway()
+ return ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
/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)
+ ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR)
/turf/open/floor/ratvar_act(force, ignore_mobs)
. = ..()
if(.)
- ChangeTurf(/turf/open/floor/clockwork)
+ ChangeTurf(/turf/open/floor/clockwork, flags = CHANGETURF_INHERIT_AIR)
/turf/open/floor/acid_melt()
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
/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() == src)
+ if(ScrapeAway(flags = CHANGETURF_INHERIT_AIR) == 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 ae67edf073..8e0eace9cd 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/open/space
+ baseturfs = /turf/baseturf_bottom
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)
+ PlaceOnTop(/turf/open/floor/engine, flags = CHANGETURF_INHERIT_AIR)
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)
+ var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR)
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)
+ ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
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()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
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)
+ ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
return TRUE
return FALSE
/turf/open/floor/plating/foam/ex_act()
..()
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
/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 b00bdc562d..053b18d8d2 100644
--- a/code/game/turfs/simulated/floor/plating/asteroid.dm
+++ b/code/game/turfs/simulated/floor/plating/asteroid.dm
@@ -76,11 +76,6 @@
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)
@@ -132,6 +127,7 @@
/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 b04f89f8be..28ffbbd1ff 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()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
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()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
return
switch(severity)
if(1)
if(prob(80))
if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor))
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
ReplaceWithLattice()
else
- ScrapeAway(2)
+ ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
else if(prob(50))
- ScrapeAway(2)
+ ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
else
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
if(2)
if(prob(50))
- ScrapeAway()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
/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 ce98b16e1a..3a474f339c 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)
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
return TRUE
return FALSE
diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm
index b4e84648c2..8eab4c34fe 100644
--- a/code/game/turfs/simulated/wall/reinf_walls.dm
+++ b/code/game/turfs/simulated/wall/reinf_walls.dm
@@ -202,15 +202,20 @@
return 1
return 0
-/turf/closed/wall/r_wall/proc/update_icon()
+/turf/closed/wall/r_wall/update_icon()
+ . = ..()
if(d_state != INTACT)
smooth = SMOOTH_FALSE
clear_smooth_overlays()
- icon_state = "r_wall-[d_state]"
else
smooth = SMOOTH_TRUE
queue_smooth_neighbors(src)
queue_smooth(src)
+
+/turf/closed/wall/r_wall/update_icon_state()
+ if(d_state != INTACT)
+ icon_state = "r_wall-[d_state]"
+ else
icon_state = "r_wall"
/turf/closed/wall/r_wall/singularity_pull(S, current_size)
diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm
index f38f13e657..5278374abd 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)
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
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)
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
return TRUE
return FALSE
diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm
index f0f0667c37..db5fc8a1f8 100644
--- a/code/game/turfs/space/transit.dm
+++ b/code/game/turfs/space/transit.dm
@@ -103,10 +103,13 @@
for(var/atom/movable/AM in src)
throw_atom(AM)
-/turf/open/space/transit/proc/update_icon()
- icon_state = "speedspace_ns_[get_transit_state(src)]"
+/turf/open/space/transit/update_icon()
+ . = ..()
transform = turn(matrix(), get_transit_angle(src))
+/turf/open/space/transit/update_icon_state()
+ icon_state = "speedspace_ns_[get_transit_state(src)]"
+
/proc/get_transit_state(turf/T)
var/p = 9
. = 1
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index d618e457b0..d280ba408b 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/open/space
+ var/list/baseturfs = /turf/baseturf_bottom
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()
+ ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
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()
+ return ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
diff --git a/code/game/world.dm b/code/game/world.dm
index 25b8c4d9f3..4043f15f6f 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -108,6 +108,7 @@ 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/admin.dm b/code/modules/admin/admin.dm
index 895f8c9f88..1cecbbd0e5 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 between extended and dynamic chaos.")
+ to_chat(world, "Vote is now a ranked choice of dynamic storytellers.")
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/debug.dm b/code/modules/admin/verbs/debug.dm
index 53fdb315b5..f08112939a 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -492,7 +492,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
message_admins("[key_name_admin(usr)] assumed direct control of [M].")
log_admin("[key_name(usr)] assumed direct control of [M].")
var/mob/adminmob = src.mob
- M.ckey = src.ckey
+ adminmob.transfer_ckey(M, send_signal = FALSE)
if( isobserver(adminmob) )
qdel(adminmob)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Assume Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 2b8d365e15..acd320856a 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -35,6 +35,9 @@ 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,
@@ -84,8 +87,24 @@ 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/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 433f52306b..fce45810d1 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -484,11 +484,9 @@
user.do_attack_animation(L)
- if(ishuman(L))
- var/mob/living/carbon/human/H = L
- if(H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK))
- playsound(H, 'sound/weapons/genhit.ogg', 50, TRUE)
- return FALSE
+ if(L.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK))
+ playsound(L, 'sound/weapons/genhit.ogg', 50, TRUE)
+ return FALSE
switch (mode)
if(BATON_STUN)
diff --git a/code/modules/antagonists/blob/blob/blobs/shield.dm b/code/modules/antagonists/blob/blob/blobs/shield.dm
index 33e7e4392f..da165adef2 100644
--- a/code/modules/antagonists/blob/blob/blobs/shield.dm
+++ b/code/modules/antagonists/blob/blob/blobs/shield.dm
@@ -3,6 +3,7 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blob_shield"
desc = "A solid wall of slightly twitching tendrils."
+ var/damaged_desc = "A wall of twitching tendrils."
max_integrity = 150
brute_resist = 0.25
explosion_block = 3
@@ -21,10 +22,10 @@
/obj/structure/blob/shield/update_icon()
..()
- if(obj_integrity <= 70)
- icon_state = "blob_shield_damaged"
- name = "weakened strong blob"
- desc = "A wall of twitching tendrils."
+ if(obj_integrity < max_integrity * 0.5)
+ icon_state = "[initial(icon_state)]_damaged"
+ name = "weakened [initial(name)]"
+ desc = "[damaged_desc]"
atmosblock = FALSE
if(!weakened)
armor = armor.setRating("melee" = 15, "bullet" = 15, "laser" = 5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
@@ -37,4 +38,27 @@
if(weakened)
armor = armor.setRating("melee" = 25, "bullet" = 25, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
weakened = FALSE
- air_update_turf(1)
\ No newline at end of file
+ air_update_turf(1)
+
+/obj/structure/blob/shield/reflective
+ name = "reflective blob"
+ desc = "A solid wall of slightly twitching tendrils with a reflective glow."
+ damaged_desc = "A wall of twitching tendrils with a reflective glow."
+ icon_state = "blob_glow"
+ flags_1 = CHECK_RICOCHET_1
+ point_return = 8
+ max_integrity = 50
+ brute_resist = 1
+ explosion_block = 2
+
+/obj/structure/blob/shield/reflective/handle_ricochet(obj/item/projectile/P)
+ var/turf/p_turf = get_turf(P)
+ var/face_direction = get_dir(src, p_turf)
+ var/face_angle = dir2angle(face_direction)
+ var/incidence_s = GET_ANGLE_OF_INCIDENCE(face_angle, (P.Angle + 180))
+ if(abs(incidence_s) > 90 && abs(incidence_s) < 270)
+ return FALSE
+ var/new_angle_s = SIMPLIFY_DEGREES(face_angle + incidence_s)
+ P.setAngle(new_angle_s)
+ visible_message("[P] reflects off [src]!")
+ return TRUE
\ No newline at end of file
diff --git a/code/modules/antagonists/blob/blob/powers.dm b/code/modules/antagonists/blob/blob/powers.dm
index e49d186362..73c0776ad7 100644
--- a/code/modules/antagonists/blob/blob/powers.dm
+++ b/code/modules/antagonists/blob/blob/powers.dm
@@ -113,12 +113,22 @@
/mob/camera/blob/verb/create_shield_power()
set category = "Blob"
- set name = "Create Shield Blob (15)"
- set desc = "Create a shield blob, which will block fire and is hard to kill."
+ set name = "Create/Upgrade Shield Blob (15)"
+ set desc = "Create a shield blob, which will block fire and is hard to kill. Using this on an existing shield blob turns it into a reflective blob, capable of reflecting most projectiles but making it much weaker than usual to brute attacks."
create_shield()
/mob/camera/blob/proc/create_shield(turf/T)
- createSpecial(15, /obj/structure/blob/shield, 0, 0, T)
+ var/obj/structure/blob/shield/S = locate(/obj/structure/blob/shield) in T
+ if(S)
+ if(!can_buy(15))
+ return
+ if(S.obj_integrity < S.max_integrity * 0.5)
+ to_chat(src, "This shield blob is too damaged to be modified properly!")
+ return
+ to_chat(src, "You secrete a reflective ooze over the shield blob, allowing it to reflect projectiles at the cost of reduced intregrity.")
+ S.change_to(/obj/structure/blob/shield/reflective, src)
+ else
+ createSpecial(15, /obj/structure/blob/shield, 0, 0, T)
/mob/camera/blob/verb/create_resource()
set category = "Blob"
@@ -359,7 +369,7 @@
to_chat(src, "You can expand, which will attack people, damage objects, or place a Normal Blob if the tile is clear.")
to_chat(src, "Normal Blobs will expand your reach and can be upgraded into special blobs that perform certain functions.")
to_chat(src, "You can upgrade normal blobs into the following types of blob:")
- to_chat(src, "Shield Blobs are strong and expensive blobs which take more damage. In additon, they are fireproof and can block air, use these to protect yourself from station fires.")
+ to_chat(src, "Shield Blobs are strong and expensive blobs which take more damage. In additon, they are fireproof and can block air, use these to protect yourself from station fires. Upgrading them again will result in a reflective blob, capable of reflecting most projectiles at the cost of the strong blob's extra health.")
to_chat(src, "Resource Blobs are blobs which produce more resources for you, build as many of these as possible to consume the station. This type of blob must be placed near node blobs or your core to work.")
to_chat(src, "Factory Blobs are blobs that spawn blob spores which will attack nearby enemies. This type of blob must be placed near node blobs or your core to work.")
to_chat(src, "Blobbernauts can be produced from factories for a cost, and are hard to kill, powerful, and moderately smart. The factory used to create one will become fragile and briefly unable to produce spores.")
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm b/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm
index bf4ae4b6b5..3a6b4efedb 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm
@@ -128,7 +128,7 @@
/mob/living/carbon/human/ShowAsPaleExamine()
// Check for albino, as per human/examine.dm's check.
- if(skin_tone == "albino")
+ if(dna.species.use_skintones && skin_tone == "albino")
return TRUE
return ..() // Return vamp check
diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
index febf53c324..97b4437298 100644
--- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
+++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
@@ -183,7 +183,7 @@
BuyPower(new /datum/action/bloodsucker/masquerade)
BuyPower(new /datum/action/bloodsucker/veil)
// Traits
- for (var/T in defaultTraits)
+ for(var/T in defaultTraits)
ADD_TRAIT(owner.current, T, "bloodsucker")
if(HAS_TRAIT(owner.current, TRAIT_TOXINLOVER)) //No slime bonuses here, no thank you
had_toxlover = TRUE
@@ -200,10 +200,10 @@
var/mob/living/carbon/human/H = owner.current
var/datum/species/S = H.dna.species
// Make Changes
- S.brutemod *= 0.5 // <-------------------- Start small, but burn mod increases based on rank!
- S.coldmod = 0
- S.stunmod *= 0.25
- S.siemens_coeff *= 0.75 //base electrocution coefficient 1
+ H.physiology.brute_mod *= 0.8 // <-------------------- Start small, but burn mod increases based on rank!
+ H.physiology.cold_mod = 0
+ H.physiology.stun_mod *= 0.35
+ H.physiology.siemens_coeff *= 0.75 //base electrocution coefficient 1
//S.heatmod += 0.5 // Heat shouldn't affect. Only Fire.
//S.punchstunthreshold = 8 //damage at which punches from this race will stun 9
S.punchdamagelow += 1 //lowest possible punch damage 0
@@ -319,12 +319,10 @@ datum/antagonist/bloodsucker/proc/SpendRank()
if(ishuman(owner.current))
var/mob/living/carbon/human/H = owner.current
var/datum/species/S = H.dna.species
- S.burnmod *= 0.025 // Slightly more burn damage
- S.stunmod *= 0.95 // Slightly less stun time.
S.punchdamagelow += 0.5
S.punchdamagehigh += 0.5 // NOTE: This affects the hitting power of Brawn.
// More Health
- owner.current.setMaxHealth(owner.current.maxHealth + 5)
+ owner.current.setMaxHealth(owner.current.maxHealth + 10)
// Vamp Stats
regenRate += 0.05 // Points of brute healed (starts at 0.3)
feedAmount += 2 // Increase how quickly I munch down vics (15)
diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm
index f73912d0f5..3493622945 100644
--- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm
+++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm
@@ -275,7 +275,7 @@
// All done!
if(convert_progress <= 0)
// FAIL: Can't be Vassal
- if(!SSticker.mode.can_make_vassal(target, user, display_warning=FALSE) && HAS_TRAIT(target, TRAIT_MINDSHIELD)) // If I'm an unconvertable Antag ONLY
+ if(!SSticker.mode.can_make_vassal(target, user, display_warning=FALSE) || HAS_TRAIT(target, TRAIT_MINDSHIELD)) // If I'm an unconvertable Antag ONLY
to_chat(user, "[target] doesn't respond to your persuasion. It doesn't appear they can be converted to follow you, they either have a mindshield or their external loyalties are too difficult for you to break.\[ALT+click to release\]")
convert_progress ++ // Pop it back up some. Avoids wasting Blood on a lost cause.
// SUCCESS: All done!
diff --git a/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm b/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm
index bd986bac25..05f11294de 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm
@@ -345,3 +345,8 @@
if(!power_amount)
power_amount = -(CLOCKCULT_POWER_UNIT*0.02)
return ..()
+
+
+// Winter coat
+/obj/item/clothing/suit/hooded/wintercoat/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent) //four sheets of metal
+ return list("operation_time" = 30, "new_obj_type" = /obj/item/clothing/suit/hooded/wintercoat/ratvar, "power_cost" = POWER_METAL * 4, "spawn_dir" = SOUTH)
diff --git a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm
index 0365ae63af..501bcdc1c4 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)
+ T.ChangeTurf(new_thing_type, flags = CHANGETURF_INHERIT_AIR)
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 32b1b61dd1..d823f19d4a 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)
+ T.PlaceOnTop(/turf/open/floor/clockwork, flags = CHANGETURF_INHERIT_AIR)
new /obj/structure/falsewall/brass(T)
qdel(src)
else
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index a833aa8a94..794010d9c0 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -585,6 +585,12 @@
new /obj/item/stack/sheet/runed_metal(T,quantity)
to_chat(user, "A dark cloud emanates from you hand and swirls around the plasteel, transforming it into runed metal!")
SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25))
+ if(istype(target, /obj/item/clothing/suit/hooded/wintercoat) && target.type != /obj/item/clothing/suit/hooded/wintercoat/narsie)
+ if (do_after(user,30,target=target))
+ new /obj/item/clothing/suit/hooded/wintercoat/narsie(T)
+ qdel(target)
+ to_chat(user, "A dark cloud emanates from you hand and swirls around [target], transforming it into a narsian winter coat!")
+ SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25))
else if(istype(target,/mob/living/silicon/robot))
var/mob/living/silicon/robot/candidate = target
if(candidate.mmi)
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
index f38f379abe..6f340b9271 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)
+ T.PlaceOnTop(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR)
else
- T.ChangeTurf(/turf/open/floor/engine/cult)
+ T.ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR)
else
var/turf/open/floor/engine/cult/F = safepick(cultturfs)
if(F)
diff --git a/code/modules/antagonists/nukeop/clownop.dm b/code/modules/antagonists/nukeop/clownop.dm
index 43e62c4638..58b492b578 100644
--- a/code/modules/antagonists/nukeop/clownop.dm
+++ b/code/modules/antagonists/nukeop/clownop.dm
@@ -5,6 +5,14 @@
antagpanel_category = "ClownOp"
nukeop_outfit = /datum/outfit/syndicate/clownop
+/datum/antagonist/nukeop/clownop/on_gain()
+ . = ..()
+ ADD_TRAIT(owner, TRAIT_CLOWN_MENTALITY, NUKEOP_ANTAGONIST)
+
+/datum/antagonist/nukeop/clownop/on_removal()
+ REMOVE_TRAIT(owner, TRAIT_CLOWN_MENTALITY, NUKEOP_ANTAGONIST)
+ return ..()
+
/datum/antagonist/nukeop/leader/clownop
name = "Clown Operative Leader"
roundend_category = "clown operatives"
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
index 0a223f8b10..b5ce5538e9 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
@@ -76,9 +76,10 @@ 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
- 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.")
+ 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.")
SSblackbox.record_feedback("amount", "nuclear_challenge_mode", 1)
qdel(src)
@@ -101,12 +102,13 @@ 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.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.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
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 ac19df3631..40d1712bc3 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -80,6 +80,8 @@
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
@@ -180,7 +182,7 @@
destroy_objective.owner = owner
destroy_objective.find_target()
add_objective(destroy_objective)
- else if(prob(30))
+ else if(prob(30) || (mode.storyteller.flags & NO_ASSASSIN))
var/datum/objective/maroon/maroon_objective = new
maroon_objective.owner = owner
maroon_objective.find_target()
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 6b87278e00..2ac3b34f60 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -39,7 +39,7 @@
if(flash)
add_overlay(flashing_overlay)
attached_overlays += flashing_overlay
- addtimer(CALLBACK(src, .proc/update_icon), 5)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 5)
if(holder)
holder.update_icon()
@@ -308,7 +308,7 @@
else if(flash)
icon_state = "flashshield_flash"
item_state = "flashshield_flash"
- addtimer(CALLBACK(src, .proc/update_icon), 5)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 5)
if(holder)
holder.update_icon()
diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm
index 19f3f58708..db8a8e90ad 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)
- 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])")
+ 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]).")
pipenetwarnings -= 1
if(pipenetwarnings == 0)
- warning("build_pipeline(): further messages about pipenets will be suppressed")
+ log_mapping("build_pipeline(): further messages about pipenets will be suppressed")
members += item
possible_expansions += item
@@ -154,11 +154,6 @@
var/partial_heat_capacity = total_heat_capacity*(share_volume/air.volume)
var/target_temperature
var/target_heat_capacity
- // first calculate heat from radiation. there's an implied "* 1 tick" here.
- // 0.05 magic multiplicand is, first, 0.1 deciseconds; second, half of the radiation's going right back into the gas.
- var/share_constant = STEFANBOLTZMANN*(share_volume**(2/3))*0.05
- // Minimizing temp to 4 billion is mostly to prevent -infinity temperatures.
- var/heat = share_constant*(min(air.temperature,4000000000)**4)
if(isopenturf(target))
@@ -170,8 +165,8 @@
if((modeled_location.heat_capacity>0) && (partial_heat_capacity>0))
var/delta_temperature = air.temperature - target_temperature
- heat -= share_constant*(min(target_temperature,4000000000)**4)
- heat += thermal_conductivity*delta_temperature* \
+
+ var/heat = thermal_conductivity*delta_temperature* \
(partial_heat_capacity*target_heat_capacity/(partial_heat_capacity+target_heat_capacity))
air.temperature -= heat/total_heat_capacity
@@ -188,8 +183,7 @@
var/sharer_temperature_delta = 0
if((sharer_heat_capacity>0) && (partial_heat_capacity>0))
- heat -= share_constant*(min(target_temperature,4000000000)**4)
- heat += thermal_conductivity*delta_temperature* \
+ var/heat = thermal_conductivity*delta_temperature* \
(partial_heat_capacity*sharer_heat_capacity/(partial_heat_capacity+sharer_heat_capacity))
self_temperature_delta = -heat/total_heat_capacity
@@ -205,12 +199,10 @@
if((target.heat_capacity>0) && (partial_heat_capacity>0))
var/delta_temperature = air.temperature - target.temperature
- heat -= share_constant*(min(target.temperature,4000000000)**4)
- heat += thermal_conductivity*delta_temperature* \
+ var/heat = thermal_conductivity*delta_temperature* \
(partial_heat_capacity*target.heat_capacity/(partial_heat_capacity+target.heat_capacity))
air.temperature -= heat/total_heat_capacity
- air.temperature = CLAMP(air.temperature,TCMB,INFINITY) // i have no idea why TCMB needs to be the min but i ain't changing it
update = TRUE
/datum/pipeline/proc/return_air()
diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm
index d0c78d21b3..329c77ba14 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)
+ if(!(target?.flags_1 & INITIALIZED_1))
icon_state = "meterX"
return 0
diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm
index 79aa957d97..b087859a47 100644
--- a/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm
+++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm
@@ -26,7 +26,9 @@
var/turf/T = loc
if(istype(T))
- if(T.blocks_air)
+ if(islava(T))
+ environment_temperature = 5000
+ else if(T.blocks_air)
environment_temperature = T.temperature
else
var/turf/open/OT = T
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 0d5fa6bc8a..34886c5b27 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -29,6 +29,7 @@
var/show_flavour = TRUE
var/banType = "lavaland"
var/ghost_usable = TRUE
+ var/skip_reentry_check = FALSE //Skips the ghost role blacklist time for people who ghost/suicide/cryo
//ATTACK GHOST IGNORING PARENT RETURN VALUE
/obj/effect/mob_spawn/attack_ghost(mob/user, latejoinercalling)
@@ -44,7 +45,7 @@
return
if(isobserver(user))
var/mob/dead/observer/O = user
- if(!O.can_reenter_round())
+ if(!O.can_reenter_round() && !skip_reentry_check)
return FALSE
var/ghost_role = alert(latejoinercalling ? "Latejoin as [mob_name]? (This is a ghost role, and as such, it's very likely to be off-station.)" : "Become [mob_name]? (Warning, You can no longer be cloned!)",,"Yes","No")
if(ghost_role == "No" || !loc)
diff --git a/code/modules/buildmode/submodes/basic.dm b/code/modules/buildmode/submodes/basic.dm
index 4f7b176691..fe3d831d81 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)
+ T.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
else if(isplatingturf(object))
- T.PlaceOnTop(/turf/open/floor/plasteel)
+ T.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR)
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()
+ T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
else if(isobj(object))
qdel(object)
return
diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm
index 7b78facf00..1b4ebd6c1a 100644
--- a/code/modules/cargo/gondolapod.dm
+++ b/code/modules/cargo/gondolapod.dm
@@ -29,7 +29,7 @@
name = linked_pod.name
. = ..()
-/mob/living/simple_animal/pet/gondola/gondolapod/proc/update_icon()
+/mob/living/simple_animal/pet/gondola/gondolapod/update_icon_state()
if(opened)
icon_state = "gondolapod_open"
else
diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm
index aa680e1b1e..29133b78d2 100644
--- a/code/modules/cargo/packs/misc.dm
+++ b/code/modules/cargo/packs/misc.dm
@@ -13,17 +13,16 @@
//////////////////// Paperwork and Writing Supplies //////////////////////////
//////////////////////////////////////////////////////////////////////////////
-/* I did it Kevin
/datum/supply_pack/misc/abandonedcrate
- name = "Abandoned Crate"
- desc = "Someone keeps finding these locked crates out in the boonies. How about you take a crack at it, we've had our fill. WARNING: EXPLOSIVE"
+ name = "Loot Box"
+ desc = "Try your luck with these highly secure loot boxes! Solve the lock, win great prizes! WARNING: EXPLOSIVE FAILURE."
contraband = TRUE
- cost = 12800
+ cost = 15000
contains = list(/obj/structure/closet/crate/secure/loot)
crate_name = "abandoned crate"
crate_type = /obj/structure/closet/crate/large
dangerous = TRUE
-*/
+
/datum/supply_pack/misc/artsupply
name = "Art Supplies"
desc = "Make some happy little accidents with six canvasses, two easels, two boxes of crayons, and a rainbow crayon!"
diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm
index a54584d6cc..ae9932e96f 100644
--- a/code/modules/client/client_defines.dm
+++ b/code/modules/client/client_defines.dm
@@ -79,4 +79,8 @@
var/client_keysend_amount = 0
var/next_keysend_reset = 0
var/next_keysend_trip_reset = 0
- var/keysend_tripped = FALSE
\ No newline at end of file
+ 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 284d442413..96a32d50e6 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -103,6 +103,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"legs" = "Plantigrade",
"insect_wings" = "Plain",
"insect_fluff" = "None",
+ "insect_markings" = "None",
"mcolor2" = "FFF",
"mcolor3" = "FFF",
"mam_body_markings" = "Plain",
@@ -194,6 +195,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/auto_fit_viewport = TRUE
var/uplink_spawn_loc = UPLINK_PDA
+
+ var/sprint_spacebar = FALSE
+ var/sprint_toggle = FALSE
var/list/exp = list()
var/list/menuoptions
@@ -244,6 +248,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Character Appearance"
dat += "Loadout"
dat += "Game Preferences"
+ dat += "Content Preferences"
if(!path)
dat += "Please create an account to save your preferences
"
@@ -620,6 +625,19 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "[features["taur"]]"
+ if("insect_markings" in pref_species.default_features)
+ if(!mutant_category)
+ dat += APPEARANCE_CATEGORY_COLUMN
+
+ dat += "Insect markings
"
+
+ dat += "[features["insect_markings"]]
"
+
+ mutant_category++
+ if(mutant_category >= MAX_MUTANT_ROWS)
+ dat += ""
+ mutant_category = 0
+
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
dat += ""
@@ -707,13 +725,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += ""
+ if(4) // Content preferences
+ dat += ""
+ dat += "Fetish content prefs"
+ dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"] "
+ dat += "Voracious MediHound sleepers: [(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"] "
+ dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"] "
+ dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"] "
+ dat += "Forced Feminization: [(cit_toggles & FORCED_FEM) ? "Allowed" : "Disallowed"] "
+ dat += "Forced Masculinization: [(cit_toggles & FORCED_MASC) ? "Allowed" : "Disallowed"] "
+ dat += "Lewd Hypno: [(cit_toggles & HYPNO) ? "Allowed" : "Disallowed"] "
+ dat += " | "
+ dat +=""
+ dat += "Other content prefs"
+ dat += "Breast Enlargement: [(cit_toggles & BREAST_ENLARGEMENT) ? "Allowed" : "Disallowed"] "
+ dat += "Penis Enlargement: [(cit_toggles & PENIS_ENLARGEMENT) ? "Allowed" : "Disallowed"] "
+ dat += "Hypno: [(cit_toggles & NEVER_HYPNO) ? "Disallowed" : "Allowed"] "
+ dat += "Aphrodisiacs: [(cit_toggles & NO_APHRO) ? "Disallowed" : "Allowed"] "
+ dat += "Ass Slapping: [(cit_toggles & NO_ASS_SLAP) ? "Disallowed" : "Allowed"] "
+ dat += " "
+
dat += " "
@@ -1743,6 +1779,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_insect_fluff)
features["insect_fluff"] = new_insect_fluff
+ if("insect_markings")
+ var/new_insect_markings
+ new_insect_markings = input(user, "Choose your character's markings:", "Character Preference") as null|anything in GLOB.insect_markings_list
+ if(new_insect_markings)
+ features["insect_markings"] = new_insect_markings
+
if("s_tone")
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones
if(new_s_tone)
@@ -2016,8 +2058,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["genitals_use_skintone"] = !features["genitals_use_skintone"]
if("arousable")
arousable = !arousable
- if("lewdchem")
- lewdchem = !lewdchem
if("has_cock")
features["has_cock"] = !features["has_cock"]
if(features["has_cock"] == FALSE)
@@ -2049,6 +2089,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
user.client.change_view(CONFIG_GET(string/default_view))
if("autostand")
autostand = !autostand
+ if("auto_ooc")
+ auto_ooc = !auto_ooc
if ("screenshake")
var/desiredshake = input(user, "Set the amount of screenshake you want. \n(0 = disabled, 100 = full, 200 = maximum.)", "Character Preference", screenshake) as null|num
if (!isnull(desiredshake))
@@ -2164,6 +2206,31 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("toggledigestionnoise")
cit_toggles ^= DIGESTION_NOISES
+
+ if("breast_enlargement")
+ cit_toggles ^= BREAST_ENLARGEMENT
+
+ if("penis_enlargement")
+ cit_toggles ^= PENIS_ENLARGEMENT
+
+ if("feminization")
+ cit_toggles ^= FORCED_FEM
+
+ if("masculinization")
+ cit_toggles ^= FORCED_MASC
+
+ if("hypno")
+ cit_toggles ^= HYPNO
+
+ if("never_hypno")
+ cit_toggles ^= NEVER_HYPNO
+
+ if("aphro")
+ cit_toggles ^= NO_APHRO
+
+ if("ass_slap")
+ cit_toggles ^= NO_ASS_SLAP
+
//END CITADEL EDIT
if("ambientocclusion")
@@ -2177,6 +2244,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(auto_fit_viewport && parent)
parent.fit_viewport()
+ if("sprint_key")
+ sprint_spacebar = !sprint_spacebar
+
+ if("sprint_toggle")
+ sprint_toggle = !sprint_toggle
+
if("save")
save_preferences()
save_character()
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index f7f49a66af..d78b9fe6fd 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -167,6 +167,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["parallax"] >> parallax
S["ambientocclusion"] >> ambientocclusion
S["auto_fit_viewport"] >> auto_fit_viewport
+ S["sprint_spacebar"] >> sprint_spacebar
+ S["sprint_toggle"] >> sprint_toggle
S["menuoptions"] >> menuoptions
S["enable_tips"] >> enable_tips
S["tip_delay"] >> tip_delay
@@ -181,8 +183,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["widescreenpref"] >> widescreenpref
S["autostand"] >> autostand
S["cit_toggles"] >> cit_toggles
- S["lewdchem"] >> lewdchem
S["preferred_chaos"] >> preferred_chaos
+ S["auto_ooc"] >> auto_ooc
//try to fix any outdated data if necessary
@@ -204,6 +206,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, null)
ambientocclusion = sanitize_integer(ambientocclusion, 0, 1, initial(ambientocclusion))
auto_fit_viewport = sanitize_integer(auto_fit_viewport, 0, 1, initial(auto_fit_viewport))
+ sprint_spacebar = sanitize_integer(sprint_spacebar, 0, 1, initial(sprint_spacebar))
+ sprint_toggle = sanitize_integer(sprint_toggle, 0, 1, initial(sprint_toggle))
ghost_form = sanitize_inlist(ghost_form, GLOB.ghost_forms, initial(ghost_form))
ghost_orbit = sanitize_inlist(ghost_orbit, GLOB.ghost_orbits, initial(ghost_orbit))
ghost_accs = sanitize_inlist(ghost_accs, GLOB.ghost_accs_options, GHOST_ACCS_DEFAULT_OPTION)
@@ -219,7 +223,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
widescreenpref = sanitize_integer(widescreenpref, 0, 1, initial(widescreenpref))
autostand = sanitize_integer(autostand, 0, 1, initial(autostand))
cit_toggles = sanitize_integer(cit_toggles, 0, 65535, initial(cit_toggles))
-
+ auto_ooc = sanitize_integer(auto_ooc, 0, 1, initial(auto_ooc))
return 1
@@ -264,6 +268,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["parallax"], parallax)
WRITE_FILE(S["ambientocclusion"], ambientocclusion)
WRITE_FILE(S["auto_fit_viewport"], auto_fit_viewport)
+ WRITE_FILE(S["sprint_spacebar"], sprint_spacebar)
+ WRITE_FILE(S["sprint_toggle"], sprint_toggle)
WRITE_FILE(S["menuoptions"], menuoptions)
WRITE_FILE(S["enable_tips"], enable_tips)
WRITE_FILE(S["tip_delay"], tip_delay)
@@ -278,8 +284,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["widescreenpref"], widescreenpref)
WRITE_FILE(S["autostand"], autostand)
WRITE_FILE(S["cit_toggles"], cit_toggles)
- WRITE_FILE(S["lewdchem"], lewdchem)
WRITE_FILE(S["preferred_chaos"], preferred_chaos)
+ WRITE_FILE(S["auto_ooc"], auto_ooc)
return 1
@@ -366,9 +372,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_lizard_legs"] >> features["legs"]
S["feature_human_tail"] >> features["tail_human"]
S["feature_human_ears"] >> features["ears"]
+ S["feature_deco_wings"] >> features["deco_wings"]
S["feature_insect_wings"] >> features["insect_wings"]
- S["feature_deco_wings"] >> features["deco_wings"]
S["feature_insect_fluff"] >> features["insect_fluff"]
+ S["feature_insect_markings"] >> features["insect_markings"]
//Custom names
for(var/custom_name_id in GLOB.preferences_custom_names)
@@ -503,9 +510,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list)
features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list)
features["feature_lizard_legs"] = sanitize_inlist(features["legs"], GLOB.legs_list)
- features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list)
features["deco_wings"] = sanitize_inlist(features["deco_wings"], GLOB.deco_wings_list, "None")
features["insect_fluff"] = sanitize_inlist(features["insect_fluff"], GLOB.insect_fluffs_list)
+ features["insect_markings"] = sanitize_inlist(features["insect_markings"], GLOB.insect_markings_list, "None")
+ features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list)
joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole))
//Validate job prefs
@@ -515,6 +523,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
all_quirks = SANITIZE_LIST(all_quirks)
+ for(var/V in all_quirks) // quirk migration
+ switch(V)
+ if("Acute hepatic pharmacokinesis")
+ DISABLE_BITFIELD(cit_toggles, PENIS_ENLARGEMENT)
+ DISABLE_BITFIELD(cit_toggles, BREAST_ENLARGEMENT)
+ ENABLE_BITFIELD(cit_toggles,FORCED_FEM)
+ ENABLE_BITFIELD(cit_toggles,FORCED_MASC)
+ all_quirks -= V
+ if("Crocin Immunity")
+ ENABLE_BITFIELD(cit_toggles,NO_APHRO)
+ all_quirks -= V
+ if("Buns of Steel")
+ ENABLE_BITFIELD(cit_toggles,NO_ASS_SLAP)
+ all_quirks -= V
+
cit_character_pref_load(S)
return 1
@@ -570,11 +593,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_lizard_spines"] , features["spines"])
WRITE_FILE(S["feature_lizard_body_markings"] , features["body_markings"])
WRITE_FILE(S["feature_lizard_legs"] , features["legs"])
- WRITE_FILE(S["feature_insect_wings"] , features["insect_wings"])
WRITE_FILE(S["feature_deco_wings"] , features["deco_wings"])
+ WRITE_FILE(S["feature_insect_wings"] , features["insect_wings"])
WRITE_FILE(S["feature_insect_fluff"] , features["insect_fluff"])
+ WRITE_FILE(S["feature_insect_markings"] , features["insect_markings"])
WRITE_FILE(S["feature_meat"] , features["meat_type"])
+
//Custom names
for(var/custom_name_id in GLOB.preferences_custom_names)
var/savefile_slot_name = custom_name_id + "_name" //TODO remove this
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index dc9e46c4b4..d9e967e54d 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -22,7 +22,6 @@
var/cooldown = 0
var/obj/item/flashlight/F = null
var/can_flashlight = 0
- var/scan_reagents = 0 //Can the wearer see reagents while it's equipped?
var/blocks_shove_knockdown = FALSE //Whether wearing the clothing item blocks the ability for shove to knock down.
@@ -47,6 +46,17 @@
//Add a "exclude" string to do the opposite, making it only only species listed that can't wear it.
//You append this to clothing objects.
+ //Polychrome stuff:
+ var/hasprimary = FALSE //These vars allow you to choose which overlays a clothing has
+ var/hassecondary = FALSE
+ var/hastertiary = FALSE
+ var/primary_color = "#FFFFFF" //RGB in hexcode
+ var/secondary_color = "#FFFFFF"
+ var/tertiary_color = "#808080"
+
+ //No idea what this is but eh -tori
+ var/force_alternate_icon = FALSE
+
/obj/item/clothing/Initialize()
. = ..()
@@ -54,6 +64,8 @@
actions_types += /datum/action/item_action/toggle_voice_box
if(ispath(pocket_storage_component_path))
LoadComponent(pocket_storage_component_path)
+ if(hasprimary | hassecondary | hastertiary) //Checks if polychrome is enabled
+ update_icon() //Applies the overlays and default colors onto the clothes on spawn.
/obj/item/clothing/MouseDrop(atom/over_object)
. = ..()
@@ -138,6 +150,8 @@
how_cool_are_your_threads += "Adding or removing items from [src] makes no noise.\n"
how_cool_are_your_threads += ""
. += how_cool_are_your_threads.Join()
+ if(hasprimary | hassecondary | hastertiary) //Checks if polychrome is enabled
+ . += "Alt-click to recolor it."
/obj/item/clothing/obj_break(damage_flag)
if(!damaged_clothes)
@@ -260,6 +274,56 @@ BLIND // can't see anything
remove_accessory(user)
else
rolldown()
+ // Polychrome stuff:
+ if(hasprimary | hassecondary | hastertiary)
+ var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays
+ switch(choice) //Lets the list's options actually lead to something
+ if("Primary Color")
+ var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it.
+ if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL.
+ primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly
+ update_icon() //updates the item icon
+ user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works.
+ if("Secondary Color")
+ var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null
+ if(secondary_color_input)
+ secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1)
+ update_icon()
+ user.regenerate_icons()
+ if("Tertiary Color")
+ var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null
+ if(tertiary_color_input)
+ tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1)
+ update_icon()
+ user.regenerate_icons()
+ return TRUE
+
+/obj/item/clothing/neck/AltClick(mob/user)
+ . = ..()
+ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ return
+ // Polychrome stuff:
+ if(hasprimary | hassecondary | hastertiary)
+ var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays
+ switch(choice) //Lets the list's options actually lead to something
+ if("Primary Color")
+ var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it.
+ if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL.
+ primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly
+ update_icon() //updates the item icon
+ user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works.
+ if("Secondary Color")
+ var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null
+ if(secondary_color_input)
+ secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1)
+ update_icon()
+ user.regenerate_icons()
+ if("Tertiary Color")
+ var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null
+ if(tertiary_color_input)
+ tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1)
+ update_icon()
+ user.regenerate_icons()
return TRUE
/obj/item/clothing/under/verb/jumpsuit_adjust()
@@ -377,3 +441,18 @@ BLIND // can't see anything
return FALSE
return TRUE
+
+/obj/item/clothing/update_icon() // Polychrome stuff
+ ..()
+ if(hasprimary) //Checks if the overlay is enabled
+ var/mutable_appearance/primary_overlay = mutable_appearance(icon, "[item_color]-primary") //Automagically picks overlays
+ primary_overlay.color = primary_color //Colors the greyscaled overlay
+ add_overlay(primary_overlay) //Applies the coloured overlay onto the item sprite. but NOT the mob sprite.
+ if(hassecondary)
+ var/mutable_appearance/secondary_overlay = mutable_appearance(icon, "[item_color]-secondary")
+ secondary_overlay.color = secondary_color
+ add_overlay(secondary_overlay)
+ if(hastertiary)
+ var/mutable_appearance/tertiary_overlay = mutable_appearance(icon, "[item_color]-tertiary")
+ tertiary_overlay.color = tertiary_color
+ add_overlay(tertiary_overlay)
\ No newline at end of file
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 206165a495..a80cf6fba3 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -54,6 +54,9 @@
H.blur_eyes(5)
eyes.applyOrganDamage(5)
+/obj/item/clothing/glasses/proc/ranged_attack(mob/living/carbon/human/user,atom/A, params)
+ return FALSE
+
/obj/item/clothing/glasses/meson
name = "optical meson scanner"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions."
@@ -99,7 +102,7 @@
desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents."
icon_state = "purple"
item_state = "glasses"
- scan_reagents = TRUE //You can see reagents while wearing science goggles
+ clothing_flags = SCAN_REAGENTS //You can see reagents while wearing science goggles
actions_types = list(/datum/action/item_action/toggle_research_scanner)
glass_colour_type = /datum/client_colour/glass_colour/purple
resistance_flags = ACID_PROOF
@@ -203,7 +206,7 @@
/obj/item/clothing/glasses/sunglasses/reagent
name = "beer goggles"
desc = "A pair of sunglasses outfitted with apparatus to scan reagents."
- scan_reagents = TRUE
+ clothing_flags = SCAN_REAGENTS
/obj/item/clothing/glasses/sunglasses/garb
name = "black gar glasses"
@@ -405,7 +408,7 @@
item_state = "godeye"
vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS
darkness_view = 8
- scan_reagents = TRUE
+ clothing_flags = SCAN_REAGENTS
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
resistance_flags = LAVA_PROOF | FIRE_PROOF
diff --git a/code/modules/clothing/glasses/disablerglasses.dm b/code/modules/clothing/glasses/disablerglasses.dm
new file mode 100644
index 0000000000..a46e4c8339
--- /dev/null
+++ b/code/modules/clothing/glasses/disablerglasses.dm
@@ -0,0 +1,15 @@
+/obj/item/clothing/glasses/hud/security/sunglasses/disablers
+ name = "true stunglasses"
+ desc = "Made for only the best of shitsec. Wear 'em like you're gonna robust all of those fuckers."
+ var/beamtype = /obj/item/projectile/beam/disabler //change for adminbus
+
+/obj/item/clothing/glasses/hud/security/sunglasses/disablers/ranged_attack(mob/living/carbon/human/user,atom/A, params)
+ user.changeNext_move(CLICK_CD_RANGE)
+ var/obj/item/projectile/beam/disabler/LE = new beamtype( loc )
+ playsound(usr.loc, 'sound/weapons/taser2.ogg', 75, 1)
+ LE.firer = src
+ LE.def_zone = user.get_organ_target()
+ LE.preparePixelProjectile(A, src, params)
+ LE.fire()
+ return TRUE
+ //shamelessly copied
\ No newline at end of file
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 47706a3e1e..0132fa8596 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -90,7 +90,7 @@
for(var/i in rad_places)
var/turf/place = i
- if(get_dist(user, place) >= range*2) //Rads are easier to see than wires under the floor
+ if(get_dist(user, place) >= range*8) //Rads are easier to see than wires under the floor
continue
var/strength = round(rad_places[i] / 1000, 0.1)
var/image/pic = new(loc = place)
@@ -139,7 +139,6 @@
item_state = "trayson-t-ray"
desc = "Used by engineering staff to see underfloor objects such as cables and pipes."
range = 2
-
modes = list(MODE_NONE = MODE_TRAY, MODE_TRAY = MODE_NONE)
/obj/item/clothing/glasses/meson/engine/tray/prescription
@@ -152,7 +151,6 @@
icon_state = "trayson-shuttle"
item_state = "trayson-shuttle"
desc = "Used to see the boundaries of shuttle regions."
-
modes = list(MODE_NONE = MODE_SHUTTLE, MODE_SHUTTLE = MODE_NONE)
#undef MODE_NONE
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 3d318db761..43c99fe7fd 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -89,12 +89,12 @@
/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot)
. = ..()
- if(user.mind && user.mind.assigned_role == "Clown")
+ if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))
SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "noshoes")
/obj/item/clothing/shoes/clown_shoes/dropped(mob/user)
. = ..()
- if(user.mind && user.mind.assigned_role == "Clown")
+ if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "noshoes", /datum/mood_event/noshoes)
/obj/item/clothing/shoes/clown_shoes/jester
diff --git a/code/modules/clothing/shoes/taeclowndo.dm b/code/modules/clothing/shoes/taeclowndo.dm
index f2bbdf0ceb..7c891dbde4 100644
--- a/code/modules/clothing/shoes/taeclowndo.dm
+++ b/code/modules/clothing/shoes/taeclowndo.dm
@@ -13,7 +13,7 @@
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
- if(!(HAS_TRAIT(H, TRAIT_CLUMSY)) && !(H.mind && H.mind.assigned_role == "Clown"))
+ if(!(HAS_TRAIT(H, TRAIT_CLUMSY)) && !(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY)))
return
if(slot == SLOT_SHOES)
spells = new
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 0d22b16388..bf52b26ae9 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -445,7 +445,7 @@
flash_protect = 0
armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
- scan_reagents = TRUE
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS | SCAN_REAGENTS
/obj/item/clothing/suit/space/hardsuit/medical
icon_state = "hardsuit-medical"
@@ -467,7 +467,7 @@
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80)
var/obj/machinery/doppler_array/integrated/bomb_radar
- scan_reagents = TRUE
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS | SCAN_REAGENTS
actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner)
/obj/item/clothing/head/helmet/space/hardsuit/rd/Initialize()
@@ -590,8 +590,7 @@
/obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot)
if(!..() || !ishuman(M))
return FALSE
- var/mob/living/carbon/human/H = M
- if(H.mind.assigned_role == "Clown")
+ if(M.mind && HAS_TRAIT(M.mind, TRAIT_CLOWN_MENTALITY))
return TRUE
else
return FALSE
@@ -638,7 +637,7 @@
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
- scan_reagents = TRUE
+ 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
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 6548b4e7fe..4e155cd341 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -742,6 +742,7 @@
name = "assistant's formal winter coat"
icon_state = "coataformal"
item_state = "coataformal"
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter,/obj/item/clothing/gloves/color/yellow)
hoodtype = /obj/item/clothing/head/hooded/winterhood/aformal
/obj/item/clothing/head/hooded/winterhood/aformal
@@ -762,7 +763,10 @@
name = "ratvarian winter coat"
icon_state = "coatratvar"
item_state = "coatratvar"
+ armor = list("melee" = 30, "bullet" = 45, "laser" = -10, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/clockwork/replica_fabricator, /obj/item/clockwork/integration_cog, /obj/item/clockwork/slab, /obj/item/clockwork/weapon/ratvarian_spear)
hoodtype = /obj/item/clothing/head/hooded/winterhood/ratvar
+ var/real = TRUE
/obj/item/clothing/head/hooded/winterhood/ratvar
icon_state = "winterhood_ratvar"
@@ -770,15 +774,59 @@
light_power = 1
light_color = "#B18B25" //clockwork slab background top color
+/obj/item/clothing/suit/hooded/wintercoat/ratvar/equipped(mob/living/user,slot)
+ ..()
+ if (slot != SLOT_WEAR_SUIT || !real)
+ return
+ if (is_servant_of_ratvar(user))
+ return
+ else
+ user.dropItemToGround(src)
+ to_chat(user,"\"Amusing that you think you are fit to wear this.\"")
+ to_chat(user,"Your skin burns where the coat touched your skin!")
+ user.adjustFireLoss(rand(10,16))
+
/obj/item/clothing/suit/hooded/wintercoat/narsie
name = "narsian winter coat"
icon_state = "coatnarsie"
item_state = "coatnarsie"
+ armor = list("melee" = 30, "bullet" = 20, "laser" = 30,"energy" = 10, "bomb" = 30, "bio" = 10, "rad" = 10, "fire" = 30, "acid" = 30)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/restraints/legcuffs/bola/cult,/obj/item/melee/cultblade,/obj/item/melee/cultblade/dagger,/obj/item/reagent_containers/glass/beaker/unholywater,/obj/item/cult_shift,/obj/item/flashlight/flare/culttorch,/obj/item/twohanded/cult_spear)
hoodtype = /obj/item/clothing/head/hooded/winterhood/narsie
+ var/real = TRUE
+
+/obj/item/clothing/suit/hooded/wintercoat/narsie/equipped(mob/living/user,slot)
+ ..()
+ if (slot != SLOT_WEAR_SUIT || !real)
+ return
+ if (iscultist(user))
+ return
+ else
+ user.dropItemToGround(src)
+ to_chat(user,"\"You are not fit to wear my follower's coat!\"")
+ to_chat(user,"Sharp spines jab you from within the coat!")
+ user.adjustBruteLoss(rand(10,16))
/obj/item/clothing/head/hooded/winterhood/narsie
icon_state = "winterhood_narsie"
+/obj/item/clothing/suit/hooded/wintercoat/ratvar/fake
+ name = "brass winter coat"
+ icon_state = "coatratvar"
+ item_state = "coatratvar"
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
+ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
+ real = FALSE
+
+/obj/item/clothing/suit/hooded/wintercoat/narsie/fake
+ name = "runed winter coat"
+ icon_state = "coatnarsie"
+ item_state = "coatnarsie"
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
+ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
+ real = FALSE
+
+
/obj/item/clothing/suit/spookyghost
name = "spooky ghost"
desc = "This is obviously just a bedsheet, but maybe try it on?"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 58df911412..177bce672f 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -467,6 +467,33 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
+/obj/item/clothing/under/sundresswhite
+ name = "white sundress"
+ desc = "Makes you want to frolic in a field of lillies."
+ icon_state = "sundress_white"
+ item_color = "sundress_white"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/greendress
+ name = "green dress"
+ desc = "A tight green dress"
+ icon_state = "dress_green"
+ item_color = "dress_green"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/pinkdress
+ name = "pink dress"
+ desc = "A tight pink dress"
+ icon_state = "dress_pink"
+ item_color = "dress_pink"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
/obj/item/clothing/under/captainparade
name = "captain's parade uniform"
desc = "A captain's luxury-wear, for special occasions."
@@ -509,6 +536,24 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
+/obj/item/clothing/under/westernbustle
+ name = "western bustle dress"
+ desc = "Filled with Western fire."
+ icon_state = "western_bustle"
+ item_state = "wcoat"
+ item_color = "western_bustle"
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/flamenco
+ name = "flamenco dress"
+ desc = "Filled with Latin fire."
+ icon_state = "flamenco"
+ item_state = "wcoat"
+ item_color = "flamenco"
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
/obj/item/clothing/under/stripeddress
name = "striped dress"
desc = "Fashion in space."
@@ -529,6 +574,44 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
+/obj/item/clothing/under/flowerdress
+ name = "flower dress"
+ desc = "Lovely dress"
+ icon_state = "flower_dress"
+ item_state = "sailordress"
+ item_color = "flower_dress"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/sweptskirt
+ name = "swept skirt"
+ desc = "Formal skirt"
+ icon_state = "skirt_swept"
+ item_color = "skirt_swept"
+ body_parts_covered = GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/corset
+ name = "black corset"
+ desc = "Nanotrasen is not resposible for any organ damage"
+ icon_state = "corset"
+ item_color = "corset"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/croptop
+ name = "crop top"
+ desc = "We've saved money by giving you half a shirt!"
+ icon_state = "sailor_dress"
+ item_state = "sailordress"
+ item_color = "sailor_dress"
+ body_parts_covered = CHEST|GROIN|ARMS
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
/obj/item/clothing/under/redeveninggown
name = "red evening gown"
desc = "Fancy dress for space bar singers."
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
index 05616337db..97bb4c48bc 100644
--- a/code/modules/clothing/under/pants.dm
+++ b/code/modules/clothing/under/pants.dm
@@ -75,3 +75,34 @@
desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station."
icon_state = "camopants"
item_color = "camopants"
+
+/obj/item/clothing/under/pants/jeanripped
+ name = "ripped jeans"
+ desc = "If you're wearing this you're poor or a rebel"
+ icon_state = "jean_ripped"
+ item_color = "jean_ripped"
+
+/obj/item/clothing/under/pants/jeanshort
+ name = "jean shorts"
+ desc = "These are really just jeans cut in half"
+ icon_state = "jean_shorts"
+ item_color = "jean_shorts"
+
+/obj/item/clothing/under/pants/denimskirt
+ name = "denim skirt"
+ desc = "These are really just a jean leg hole cut from a pair"
+ icon_state = "denim_skirt"
+ item_color = "denim_skirt"
+
+/obj/item/clothing/under/pants/chaps
+ name = "black chaps"
+ body_parts_covered = LEGS
+ desc = "Yeehaw"
+ icon_state = "chaps"
+ item_color = "chaps"
+
+/obj/item/clothing/under/pants/yoga
+ name = "yoga pants"
+ desc = "Comfy!"
+ icon_state = "yoga_pants"
+ item_color = "yoga_pants"
diff --git a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm b/code/modules/clothing/under/polychromic_clothes.dm
similarity index 86%
rename from modular_citadel/code/modules/clothing/under/polychromic_clothes.dm
rename to code/modules/clothing/under/polychromic_clothes.dm
index c0f7a5d639..9649d93eed 100644
--- a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm
+++ b/code/modules/clothing/under/polychromic_clothes.dm
@@ -4,7 +4,7 @@
// Polychromic clothes simply consist of 4 sprites: A base, unrecoloured sprite, and up to 3 greyscaled sprites. //
// In order to add more polychromic clothes, simply create a base sprite, and up to 3 recolourable overlays for it, //
// and then name them as follows: [name], [name]-primary, [name]-secondary, [name]-tertiary. The sprites should //
-// ideally be in 'modular_citadel/icons/polyclothes/item/uniform.dmi' and 'modular_citadel/icons/polyclothes/mob/uniform.dmi' for the //
+// ideally be in 'icons/obj/clothing/uniform.dmi' and 'icons/mob/uniform.dmi' for the //
// worn sprites. After that, copy paste the code from any of the example clothes and //
// change the names around. [name] should go in BOTH icon_state and item_color. You can preset colors and disable //
// any overlays using the self-explainatory vars. //
@@ -15,8 +15,6 @@
/obj/item/clothing/under/polychromic //enables all three overlays to reduce copypasta and defines basic stuff
name = "polychromic suit"
desc = "For when you want to show off your horrible colour coordination skills."
- icon = 'modular_citadel/icons/polyclothes/item/uniform.dmi'
- alternate_worn_icon = 'modular_citadel/icons/polyclothes/mob/uniform.dmi'
icon_state = "polysuit"
item_color = "polysuit"
item_state = "sl_suit"
@@ -27,23 +25,22 @@
secondary_color = "#FFFFFF"
tertiary_color = "#808080"
can_adjust = FALSE
- mutantrace_variation = NO_MUTANTRACE_VARIATION // because I'm too lazy to port these to digi-compatible and to prove a point from /tg/ whining - Pooj
- suit_style = NORMAL_SUIT_STYLE
+ mutantrace_variation = NO_MUTANTRACE_VARIATION //Not all clothes are currently digi-compatible (only the shorts are as of time of writing)
-/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon
+/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file) //this is where the main magic happens.
. = ..()
if(hasprimary | hassecondary | hastertiary)
if(!isinhands) //prevents the worn sprites from showing up if you're just holding them
if(hasprimary) //checks if overlays are enabled
- var/mutable_appearance/primary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-primary") //automagical sprite selection
+ var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary") //automagical sprite selection
primary_worn.color = primary_color //colors the overlay
. += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite.
if(hassecondary)
- var/mutable_appearance/secondary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-secondary")
+ var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary")
secondary_worn.color = secondary_color
. += secondary_worn
if(hastertiary)
- var/mutable_appearance/tertiary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-tertiary")
+ var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[item_color]-tertiary")
tertiary_worn.color = tertiary_color
. += tertiary_worn
@@ -89,6 +86,7 @@
secondary_color = "#808080"
tertiary_color = "#808080"
body_parts_covered = CHEST|GROIN|ARMS
+ mutantrace_variation = MUTANTRACE_VARIATION //to enable digitigrade wearing
/obj/item/clothing/under/polychromic/jumpsuit
name = "polychromic tri-tone jumpsuit"
diff --git a/code/modules/crafting/recipes/recipes_misc.dm b/code/modules/crafting/recipes/recipes_misc.dm
index 70dd4d1370..38ae3560e5 100644
--- a/code/modules/crafting/recipes/recipes_misc.dm
+++ b/code/modules/crafting/recipes/recipes_misc.dm
@@ -358,3 +358,11 @@
time = 100
category = CAT_MISC
always_availible = FALSE // Disabled til learned
+
+/datum/crafting_recipe/coconut_bong
+ name = "Coconut Bong"
+ result = /obj/item/bong/coconut
+ reqs = list(/obj/item/stack/sheet/mineral/bamboo = 2,
+ /obj/item/reagent_containers/food/snacks/grown/coconut = 1)
+ time = 70
+ category = CAT_MISC
\ No newline at end of file
diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm
index 07a399a1b6..00e3698e1e 100644
--- a/code/modules/events/disease_outbreak.dm
+++ b/code/modules/events/disease_outbreak.dm
@@ -37,6 +37,8 @@
continue
if(!H.client)
continue
+ if(HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS))
+ continue
if(H.stat == DEAD)
continue
if(HAS_TRAIT(H, TRAIT_VIRUSIMMUNE)) //Don't pick someone who's virus immune, only for it to not do anything.
diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm
index 8db2d98bf0..a47a8b81b4 100644
--- a/code/modules/events/heart_attack.dm
+++ b/code/modules/events/heart_attack.dm
@@ -9,7 +9,7 @@
/datum/round_event/heart_attack/start()
var/list/heart_attack_contestants = list()
for(var/mob/living/carbon/human/H in shuffle(GLOB.player_list))
- if(!H.client || H.stat == DEAD || H.InCritical() || !H.can_heartattack() || H.has_status_effect(STATUS_EFFECT_EXERCISED) || (/datum/disease/heart_failure in H.diseases) || H.undergoing_cardiac_arrest())
+ if(!H.client || H.stat == DEAD || H.InCritical() || !H.can_heartattack() || H.has_status_effect(STATUS_EFFECT_EXERCISED) || (/datum/disease/heart_failure in H.diseases) || H.undergoing_cardiac_arrest() || HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS))
continue
if(H.satiety <= -60) //Multiple junk food items recently
heart_attack_contestants[H] = 3
diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm
index 2b0c16ebfc..0553f69b5b 100644
--- a/code/modules/events/mass_hallucination.dm
+++ b/code/modules/events/mass_hallucination.dm
@@ -35,4 +35,6 @@
/datum/hallucination/delusion,
/datum/hallucination/oh_yeah)
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
+ if (HAS_TRAIT(C,TRAIT_EXEMPT_HEALTH_EVENTS))
+ continue
new picked_hallucination(C, TRUE)
\ No newline at end of file
diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm
index 901337cd52..8ee943beb9 100644
--- a/code/modules/events/spontaneous_appendicitis.dm
+++ b/code/modules/events/spontaneous_appendicitis.dm
@@ -15,6 +15,8 @@
continue
if(H.stat == DEAD)
continue
+ if (HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS))
+ continue
if(!H.getorgan(/obj/item/organ/appendix)) //Don't give the disease to some who lacks it, only for it to be auto-cured
continue
if(!(MOB_ORGANIC in H.mob_biotypes)) //biotype sleeper bugs strike again, once again making appendicitis pick a target that can't take it
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 8724841643..239273e421 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -55,7 +55,7 @@
mix_filling_color(S)
S.reagents.trans_to(src,min(S.reagents.total_volume, 15)) //limit of 15, we don't want our custom food to be completely filled by just one ingredient with large reagent volume.
foodtype |= S.foodtype
- update_overlays(S)
+ update_snack_overlays(S)
to_chat(user, "You add the [I.name] to the [name].")
update_name(S)
else
@@ -103,7 +103,7 @@
rgbcolor[4] = (customcolor[4]+ingcolor[4])/2
filling_color = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3], rgbcolor[4])
-/obj/item/reagent_containers/food/snacks/customizable/update_overlays(obj/item/reagent_containers/food/snacks/S)
+/obj/item/reagent_containers/food/snacks/customizable/update_snack_overlays(obj/item/reagent_containers/food/snacks/S)
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
if(S.filling_color == "#FFFFFF")
filling.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
@@ -139,7 +139,7 @@
/obj/item/reagent_containers/food/snacks/customizable/initialize_slice(obj/item/reagent_containers/food/snacks/slice, reagents_per_slice)
..()
slice.filling_color = filling_color
- slice.update_overlays(src)
+ slice.update_snack_overlays(src)
/obj/item/reagent_containers/food/snacks/customizable/Destroy()
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index 30a0195555..97e8423e78 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -269,7 +269,7 @@ All foods are distributed among various categories. Use common sense.
trash = null
return
-/obj/item/reagent_containers/food/snacks/proc/update_overlays(obj/item/reagent_containers/food/snacks/S)
+/obj/item/reagent_containers/food/snacks/proc/update_snack_overlays(obj/item/reagent_containers/food/snacks/S)
cut_overlays()
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
if(S.filling_color == "#FFFFFF")
diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm
index 4a4c5ddb88..fb7bcf33b4 100644
--- a/code/modules/food_and_drinks/food/snacks_frozen.dm
+++ b/code/modules/food_and_drinks/food/snacks_frozen.dm
@@ -219,7 +219,7 @@
name = "space cola snowcone"
desc = "Space Cola drizzled over a snowball in a paper cup."
icon_state = "soda_sc"
- list_reagents = list("nutriment" = 1, "space_cola" = 5)
+ list_reagents = list("nutriment" = 1, "cola" = 5)
tastes = list("ice" = 1, "water" = 1, "cola" = 5)
/obj/item/reagent_containers/food/snacks/snowcones/spacemountainwind
@@ -248,4 +248,4 @@
desc = "A very colorful snowball in a paper cup."
icon_state = "rainbow_sc"
list_reagents = list("nutriment" = 5, "laughter" = 25)
- tastes = list("ice" = 1, "water" = 1, "sunlight" = 5, "light" = 5, "slime" = 5, "paint" = 3, "clouds" = 3)
\ No newline at end of file
+ tastes = list("ice" = 1, "water" = 1, "sunlight" = 5, "light" = 5, "slime" = 5, "paint" = 3, "clouds" = 3)
diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm
index 41c906abd1..ae997222ea 100644
--- a/code/modules/food_and_drinks/food/snacks_other.dm
+++ b/code/modules/food_and_drinks/food/snacks_other.dm
@@ -609,4 +609,68 @@
filling_color = "#ECA735"
tastes = list("fried corn" = 1)
foodtype = JUNKFOOD | FRIED
- dunkable = TRUE
\ No newline at end of file
+ dunkable = TRUE
+
+/obj/item/reagent_containers/food/snacks/marshmallow
+ name = "marshmallow"
+ desc = "A marshmallow filled with fluffy marshmallow fluff."
+ icon_state = "marshmallow"
+ list_reagents = list("sugar" = 5, "nutriment" = 2)
+ filling_color = "#fafafa"
+ w_class = WEIGHT_CLASS_TINY
+ tastes = list("marshmallow" = 2)
+ foodtype = SUGAR | JUNKFOOD
+ var/burned = 0
+
+/obj/item/reagent_containers/food/snacks/marshmallow/attackby(obj/item/I, mob/user)
+ switch (I.get_temperature())
+ if (355 to 1500)
+ if (prob(30))
+ burnmallow()
+ if (1500 to 2000)
+ if (prob(50))
+ burnmallow()
+ else
+ burnmallow(TRUE)
+ if (2000 to 3000)
+ if (prob(10))
+ burnmallow()
+ else
+ burnmallow(TRUE)
+ if (3000 to INFINITY)
+ burnmallow(TRUE)
+ return ..()
+
+/obj/item/reagent_containers/food/snacks/marshmallow/proc/burnmallow(reallyburned = FALSE)
+ if (reallyburned && burned == 1)
+ icon_state = "marshmallowrburned"
+ else if (burned == 0)
+ icon_state = "marshmallowburned"
+
+/obj/item/reagent_containers/food/snacks/marshmallow/examine(mob/user)
+ . = ..()
+ if (burned == 2)
+ . += "It looks very burned."
+ if (burned == 1)
+ . += "It looks just right for eating!"
+
+/obj/item/reagent_containers/food/snacks/marshmallow/fire_act(temp,volume)
+ switch (temp)
+ if (355 to 1500)
+ if (prob(30))
+ burnmallow()
+ if (1500 to 2000)
+ if (prob(50))
+ burnmallow()
+ else
+ burnmallow(TRUE)
+ if (2000 to 3000)
+ if (prob(10))
+ burnmallow()
+ else
+ burnmallow(TRUE)
+ if (3000 to 7000)
+ burnmallow(TRUE)
+ if (7000 to INFINITY)
+ burn()
+ ..()
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 13200d0276..de5d577193 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -692,13 +692,13 @@
to_chat(user, "You add the [I] to the [name].")
P.name = initial(P.name)
contents += P
- update_overlays(P)
+ update_snack_overlays(P)
if (P.contents.len)
for(var/V in P.contents)
P = V
P.name = initial(P.name)
contents += P
- update_overlays(P)
+ update_snack_overlays(P)
P = I
clearlist(P.contents)
return
@@ -707,7 +707,7 @@
return O.attackby(I, user, params)
..()
-/obj/item/reagent_containers/food/snacks/pancakes/update_overlays(obj/item/reagent_containers/food/snacks/P)
+/obj/item/reagent_containers/food/snacks/pancakes/update_snack_overlays(obj/item/reagent_containers/food/snacks/P)
var/mutable_appearance/pancake = mutable_appearance(icon, "[P.item_state]_[rand(1,3)]")
pancake.pixel_x = rand(-1,1)
pancake.pixel_y = 3 * contents.len - 1
diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm
index c273690571..6f1e19d5e0 100644
--- a/code/modules/goonchat/browserOutput.dm
+++ b/code/modules/goonchat/browserOutput.dm
@@ -8,6 +8,8 @@ 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
@@ -150,6 +152,18 @@ 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
@@ -158,13 +172,22 @@ 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()
- for(var/i in connectionHistory.len to 1 step -1)
+ 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
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 abd05d29ed..823ad107d2 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
}
}
-
- if (opts.clientData.length >= opts.clientDataLimit) {
+ //Lets make sure we obey our limit (can connect from server with higher limit)
+ while (opts.clientData.length >= opts.clientDataLimit) {
opts.clientData.shift();
}
} else {
diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm
index 889706744a..d551222836 100644
--- a/code/modules/holodeck/computer.dm
+++ b/code/modules/holodeck/computer.dm
@@ -59,9 +59,7 @@
return
var/area/AS = get_area(src)
if(istype(AS, /area/holodeck))
- log_world("### MAPPING ERROR")
- log_world("Holodeck computer cannot be in a holodeck.")
- log_world("This would cause circular power dependency.")
+ log_mapping("Holodeck computer cannot be in a holodeck, This would cause circular power dependency.")
qdel(src)
return
else
diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm
index 3574f8a9c1..7b5b0586d1 100644
--- a/code/modules/holodeck/turfs.dm
+++ b/code/modules/holodeck/turfs.dm
@@ -111,11 +111,10 @@
/turf/open/floor/holofloor/carpet/Initialize()
. = ..()
- addtimer(CALLBACK(src, .proc/update_icon), 1)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 1)
/turf/open/floor/holofloor/carpet/update_icon()
- if(!..())
- return 0
+ . = ..()
if(intact)
queue_smooth(src)
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 3376bac1cc..77199b3496 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -240,7 +240,7 @@
dat += " |
"
else
dat += "No trait-related genes detected in sample.
"
- if(can_insert && istype(disk.gene, /datum/plant_gene/trait))
+ if(can_insert && istype(disk.gene, /datum/plant_gene/trait) && !seed.is_gene_forbidden(disk.gene.type))
dat += "Insert: [disk.gene.get_name()]"
dat += ""
else
diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm
index beecb258a7..b7c9550bb9 100644
--- a/code/modules/hydroponics/grown/flowers.dm
+++ b/code/modules/hydroponics/grown/flowers.dm
@@ -148,7 +148,7 @@
icon_grow = "sunflower-grow"
icon_dead = "sunflower-dead"
mutatelist = list(/obj/item/seeds/sunflower/moonflower, /obj/item/seeds/sunflower/novaflower)
- reagents_add = list("cornoil" = 0.08, "nutriment" = 0.04)
+ reagents_add = list("cooking_oil" = 0.08, "nutriment" = 0.04)
/obj/item/grown/sunflower // FLOWER POWER!
seed = /obj/item/seeds/sunflower
@@ -316,4 +316,4 @@
filling_color = "#FF6347"
bitesize_mod = 8
tastes = list("wax" = 1)
- foodtype = SUGAR
\ No newline at end of file
+ foodtype = SUGAR
diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm
index 8fc141e152..02b36d6a3f 100644
--- a/code/modules/hydroponics/grown/grass_carpet.dm
+++ b/code/modules/hydroponics/grown/grass_carpet.dm
@@ -27,7 +27,7 @@
bitesize_mod = 2
var/stacktype = /obj/item/stack/tile/grass
var/tile_coefficient = 0.02 // 1/50
- wine_power = 15
+ distill_reagent = /datum/reagent/consumable/ethanol/beer/light
/obj/item/reagent_containers/food/snacks/grown/grass/attack_self(mob/user)
to_chat(user, "You prepare the astroturf.")
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index b37e494233..3af284974e 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -232,7 +232,7 @@
/obj/item/reagent_containers/food/snacks/grown/cherry_bomb/proc/detonate()
reagents.chem_temp = 1000 //Sets off the black powder
reagents.handle_reactions()
-
+
// Lavaland cactus
/obj/item/seeds/lavaland/cactus
@@ -244,3 +244,279 @@
product = /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
growthstages = 2
+
+
+// Coconut
+/obj/item/seeds/coconut
+ name = "pack of coconut seeds"
+ desc = "They're seeds that grow into coconut palm trees."
+ icon_state = "seed-coconut"
+ species = "coconut"
+ plantname = "Coconut Palm Tree"
+ product = /obj/item/reagent_containers/food/snacks/grown/coconut
+ lifespan = 50
+ endurance = 30
+ potency = 35
+ growing_icon = 'icons/obj/hydroponics/growing.dmi'
+ icon_dead = "coconut-dead"
+ genes = list(/datum/plant_gene/trait/repeated_harvest)
+ forbiddengenes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/stinging)
+ reagents_add = list("coconutmilk" = 0.3)
+
+/obj/item/reagent_containers/food/snacks/grown/coconut
+ seed = /obj/item/seeds/coconut
+ name = "coconut"
+ desc = "Hard shell of a nut containing delicious milk inside. Perhaps try using something sharp?"
+ icon_state = "coconut"
+ item_state = "coconut"
+ possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50)
+ spillable = FALSE
+ resistance_flags = ACID_PROOF
+ volume = 150 //so it won't cut reagents despite having the capacity for them
+ w_class = WEIGHT_CLASS_SMALL
+ force = 5
+ throwforce = 5
+ hitsound = 'sound/weapons/klonk.ogg'
+ attack_verb = list("klonked", "donked", "bonked")
+ var/opened = FALSE
+ var/carved = FALSE
+ var/chopped = FALSE
+ var/straw = FALSE
+ var/fused = FALSE
+ var/fusedactive = FALSE
+ var/defused = FALSE
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/Initialize(mapload, obj/item/seeds/new_seed)
+ . = ..()
+ var/newvolume = 50 + round(seed.potency,10)
+ if (seed.get_gene(/datum/plant_gene/trait/maxchem))
+ newvolume = newvolume + 50
+ volume = newvolume
+ reagents.maximum_volume = newvolume
+ reagents.update_total()
+
+ transform *= TRANSFORM_USING_VARIABLE(40, 100) + 0.5 //temporary fix for size?
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/attack_self(mob/user)
+ if (!opened)
+ return
+
+ if(!possible_transfer_amounts.len)
+ return
+ var/i=0
+ for(var/A in possible_transfer_amounts)
+ i++
+ if(A != amount_per_transfer_from_this)
+ continue
+ if(i[src]'s transfer amount is now [amount_per_transfer_from_this] units.")
+ return
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/attackby(obj/item/W, mob/user, params)
+ //DEFUSING NADE LOGIC
+ if (W.tool_behaviour == TOOL_WIRECUTTER && fused)
+ user.show_message("You cut the fuse!", MSG_VISUAL)
+ playsound(user, W.hitsound, 50, 1, -1)
+ icon_state = "coconut_carved"
+ desc = "A coconut. This one's got a hole in it."
+ name = "coconut"
+ defused = TRUE
+ fused = FALSE
+ fusedactive = FALSE
+ if(!seed.get_gene(/datum/plant_gene/trait/glow))
+ set_light(0, 0.0)
+ return
+ //IGNITING NADE LOGIC
+ if(!fusedactive && fused)
+ var/lighting_text = W.ignition_effect(src, user)
+ if(lighting_text)
+ user.visible_message("[user] ignites [src]'s fuse!", "You ignite the [src]'s fuse!")
+ fusedactive = TRUE
+ defused = FALSE
+ playsound(src, 'sound/effects/fuse.ogg', 100, 0)
+ message_admins("[ADMIN_LOOKUPFLW(user)] ignited a coconut bomb for detonation at [ADMIN_VERBOSEJMP(user)] [pretty_string_from_reagent_list(reagents.reagent_list)]")
+ log_game("[key_name(user)] primed a coconut grenade for detonation at [AREACOORD(user)].")
+ addtimer(CALLBACK(src, .proc/prime), 5 SECONDS)
+ icon_state = "coconut_grenade_active"
+ desc = "RUN!"
+ if(!seed.get_gene(/datum/plant_gene/trait/glow))
+ light_color = "#FFCC66" //for the fuse
+ set_light(3, 0.8)
+ return
+
+ //ADDING A FUSE, NADE LOGIC
+ if (istype(W,/obj/item/stack/sheet/cloth) || istype(W,/obj/item/stack/sheet/durathread))
+ if (carved && !straw && !fused)
+ user.show_message("You add a fuse to the coconut!", 1)
+ W.use(1)
+ fused = TRUE
+ icon_state = "coconut_grenade"
+ desc = "A makeshift bomb made out of a coconut. You estimate the fuse is long enough for 5 seconds."
+ name = "coconut bomb"
+ return
+ //ADDING STRAW LOGIC
+ if (istype(W,/obj/item/stack/sheet/mineral/bamboo) && opened && !straw && fused)
+ user.show_message("You add a bamboo straw to the coconut!", 1)
+ straw = TRUE
+ W.use(1)
+ icon_state += "_straw"
+ desc = "You can already feel like you're on a tropical vacation."
+ return
+ //OPENING THE NUT LOGIC
+ if (!carved && !chopped)
+ var/screwdrivered = W.tool_behaviour == TOOL_SCREWDRIVER
+ if(screwdrivered || W.sharpness)
+ user.show_message("You [screwdrivered ? "make a hole in the coconut" : "slice the coconut open"]!", 1)
+ carved = TRUE
+ opened = TRUE
+ spillable = !screwdrivered
+ reagent_flags = OPENCONTAINER
+ ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ icon_state = screwdrivered ? "coconut_carved" : "coconut_chopped"
+ desc = "A coconut. [screwdrivered ? "This one's got a hole in it" : "This one's sliced open, with all its delicious contents for your eyes to savour"]."
+ playsound(user, W.hitsound, 50, 1, -1)
+ return
+ return ..()
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/attack(mob/living/M, mob/user, obj/target)
+ if(M && user.a_intent == INTENT_HARM && !spillable)
+ var/obj/item/bodypart/affecting = user.zone_selected //Find what the player is aiming at
+ if (affecting == BODY_ZONE_HEAD && prob(15))
+ //smash the nut open
+ var/armor_block = min(90, M.run_armor_check(affecting, "melee", null, null,armour_penetration)) // For normal attack damage
+ M.apply_damage(force, BRUTE, affecting, armor_block)
+
+ //Sound
+ playsound(user, hitsound, 100, 1, -1)
+
+ //Attack logs
+ log_combat(user, M, "attacked", src)
+
+ //Display an attack message.
+ if(M != user)
+ M.visible_message("[user] has cracked open a [name] on [M]'s head!", \
+ "[user] has cracked open a [name] on [M]'s head!")
+ else
+ user.visible_message("[M] cracks open a [name] on their [M.p_them()] head!", \
+ "[M] cracks open a [name] on [M.p_their()] head!")
+
+ //The coconut breaks open so splash its reagents
+ spillable = TRUE
+ SplashReagents(M)
+
+ //Lastly we remove the nut
+ qdel(src)
+ else
+ . = ..()
+ return
+
+ if(fusedactive)
+ return
+
+ if(!opened)
+ return
+
+ if(!canconsume(M, user))
+ return
+
+ if(!reagents || !reagents.total_volume)
+ to_chat(user, "[src] is empty!")
+ return
+
+ if(user.a_intent == INTENT_HARM && spillable)
+ var/R
+ M.visible_message("[user] splashes the contents of [src] onto [M]!", \
+ "[user] splashes the contents of [src] onto [M]!")
+ if(reagents)
+ for(var/datum/reagent/A in reagents.reagent_list)
+ R += A.id + " ("
+ R += num2text(A.volume) + "),"
+ if(isturf(target) && reagents.reagent_list.len && thrownby)
+ log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
+ message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
+ reagents.reaction(M, TOUCH)
+ log_combat(user, M, "splashed", R)
+ reagents.clear_reagents()
+ else
+ if(M != user)
+ M.visible_message("[user] attempts to feed something to [M].", \
+ "[user] attempts to feed something to you.")
+ if(!do_mob(user, M))
+ return
+ if(!reagents || !reagents.total_volume)
+ return // The drink might be empty after the delay, such as by spam-feeding
+ M.visible_message("[user] feeds something to [M].", "[user] feeds something to you.")
+ log_combat(user, M, "fed", reagents.log_list())
+ else
+ to_chat(user, "You swallow a gulp of [src].")
+ var/fraction = min(5/reagents.total_volume, 1)
+ reagents.reaction(M, INGEST, fraction)
+ addtimer(CALLBACK(reagents, /datum/reagents.proc/trans_to, M, 5), 5)
+ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/afterattack(obj/target, mob/user, proximity)
+ . = ..()
+ if(fusedactive)
+ return
+
+ if((!proximity) || !check_allowed_items(target,target_self=1))
+ return
+
+ if(target.is_refillable()) //Something like a glass. Player probably wants to transfer TO it.
+ if(!reagents.total_volume)
+ to_chat(user, "[src] is empty!")
+ return
+
+ if(target.reagents.holder_full())
+ to_chat(user, "[target] is full.")
+ return
+
+ var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
+ to_chat(user, "You transfer [trans] unit\s of the solution to [target].")
+
+ else if(target.is_drainable()) //A dispenser. Transfer FROM it TO us.
+ if(!target.reagents.total_volume)
+ to_chat(user, "[target] is empty and can't be refilled!")
+ return
+
+ if(reagents.holder_full())
+ to_chat(user, "[src] is full.")
+ return
+
+ var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
+ to_chat(user, "You fill [src] with [trans] unit\s of the contents of [target].")
+
+ else if(reagents.total_volume)
+ if(user.a_intent == INTENT_HARM && spillable == TRUE)
+ user.visible_message("[user] splashes the contents of [src] onto [target]!", \
+ "You splash the contents of [src] onto [target].")
+ reagents.reaction(target, TOUCH)
+ reagents.clear_reagents()
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/dropped(mob/user)
+ . = ..()
+ transform *= TRANSFORM_USING_VARIABLE(40, 100) + 0.5 //temporary fix for size?
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/proc/prime()
+ if (defused)
+ return
+ var/turf/T = get_turf(src)
+ reagents.chem_temp = 1000
+ //Disable seperated contents when the grenade primes
+ if (seed.get_gene(/datum/plant_gene/trait/noreact))
+ DISABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.handle_reactions()
+ log_game("Coconut bomb detonation at [AREACOORD(T)], location [loc]")
+ qdel(src)
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/ex_act(severity)
+ qdel(src)
+
+/obj/item/reagent_containers/food/snacks/grown/coconut/deconstruct(disassembled = TRUE)
+ if(!disassembled && fused)
+ prime()
+ if(!QDELETED(src))
+ qdel(src)
diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm
index 4132719389..39e97e3801 100644
--- a/code/modules/hydroponics/seeds.dm
+++ b/code/modules/hydroponics/seeds.dm
@@ -27,6 +27,7 @@
var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to CentCom.
var/list/mutatelist = list() // The type of plants that this plant can mutate into.
var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info.
+ var/list/forbiddengenes = list()
var/list/reagents_add = list()
// A list of reagents to add to product.
// Format: "reagent_id" = potency multiplier
@@ -96,6 +97,10 @@
S.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes.
return S
+obj/item/seeds/proc/is_gene_forbidden(typepath)
+ return (typepath in forbiddengenes)
+
+
/obj/item/seeds/proc/get_gene(typepath)
return (locate(typepath) in genes)
@@ -448,7 +453,7 @@
for(var/i in 1 to amount_random_traits)
var/random_trait = pick((subtypesof(/datum/plant_gene/trait)-typesof(/datum/plant_gene/trait/plant_type)))
var/datum/plant_gene/trait/T = new random_trait
- if(T.can_add(src))
+ if(T.can_add(src) && !is_gene_forbidden(random_trait))
genes += T
else
qdel(T)
diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm
index 922b335a39..f8a7e70473 100644
--- a/code/modules/jobs/job_types/clown.dm
+++ b/code/modules/jobs/job_types/clown.dm
@@ -14,6 +14,8 @@
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
+ mind_traits = list(TRAIT_CLOWN_MENTALITY)
+
display_order = JOB_DISPLAY_ORDER_CLOWN
/datum/outfit/job/clown
diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm
index 23d20cd27a..ca4280a2a1 100644
--- a/code/modules/jobs/jobs.dm
+++ b/code/modules/jobs/jobs.dm
@@ -71,7 +71,7 @@ GLOBAL_LIST_INIT(exp_jobsmap, list(
GLOBAL_LIST_INIT(exp_specialmap, list(
EXP_TYPE_LIVING = list(), // all living mobs
EXP_TYPE_ANTAG = list(),
- EXP_TYPE_SPECIAL = list("Lifebringer","Ash Walker","Exile","Servant Golem","Free Golem","Hermit","Translocated Vet","Escaped Prisoner","Hotel Staff","SuperFriend","Space Syndicate","Ancient Crew","Space Doctor","Space Bartender","Beach Bum","Skeleton","Zombie","Space Bar Patron","Lavaland Syndicate","Ghost Role"), // Ghost roles
+ EXP_TYPE_SPECIAL = list("Lifebringer","Ash Walker","Exile","Servant Golem","Free Golem","Hermit","Translocated Vet","Escaped Prisoner","Hotel Staff","SuperFriend","Space Syndicate","Ancient Crew","Space Doctor","Space Bartender","Beach Bum","Skeleton","Zombie","Space Bar Patron","Lavaland Syndicate","Ghost Role", "Ghost Cafe Visitor"), // Ghost roles
EXP_TYPE_GHOST = list() // dead people, observers
))
GLOBAL_PROTECT(exp_jobsmap)
diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm
index a9eafacef6..ed033935b2 100644
--- a/code/modules/keybindings/bindings_human.dm
+++ b/code/modules/keybindings/bindings_human.dm
@@ -58,13 +58,23 @@
return
switch(_key)
if("Shift")
- sprint_hotkey(TRUE)
+ if(!user.prefs.sprint_spacebar)
+ user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE) //Yes, this looks hacky. Yes, this works.
+ return
+ if("Space")
+ if(user.prefs.sprint_spacebar)
+ user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE)
return
return ..()
/mob/living/carbon/human/key_up(_key, client/user)
switch(_key)
if("Shift")
- sprint_hotkey(FALSE)
+ if(!user.prefs.sprint_spacebar && !user.prefs.sprint_toggle)
+ sprint_hotkey(FALSE)
+ return
+ if("Space")
+ if(user.prefs.sprint_spacebar && !user.prefs.sprint_toggle)
+ sprint_hotkey(FALSE)
return
return ..()
diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm
index c1a336eb69..00f63510b6 100644
--- a/code/modules/language/language_holder.dm
+++ b/code/modules/language/language_holder.dm
@@ -134,7 +134,7 @@
/datum/language_holder/synthetic
languages = list(/datum/language/common)
- shadow_languages = list(/datum/language/common, /datum/language/machine, /datum/language/draconic)
+ shadow_languages = list(/datum/language/common, /datum/language/machine, /datum/language/draconic, /datum/language/slime)
/datum/language_holder/empty
languages = list()
diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm
index 1f55f18823..3e361179de 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 at [x],[y],[world.maxz]")
+ log_game("Z-level [name] loaded at [x],[y],[world.maxz]")
return level
@@ -84,6 +84,13 @@
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))
@@ -100,7 +107,7 @@
//initialize things that are normally initialized after map load
parsed.initTemplateBounds()
- log_game("[name] loaded at at [T.x],[T.y],[T.z]")
+ log_game("[name] loaded 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 e2459d780a..a7f84fd71f 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(/turf/open/space)
+ baseturf_to_replace = typecacheof(list(/turf/open/space,/turf/baseturf_bottom))
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,7 +45,6 @@
thing.PlaceOnBottom(null, baseturf)
else if(baseturf_to_replace[thing.baseturfs])
thing.assemble_baseturfs(baseturf)
- return
else
thing.PlaceOnBottom(null, baseturf)
@@ -107,16 +106,16 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper/Initialize(mapload)
. = ..()
if(!mapload)
- log_world("### MAP WARNING, [src] spawned outside of mapload!")
+ log_mapping("[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_world("### MAP WARNING, [src] at [AREACOORD(src)] tried to set [airlock] cyclelinkeddir, but it's already set!")
+ log_mapping("[src] at [AREACOORD(src)] tried to set [airlock] cyclelinkeddir, but it's already set!")
else
airlock.cyclelinkeddir = dir
else
- log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]")
+ log_mapping("[src] failed to find an airlock at [AREACOORD(src)]")
/obj/effect/mapping_helpers/airlock/locked
@@ -126,16 +125,16 @@
/obj/effect/mapping_helpers/airlock/locked/Initialize(mapload)
. = ..()
if(!mapload)
- log_world("### MAP WARNING, [src] spawned outside of mapload!")
+ log_mapping("[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_world("### MAP WARNING, [src] at [AREACOORD(src)] tried to bolt [airlock] but it's already locked!")
+ log_mapping("[src] at [AREACOORD(src)] tried to bolt [airlock] but it's already locked!")
else
airlock.locked = TRUE
else
- log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]")
+ log_mapping("[src] failed to find an airlock at [AREACOORD(src)]")
/obj/effect/mapping_helpers/airlock/unres
name = "airlock unresctricted side helper"
@@ -144,13 +143,13 @@
/obj/effect/mapping_helpers/airlock/unres/Initialize(mapload)
. = ..()
if(!mapload)
- log_world("### MAP WARNING, [src] spawned outside of mapload!")
+ log_mapping("[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_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]")
+ log_mapping("[src] failed to find an airlock at [AREACOORD(src)]")
//needs to do its thing before spawn_rivers() is called
@@ -164,17 +163,6 @@ 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 e6fa2421a0..4b61663f66 100644
--- a/code/modules/mapping/preloader.dm
+++ b/code/modules/mapping/preloader.dm
@@ -8,18 +8,26 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new)
var/list/attributes
var/target_path
-/datum/map_preloader/proc/setup(list/the_attributes, path)
+/world/proc/preloader_setup(list/the_attributes, path)
if(the_attributes.len)
GLOB.use_preloader = TRUE
- attributes = the_attributes
- target_path = path
+ var/datum/map_preloader/preloader_local = GLOB._preloader
+ preloader_local.attributes = the_attributes
+ preloader_local.target_path = path
-/datum/map_preloader/proc/load(atom/what)
+/world/proc/preloader_load(atom/what)
GLOB.use_preloader = FALSE
- for(var/attribute in attributes)
- var/value = attributes[attribute]
+ var/datum/map_preloader/preloader_local = GLOB._preloader
+ for(var/attribute in preloader_local.attributes)
+ var/value = preloader_local.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 22be4aa246..9b27691dd3 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)
- GLOB._preloader.load(instance)
+ world.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)
- GLOB._preloader.setup(attributes, path)
+ world.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()
- GLOB._preloader.load(.)
+ world.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/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm
index 356c4913b9..10b33cd473 100644
--- a/code/modules/mining/equipment/survival_pod.dm
+++ b/code/modules/mining/equipment/survival_pod.dm
@@ -67,11 +67,18 @@
new /obj/effect/particle_effect/smoke(get_turf(src))
qdel(src)
+//Non-default pods
+
/obj/item/survivalcapsule/luxury
name = "luxury bluespace shelter capsule"
desc = "An exorbitantly expensive luxury suite stored within a pocket of bluespace."
template_id = "shelter_beta"
+/obj/item/survivalcapsule/luxuryelite
+ name = "luxury elite bar capsule"
+ desc = "A luxury bar in a capsule. Bartender required and not included."
+ template_id = "shelter_charlie"
+
//Pod objects
//Window
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index ab3b20ac9f..7bef9b652a 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))
+ if(T.TerraformTurf(turf_type, flags = CHANGETURF_INHERIT_AIR))
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))
+ if(T.TerraformTurf(reset_turf_type, flags = CHANGETURF_INHERIT_AIR))
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/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index 79da476719..b5f7bbf8ab 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -50,7 +50,7 @@
/obj/machinery/mineral/ore_redemption/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += "The status display reads: Smelting [sheet_per_ore] sheet(s) per piece of ore.
Ore pickup speed at [ore_pickup_rate]."
+ . += "The status display reads: Smelting [sheet_per_ore] sheet(s) per piece of ore.
Reward point generation at [point_upgrade*100]%.
Ore pickup speed at [ore_pickup_rate]."
/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O)
var/datum/component/material_container/mat_container = materials.mat_container
@@ -63,7 +63,7 @@
ore_buffer -= O
if(O && O.refined_type)
- points += O.points * O.amount
+ points += O.points * point_upgrade * O.amount
var/material_amount = mat_container.get_item_material_amount(O)
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index a8e867cef0..e5cab4438a 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -54,6 +54,7 @@
new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500),
new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500),
new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000),
+ new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxuryelite, 10000),
new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800),
new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400),
new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400),
diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm
index a8b4eab8d2..3e0968eebb 100644
--- a/code/modules/mining/shelters.dm
+++ b/code/modules/mining/shelters.dm
@@ -58,3 +58,18 @@
. = ..()
whitelisted_turfs = typecacheof(/turf/closed/mineral)
banned_objects = typecacheof(/obj/structure/stone_tile)
+
+/datum/map_template/shelter/charlie
+ name = "Shelter Charlie"
+ shelter_id = "shelter_charlie"
+ description = "A luxury elite bar which holds an entire bar \
+ along with two vending machines, tables, and a restroom that \
+ also has a sink. This isn't a survival capsule and so you can \
+ expect that this won't save you if you're bleeding out to \
+ death."
+ mappath = "_maps/templates/shelter_3.dmm"
+
+/datum/map_template/shelter/charlie/New()
+ . = ..()
+ whitelisted_turfs = typecacheof(/turf/closed/mineral)
+ banned_objects = typecacheof(/obj/structure/stone_tile)
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
index dd66f68e5d..241ec8118e 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
@@ -74,4 +74,5 @@
/datum/sprite_accessory/underwear
icon = 'icons/mob/underwear.dmi'
- var/has_color = FALSE
\ No newline at end of file
+ var/has_color = FALSE
+ var/has_digitigrade = FALSE
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
index 156cc304a6..a5437aaf39 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
@@ -275,6 +275,18 @@
name = "Snow"
icon_state = "snow"
+/datum/sprite_accessory/insect_fluff/oakworm
+ name = "Oak Worm"
+ icon_state = "oakworm"
+
+/datum/sprite_accessory/insect_fluff/jungle
+ name = "Jungle"
+ icon_state = "jungle"
+
+/datum/sprite_accessory/insect_fluff/witchwing
+ name = "Witch Wing"
+ icon_state = "witchwing"
+
/datum/sprite_accessory/insect_fluff/colored
name = "Colored (Hair)"
icon_state = "snow"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm
index 0a35f0cd26..19ec677a72 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm
@@ -2,6 +2,9 @@
// Socks Definitions //
///////////////////////
+/datum/sprite_accessory/underwear/socks
+ has_digitigrade = TRUE
+
/datum/sprite_accessory/underwear/socks/nude
name = "Nude"
icon_state = null
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm
index 3356804cb3..9441b5120a 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm
@@ -28,41 +28,49 @@
name = "Boxers"
icon_state = "boxers"
has_color = TRUE
+ has_digitigrade = TRUE
gender = MALE
/datum/sprite_accessory/underwear/bottom/male_bee
name = "Boxers - Bee"
icon_state = "bee_shorts"
+ has_digitigrade = TRUE
gender = MALE
/datum/sprite_accessory/underwear/bottom/male_hearts
name = "Boxers - Heart"
icon_state = "boxers_heart"
+ has_digitigrade = TRUE
gender = MALE
/datum/sprite_accessory/underwear/bottom/male_stripe
name = "Boxers - Striped"
icon_state = "boxers_striped"
+ has_digitigrade = TRUE
gender = MALE
/datum/sprite_accessory/underwear/bottom/male_commie
name = "Boxers - Striped Communist"
icon_state = "boxers_commie"
+ has_digitigrade = TRUE
gender = MALE
/datum/sprite_accessory/underwear/bottom/male_usastripe
name = "Boxers - Striped Freedom"
icon_state = "boxers_assblastusa"
+ has_digitigrade = TRUE
gender = MALE
/datum/sprite_accessory/underwear/bottom/male_uk
name = "Boxers - Striped UK"
icon_state = "boxers_uk"
+ has_digitigrade = TRUE
gender = MALE
/datum/sprite_accessory/underwear/bottom/boxer_briefs
name = "Boxer Briefs"
icon_state = "boxer_briefs"
+ has_digitigrade = TRUE
has_color = TRUE
/datum/sprite_accessory/underwear/bottom/panties
@@ -140,6 +148,7 @@
/datum/sprite_accessory/underwear/bottom/longjon
name = "Long John Bottoms"
icon_state = "ljonb"
+ has_digitigrade = TRUE
has_color = TRUE
/datum/sprite_accessory/underwear/bottom/swimsuit_red
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
index 46a123c6bb..9c1eb6a3fa 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
@@ -213,4 +213,81 @@
/datum/sprite_accessory/insect_wings/whitefly
name = "White Fly"
- icon_state = "whitefly"
\ No newline at end of file
+ icon_state = "whitefly"
+
+/datum/sprite_accessory/insect_wings/oakworm
+ name = "Oak Worm"
+ icon_state = "oakworm"
+
+/datum/sprite_accessory/insect_wings/jungle
+ name = "Jungle"
+ icon_state = "jungle"
+
+/datum/sprite_accessory/insect_wings/witchwing
+ name = "Witch Wing"
+ icon_state = "witchwing"
+
+//insect markings
+/datum/sprite_accessory/insect_markings // Extra markings for insects ported from tg.
+ icon = 'icons/mob/insect_markings.dmi'
+ color_src = null
+
+/datum/sprite_accessory/insect_markings/none
+ name = "None"
+ icon_state = "none"
+
+/datum/sprite_accessory/insect_markings/reddish
+ name = "Reddish"
+ icon_state = "reddish"
+
+/datum/sprite_accessory/insect_markings/royal
+ name = "Royal"
+ icon_state = "royal"
+
+/datum/sprite_accessory/insect_markings/gothic
+ name = "Gothic"
+ icon_state = "gothic"
+
+/datum/sprite_accessory/insect_markings/whitefly
+ name = "White Fly"
+ icon_state = "whitefly"
+
+/datum/sprite_accessory/insect_markings/lovers
+ name = "Lovers"
+ icon_state = "lovers"
+
+/datum/sprite_accessory/insect_markings/punished
+ name = "Punished"
+ icon_state = "punished"
+
+/datum/sprite_accessory/insect_markings/firewatch
+ name = "Firewatch"
+ icon_state = "firewatch"
+
+/datum/sprite_accessory/insect_markings/deathhead
+ name = "Deathshead"
+ icon_state = "deathhead"
+
+/datum/sprite_accessory/insect_markings/poison
+ name = "Poison"
+ icon_state = "poison"
+
+/datum/sprite_accessory/insect_markings/ragged
+ name = "Ragged"
+ icon_state = "ragged"
+
+/datum/sprite_accessory/insect_markings/moonfly
+ name = "Moon Fly"
+ icon_state = "moonfly"
+
+/datum/sprite_accessory/insect_markings/oakworm
+ name = "Oak Worm"
+ icon_state = "oakworm"
+
+/datum/sprite_accessory/insect_markings/jungle
+ name = "Jungle"
+ icon_state = "jungle"
+
+/datum/sprite_accessory/insect_markings/witchwing
+ name = "Witch Wing"
+ icon_state = "witchwing"
\ No newline at end of file
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 a407e161ad..07f52d7f18 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -3,8 +3,6 @@ GLOBAL_LIST_EMPTY(ghost_images_simple) //this is a list of all ghost images as t
GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
-#define CANT_REENTER_ROUND -1
-
/mob/dead/observer
name = "ghost"
desc = "It's a g-g-g-g-ghooooost!" //jinkies!
@@ -20,7 +18,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
hud_type = /datum/hud/ghost
movement_type = GROUND | FLYING
var/can_reenter_corpse
- var/reenter_round_timeout = 0 // used to prevent people from coming back through ghost roles/midround antags as they suicide/cryo for a duration set by CONFIG_GET(number/suicide_reenter_round_timer) and CONFIG_GET(number/roundstart_suicide_time_limit)
+ 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.
@@ -177,7 +175,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
* Hair will always update its dir, so if your sprite has no dirs the haircut will go all over the place.
* |- Ricotez
*/
-/mob/dead/observer/proc/update_icon(new_form)
+/mob/dead/observer/update_icon(new_form)
+ . = ..()
if(client) //We update our preferences in case they changed right before update_icon was called.
ghost_accs = client.prefs.ghost_accs
ghost_others = client.prefs.ghost_others
@@ -276,9 +275,16 @@ Works together with spawning an observer, noted above.
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)
- ghost.reenter_round_timeout = world.realtime + penalty
- if(ghost.reenter_round_timeout - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime)
- ghost.reenter_round_timeout = CANT_REENTER_ROUND
+ 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)
return ghost
@@ -337,10 +343,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
ghostize(0, penalize = TRUE)
/mob/dead/observer/proc/can_reenter_round(silent = FALSE)
- if(reenter_round_timeout != CANT_REENTER_ROUND && reenter_round_timeout <= world.realtime)
+ var/timeout = clientless_round_timeout
+ if(client)
+ timeout = client.reenter_round_timeout
+ if(timeout != CANT_REENTER_ROUND && timeout <= world.realtime)
return TRUE
- if(!silent)
- to_chat(src, "You are unable to reenter the round[reenter_round_timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(reenter_round_timeout - world.realtime)]" : ""].")
+ 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)
@@ -892,5 +901,3 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
spawners_menu = new(src)
spawners_menu.ui_interact(src)
-
-#undef CANT_REENTER_ROUND
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm
index daffca106f..a453fa0ab7 100644
--- a/code/modules/mob/living/carbon/alien/alien_defense.dm
+++ b/code/modules/mob/living/carbon/alien/alien_defense.dm
@@ -6,21 +6,21 @@
return 2 //no ears
/mob/living/carbon/alien/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
- ..(AM, skipcatch = TRUE, hitpush = FALSE)
+ return ..(AM, skipcatch = TRUE, hitpush = FALSE)
+/mob/living/carbon/alien/can_embed(obj/item/I)
+ return FALSE
/*Code for aliens attacking aliens. Because aliens act on a hivemind, I don't see them as very aggressive with each other.
As such, they can either help or harm other aliens. Help works like the human help command while harm is a simple nibble.
In all, this is a lot like the monkey code. /N
*/
/mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M)
- if(isturf(loc) && istype(loc.loc, /area/start))
- to_chat(M, "No attacking people at spawn, you jackass.")
+ . = ..()
+ if(!.) // the attack was blocked or was help/grab intent
return
-
switch(M.a_intent)
-
- if ("help")
+ if (INTENT_HELP)
if(!recoveringstam)
resting = 0
AdjustStun(-60)
@@ -28,11 +28,7 @@ In all, this is a lot like the monkey code. /N
AdjustUnconscious(-60)
AdjustSleeping(-100)
visible_message("[M.name] nuzzles [src] trying to wake [p_them()] up!")
-
- if ("grab")
- grabbedby(M)
-
- else
+ if(INTENT_DISARM, INTENT_HARM)
if(health > 0)
M.do_attack_animation(src, ATTACK_EFFECT_BITE)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
@@ -50,28 +46,31 @@ In all, this is a lot like the monkey code. /N
/mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M)
- if(..()) //to allow surgery to return properly.
- return 0
-
+ . = ..()
+ if(.) //To allow surgery to return properly.
+ return
switch(M.a_intent)
- if("help")
+ if(INTENT_HELP)
help_shake_act(M)
- if("grab")
+ if(INTENT_GRAB)
grabbedby(M)
- if ("harm")
+ if (INTENT_HARM)
+ if(HAS_TRAIT(M, TRAIT_PACIFISM))
+ to_chat(M, "You don't want to hurt [src]!")
+ return TRUE
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
- return 1
- if("disarm")
+ if(INTENT_DISARM)
+ if(HAS_TRAIT(M, TRAIT_PACIFISM))
+ to_chat(M, "You don't want to hurt [src]!")
+ return TRUE
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
- return 1
- return 0
/mob/living/carbon/alien/attack_paw(mob/living/carbon/monkey/M)
- if(..())
- if (stat != DEAD)
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
- apply_damage(rand(1, 3), BRUTE, affecting)
+ . = ..()
+ if(.) //successful monkey bite.
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
+ apply_damage(rand(1, 3), BRUTE, affecting)
/mob/living/carbon/alien/attack_animal(mob/living/simple_animal/M)
@@ -93,13 +92,15 @@ In all, this is a lot like the monkey code. /N
adjustStaminaLoss(damage)
/mob/living/carbon/alien/attack_slime(mob/living/simple_animal/slime/M)
- if(..()) //successful slime attack
- var/damage = rand(5, 35)
- if(M.is_adult)
- damage = rand(10, 40)
- adjustBruteLoss(damage)
- log_combat(M, src, "attacked")
- updatehealth()
+ . = ..()
+ if(!.) //unsuccessful slime attack
+ return
+ var/damage = rand(5, 35)
+ if(M.is_adult)
+ damage = rand(10, 40)
+ adjustBruteLoss(damage)
+ log_combat(M, src, "attacked")
+ updatehealth()
/mob/living/carbon/alien/ex_act(severity, target, origin)
if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src))
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
index c75718e65c..562401d485 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
@@ -63,12 +63,7 @@
if(hit_atom)
if(isliving(hit_atom))
var/mob/living/L = hit_atom
- var/blocked = FALSE
- if(ishuman(hit_atom))
- var/mob/living/carbon/human/H = hit_atom
- if(H.check_shields(src, 0, "the [name]", attack_type = LEAP_ATTACK))
- blocked = TRUE
- if(!blocked)
+ if(!L.check_shields(src, 0, "the [name]", attack_type = LEAP_ATTACK))
L.visible_message("[src] pounces on [L]!", "[src] pounces on you!")
L.Knockdown(100)
sleep(2)//Runtime prevention (infinite bump() calls on hulks)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
index b3839a6033..1d613db07a 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
@@ -5,9 +5,11 @@
else
..()
-/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
- ..(user, 1)
+ . = ..(user, TRUE)
+ if(.)
+ return
adjustBruteLoss(15)
var/hitverb = "punched"
if(mob_size < MOB_SIZE_LARGE)
@@ -21,46 +23,46 @@
return 1
/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M)
- if(..())
- switch(M.a_intent)
- if ("harm")
- var/damage = rand(1, 9)
- if (prob(90))
- playsound(loc, "punch", 25, 1, -1)
- visible_message("[M] has punched [src]!", \
- "[M] has punched [src]!", null, COMBAT_MESSAGE_RANGE)
- if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of knocking an alien down.
- Unconscious(40)
- visible_message("[M] has knocked [src] down!", \
- "[M] has knocked [src] down!")
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
- apply_damage(damage, BRUTE, affecting)
- log_combat(M, src, "attacked")
+ . = ..()
+ if(.) //To allow surgery to return properly.
+ return
+ switch(M.a_intent)
+ if (INTENT_HARM)
+ var/damage = rand(1, 9)
+ if (prob(90))
+ playsound(loc, "punch", 25, 1, -1)
+ visible_message("[M] has punched [src]!", \
+ "[M] has punched [src]!", null, COMBAT_MESSAGE_RANGE)
+ if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of knocking an alien down.
+ Unconscious(40)
+ visible_message("[M] has knocked [src] down!", \
+ "[M] has knocked [src] down!")
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
+ apply_damage(damage, BRUTE, affecting)
+ log_combat(M, src, "attacked")
+ else
+ playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
+ visible_message("[M] has attempted to punch [src]!", \
+ "[M] has attempted to punch [src]!", null, COMBAT_MESSAGE_RANGE)
+
+ if (INTENT_DISARM)
+ if (!lying)
+ if (prob(5))
+ Unconscious(40)
+ playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+ log_combat(M, src, "pushed")
+ visible_message("[M] has pushed down [src]!", \
+ "[M] has pushed down [src]!")
else
- playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message("[M] has attempted to punch [src]!", \
- "[M] has attempted to punch [src]!", null, COMBAT_MESSAGE_RANGE)
-
- if ("disarm")
- if (!lying)
- if (prob(5))
- Unconscious(40)
+ if (prob(50))
+ dropItemToGround(get_active_held_item())
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- log_combat(M, src, "pushed")
- visible_message("[M] has pushed down [src]!", \
- "[M] has pushed down [src]!")
+ visible_message("[M] has disarmed [src]!", \
+ "[M] has disarmed [src]!", null, COMBAT_MESSAGE_RANGE)
else
- if (prob(50))
- dropItemToGround(get_active_held_item())
- playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- visible_message("[M] has disarmed [src]!", \
- "[M] has disarmed [src]!", null, COMBAT_MESSAGE_RANGE)
- else
- playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message("[M] has attempted to disarm [src]!",\
- "[M] has attempted to disarm [src]!", null, COMBAT_MESSAGE_RANGE)
-
-
+ playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
+ visible_message("[M] has attempted to disarm [src]!",\
+ "[M] has attempted to disarm [src]!", null, COMBAT_MESSAGE_RANGE)
/mob/living/carbon/alien/humanoid/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
if(!no_effect && !visual_effect_icon)
diff --git a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
index 69c1be707d..7dabcf5abf 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
@@ -1,26 +1,33 @@
/mob/living/carbon/alien/larva/attack_hand(mob/living/carbon/human/M)
- if(..())
- var/damage = rand(1, 9)
- if (prob(90))
- playsound(loc, "punch", 25, 1, -1)
- log_combat(M, src, "attacked")
- visible_message("[M] has kicked [src]!", \
- "[M] has kicked [src]!", null, COMBAT_MESSAGE_RANGE)
- if ((stat != DEAD) && (damage > 4.9))
- Unconscious(rand(100,200))
+ . = ..()
+ if(. || M.a_intent == INTENT_HELP || M.a_intent == INTENT_GRAB)
+ return
+ var/damage = rand(1, 9)
+ if (prob(90))
+ playsound(loc, "punch", 25, 1, -1)
+ log_combat(M, src, "attacked")
+ visible_message("[M] has kicked [src]!", \
+ "[M] has kicked [src]!", null, COMBAT_MESSAGE_RANGE)
+ if ((stat != DEAD) && (damage > 4.9))
+ Unconscious(rand(100,200))
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
- apply_damage(damage, BRUTE, affecting)
- else
- playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message("[M] has attempted to kick [src]!", \
- "[M] has attempted to kick [src]!", null, COMBAT_MESSAGE_RANGE)
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
+ apply_damage(damage, BRUTE, affecting)
+ else
+ playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
+ visible_message("[M] has attempted to kick [src]!", \
+ "[M] has attempted to kick [src]!", null, COMBAT_MESSAGE_RANGE)
-/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
- ..(user, 1)
+ . = ..(user, TRUE)
+ if(.)
+ return
+ playsound(loc, "punch", 25, 1, -1)
+ visible_message("[user] has pummeled [src]!", \
+ "[user] has pummeled [src]!", null, COMBAT_MESSAGE_RANGE)
adjustBruteLoss(5 + rand(1,9))
new /datum/forced_movement(src, get_step_away(user,src, 30), 1)
return 1
diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
index 0bfd23cbff..c08fe4f582 100644
--- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
+++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
@@ -103,15 +103,17 @@
new_xeno.notransform = 0
new_xeno.invisibility = 0
+ var/mob/living/carbon/old_owner = owner
if(kill_on_sucess) //ITS TOO LATE
new_xeno.visible_message("[new_xeno] bursts out of [owner]!", "You exit [owner], your previous host.", "You hear organic matter ripping and tearing!")
owner.apply_damage(rand(100,300),BRUTE,zone,FALSE) //Random high damage to torso so health sensors don't metagame.
- owner.spill_organs(TRUE,FALSE,TRUE) //Lets still make the death gruesome and impossible to just simply defib someone.
+ var/obj/item/bodypart/B = owner.get_bodypart(zone)
+ B.drop_organs(owner) //Lets still make the death gruesome and impossible to just simply defib someone.
owner.death(FALSE) //Just in case some freak occurance occurs where you somehow survive all your organs being removed from you and the 100-300 brute damage.
else //When it is removed via surgery at a late stage, rather than forced.
new_xeno.visible_message("[new_xeno] wriggles out of [owner]!", "You exit [owner], your previous host.")
owner.adjustBruteLoss(40)
- owner.cut_overlay(overlay)
+ old_owner.cut_overlay(overlay)
qdel(src)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index d251fa4c9b..b9ec7d8da7 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -155,6 +155,7 @@
if(getStaminaLoss() >= STAMINA_SOFTCRIT)
to_chat(src, "You're too exhausted.")
return
+ var/random_turn = a_intent == INTENT_HARM
//END OF CIT CHANGES
var/obj/item/I = get_active_held_item()
@@ -202,7 +203,7 @@
do_attack_animation(target, no_effect = 1)
playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1)
newtonian_move(get_dir(target, src))
- thrown_thing.safe_throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src, null, null, null, move_force)
+ thrown_thing.safe_throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src, null, null, null, move_force, random_turn)
@@ -975,3 +976,14 @@
if(combatmode)
toggle_combat_mode(TRUE, TRUE)
return ..()
+
+/mob/living/carbon/can_see_reagents()
+ . = ..()
+ if(.) //No need to run through all of this if it's already true.
+ return
+ if(isclothing(head))
+ var/obj/item/clothing/H = head
+ if(H.clothing_flags & SCAN_REAGENTS)
+ return TRUE
+ if(isclothing(wear_mask) && (wear_mask.clothing_flags & SCAN_REAGENTS))
+ return TRUE
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 98e57dc823..ba40ae8e5f 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -48,31 +48,42 @@
if(affecting && affecting.dismemberable && affecting.get_damage() >= (affecting.max_damage - P.dismemberment))
affecting.dismember(P.damtype)
-/mob/living/carbon/proc/can_catch_item(skip_throw_mode_check)
- . = FALSE
- if(!skip_throw_mode_check && !in_throw_mode)
+/mob/living/carbon/catch_item(obj/item/I, skip_throw_mode_check = FALSE)
+ . = ..()
+ if(!HAS_TRAIT(src, TRAIT_AUTO_CATCH_ITEM) && !skip_throw_mode_check && !in_throw_mode)
return
- if(get_active_held_item())
+ if(get_active_held_item() || restrained())
return
- if(restrained())
- return
- return TRUE
-
-/mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- if(!skipcatch) //ugly, but easy
- if(can_catch_item())
- if(istype(AM, /obj/item))
- var/obj/item/I = AM
- if(isturf(I.loc))
- I.attack_hand(src)
- if(get_active_held_item() == I) //if our attack_hand() picks up the item...
- visible_message("[src] catches [I]!") //catch that sucker!
- throw_mode_off()
- return 1
- ..()
+ I.attack_hand(src)
+ if(get_active_held_item() == I) //if our attack_hand() picks up the item...
+ visible_message("[src] catches [I]!") //catch that sucker!
+ throw_mode_off()
+ return TRUE
+/mob/living/carbon/embed_item(obj/item/I)
+ throw_alert("embeddedobject", /obj/screen/alert/embeddedobject)
+ var/obj/item/bodypart/L = pick(bodyparts)
+ L.embedded_objects |= I
+ I.add_mob_blood(src)//it embedded itself in you, of course it's bloody!
+ I.forceMove(src)
+ L.receive_damage(I.w_class*I.embedding.embedded_impact_pain_multiplier)
+ visible_message("[I] embeds itself in [src]'s [L.name]!","[I] embeds itself in your [L.name]!")
+ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded)
/mob/living/carbon/attacked_by(obj/item/I, mob/living/user)
+ //CIT CHANGES START HERE - combatmode and resting checks
+ var/totitemdamage = I.force
+ if(iscarbon(user))
+ var/mob/living/carbon/tempcarb = user
+ if(!tempcarb.combatmode)
+ totitemdamage *= 0.5
+ if(user.resting)
+ totitemdamage *= 0.5
+ if(!combatmode)
+ totitemdamage *= 1.5
+ //CIT CHANGES END HERE
+ if(user != src && check_shields(I, totitemdamage, "the [I.name]", MELEE_ATTACK, I.armour_penetration))
+ return FALSE
var/obj/item/bodypart/affecting
if(user == src)
affecting = get_bodypart(check_zone(user.zone_selected)) //we're self-mutilating! yay!
@@ -83,17 +94,6 @@
SEND_SIGNAL(I, COMSIG_ITEM_ATTACK_ZONE, src, user, affecting)
send_item_attack_message(I, user, affecting.name)
if(I.force)
- //CIT CHANGES START HERE - combatmode and resting checks
- var/totitemdamage = I.force
- if(iscarbon(user))
- var/mob/living/carbon/tempcarb = user
- if(!tempcarb.combatmode)
- totitemdamage *= 0.5
- if(user.resting)
- totitemdamage *= 0.5
- if(!combatmode)
- totitemdamage *= 1.5
- //CIT CHANGES END HERE
apply_damage(totitemdamage, I.damtype, affecting) //CIT CHANGE - replaces I.force with totitemdamage
if(I.damtype == BRUTE && affecting.status == BODYPART_ORGANIC)
var/basebloodychance = affecting.brute_dam + totitemdamage
@@ -127,7 +127,9 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/mob/living/carbon/attack_hand(mob/living/carbon/human/user)
-
+ . = ..()
+ if(.) //was the attack blocked?
+ return
for(var/thing in diseases)
var/datum/disease/D = thing
if(D.spread_flags & DISEASE_SPREAD_CONTACT_SKIN)
@@ -142,8 +144,7 @@
if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)
for(var/datum/surgery/S in surgeries)
if(S.next_step(user, user.a_intent))
- return 1
- return 0
+ return TRUE
/mob/living/carbon/attack_paw(mob/living/carbon/monkey/M)
@@ -163,7 +164,8 @@
help_shake_act(M)
return 0
- if(..()) //successful monkey bite.
+ . = ..()
+ if(.) //successful monkey bite.
for(var/thing in M.diseases)
var/datum/disease/D = thing
ForceContractDisease(D)
@@ -171,26 +173,27 @@
/mob/living/carbon/attack_slime(mob/living/simple_animal/slime/M)
- if(..()) //successful slime attack
- if(M.powerlevel > 0)
- var/stunprob = M.powerlevel * 7 + 10 // 17 at level 1, 80 at level 10
- if(prob(stunprob))
- M.powerlevel -= 3
- if(M.powerlevel < 0)
- M.powerlevel = 0
+ . = ..()
+ if(!.)
+ return
+ if(M.powerlevel > 0)
+ var/stunprob = M.powerlevel * 7 + 10 // 17 at level 1, 80 at level 10
+ if(prob(stunprob))
+ M.powerlevel -= 3
+ if(M.powerlevel < 0)
+ M.powerlevel = 0
- visible_message("The [M.name] has shocked [src]!", \
- "The [M.name] has shocked [src]!")
+ visible_message("The [M.name] has shocked [src]!", \
+ "The [M.name] has shocked [src]!")
- do_sparks(5, TRUE, src)
- var/power = M.powerlevel + rand(0,3)
- Knockdown(power*20)
- if(stuttering < power)
- stuttering = power
- if (prob(stunprob) && M.powerlevel >= 8)
- adjustFireLoss(M.powerlevel * rand(6,10))
- updatehealth()
- return 1
+ do_sparks(5, TRUE, src)
+ var/power = M.powerlevel + rand(0,3)
+ Knockdown(power*20)
+ if(stuttering < power)
+ stuttering = power
+ if (prob(stunprob) && M.powerlevel >= 8)
+ adjustFireLoss(M.powerlevel * rand(6,10))
+ updatehealth()
/mob/living/carbon/proc/dismembering_strike(mob/living/attacker, dam_zone)
if(!attacker.limb_destroyer)
@@ -322,12 +325,12 @@
else
return
-
+
else if(check_zone(M.zone_selected) == "r_arm" || check_zone(M.zone_selected) == "l_arm")
M.visible_message( \
"[M] shakes [src]'s hand.", \
"You shake [src]'s hand.", )
-
+
else
M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \
"You hug [src] to make [p_them()] feel better!")
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 310ab6beeb..3a6f0e6724 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -308,7 +308,7 @@
var/obj/item/organ/vocal_cords/Vc = user.getorganslot(ORGAN_SLOT_VOICE)
if(Vc)
if(istype(Vc, /obj/item/organ/vocal_cords/velvet))
- if(client?.prefs.lewdchem)
+ if(client.prefs.cit_toggles & HYPNO)
msg += "You feel your chords resonate looking at them.\n"
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 45211f7f44..0007233975 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -803,10 +803,8 @@
else
hud_used.healthdoll.icon_state = "healthdoll_DEAD"
- if(hud_used.staminas)
- hud_used.staminas.icon_state = staminahudamount()
- if(hud_used.staminabuffer)
- hud_used.staminabuffer.icon_state = staminabufferhudamount()
+ hud_used.staminas?.update_icon_state()
+ hud_used.staminabuffer?.update_icon_state()
/mob/living/carbon/human/fully_heal(admin_revive = 0)
if(admin_revive)
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index d86ccd9e02..6a137be9b4 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -46,6 +46,12 @@
return spec_return
if(mind)
+ if (mind.martial_art && mind.martial_art.dodge_chance)
+ if(!lying && dna && !dna.check_mutation(HULK))
+ if(prob(mind.martial_art.dodge_chance))
+ var/dodgemessage = pick("dodges under the projectile!","dodges to the right of the projectile!","jumps over the projectile!")
+ visible_message("[src] [dodgemessage]", "You dodge the projectile!")
+ return -1
if(mind.martial_art && !incapacitated(FALSE, TRUE) && mind.martial_art.can_use(src) && mind.martial_art.deflection_chance) //Some martial arts users can deflect projectiles!
if(prob(mind.martial_art.deflection_chance))
if(!lying && dna && !dna.check_mutation(HULK)) //But only if they're not lying down, and hulks can't do it
@@ -61,66 +67,36 @@
P.setAngle(rand(0, 360))//SHING
return FALSE
- if(!(P.original == src && P.firer == src)) //can't block or reflect when shooting yourself
- if(P.is_reflectable)
- if(check_reflect(def_zone)) // Checks if you've passed a reflection% check
- visible_message("The [P.name] gets reflected by [src]!", \
- "The [P.name] gets reflected by [src]!")
- // Find a turf near or on the original location to bounce to
- if(P.starting)
- var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2)
- var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2)
- var/turf/curloc = get_turf(src)
+ return ..()
- // redirect the projectile
- P.original = locate(new_x, new_y, P.z)
- P.starting = curloc
- P.firer = src
- P.yo = new_y - curloc.y
- P.xo = new_x - curloc.x
- var/new_angle_s = P.Angle + rand(120,240)
- while(new_angle_s > 180) // Translate to regular projectile degrees
- new_angle_s -= 360
- P.setAngle(new_angle_s)
+/mob/living/carbon/human/check_reflect(def_zone)
+ if(wear_suit?.IsReflect(def_zone))
+ return TRUE
+ return ..()
- return -1 // complete projectile permutation
-
- if(check_shields(P, P.damage, "the [P.name]", PROJECTILE_ATTACK, P.armour_penetration))
- P.on_hit(src, 100, def_zone)
- return 2
-
- return (..(P , def_zone))
-
-/mob/living/carbon/human/proc/check_reflect(def_zone) //Reflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object
- if(wear_suit)
- if(wear_suit.IsReflect(def_zone) == 1)
- return 1
- for(var/obj/item/I in held_items)
- if(I.IsReflect(def_zone) == 1)
- return 1
- return 0
-
-/mob/living/carbon/human/proc/check_shields(atom/AM, var/damage, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0)
+/mob/living/carbon/human/check_shields(atom/AM, damage, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0)
+ . = ..()
+ if(.)
+ return
var/block_chance_modifier = round(damage / -3)
-
- for(var/obj/item/I in held_items)
- if(!istype(I, /obj/item/clothing))
- var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
- if(I.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
- return 1
if(wear_suit)
var/final_block_chance = wear_suit.block_chance - (CLAMP((armour_penetration-wear_suit.armour_penetration)/2,0,100)) + block_chance_modifier
if(wear_suit.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
- return 1
+ return TRUE
if(w_uniform)
var/final_block_chance = w_uniform.block_chance - (CLAMP((armour_penetration-w_uniform.armour_penetration)/2,0,100)) + block_chance_modifier
if(w_uniform.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
- return 1
+ return TRUE
if(wear_neck)
var/final_block_chance = wear_neck.block_chance - (CLAMP((armour_penetration-wear_neck.armour_penetration)/2,0,100)) + block_chance_modifier
if(wear_neck.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
- return 1
- return 0
+ return TRUE
+ return FALSE
+
+/mob/living/carbon/human/can_embed(obj/item/I)
+ if(I.get_sharpness() || is_pointed(I) || is_type_in_typecache(I, GLOB.can_embed_types))
+ return TRUE
+ return FALSE
/mob/living/carbon/human/proc/check_block()
if(mind)
@@ -129,37 +105,7 @@
return FALSE
/mob/living/carbon/human/hitby(atom/movable/AM, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- if(dna && dna.species)
- var/spec_return = dna.species.spec_hitby(AM, src)
- if(spec_return)
- return spec_return
- var/obj/item/I
- var/throwpower = 30
- if(istype(AM, /obj/item))
- I = AM
- throwpower = I.throwforce
- if(I.thrownby == src) //No throwing stuff at yourself to trigger hit reactions
- return ..()
- if(check_shields(AM, throwpower, "\the [AM.name]", THROWN_PROJECTILE_ATTACK))
- hitpush = FALSE
- skipcatch = TRUE
- blocked = TRUE
- else if(I)
- if(I.throw_speed >= EMBED_THROWSPEED_THRESHOLD)
- if(can_embed(I))
- if(prob(I.embedding.embed_chance) && !HAS_TRAIT(src, TRAIT_PIERCEIMMUNE))
- throw_alert("embeddedobject", /obj/screen/alert/embeddedobject)
- var/obj/item/bodypart/L = pick(bodyparts)
- L.embedded_objects |= I
- I.add_mob_blood(src)//it embedded itself in you, of course it's bloody!
- I.forceMove(src)
- L.receive_damage(I.w_class*I.embedding.embedded_impact_pain_multiplier)
- visible_message("[I] embeds itself in [src]'s [L.name]!","[I] embeds itself in your [L.name]!")
- SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded)
- hitpush = FALSE
- skipcatch = TRUE //can't catch the now embedded item
-
- return ..()
+ return dna?.species?.spec_hitby(AM, src) || ..()
/mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0)
if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && (HAS_TRAIT(src, TRAIT_FAT)) && ismonkey(pulling))
@@ -193,12 +139,12 @@
return dna.species.spec_attacked_by(I, user, affecting, a_intent, src)
-/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
- var/hulk_verb = pick("smash","pummel")
- if(check_shields(user, 15, "the [hulk_verb]ing"))
+ . = ..(user, TRUE)
+ if(.)
return
- ..(user, 1)
+ var/hulk_verb = pick("smash","pummel")
playsound(loc, user.dna.species.attack_sound, 25, 1, -1)
var/message = "[user] has [hulk_verb]ed [src]!"
visible_message("[message]", \
@@ -207,7 +153,8 @@
return 1
/mob/living/carbon/human/attack_hand(mob/user)
- if(..()) //to allow surgery to return properly.
+ . = ..()
+ if(.) //To allow surgery to return properly.
return
if(ishuman(user))
var/mob/living/carbon/human/H = user
@@ -219,8 +166,7 @@
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
if(M.a_intent == INTENT_HELP)
- ..() //shaking
- return 0
+ return ..() //shaking
if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead.
var/obj/item/I = get_active_held_item()
@@ -241,78 +187,69 @@
if(can_inject(M, 1, affecting))//Thick suits can stop monkey bites.
if(..()) //successful monkey bite, this handles disease contraction.
var/damage = rand(1, 3)
- if(check_shields(M, damage, "the [M.name]"))
- return 0
- if(stat != DEAD)
- apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee"))
+ apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee"))
return 1
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M)
- if(check_shields(M, 0, "the M.name"))
- visible_message("[M] attempted to touch [src]!")
- return 0
+ . = ..()
+ if(!.)
+ return
+ if(M.a_intent == INTENT_HARM)
+ if (w_uniform)
+ w_uniform.add_fingerprint(M)
+ var/damage = prob(90) ? 20 : 0
+ if(!damage)
+ playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1)
+ visible_message("[M] has lunged at [src]!", \
+ "[M] has lunged at [src]!")
+ return 0
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
+ if(!affecting)
+ affecting = get_bodypart(BODY_ZONE_CHEST)
+ var/armor_block = run_armor_check(affecting, "melee", null, null,10)
- if(..())
- if(M.a_intent == INTENT_HARM)
- if (w_uniform)
- w_uniform.add_fingerprint(M)
- var/damage = prob(90) ? 20 : 0
- if(!damage)
- playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1)
- visible_message("[M] has lunged at [src]!", \
- "[M] has lunged at [src]!")
- return 0
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
- if(!affecting)
- affecting = get_bodypart(BODY_ZONE_CHEST)
- var/armor_block = run_armor_check(affecting, "melee", null, null,10)
+ playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
+ visible_message("[M] has slashed at [src]!", \
+ "[M] has slashed at [src]!")
+ log_combat(M, src, "attacked")
+ if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful
+ return 1
+ apply_damage(damage, BRUTE, affecting, armor_block)
- playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
- visible_message("[M] has slashed at [src]!", \
- "[M] has slashed at [src]!")
- log_combat(M, src, "attacked")
- if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful
- return 1
- apply_damage(damage, BRUTE, affecting, armor_block)
-
- if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead.
- var/obj/item/I = get_active_held_item()
- if(I && dropItemToGround(I))
- playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
- visible_message("[M] disarmed [src]!", \
- "[M] disarmed [src]!")
+ if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead.
+ var/obj/item/I = get_active_held_item()
+ if(I && dropItemToGround(I))
+ playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
+ visible_message("[M] disarmed [src]!", \
+ "[M] disarmed [src]!")
+ else
+ playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
+ if(!lying) //CITADEL EDIT
+ Knockdown(100, TRUE, FALSE, 30, 25)
else
- playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
- if(!lying) //CITADEL EDIT
- Knockdown(100, TRUE, FALSE, 30, 25)
- else
- Knockdown(100)
- log_combat(M, src, "tackled")
- visible_message("[M] has tackled down [src]!", \
- "[M] has tackled down [src]!")
-
+ Knockdown(100)
+ log_combat(M, src, "tackled")
+ visible_message("[M] has tackled down [src]!", \
+ "[M] has tackled down [src]!")
/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L)
-
- if(..()) //successful larva bite.
- var/damage = rand(1, 3)
- if(check_shields(L, damage, "the [L.name]"))
- return 0
- if(stat != DEAD)
- L.amount_grown = min(L.amount_grown + damage, L.max_grown)
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected))
- if(!affecting)
- affecting = get_bodypart(BODY_ZONE_CHEST)
- var/armor_block = run_armor_check(affecting, "melee")
- apply_damage(damage, BRUTE, affecting, armor_block)
+ . = ..()
+ if(!.) //unsuccessful larva bite.
+ return
+ var/damage = rand(1, 3)
+ if(stat != DEAD)
+ L.amount_grown = min(L.amount_grown + damage, L.max_grown)
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected))
+ if(!affecting)
+ affecting = get_bodypart(BODY_ZONE_CHEST)
+ var/armor_block = run_armor_check(affecting, "melee")
+ apply_damage(damage, BRUTE, affecting, armor_block)
/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M)
. = ..()
if(.)
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
- if(check_shields(M, damage, "the [M.name]", MELEE_ATTACK, M.armour_penetration))
- return FALSE
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
if(!dam_zone) //Dismemberment successful
return TRUE
@@ -324,23 +261,22 @@
/mob/living/carbon/human/attack_slime(mob/living/simple_animal/slime/M)
- if(..()) //successful slime attack
- var/damage = rand(5, 25)
- if(M.is_adult)
- damage = rand(10, 35)
+ . = ..()
+ if(!.) //unsuccessful slime attack
+ return
+ var/damage = rand(5, 25)
+ if(M.is_adult)
+ damage = rand(10, 35)
- if(check_shields(M, damage, "the [M.name]"))
- return 0
+ var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
+ if(!dam_zone) //Dismemberment successful
+ return 1
- var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
- if(!dam_zone) //Dismemberment successful
- return 1
-
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
- if(!affecting)
- affecting = get_bodypart(BODY_ZONE_CHEST)
- var/armor_block = run_armor_check(affecting, "melee")
- apply_damage(damage, BRUTE, affecting, armor_block)
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
+ if(!affecting)
+ affecting = get_bodypart(BODY_ZONE_CHEST)
+ var/armor_block = run_armor_check(affecting, "melee")
+ apply_damage(damage, BRUTE, affecting, armor_block)
/mob/living/carbon/human/mech_melee_attack(obj/mecha/M)
if(M.occupant.a_intent == INTENT_HARM)
@@ -644,7 +580,7 @@
if(mind)
if((mind.assigned_role == "Station Engineer") || (mind.assigned_role == "Chief Engineer") )
gain = 100
- if(mind.assigned_role == "Clown")
+ if(HAS_TRAIT(mind, TRAIT_CLOWN_MENTALITY))
gain = rand(-300, 300)
investigate_log("([key_name(src)]) has been consumed by the singularity.", INVESTIGATE_SINGULO) //Oh that's where the clown ended up!
gib()
diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm
index 63d02af31a..e5e546fdf8 100644
--- a/code/modules/mob/living/carbon/human/human_helpers.dm
+++ b/code/modules/mob/living/carbon/human/human_helpers.dm
@@ -117,7 +117,8 @@
/mob/living/carbon/human/can_use_guns(obj/item/G)
. = ..()
-
+ if(!.)
+ return
if(G.trigger_guard == TRIGGER_GUARD_NORMAL)
if(HAS_TRAIT(src, TRAIT_CHUNKYFINGERS))
to_chat(src, "Your meaty finger is much too large for the trigger guard!")
@@ -126,7 +127,13 @@
to_chat(src, "Your fingers don't fit in the trigger guard!")
return FALSE
- return .
+/mob/living/carbon/human/can_see_reagents()
+ . = ..()
+ if(.) //No need to run through all of this if it's already true.
+ return
+ if(isclothing(glasses) && (glasses.clothing_flags & SCAN_REAGENTS))
+ return TRUE
+
/*
/mob/living/carbon/human/transfer_blood_dna(list/blood_dna)
..()
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 67d7cb585e..2e069297b3 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -545,6 +545,20 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
//Underwear, Undershirts & Socks
if(!(NO_UNDERWEAR in species_traits))
+
+ if(H.socks && H.get_num_legs(FALSE) >= 2)
+ if(H.hidden_socks)
+ H.socks = "Nude"
+ else
+ H.socks = H.saved_socks
+ var/datum/sprite_accessory/underwear/socks/S = GLOB.socks_list[H.socks]
+ if(S)
+ var/digilegs = ((DIGITIGRADE in species_traits) && S.has_digitigrade) ? "_d" : ""
+ var/mutable_appearance/MA = mutable_appearance(S.icon, "[S.icon_state][digilegs]", -BODY_LAYER)
+ if(S.has_color)
+ MA.color = "#[H.socks_color]"
+ standing += MA
+
if(H.underwear)
if(H.hidden_underwear)
H.underwear = "Nude"
@@ -552,8 +566,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.underwear = H.saved_underwear
var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear]
if(B)
- var/mutable_appearance/MA = mutable_appearance(B.icon, B.icon_state, -BODY_LAYER)
- if(UNDIE_COLORABLE(B))
+ var/digilegs = ((DIGITIGRADE in species_traits) && B.has_digitigrade) ? "_d" : ""
+ var/mutable_appearance/MA = mutable_appearance(B.icon, "[B.icon_state][digilegs]", -BODY_LAYER)
+ if(B.has_color)
MA.color = "#[H.undie_color]"
standing += MA
@@ -564,28 +579,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.undershirt = H.saved_undershirt
var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt]
if(T)
+ var/state = "[T.icon_state][((DIGITIGRADE in species_traits) && T.has_digitigrade) ? "_d" : ""]"
var/mutable_appearance/MA
if(H.dna.species.sexes && H.gender == FEMALE)
- MA = wear_female_version(T.icon_state, T.icon, BODY_LAYER)
+ MA = wear_female_version(state, T.icon, BODY_LAYER)
else
- MA = mutable_appearance(T.icon, T.icon_state, -BODY_LAYER)
- if(UNDIE_COLORABLE(T))
+ MA = mutable_appearance(T.icon, state, -BODY_LAYER)
+ if(T.has_color)
MA.color = "#[H.shirt_color]"
standing += MA
- if(H.socks && H.get_num_legs(FALSE) >= 2)
- if(H.hidden_socks)
- H.socks = "Nude"
- else
- H.socks = H.saved_socks
- var/datum/sprite_accessory/underwear/socks/S = GLOB.socks_list[H.socks]
- if(S)
- var/digilegs = (DIGITIGRADE in species_traits) ? "_d" : ""
- var/mutable_appearance/MA = mutable_appearance(S.icon, "[S.icon_state][digilegs]", -BODY_LAYER)
- if(UNDIE_COLORABLE(S))
- MA.color = "#[H.socks_color]"
- standing += MA
-
if(standing.len)
H.overlays_standing[BODY_LAYER] = standing
@@ -781,6 +784,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
S = GLOB.insect_wings_list[H.dna.features["insect_wings"]]
if("insect_fluff")
S = GLOB.insect_fluffs_list[H.dna.features["insect_fluff"]]
+ if("insect_markings")
+ S = GLOB.insect_markings_list[H.dna.features["insect_markings"]]
if("caps")
S = GLOB.caps_list[H.dna.features["caps"]]
if("ipc_screen")
@@ -1587,20 +1592,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
user.adjustStaminaLossBuffered(3)
return FALSE
else if(aim_for_groin && (target == user || target.lying || same_dir) && (target_on_help || target_restrained || target_aiming_for_groin))
+ if(target.client?.prefs.cit_toggles & NO_ASS_SLAP)
+ to_chat(user,"A force stays your hand, preventing you from slapping \the [target]'s ass!")
+ return FALSE
user.do_attack_animation(target, ATTACK_EFFECT_ASS_SLAP)
user.adjustStaminaLossBuffered(3)
- if(HAS_TRAIT(target, TRAIT_ASSBLASTUSA))
- var/hit_zone = (user.held_index_to_dir(user.active_hand_index) == "l" ? "l_":"r_") + "arm"
- user.adjustStaminaLoss(20, affected_zone = hit_zone)
- user.visible_message(\
- "\The [user] slaps \the [target]'s ass, but their hand bounces off like they hit metal!",\
- "You slap [user == target ? "your" : "\the [target]'s"] ass, but feel an intense amount of pain as you realise their buns are harder than steel!",\
- "You hear a slap."
- )
- playsound(target.loc, 'sound/weapons/tap.ogg', 50, 1, -1)
- user.emote("scream")
- return FALSE
-
playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1)
user.visible_message(\
"\The [user] slaps \the [target]'s ass!",\
@@ -1689,11 +1685,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
attacker_style = M.mind.martial_art
if(attacker_style?.pacifism_check && HAS_TRAIT(M, TRAIT_PACIFISM)) // most martial arts are quite harmful, alas.
attacker_style = null
- if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK))
- log_combat(M, H, "attempted to touch")
- H.visible_message("[M] attempted to touch [H]!")
- return 0
- SEND_SIGNAL(M, COMSIG_MOB_ATTACK_HAND, M, H, attacker_style)
switch(M.a_intent)
if("help")
help(M, H, attacker_style)
diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm
index 02163eaaed..718599c550 100644
--- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm
@@ -4,9 +4,9 @@
default_color = "00FF00"
species_traits = list(LIPS,EYECOLOR,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR)
inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG)
- mutant_bodyparts = list("mam_ears", "mam_snout", "mam_tail", "taur", "insect_wings", "mam_snouts", "insect_fluff","horns")
+ mutant_bodyparts = list("mam_ears","mam_tail", "taur", "insect_wings","mam_snout", "mam_snouts", "insect_fluff","insect_markings")
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None",
- "insect_wings" = "None", "insect_fluff" = "None", "mam_snouts" = "None", "taur" = "None","horns" = "None")
+ "insect_wings" = "None", "insect_fluff" = "None", "mam_snouts" = "None", "taur" = "None", "insect_markings" = "None")
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
index 3247c96632..52ae32b23c 100644
--- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
@@ -51,11 +51,7 @@
. = ..()
to_chat(C, "[info_text]")
- C.real_name = "[pick(GLOB.nightmare_names)]"
- C.name = C.real_name
- if(C.mind)
- C.mind.name = C.real_name
- C.dna.real_name = C.real_name
+ C.fully_replace_character_name("[pick(GLOB.nightmare_names)]")
/datum/species/shadow/nightmare/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H)
var/turf/T = H.loc
@@ -127,8 +123,8 @@
/obj/item/organ/heart/nightmare/Remove(mob/living/carbon/M, special = 0)
respawn_progress = 0
if(blade && special != HEART_SPECIAL_SHADOWIFY)
- QDEL_NULL(blade)
M.visible_message("\The [blade] disintegrates!")
+ QDEL_NULL(blade)
..()
/obj/item/organ/heart/nightmare/Stop()
@@ -183,15 +179,21 @@
. = ..()
if(!proximity)
return
- if(isopenturf(AM)) //So you can actually melee with it
- return
- if(isliving(AM))
+ if(isopenturf(AM))
+ var/turf/open/T = AM
+ if(T.light_range && !isspaceturf(T)) //no fairy grass or light tile can escape the fury of the darkness.
+ to_chat(user, "You scrape away [T] with your [name] and snuff out its lights.")
+ T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
+ else if(isliving(AM))
var/mob/living/L = AM
if(iscyborg(AM))
var/mob/living/silicon/robot/borg = AM
- if(!borg.lamp_cooldown)
+ if(borg.lamp_intensity)
borg.update_headlamp(TRUE, INFINITY)
to_chat(borg, "Your headlamp is fried! You'll need a human to help replace it.")
+ for(var/obj/item/assembly/flash/cyborg/F in borg.held_items)
+ if(!F.crit_fail)
+ F.burn_out()
else
for(var/obj/item/O in AM)
if(O.light_range && O.light_power)
diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm
index 89180043ef..37505e40e6 100644
--- a/code/modules/mob/living/carbon/monkey/combat.dm
+++ b/code/modules/mob/living/carbon/monkey/combat.dm
@@ -369,6 +369,23 @@
retaliate(L)
return ..()
+/mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M)
+ if(M.a_intent == INTENT_HARM && prob(MONKEY_RETALIATE_HARM_PROB))
+ retaliate(M)
+ else if(M.a_intent == INTENT_DISARM && prob(MONKEY_RETALIATE_DISARM_PROB))
+ retaliate(M)
+ return ..()
+
+/mob/living/carbon/monkey/attack_larva(mob/living/carbon/alien/larva/L)
+ if(L.a_intent == INTENT_HARM && prob(MONKEY_RETALIATE_HARM_PROB))
+ retaliate(L)
+ return ..()
+
+/mob/living/carbon/monkey/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
+ if(user.a_intent == INTENT_HARM && prob(MONKEY_RETALIATE_HARM_PROB))
+ retaliate(user)
+ return ..()
+
/mob/living/carbon/monkey/attack_paw(mob/living/L)
if(L.a_intent == INTENT_HARM && prob(MONKEY_RETALIATE_HARM_PROB))
retaliate(L)
diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm
index df90dd56fd..32e3d21ee2 100644
--- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm
@@ -6,37 +6,55 @@
..()
/mob/living/carbon/monkey/attack_paw(mob/living/M)
- if(..()) //successful monkey bite.
- var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
- if(!affecting)
- affecting = get_bodypart(BODY_ZONE_CHEST)
- if(M.limb_destroyer)
- dismembering_strike(M, affecting.body_zone)
- if(stat != DEAD)
- var/dmg = rand(1, 5)
- apply_damage(dmg, BRUTE, affecting)
+ . = ..()
+ if(!.) //unsuccessful monkey bite.
+ return
+ var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
+ if(!affecting)
+ affecting = get_bodypart(BODY_ZONE_CHEST)
+ if(M.limb_destroyer)
+ dismembering_strike(M, affecting.body_zone)
+ var/dmg = rand(1, 5)
+ apply_damage(dmg, BRUTE, affecting)
/mob/living/carbon/monkey/attack_larva(mob/living/carbon/alien/larva/L)
- if(..()) //successful larva bite.
- var/damage = rand(1, 3)
- if(stat != DEAD)
- L.amount_grown = min(L.amount_grown + damage, L.max_grown)
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected))
- if(!affecting)
- affecting = get_bodypart(BODY_ZONE_CHEST)
- apply_damage(damage, BRUTE, affecting)
+ . = ..()
+ if(!.) //unsuccessful larva bite
+ return
+ var/damage = rand(1, 3)
+ if(stat != DEAD)
+ L.amount_grown = min(L.amount_grown + damage, L.max_grown)
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected))
+ if(!affecting)
+ affecting = get_bodypart(BODY_ZONE_CHEST)
+ apply_damage(damage, BRUTE, affecting)
+
+/mob/living/carbon/monkey/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
+ . = ..(user, TRUE)
+ if(.)
+ return
+ var/hulk_verb = pick("smash","pummel")
+ playsound(loc, user.dna.species.attack_sound, 25, 1, -1)
+ var/message = "[user] has [hulk_verb]ed [src]!"
+ visible_message("[message]", \
+ "[message]")
+ adjustBruteLoss(15)
+ return TRUE
/mob/living/carbon/monkey/attack_hand(mob/living/carbon/human/M)
- if(..()) //To allow surgery to return properly.
+ . = ..()
+ if(.) //To allow surgery to return properly.
return
-
switch(M.a_intent)
- if("help")
+ if(INTENT_HELP)
help_shake_act(M)
- if("grab")
+ if(INTENT_GRAB)
grabbedby(M)
- if("harm")
+ if(INTENT_HARM)
+ if(HAS_TRAIT(M, TRAIT_PACIFISM))
+ to_chat(M, "You don't want to hurt [src]!")
+ return
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
if (prob(75))
visible_message("[M] has punched [name]!", \
@@ -60,7 +78,7 @@
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("[M] has attempted to punch [name]!", \
"[M] has attempted to punch [name]!", null, COMBAT_MESSAGE_RANGE)
- if("disarm")
+ if(INTENT_DISARM)
if(!IsUnconscious())
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
if (prob(25))
@@ -74,50 +92,51 @@
visible_message("[M] has disarmed [src]!", "[M] has disarmed [src]!", null, COMBAT_MESSAGE_RANGE)
/mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M)
- if(..()) //if harm or disarm intent.
- if (M.a_intent == INTENT_HARM)
- if ((prob(95) && health > 0))
- playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
- var/damage = rand(15, 30)
- if (damage >= 25)
- damage = rand(20, 40)
- if(AmountUnconscious() < 300)
- Unconscious(rand(200, 300))
- visible_message("[M] has wounded [name]!", \
- "[M] has wounded [name]!", null, COMBAT_MESSAGE_RANGE)
- else
- visible_message("[M] has slashed [name]!", \
- "[M] has slashed [name]!", null, COMBAT_MESSAGE_RANGE)
-
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
- log_combat(M, src, "attacked")
- if(!affecting)
- affecting = get_bodypart(BODY_ZONE_CHEST)
- if(!dismembering_strike(M, affecting.body_zone)) //Dismemberment successful
- return 1
- apply_damage(damage, BRUTE, affecting)
-
+ . = ..()
+ if(!.) // the attack was blocked or was help/grab intent
+ return
+ if (M.a_intent == INTENT_HARM)
+ if ((prob(95) && health > 0))
+ playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
+ var/damage = rand(15, 30)
+ if (damage >= 25)
+ damage = rand(20, 40)
+ if(AmountUnconscious() < 300)
+ Unconscious(rand(200, 300))
+ visible_message("[M] has wounded [name]!", \
+ "[M] has wounded [name]!", null, COMBAT_MESSAGE_RANGE)
else
- playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
- visible_message("[M] has attempted to lunge at [name]!", \
- "[M] has attempted to lunge at [name]!", null, COMBAT_MESSAGE_RANGE)
+ visible_message("[M] has slashed [name]!", \
+ "[M] has slashed [name]!", null, COMBAT_MESSAGE_RANGE)
- if (M.a_intent == INTENT_DISARM)
- var/obj/item/I = null
- playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
- if(prob(95))
- Knockdown(20)
- visible_message("[M] has tackled down [name]!", \
- "[M] has tackled down [name]!", null, COMBAT_MESSAGE_RANGE)
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
+ log_combat(M, src, "attacked")
+ if(!affecting)
+ affecting = get_bodypart(BODY_ZONE_CHEST)
+ if(!dismembering_strike(M, affecting.body_zone)) //Dismemberment successful
+ return 1
+ apply_damage(damage, BRUTE, affecting)
+
+ else
+ playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
+ visible_message("[M] has attempted to lunge at [name]!", \
+ "[M] has attempted to lunge at [name]!", null, COMBAT_MESSAGE_RANGE)
+
+ else
+ var/obj/item/I = null
+ playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
+ if(prob(95))
+ Knockdown(20)
+ visible_message("[M] has tackled down [name]!", \
+ "[M] has tackled down [name]!", null, COMBAT_MESSAGE_RANGE)
+ else
+ I = get_active_held_item()
+ if(dropItemToGround(I))
+ visible_message("[M] has disarmed [name]!", "[M] has disarmed [name]!", null, COMBAT_MESSAGE_RANGE)
else
- I = get_active_held_item()
- if(dropItemToGround(I))
- visible_message("[M] has disarmed [name]!", "[M] has disarmed [name]!", null, COMBAT_MESSAGE_RANGE)
- else
- I = null
- log_combat(M, src, "disarmed", "[I ? " removing \the [I]" : ""]")
- updatehealth()
-
+ I = null
+ log_combat(M, src, "disarmed", "[I ? " removing \the [I]" : ""]")
+ updatehealth()
/mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M)
. = ..()
@@ -132,17 +151,19 @@
apply_damage(damage, M.melee_damage_type, affecting)
/mob/living/carbon/monkey/attack_slime(mob/living/simple_animal/slime/M)
- if(..()) //successful slime attack
- var/damage = rand(5, 35)
- if(M.is_adult)
- damage = rand(20, 40)
- var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
- if(!dam_zone) //Dismemberment successful
- return 1
- var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
- if(!affecting)
- affecting = get_bodypart(BODY_ZONE_CHEST)
- apply_damage(damage, BRUTE, affecting)
+ . = ..()
+ if(!.) //unsuccessful slime attack
+ return
+ var/damage = rand(5, 35)
+ if(M.is_adult)
+ damage = rand(20, 40)
+ var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
+ if(!dam_zone) //Dismemberment successful
+ return 1
+ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
+ if(!affecting)
+ affecting = get_bodypart(BODY_ZONE_CHEST)
+ apply_damage(damage, BRUTE, affecting)
/mob/living/carbon/monkey/acid_act(acidpwr, acid_volume, bodyzone_hit)
. = 1
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index 8345ef916d..1c6546fd83 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -91,7 +91,9 @@
if(mind && mind.name && mind.active && !istype(T.loc, /area/ctf) && !(signal & COMPONENT_BLOCK_DEATH_BROADCAST))
var/rendered = "[mind.name] has died at [get_area_name(T)]."
deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE)
-
+ if (client && client.prefs && client.prefs.auto_ooc)
+ if (!(client.prefs.chat_toggles & CHAT_OOC))
+ client.prefs.chat_toggles ^= CHAT_OOC
if (client)
client.move_delay = initial(client.move_delay)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index dd11c89484..449448da4a 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -36,7 +36,50 @@
/mob/living/proc/on_hit(obj/item/projectile/P)
return
+/mob/living/proc/check_shields(atom/AM, damage, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0)
+ var/block_chance_modifier = round(damage / -3)
+ for(var/obj/item/I in held_items)
+ if(!istype(I, /obj/item/clothing))
+ var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
+ if(I.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
+ return TRUE
+ return FALSE
+
+/mob/living/proc/check_reflect(def_zone) //Reflection checks for anything in your hands, based on the reflection chance of the object(s)
+ for(var/obj/item/I in held_items)
+ if(I.IsReflect(def_zone))
+ return TRUE
+ return FALSE
+
+/mob/living/proc/reflect_bullet_check(obj/item/projectile/P, def_zone)
+ if(P.is_reflectable && check_reflect(def_zone)) // Checks if you've passed a reflection% check
+ visible_message("The [P.name] gets reflected by [src]!", \
+ "The [P.name] gets reflected by [src]!")
+ // Find a turf near or on the original location to bounce to
+ if(P.starting)
+ var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2)
+ var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2)
+ var/turf/curloc = get_turf(src)
+ // redirect the projectile
+ P.original = locate(new_x, new_y, P.z)
+ P.starting = curloc
+ P.firer = src
+ P.yo = new_y - curloc.y
+ P.xo = new_x - curloc.x
+ var/new_angle_s = P.Angle + rand(120,240)
+ while(new_angle_s > 180) // Translate to regular projectile degrees
+ new_angle_s -= 360
+ P.setAngle(new_angle_s)
+ return TRUE
+ return FALSE
+
/mob/living/bullet_act(obj/item/projectile/P, def_zone)
+ if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself
+ if(reflect_bullet_check(P, def_zone))
+ return -1 // complete projectile permutation
+ if(check_shields(P, P.damage, "the [P.name]", PROJECTILE_ATTACK, P.armour_penetration))
+ P.on_hit(src, 100, def_zone)
+ return 2
var/armor = run_armor_check(def_zone, P.flag, null, null, P.armour_penetration, null)
if(!P.nodamage)
apply_damage(P.damage, P.damage_type, def_zone, armor)
@@ -55,9 +98,32 @@
else
return 0
+/mob/living/proc/catch_item(obj/item/I, skip_throw_mode_check = FALSE)
+ return FALSE
+
+/mob/living/proc/embed_item(obj/item/I)
+ return
+
+/mob/living/proc/can_embed(obj/item/I)
+ return FALSE
+
/mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- if(istype(AM, /obj/item))
- var/obj/item/I = AM
+ var/obj/item/I
+ var/throwpower = 30
+ if(isitem(AM))
+ I = AM
+ throwpower = I.throwforce
+ if(check_shields(AM, throwpower, "\the [AM.name]", THROWN_PROJECTILE_ATTACK))
+ hitpush = FALSE
+ skipcatch = TRUE
+ blocked = TRUE
+ else if(I && I.throw_speed >= EMBED_THROWSPEED_THRESHOLD && can_embed(I, src) && prob(I.embedding.embed_chance) && !HAS_TRAIT(src, TRAIT_PIERCEIMMUNE) && (!HAS_TRAIT(src, TRAIT_AUTO_CATCH_ITEM) || incapacitated() || get_active_held_item()))
+ embed_item(I)
+ hitpush = FALSE
+ skipcatch = TRUE //can't catch the now embedded item
+ if(I)
+ if(!skipcatch && isturf(I.loc) && catch_item(I))
+ return TRUE
var/zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
var/dtype = BRUTE
var/volume = I.get_volume_by_throwforce_and_or_w_class()
@@ -214,6 +280,24 @@
Move(user.loc)
return 1
+/mob/living/attack_hand(mob/user)
+ ..() //Ignoring parent return value here.
+ SEND_SIGNAL(src, COMSIG_MOB_ATTACK_HAND, user)
+ if((user != src) && user.a_intent != INTENT_HELP && check_shields(user, 0, user.name, attack_type = UNARMED_ATTACK))
+ log_combat(user, src, "attempted to touch")
+ visible_message("[user] attempted to touch [src]!")
+ return TRUE
+
+/mob/living/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
+ if(user.a_intent == INTENT_HARM)
+ if(HAS_TRAIT(user, TRAIT_PACIFISM))
+ to_chat(user, "You don't want to hurt [src]!")
+ return TRUE
+ var/hulk_verb = pick("smash","pummel")
+ if(user != src && check_shields(user, 15, "the [hulk_verb]ing"))
+ return TRUE
+ ..()
+ return FALSE
/mob/living/attack_slime(mob/living/simple_animal/slime/M)
if(!SSticker.HasRoundStarted())
@@ -229,6 +313,12 @@
to_chat(M, "You don't want to hurt anyone!")
return FALSE
+ var/damage = rand(5, 35)
+ if(M.is_adult)
+ damage = rand(20, 40)
+ if(check_shields(M, damage, "the [M.name]"))
+ return FALSE
+
if (stat != DEAD)
log_combat(M, src, "attacked")
M.do_attack_animation(src)
@@ -245,7 +335,8 @@
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "You don't want to hurt anyone!")
return FALSE
-
+ if(check_shields(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", MELEE_ATTACK, M.armour_penetration))
+ return FALSE
if(M.attack_sound)
playsound(loc, M.attack_sound, 50, 1, 1)
M.do_attack_animation(src)
@@ -256,10 +347,6 @@
/mob/living/attack_paw(mob/living/carbon/monkey/M)
- if(isturf(loc) && istype(loc.loc, /area/start))
- to_chat(M, "No attacking people at spawn, you jackass.")
- return FALSE
-
if (M.a_intent == INTENT_HARM)
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "You don't want to hurt anyone!")
@@ -268,6 +355,8 @@
if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSMOUTH))
to_chat(M, "You can't bite with your mouth covered!")
return FALSE
+ if(check_shields(M, 0, "the [M.name]"))
+ return FALSE
M.do_attack_animation(src, ATTACK_EFFECT_BITE)
if (prob(75))
log_combat(M, src, "attacked")
@@ -282,15 +371,16 @@
/mob/living/attack_larva(mob/living/carbon/alien/larva/L)
switch(L.a_intent)
- if("help")
+ if(INTENT_HELP)
visible_message("[L.name] rubs its head against [src].")
return FALSE
else
if(HAS_TRAIT(L, TRAIT_PACIFISM))
to_chat(L, "You don't want to hurt anyone!")
- return
-
+ return FALSE
+ if(L != src && check_shields(L, rand(1, 3), "the [L.name]"))
+ return FALSE
L.do_attack_animation(src)
if(prob(90))
log_combat(L, src, "attacked")
@@ -301,24 +391,29 @@
else
visible_message("[L.name] has attempted to bite [src]!", \
"[L.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE)
- return FALSE
/mob/living/attack_alien(mob/living/carbon/alien/humanoid/M)
+ if((M != src) && M.a_intent != INTENT_HELP && check_shields(M, 0, "the [M.name]"))
+ visible_message("[M] attempted to touch [src]!")
+ return FALSE
switch(M.a_intent)
- if ("help")
- visible_message("[M] caresses [src] with its scythe like arm.")
+ if (INTENT_HELP)
+ if(!isalien(src)) //I know it's ugly, but the alien vs alien attack_alien behaviour is a bit different.
+ visible_message("[M] caresses [src] with its scythe like arm.")
return FALSE
- if ("grab")
+ if (INTENT_GRAB)
grabbedby(M)
return FALSE
- if("harm")
+ if(INTENT_HARM)
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "You don't want to hurt anyone!")
return FALSE
- M.do_attack_animation(src)
+ if(!isalien(src))
+ M.do_attack_animation(src)
return TRUE
- if("disarm")
- M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
+ if(INTENT_DISARM)
+ if(!isalien(src))
+ M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
return TRUE
/mob/living/ex_act(severity, target, origin)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 6d007f1672..ccb865a1e2 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -260,15 +260,6 @@
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!")
diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm
index 7c59c2b791..97d26f672a 100644
--- a/code/modules/mob/living/silicon/ai/ai_defense.dm
+++ b/code/modules/mob/living/silicon/ai/ai_defense.dm
@@ -1,15 +1,9 @@
-
/mob/living/silicon/ai/attacked_by(obj/item/I, mob/living/user, def_zone)
+ . = ..()
+ if(!.)
+ return FALSE
if(I.force && I.damtype != STAMINA && stat != DEAD) //only sparks if real damage is dealt.
spark_system.start()
- return ..()
-
-
-/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/M)
- if(!SSticker.HasRoundStarted())
- to_chat(M, "You cannot attack people before the game has started.")
- return
- ..()
/mob/living/silicon/ai/attack_slime(mob/living/simple_animal/slime/user)
return //immune to slimes
diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm
index dda8ddfebd..5ac841326b 100644
--- a/code/modules/mob/living/silicon/pai/pai_defense.dm
+++ b/code/modules/mob/living/silicon/pai/pai_defense.dm
@@ -26,13 +26,14 @@
fold_in(force = 1)
Knockdown(200)
+//ATTACK HAND IGNORING PARENT RETURN VALUE
/mob/living/silicon/pai/attack_hand(mob/living/carbon/human/user)
switch(user.a_intent)
- if("help")
+ if(INTENT_HELP)
visible_message("[user] gently pats [src] on the head, eliciting an off-putting buzzing from its holographic field.")
- if("disarm")
+ if(INTENT_DISARM)
visible_message("[user] boops [src] on the head!")
- if("harm")
+ if(INTENT_HARM)
user.do_attack_animation(src)
if (user.name == master)
visible_message("Responding to its master's touch, [src] disengages its holochassis emitter, rapidly losing coherence.")
@@ -41,14 +42,19 @@
if(user.put_in_hands(card))
user.visible_message("[user] promptly scoops up [user.p_their()] pAI's card.")
else
+ if(HAS_TRAIT(user, TRAIT_PACIFISM))
+ to_chat(user, "You don't want to hurt [src]!")
+ return
visible_message("[user] stomps on [src]!.")
take_holo_damage(2)
+ else
+ grabbedby(user)
-/mob/living/silicon/pai/bullet_act(obj/item/projectile/Proj)
- if(Proj.stun)
+/mob/living/silicon/pai/bullet_act(obj/item/projectile/P, def_zone)
+ if(P.stun)
fold_in(force = TRUE)
- src.visible_message("The electrically-charged projectile disrupts [src]'s holomatrix, forcing [src] to fold in!")
- . = ..(Proj)
+ visible_message("The electrically-charged projectile disrupts [src]'s holomatrix, forcing [src] to fold in!")
+ . = ..()
/mob/living/silicon/pai/stripPanelUnequip(obj/item/what, mob/who, where) //prevents stripping
to_chat(src, "Your holochassis stutters and warps intensely as you attempt to interact with the object, forcing you to cease lest the field fail.")
@@ -63,7 +69,8 @@
emitterhealth = CLAMP((emitterhealth - amount), -50, emittermaxhealth)
if(emitterhealth < 0)
fold_in(force = TRUE)
- to_chat(src, "The impact degrades your holochassis!")
+ if(amount > 0)
+ to_chat(src, "The impact degrades your holochassis!")
return amount
/mob/living/silicon/pai/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 5df24406c5..5f7d3ca243 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1298,4 +1298,12 @@
/mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_health = 1)
if(istype(cell))
- cell.charge -= amount*5
\ No newline at end of file
+ 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
diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm
index 0f09b6f62a..7e06c66eff 100644
--- a/code/modules/mob/living/silicon/robot/robot_defense.dm
+++ b/code/modules/mob/living/silicon/robot/robot_defense.dm
@@ -13,7 +13,19 @@
spark_system.start()
return ..()
+/mob/living/silicon/robot/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
+ . = ..()
+ if(.)
+ spark_system.start()
+ spawn(0)
+ step_away(src,user,15)
+ sleep(3)
+ step_away(src,user,15)
+
/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M)
+ . = ..()
+ if(!.) // the attack was blocked or was help/grab intent
+ return
if (M.a_intent == INTENT_DISARM)
if(!(lying))
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
@@ -30,24 +42,19 @@
visible_message("[M] has forced back [src]!", \
"[M] has forced back [src]!", null, COMBAT_MESSAGE_RANGE)
playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1)
- else
- ..()
- return
/mob/living/silicon/robot/attack_slime(mob/living/simple_animal/slime/M)
- if(..()) //successful slime shock
- flash_act()
- var/stunprob = M.powerlevel * 7 + 10
- if(prob(stunprob) && M.powerlevel >= 8)
- adjustBruteLoss(M.powerlevel * rand(6,10))
-
- var/damage = rand(1, 3)
-
+ . = ..()
+ if(!.) //unsuccessful slime shock
+ return
+ var/stunprob = M.powerlevel * 7 + 10
+ var/damage = M.powerlevel * rand(6,10)
+ if(prob(stunprob) && M.powerlevel >= 8)
+ flash_act(affect_silicon = TRUE) //my borg eyes!
if(M.is_adult)
- damage = rand(20, 40)
+ damage += rand(10, 20)
else
- damage = rand(5, 35)
- damage = round(damage / 2) // borgs receive half damage
+ damage += rand(2, 17)
adjustBruteLoss(damage)
updatehealth()
@@ -56,23 +63,17 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/mob/living/silicon/robot/attack_hand(mob/living/carbon/human/user)
add_fingerprint(user)
- if(opened && !wiresexposed && !issilicon(user))
- if(cell)
- cell.update_icon()
- cell.add_fingerprint(user)
- user.put_in_active_hand(cell)
- to_chat(user, "You remove \the [cell].")
- cell = null
- update_icons()
- diag_hud_set_borgcell()
+ if(opened && !wiresexposed && cell && !issilicon(user))
+ cell.update_icon()
+ cell.add_fingerprint(user)
+ user.put_in_active_hand(cell)
+ to_chat(user, "You remove \the [cell].")
+ cell = null
+ update_icons()
+ diag_hud_set_borgcell()
if(!opened)
- if(..()) // hulk attack
- spark_system.start()
- spawn(0)
- step_away(src,user,15)
- sleep(3)
- step_away(src,user,15)
+ return ..()
/mob/living/silicon/robot/fire_act()
if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them
@@ -182,9 +183,9 @@
if (stat != DEAD)
adjustBruteLoss(30)
-/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj)
- ..(Proj)
+/mob/living/silicon/robot/bullet_act(obj/item/projectile/P, def_zone)
+ ..()
updatehealth()
- if(prob(75) && Proj.damage > 0)
+ if(prob(75) && P.damage > 0)
spark_system.start()
return 2
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index b9cee43138..699105ac4c 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -389,6 +389,15 @@
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/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm
index 073a2eec2b..ca8ad25713 100644
--- a/code/modules/mob/living/silicon/silicon_defense.dm
+++ b/code/modules/mob/living/silicon/silicon_defense.dm
@@ -6,7 +6,10 @@
return 2
/mob/living/silicon/attack_alien(mob/living/carbon/alien/humanoid/M)
- if(..()) //if harm or disarm intent
+ . = ..()
+ if(!.) // the attack was blocked or was help/grab intent
+ return
+ if(M.a_intent == INTENT_HARM)
var/damage = 20
if (prob(90))
log_combat(M, src, "attacked")
@@ -49,34 +52,33 @@
/mob/living/silicon/attack_paw(mob/living/user)
return attack_hand(user)
-/mob/living/silicon/attack_larva(mob/living/carbon/alien/larva/L)
- if(L.a_intent == INTENT_HELP)
- visible_message("[L.name] rubs its head against [src].")
-
-/mob/living/silicon/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/mob/living/silicon/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
- ..(user, 1)
+ . = ..(user, TRUE)
+ if(.)
+ return
adjustBruteLoss(rand(10, 15))
playsound(loc, "punch", 25, 1, -1)
visible_message("[user] has punched [src]!", \
"[user] has punched [src]!")
- return 1
- return 0
+ return TRUE
+ return FALSE
-//ATTACK HAND IGNORING PARENT RETURN VALUE
/mob/living/silicon/attack_hand(mob/living/carbon/human/M)
+ . = ..()
+ if(.) //the attack was blocked
+ return
switch(M.a_intent)
- if ("help")
+ if (INTENT_HELP)
M.visible_message("[M] pets [src].", \
"You pet [src].")
- if("grab")
+ if(INTENT_GRAB)
grabbedby(M)
else
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
playsound(src.loc, 'sound/effects/bang.ogg', 10, 1)
visible_message("[M] punches [src], but doesn't leave a dent.", \
"[M] punches [src], but doesn't leave a dent.", null, COMBAT_MESSAGE_RANGE)
- return 0
/mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M)
if(M.a_intent == INTENT_HARM)
@@ -108,19 +110,25 @@
M.visible_message("[M] is thrown off of [src]!")
flash_act(affect_silicon = 1)
-/mob/living/silicon/bullet_act(obj/item/projectile/Proj)
- if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
- adjustBruteLoss(Proj.damage)
- if(prob(Proj.damage*1.5))
+/mob/living/silicon/bullet_act(obj/item/projectile/P, def_zone)
+ if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself
+ if(reflect_bullet_check(P, def_zone))
+ return -1 // complete projectile permutation
+ if(check_shields(P, P.damage, "the [P.name]", PROJECTILE_ATTACK, P.armour_penetration))
+ P.on_hit(src, 100, def_zone)
+ return 2
+ if((P.damage_type == BRUTE || P.damage_type == BURN))
+ adjustBruteLoss(P.damage)
+ if(prob(P.damage*1.5))
for(var/mob/living/M in buckled_mobs)
M.visible_message("[M] is knocked off of [src]!")
unbuckle_mob(M)
M.Knockdown(40)
- if(Proj.stun || Proj.knockdown)
+ if(P.stun || P.knockdown)
for(var/mob/living/M in buckled_mobs)
unbuckle_mob(M)
- M.visible_message("[M] is knocked off of [src] by the [Proj]!")
- Proj.on_hit(src)
+ M.visible_message("[M] is knocked off of [src] by the [P]!")
+ P.on_hit(src)
return 2
/mob/living/silicon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash/static)
diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm
index 793df63c87..0dfa126e79 100644
--- a/code/modules/mob/living/simple_animal/animal_defense.dm
+++ b/code/modules/mob/living/simple_animal/animal_defense.dm
@@ -1,20 +1,22 @@
/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M)
- ..()
+ . = ..()
+ if(.) //the attack was blocked
+ return
switch(M.a_intent)
- if("help")
+ if(INTENT_HELP)
if (health > 0)
visible_message("[M] [response_help] [src].")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- if("grab")
+ if(INTENT_GRAB)
if(grab_state >= GRAB_AGGRESSIVE && isliving(pulling))
vore_attack(M, pulling)
else
grabbedby(M)
- if("harm", "disarm")
+ if(INTENT_HARM, INTENT_DISARM)
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "You don't want to hurt [src]!")
return
@@ -27,12 +29,11 @@
updatehealth()
return TRUE
-/mob/living/simple_animal/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/mob/living/simple_animal/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
- if(HAS_TRAIT(user, TRAIT_PACIFISM))
- to_chat(user, "You don't want to hurt [src]!")
- return FALSE
- ..(user, 1)
+ . = ..(user, TRUE)
+ if(.)
+ return
playsound(loc, "punch", 25, 1, -1)
visible_message("[user] has punched [src]!", \
"[user] has punched [src]!", null, COMBAT_MESSAGE_RANGE)
@@ -40,32 +41,32 @@
return TRUE
/mob/living/simple_animal/attack_paw(mob/living/carbon/monkey/M)
- if(..()) //successful monkey bite.
- if(stat != DEAD)
- var/damage = rand(1, 3)
- attack_threshold_check(damage)
- return 1
+ . = ..()
+ if(.) //successful larva bite
+ var/damage = rand(1, 3)
+ attack_threshold_check(damage)
+ return 1
if (M.a_intent == INTENT_HELP)
if (health > 0)
visible_message("[M.name] [response_help] [src].")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
-
/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M)
- if(..()) //if harm or disarm intent.
- if(M.a_intent == INTENT_DISARM)
- playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
- visible_message("[M] [response_disarm] [name]!", \
- "[M] [response_disarm] [name]!", null, COMBAT_MESSAGE_RANGE)
- log_combat(M, src, "disarmed")
- else
- var/damage = rand(15, 30)
- visible_message("[M] has slashed at [src]!", \
- "[M] has slashed at [src]!", null, COMBAT_MESSAGE_RANGE)
- playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
- attack_threshold_check(damage)
- log_combat(M, src, "attacked")
- return 1
+ . = ..()
+ if(!.) // the attack was blocked or was help/grab intent
+ return
+ if(M.a_intent == INTENT_DISARM)
+ playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
+ visible_message("[M] [response_disarm] [name]!", \
+ "[M] [response_disarm] [name]!", null, COMBAT_MESSAGE_RANGE)
+ log_combat(M, src, "disarmed")
+ else
+ var/damage = rand(15, 30)
+ visible_message("[M] has slashed at [src]!", \
+ "[M] has slashed at [src]!", null, COMBAT_MESSAGE_RANGE)
+ playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
+ attack_threshold_check(damage)
+ log_combat(M, src, "attacked")
/mob/living/simple_animal/attack_larva(mob/living/carbon/alien/larva/L)
. = ..()
@@ -82,7 +83,8 @@
return attack_threshold_check(damage, M.melee_damage_type)
/mob/living/simple_animal/attack_slime(mob/living/simple_animal/slime/M)
- if(..()) //successful slime attack
+ . = ..()
+ if(.) //successful slime shock
var/damage = rand(15, 25)
if(M.is_adult)
damage = rand(20, 35)
diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
index f2ab3e56ed..03afecc66f 100644
--- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
+++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
@@ -51,7 +51,7 @@
weapon.attack(C, src)
playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE, -1)
if(C.stat == DEAD)
- addtimer(CALLBACK(src, .proc/update_icon), 2)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 2)
back_to_idle()
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index 7a653f4aa4..3397d9f4b6 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -840,7 +840,7 @@ Pass a positive integer as an argument to override a bot's default speed.
ejectpai(usr)
update_controls()
-/mob/living/simple_animal/bot/proc/update_icon()
+/mob/living/simple_animal/bot/update_icon_state()
icon_state = "[initial(icon_state)][on]"
// Machinery to simplify topic and access calls
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index 396c6de166..cae707ce46 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)
+ target_turf.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR)
else //Build a hull plating without a floor tile.
- target_turf.PlaceOnTop(/turf/open/floor/plating)
+ target_turf.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
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)
+ F.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR)
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))
+ F.PlaceOnTop(initial(tiletype.turf_type), flags = CHANGETURF_INHERIT_AIR)
specialtiles -= 1
if(specialtiles == 0)
speak("Requesting refill of custom floortiles to continue replacing.")
diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm
index 68b3a534a7..e59e928ed7 100644
--- a/code/modules/mob/living/simple_animal/bot/honkbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm
@@ -50,7 +50,7 @@
/mob/living/simple_animal/bot/honkbot/proc/sensor_blink()
icon_state = "honkbot-c"
- addtimer(CALLBACK(src, .proc/update_icon), 5, TIMER_OVERRIDE|TIMER_UNIQUE)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 5, TIMER_OVERRIDE|TIMER_UNIQUE)
//honkbots react with sounds.
/mob/living/simple_animal/bot/honkbot/proc/react_ping()
@@ -113,7 +113,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
mode = BOT_HUNT
/mob/living/simple_animal/bot/honkbot/attack_hand(mob/living/carbon/human/H)
- if(H.a_intent == "harm")
+ if(H.a_intent == INTENT_HARM)
retaliate(H)
addtimer(CALLBACK(src, .proc/react_buzz), 5)
return ..()
@@ -177,7 +177,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
playsound(src, "honkbot_e", 50, 0)
spam_flag = TRUE // prevent spam
icon_state = "honkbot-e"
- addtimer(CALLBACK(src, .proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE)
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
/mob/living/simple_animal/bot/honkbot/proc/honk_attack(mob/living/carbon/C) // horn attack
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index 4aedbac83f..4a39f63494 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -250,7 +250,7 @@ Auto Patrol: []"},
var/judgement_criteria = judgement_criteria()
playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1)
icon_state = "secbot-c"
- addtimer(CALLBACK(src, .proc/update_icon), 2)
+ addtimer(CALLBACK(src, /atom/.proc/update_icon), 2)
var/threat = 5
if(ishuman(C))
C.stuttering = 5
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 02e171e4c4..bda309f7c7 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -232,9 +232,9 @@
/mob/living/simple_animal/pet/cat/attack_hand(mob/living/carbon/human/M)
. = ..()
switch(M.a_intent)
- if("help")
+ if(INTENT_HELP)
wuv(1, M)
- if("harm")
+ if(INTENT_HARM)
wuv(-1, M)
/mob/living/simple_animal/pet/cat/proc/wuv(change, mob/M)
@@ -290,7 +290,9 @@
D.decorate_donut()
/mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L)
- ..()
+ . = ..()
+ if(.) //the attack was blocked
+ return
if(L.a_intent == INTENT_HARM && L.reagents && !stat)
L.reagents.add_reagent("nutriment", 0.4)
L.reagents.add_reagent("vitamin", 0.4)
diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm
index 0d933d171b..986e5c9b4d 100644
--- a/code/modules/mob/living/simple_animal/friendly/dog.dm
+++ b/code/modules/mob/living/simple_animal/friendly/dog.dm
@@ -643,9 +643,9 @@
/mob/living/simple_animal/pet/dog/attack_hand(mob/living/carbon/human/M)
. = ..()
switch(M.a_intent)
- if("help")
+ if(INTENT_HELP)
wuv(1,M)
- if("harm")
+ if(INTENT_HARM)
wuv(-1,M)
/mob/living/simple_animal/pet/dog/proc/wuv(change, mob/M)
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
index 463b29772c..28fb1f5a42 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
@@ -275,6 +275,15 @@
/mob/living/simple_animal/drone/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0, stun = TRUE)
return 0 //So they don't die trying to fix wiring
+/mob/living/simple_animal/drone/can_see_reagents()
+ . = ..()
+ if(.)
+ return
+ if(isclothing(head))
+ var/obj/item/clothing/H = head
+ if(H.clothing_flags & SCAN_REAGENTS)
+ return TRUE
+
/mob/living/simple_animal/drone/generate_mob_holder()
var/obj/item/clothing/head/mob_holder/holder = new(get_turf(src), src, "[visualAppearence]_hat", null, null, null, TRUE)
return holder
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
index e40eb585e8..c9207fcf89 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
@@ -31,9 +31,9 @@
//picky up the drone c:
/mob/living/simple_animal/drone/attack_hand(mob/user)
- ..()
- if(user.a_intent == INTENT_HELP)
- mob_try_pickup(user)
+ if(user.a_intent != INTENT_HELP)
+ return ..() // TODO: convert picking up mobs into an element or component.
+ mob_try_pickup(user)
/mob/living/simple_animal/drone/proc/try_reactivate(mob/living/user)
var/mob/dead/observer/G = get_ghost()
diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm
index 27dd8ac1f8..237ab9d919 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm
@@ -54,10 +54,8 @@
var/blocked = FALSE
if(hasmatchingsummoner(hit_atom)) //if the summoner matches don't hurt them
blocked = TRUE
- if(ishuman(hit_atom))
- var/mob/living/carbon/human/H = hit_atom
- if(H.check_shields(src, 90, "[name]", attack_type = THROWN_PROJECTILE_ATTACK))
- blocked = TRUE
+ if(L.check_shields(src, 90, "[name]", attack_type = THROWN_PROJECTILE_ATTACK))
+ blocked = TRUE
if(!blocked)
L.drop_all_held_items()
L.visible_message("[src] slams into [L]!", "[src] slams into you!")
diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm
index b67770fb4b..3bc8715c5c 100644
--- a/code/modules/mob/living/simple_animal/hostile/goose.dm
+++ b/code/modules/mob/living/simple_animal/hostile/goose.dm
@@ -9,7 +9,7 @@
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak_chance = 0
turns_per_move = 5
- butcher_results = list(/obj/item/reagent_containers/food/snacks/meat = 2)
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
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 51a9d8d62b..c2c9f5a71f 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -486,10 +486,7 @@ Difficulty: Very Hard
if(isturf(Stuff))
var/turf/T = Stuff
if((isspaceturf(T) || isfloorturf(T)) && NewTerrainFloors)
- var/turf/open/O = T.ChangeTurf(NewTerrainFloors)
- if(O.air)
- var/datum/gas_mixture/G = O.air
- G.copy_from_turf(O)
+ var/turf/open/O = T.ChangeTurf(NewTerrainFloors, flags = CHANGETURF_INHERIT_AIR)
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/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index 397d40925b..7cfae9310a 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -594,12 +594,15 @@ Difficulty: Normal
var/list/hit_things = list() //we hit these already, ignore them
var/friendly_fire_check = FALSE
var/bursting = FALSE //if we're bursting and need to hit anyone crossing us
+ var/list/nohurt
-/obj/effect/temp_visual/hierophant/blast/Initialize(mapload, new_caster, friendly_fire, list/only_hit_once)
+/obj/effect/temp_visual/hierophant/blast/Initialize(mapload, new_caster, friendly_fire, list/only_hit_once, list/donthurt = null)
. = ..()
if(only_hit_once)
hit_things = only_hit_once
friendly_fire_check = friendly_fire
+ if(donthurt)
+ hit_things += donthurt
if(new_caster)
hit_things += new_caster
if(ismineralturf(loc)) //drill mineral turfs
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
index 39de40b5a5..d32fec1dce 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -27,7 +27,7 @@
mob_size = MOB_SIZE_LARGE
layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise
mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway
- flags_1 = PREVENT_CONTENTS_EXPLOSION_1
+ flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1
var/list/crusher_loot
var/medal_type
var/score_type = BOSS_SCORE
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 04a1b4a468..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
@@ -24,7 +24,8 @@
var/list/attack_action_types = list()
var/can_talk = FALSE
var/obj/loot_drop = null
-
+ var/owner
+
//Gives player-controlled variants the ability to swap attacks
/mob/living/simple_animal/hostile/asteroid/elite/Initialize(mapload)
. = ..()
@@ -53,14 +54,14 @@
if(ismineralturf(target))
var/turf/closed/mineral/M = target
M.gets_drilled()
-
+
//Elites can't talk (normally)!
/mob/living/simple_animal/hostile/asteroid/elite/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
if(can_talk)
. = ..()
return TRUE
return FALSE
-
+
/*Basic setup for elite attacks, based on Whoneedspace's megafauna attack setup.
While using this makes the system rely on OnFire, it still gives options for timers not tied to OnFire, and it makes using attacks consistent accross the board for player-controlled elites.*/
@@ -82,11 +83,11 @@ While using this makes the system rely on OnFire, it still gives options for tim
/datum/action/innate/elite_attack/Activate()
M.chosen_attack = chosen_attack_num
to_chat(M, chosen_message)
-
+
/mob/living/simple_animal/hostile/asteroid/elite/updatehealth()
. = ..()
update_health_hud()
-
+
/mob/living/simple_animal/hostile/asteroid/elite/update_health_hud()
if(hud_used)
var/severity = 0
@@ -144,7 +145,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
gpstag = "Menacing Signal"
desc = "You're not quite sure how a signal can be menacing."
invisibility = 100
-
+
/obj/structure/elite_tumor/attack_hand(mob/user)
. = ..()
if(ishuman(user))
@@ -179,7 +180,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
activity = TUMOR_INACTIVE
activator = null
-
+
obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind)
var/selectedspawn = pick(potentialspawns)
mychild = new selectedspawn(loc)
@@ -199,18 +200,18 @@ obj/structure/elite_tumor/proc/return_elite()
if(boosted)
mychild.maxHealth = mychild.maxHealth * 2
mychild.health = mychild.maxHealth
-
+
/obj/structure/elite_tumor/Initialize(mapload)
. = ..()
internal = new/obj/item/gps/internal/elite(src)
START_PROCESSING(SSobj, src)
-
+
/obj/structure/elite_tumor/Destroy()
STOP_PROCESSING(SSobj, src)
mychild = null
activator = null
return ..()
-
+
/obj/structure/elite_tumor/process()
if(isturf(loc))
for(var/mob/living/simple_animal/hostile/asteroid/elite/elitehere in loc)
@@ -218,7 +219,7 @@ obj/structure/elite_tumor/proc/return_elite()
mychild.adjustHealth(-mychild.maxHealth*0.05)
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(mychild))
H.color = "#FF0000"
-
+
/obj/structure/elite_tumor/attackby(obj/item/I, mob/user, params)
. = ..()
if(istype(I, /obj/item/organ/regenerative_core) && activity == TUMOR_INACTIVE && !boosted)
@@ -232,7 +233,7 @@ obj/structure/elite_tumor/proc/return_elite()
desc = "[desc] This one seems to glow with a strong intensity."
qdel(core)
return TRUE
-
+
/obj/structure/elite_tumor/proc/arena_checks()
if(activity != TUMOR_ACTIVE || QDELETED(src))
return
@@ -240,13 +241,13 @@ obj/structure/elite_tumor/proc/return_elite()
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.
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))
onEliteWon()
if(mychild != null && mychild.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(mychild))
onEliteLoss()
-
+
/obj/structure/elite_tumor/proc/arena_trap()
var/turf/T = get_turf(src)
if(loc == null)
@@ -257,7 +258,7 @@ obj/structure/elite_tumor/proc/return_elite()
newwall = new /obj/effect/temp_visual/elite_tumor_wall(t, src)
newwall.activator = src.activator
newwall.ourelite = src.mychild
-
+
/obj/structure/elite_tumor/proc/border_check()
if(activator != null && get_dist(src, activator) >= 12)
activator.forceMove(loc)
@@ -267,7 +268,7 @@ obj/structure/elite_tumor/proc/return_elite()
mychild.forceMove(loc)
visible_message("[mychild] suddenly reappears above [src]!")
playsound(loc,'sound/effects/phasein.ogg', 200, 0, 50, TRUE, TRUE)
-
+
obj/structure/elite_tumor/proc/onEliteLoss()
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, TRUE, TRUE)
visible_message("[src] begins to convulse violently before beginning to dissipate.")
@@ -286,7 +287,7 @@ obj/structure/elite_tumor/proc/onEliteLoss()
mychild = null
activator = null
qdel(src)
-
+
obj/structure/elite_tumor/proc/onEliteWon()
activity = TUMOR_PASSIVE
activator = null
@@ -300,7 +301,7 @@ obj/structure/elite_tumor/proc/onEliteWon()
to_chat(mychild, "As the life in the activator's eyes fade, the forcefield around you dies out and you feel your power subside.\nDespite this inferno being your home, you feel as if you aren't welcome here anymore.\nWithout any guidance, your purpose is now for you to decide.")
to_chat(mychild, "Your max health has been halved, but can now heal by standing on your tumor. Note, it's your only way to heal.\nBear in mind, if anyone interacts with your tumor, you'll be resummoned here to carry out another fight. In such a case, you will regain your full max health.\nAlso, be weary of your fellow inhabitants, they likely won't be happy to see you!")
to_chat(mychild, "Note that you are a lavaland monster, and thus not allied to the station. You should not cooperate or act friendly with any station crew unless under extreme circumstances!")
-
+
/obj/item/tumor_shard
name = "tumor shard"
desc = "A strange, sharp, crystal shard from an odd tumor on Lavaland. Stabbing the corpse of a lavaland elite with this will revive them, assuming their soul still lingers. Revived lavaland elites only have half their max health, but are completely loyal to their reviver."
@@ -313,7 +314,7 @@ obj/structure/elite_tumor/proc/onEliteWon()
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
-
+
/obj/item/tumor_shard/afterattack(atom/target, mob/user, proximity_flag)
. = ..()
if(istype(target, /mob/living/simple_animal/hostile/asteroid/elite) && proximity_flag)
@@ -331,10 +332,11 @@ obj/structure/elite_tumor/proc/onEliteWon()
E.health = E.maxHealth
E.desc = "[E.desc] However, this one appears appears less wild in nature, and calmer around people."
E.sentience_type = SENTIENCE_ORGANIC
+ E.owner = user
qdel(src)
else
to_chat(user, "[src] only works on the corpse of a sentient lavaland elite.")
-
+
/obj/effect/temp_visual/elite_tumor_wall
name = "magic wall"
icon = 'icons/turf/walls/hierophant_wall_temp.dmi'
@@ -347,7 +349,7 @@ obj/structure/elite_tumor/proc/onEliteWon()
color = rgb(255,0,0)
light_range = MINIMUM_USEFUL_LIGHT_RANGE
light_color = LIGHT_COLOR_RED
-
+
/obj/effect/temp_visual/elite_tumor_wall/Initialize(mapload, new_caster)
. = ..()
queue_smooth_neighbors(src)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
index c18a342206..116e2b8e45 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
@@ -201,7 +201,7 @@
mother.children_list -= src
visible_message("[src] explodes!")
explosion(get_turf(loc),0,0,0,flame_range = 3, adminlog = FALSE)
- gib()
+ qdel()
//Tentacles have less stun time compared to regular variant, to balance being able to use them much more often. Also, 10 more damage.
/obj/effect/temp_visual/goliath_tentacle/broodmother/trip()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm
index 540470d505..e65c4f5b20 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm
@@ -44,34 +44,34 @@
/datum/action/innate/elite_attack/magic_box,
/datum/action/innate/elite_attack/pandora_teleport,
/datum/action/innate/elite_attack/aoe_squares)
-
+
var/sing_shot_length = 8
var/cooldown_time = 20
-
+
/datum/action/innate/elite_attack/singular_shot
name = "Singular Shot"
button_icon_state = "singular_shot"
chosen_message = "You are now creating a single linear magic square."
chosen_attack_num = SINGULAR_SHOT
-
+
/datum/action/innate/elite_attack/magic_box
name = "Magic Box"
button_icon_state = "magic_box"
chosen_message = "You are now attacking with a box of magic squares."
chosen_attack_num = MAGIC_BOX
-
+
/datum/action/innate/elite_attack/pandora_teleport
name = "Line Teleport"
button_icon_state = "pandora_teleport"
chosen_message = "You will now teleport to your target."
chosen_attack_num = PANDORA_TELEPORT
-
+
/datum/action/innate/elite_attack/aoe_squares
name = "AOE Blast"
button_icon_state = "aoe_squares"
chosen_message = "Your attacks will spawn an AOE blast at your target location."
chosen_attack_num = AOE_SQUARES
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/OpenFire()
if(client)
switch(chosen_attack)
@@ -94,7 +94,7 @@
pandora_teleport(target)
if(AOE_SQUARES)
aoe_squares(target)
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/Life()
. = ..()
if(health >= maxHealth * 0.5)
@@ -105,28 +105,28 @@
return
else
cooldown_time = 10
-
-/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/singular_shot(target)
+
+/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/singular_shot(target)
ranged_cooldown = world.time + (cooldown_time * 0.5)
var/dir_to_target = get_dir(get_turf(src), get_turf(target))
var/turf/T = get_step(get_turf(src), dir_to_target)
singular_shot_line(sing_shot_length, dir_to_target, T)
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/singular_shot_line(var/procsleft, var/angleused, var/turf/T)
if(procsleft <= 0)
return
- new /obj/effect/temp_visual/hierophant/blast/pandora(T, src)
+ new /obj/effect/temp_visual/hierophant/blast/pandora(T, src, null, null, list(owner))
T = get_step(T, angleused)
procsleft = procsleft - 1
addtimer(CALLBACK(src, .proc/singular_shot_line, procsleft, angleused, T), 2)
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/magic_box(target)
ranged_cooldown = world.time + cooldown_time
var/turf/T = get_turf(target)
for(var/t in spiral_range_turfs(3, T))
if(get_dist(t, T) > 1)
- new /obj/effect/temp_visual/hierophant/blast/pandora(t, src)
-
+ new /obj/effect/temp_visual/hierophant/blast/pandora(t, src, null, null, list(owner))
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport(target)
ranged_cooldown = world.time + cooldown_time
var/turf/T = get_turf(target)
@@ -135,45 +135,45 @@
new /obj/effect/temp_visual/hierophant/telegraph(source, src)
playsound(source,'sound/machines/airlockopen.ogg', 200, 1)
addtimer(CALLBACK(src, .proc/pandora_teleport_2, T, source), 2)
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_2(var/turf/T, var/turf/source)
new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, src)
new /obj/effect/temp_visual/hierophant/telegraph/teleport(source, src)
for(var/t in RANGE_TURFS(1, T))
- new /obj/effect/temp_visual/hierophant/blast/pandora(t, src)
+ new /obj/effect/temp_visual/hierophant/blast/pandora(t, src, null, null, list(owner))
for(var/t in RANGE_TURFS(1, source))
- new /obj/effect/temp_visual/hierophant/blast/pandora(t, src)
+ new /obj/effect/temp_visual/hierophant/blast/pandora(t, src, null, null, list(owner))
animate(src, alpha = 0, time = 2, easing = EASE_OUT) //fade out
visible_message("[src] fades out!")
density = FALSE
addtimer(CALLBACK(src, .proc/pandora_teleport_3, T), 2)
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_3(var/turf/T)
forceMove(T)
animate(src, alpha = 255, time = 2, easing = EASE_IN) //fade IN
density = TRUE
visible_message("[src] fades in!")
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/aoe_squares(target)
ranged_cooldown = world.time + cooldown_time
var/turf/T = get_turf(target)
- new /obj/effect/temp_visual/hierophant/blast/pandora(T, src)
+ new /obj/effect/temp_visual/hierophant/blast/pandora(T, src, null, null, list(owner))
var/max_size = 2
addtimer(CALLBACK(src, .proc/aoe_squares_2, T, 0, max_size), 2)
-
+
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/aoe_squares_2(var/turf/T, var/ring, var/max_size)
if(ring > max_size)
return
for(var/t in spiral_range_turfs(ring, T))
if(get_dist(t, T) == ring)
- new /obj/effect/temp_visual/hierophant/blast/pandora(t, src)
+ new /obj/effect/temp_visual/hierophant/blast/pandora(t, src, null, null, list(owner))
addtimer(CALLBACK(src, .proc/aoe_squares_2, T, (ring + 1), max_size), 2)
-
+
//The specific version of hiero's squares pandora uses
/obj/effect/temp_visual/hierophant/blast/pandora
damage = 20
monster_damage_boost = FALSE
-
+
//Pandora's loot: Hope
/obj/item/clothing/accessory/pandora_hope
name = "Hope"
@@ -181,7 +181,7 @@
icon = 'icons/obj/lavaland/elite_trophies.dmi'
icon_state = "hope"
resistance_flags = FIRE_PROOF
-
+
/obj/item/clothing/accessory/pandora_hope/on_uniform_equip(obj/item/clothing/under/U, user)
var/mob/living/L = user
if(L && L.mind)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
index c040931979..738c44aeb7 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
@@ -20,7 +20,7 @@
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
mob_size = MOB_SIZE_LARGE
var/icon_aggro = null
- var/crusher_drop_mod = 5
+ var/crusher_drop_mod = 25
/mob/living/simple_animal/hostile/asteroid/Initialize(mapload)
. = ..()
@@ -58,7 +58,7 @@
/mob/living/simple_animal/hostile/asteroid/death(gibbed)
SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type)
var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
- if(C && crusher_loot && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 20 creatures before getting the item
+ if(C && crusher_loot && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item
spawn_crusher_loot()
..(gibbed)
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index cc6dc6d821..a6da726394 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -166,7 +166,9 @@
..()
/mob/living/simple_animal/hostile/mushroom/attack_hand(mob/living/carbon/human/M)
- ..()
+ . = ..()
+ if(.) // the attack was blocked
+ return
if(M.a_intent == INTENT_HARM)
Bruise()
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index b046f9432b..aa4d632cf6 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -253,33 +253,34 @@
return
/mob/living/simple_animal/slime/attack_slime(mob/living/simple_animal/slime/M)
- if(..()) //successful slime attack
- if(M == src)
- return
- if(buckled)
- Feedstop(silent = TRUE)
- visible_message("[M] pulls [src] off!")
- return
- attacked += 5
- if(nutrition >= 100) //steal some nutrition. negval handled in life()
- nutrition -= (50 + (40 * M.is_adult))
- M.add_nutrition(50 + (40 * M.is_adult))
- if(health > 0)
- M.adjustBruteLoss(-10 + (-10 * M.is_adult))
- M.updatehealth()
+ . = ..()
+ if(!. || M == src) //unsuccessful slime shock
+ return
+ if(buckled)
+ Feedstop(silent = TRUE)
+ visible_message("[M] pulls [src] off!")
+ return
+ attacked += 5
+ if(nutrition >= 100) //steal some nutrition. negval handled in life()
+ nutrition -= (50 + (40 * M.is_adult))
+ M.add_nutrition(50 + (40 * M.is_adult))
+ if(health > 0)
+ M.adjustBruteLoss(-10 + (-10 * M.is_adult))
+ M.updatehealth()
/mob/living/simple_animal/slime/attack_animal(mob/living/simple_animal/M)
. = ..()
if(.)
attacked += 10
-
/mob/living/simple_animal/slime/attack_paw(mob/living/carbon/monkey/M)
- if(..()) //successful monkey bite.
+ . = ..()
+ if(.)//successful monkey bite.
attacked += 10
/mob/living/simple_animal/slime/attack_larva(mob/living/carbon/alien/larva/L)
- if(..()) //successful larva bite.
+ . = ..()
+ if(.) //successful larva bite.
attacked += 10
/mob/living/simple_animal/slime/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
@@ -321,9 +322,11 @@
attacked += 10
/mob/living/simple_animal/slime/attack_alien(mob/living/carbon/alien/humanoid/M)
- if(..()) //if harm or disarm intent.
- attacked += 10
- discipline_slime(M)
+ . = ..()
+ if(!.) // the attack was blocked or was help/grab intent
+ return
+ attacked += 10
+ discipline_slime(M)
/mob/living/simple_animal/slime/attackby(obj/item/W, mob/living/user, params)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index ee99c7e7b6..427e30f2e2 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -380,14 +380,10 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA
spintime -= speed
/mob/proc/update_pull_hud_icon()
- if(hud_used)
- if(hud_used.pull_icon)
- hud_used.pull_icon.update_icon(src)
+ hud_used?.pull_icon?.update_icon()
/mob/proc/update_rest_hud_icon()
- if(hud_used)
- if(hud_used.rest_icon)
- hud_used.rest_icon.update_icon(src)
+ hud_used?.rest_icon?.update_icon()
/mob/verb/mode()
set name = "Activate Held Object"
@@ -463,6 +459,11 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA
if(!ckey || !new_mob)
CRASH("transfer_ckey() called [ckey ? "" : "on a ckey-less mob[new_mob ? "" : " and "]"][new_mob ? "" : "without a valid mob target"]!")
SEND_SIGNAL(new_mob, COMSIG_MOB_PRE_PLAYER_CHANGE, new_mob, src)
+ if (client && client.prefs && client.prefs.auto_ooc)
+ if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob))
+ client.prefs.chat_toggles ^= CHAT_OOC
+ if (!(client.prefs.chat_toggles & CHAT_OOC) && isdead(new_mob))
+ client.prefs.chat_toggles ^= CHAT_OOC
new_mob.ckey = ckey
if(send_signal)
SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src)
@@ -811,26 +812,6 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
/mob/proc/can_interact_with(atom/A)
return IsAdminGhost(src) || Adjacent(A)
-//Can the mob see reagents inside of containers?
-/mob/proc/can_see_reagents()
- if(stat == DEAD) //Ghosts and such can always see reagents
- return 1
- if(has_unlimited_silicon_privilege) //Silicons can automatically view reagents
- return 1
- if(ishuman(src))
- var/mob/living/carbon/human/H = src
- if(H.head && istype(H.head, /obj/item/clothing))
- var/obj/item/clothing/CL = H.head
- if(CL.scan_reagents)
- return 1
- if(H.wear_mask && H.wear_mask.scan_reagents)
- return 1
- if(H.glasses && istype(H.glasses, /obj/item/clothing))
- var/obj/item/clothing/CL = H.glasses
- if(CL.scan_reagents)
- return 1
- return 0
-
//Can the mob use Topic to interact with machines
/mob/proc/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE)
return
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index a9f4c94397..c7365210ab 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -22,7 +22,7 @@
I'll make some notes on where certain variable defines should probably go.
Changing this around would probably require a good look-over the pre-existing code.
*/
- var/zone_selected = null
+ var/zone_selected = BODY_ZONE_CHEST
var/computer_id = null
var/list/logging = list()
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index c18fc36e9a..18fc2bfb42 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -532,3 +532,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
if(!held_item)
return
return held_item.GetID()
+
+//Can the mob see reagents inside of containers?
+/mob/proc/can_see_reagents()
+ return stat == DEAD || has_unlimited_silicon_privilege //Dead guys and silicons can always see reagents
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index c5a48b732b..31454a6744 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -371,7 +371,7 @@
m_intent = MOVE_INTENT_RUN
if(hud_used && hud_used.static_inventory)
for(var/obj/screen/mov_intent/selector in hud_used.static_inventory)
- selector.update_icon(src)
+ selector.update_icon()
/mob/verb/up()
set name = "Move Upwards"
diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm
index 8c304d8a2b..56c50078c1 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm
@@ -26,10 +26,9 @@ Contents:
/obj/item/clothing/suit/space/space_ninja/proc/enable_signals()
if(!affecting)
return
- RegisterSignal(affecting, list(COMSIG_MOB_ITEM_ATTACK, COMSIG_MOB_ATTACK_RANGED, COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_THROW, COMSIG_PARENT_ATTACKBY, COMSIG_MOVABLE_TELEPORTED, COMSIG_LIVING_GUN_PROCESS_FIRE), .proc/reduce_stealth)
+ RegisterSignal(affecting, list(COMSIG_MOB_ITEM_ATTACK, COMSIG_MOB_ATTACK_RANGED, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_THROW, COMSIG_PARENT_ATTACKBY, COMSIG_MOVABLE_TELEPORTED, COMSIG_LIVING_GUN_PROCESS_FIRE), .proc/reduce_stealth)
RegisterSignal(affecting, COMSIG_MOVABLE_BUMP, .proc/bumping_stealth)
-
/obj/item/clothing/suit/space/space_ninja/proc/reduce_stealth(datum/source)
affecting.alpha = min(affecting.alpha + 40, 100)
@@ -42,7 +41,7 @@ Contents:
return FALSE
stealth = !stealth
stealth_cooldown = world.time + 5 SECONDS
- UnregisterSignal(affecting, list(COMSIG_MOB_ITEM_ATTACK, COMSIG_MOB_ATTACK_RANGED, COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_THROW, COMSIG_PARENT_ATTACKBY, COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_TELEPORTED, COMSIG_LIVING_GUN_PROCESS_FIRE))
+ UnregisterSignal(affecting, list(COMSIG_MOB_ITEM_ATTACK, COMSIG_MOB_ATTACK_RANGED, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_THROW, COMSIG_PARENT_ATTACKBY, COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_TELEPORTED, COMSIG_LIVING_GUN_PROCESS_FIRE))
animate(affecting, alpha = 255, time = 3 SECONDS)
affecting.visible_message("[affecting.name] appears from thin air!", \
"You are now visible.")
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index e371959a14..cfd028c4df 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -102,7 +102,7 @@
/obj/item/paperplane/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(iscarbon(hit_atom))
var/mob/living/carbon/C = hit_atom
- if(C.can_catch_item(TRUE))
+ if(!C.get_active_held_item() && !C.restrained())
var/datum/action/innate/origami/origami_action = locate() in C.actions
if(origami_action?.active) //if they're a master of origami and have the ability turned on, force throwmode on so they'll automatically catch the plane.
C.throw_mode_on()
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 531c6082b0..19fdfd2b7e 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -37,6 +37,7 @@
var/burst_spread = 0 //Spread induced by the gun itself during burst fire per iteration. Only checked if spread is 0.
var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once.
var/inaccuracy_modifier = 1
+ var/pb_knockback = 0
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
@@ -125,6 +126,10 @@
if(message)
if(pointblank)
user.visible_message("[user] fires [src] point blank at [pbtarget]!", null, null, COMBAT_MESSAGE_RANGE)
+ if(pb_knockback > 0)
+ var/atom/throw_target = get_edge_target_turf(pbtarget, user.dir)
+ pbtarget.throw_at(throw_target, pb_knockback, 2)
+
else
user.visible_message("[user] fires [src]!", null, null, COMBAT_MESSAGE_RANGE)
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index bcb212a031..7fb4a8232e 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -267,6 +267,7 @@
fire_delay = 0
pin = /obj/item/firing_pin/implant/pindicate
actions_types = list()
+ pb_knockback = 2
/obj/item/gun/ballistic/automatic/shotgun/bulldog/unrestricted
pin = /obj/item/firing_pin
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index d1a5f12888..31a5131804 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -273,6 +273,7 @@
"Maple" = "dshotgun-l",
"Rosewood" = "dshotgun-p"
)
+ pb_knockback = 3 // it's a super shotgun!
/obj/item/gun/ballistic/revolver/doublebarrel/attackby(obj/item/A, mob/user, params)
..()
@@ -352,7 +353,7 @@
clumsy_check = 0
/obj/item/gun/ballistic/revolver/reverse/can_trigger_gun(mob/living/user)
- if((HAS_TRAIT(user, TRAIT_CLUMSY)) || (user.mind && user.mind.assigned_role == "Clown"))
+ if((HAS_TRAIT(user, TRAIT_CLUMSY)) || (user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY)))
return ..()
if(process_fire(user, user, FALSE, null, BODY_ZONE_HEAD))
user.visible_message("[user] somehow manages to shoot [user.p_them()]self in the face!", "You somehow shoot yourself in the face! How the hell?!")
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 571525d8f0..deec187f88 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -12,6 +12,8 @@
var/recentpump = 0 // to prevent spammage
weapon_weight = WEAPON_MEDIUM
+ pb_knockback = 2
+
/obj/item/gun/ballistic/shotgun/attackby(obj/item/A, mob/user, params)
. = ..()
if(.)
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index 8b358832b0..8f9bc13583 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -56,6 +56,7 @@
item_flags = NONE
casing_ejector = FALSE
can_suppress = FALSE
+ pb_knockback = 0
/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0)
..()
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index 1e2070de1b..0465a611cd 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -135,7 +135,7 @@
// A gun with ultra-honk pin is useful for clown and useless for everyone else.
/obj/item/firing_pin/clown/ultra/pin_auth(mob/living/user)
playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1)
- if(user && (!(HAS_TRAIT(user, TRAIT_CLUMSY)) && !(user.mind && user.mind.assigned_role == "Clown")))
+ if(user && (!(HAS_TRAIT(user, TRAIT_CLUMSY)) && !(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))))
return FALSE
return TRUE
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index 173d9721a9..791db320a2 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)
+ T.ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
D.Open()
/obj/item/projectile/magic/door/proc/OpenDoor(var/obj/machinery/door/D)
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 1ac62ba651..513626465a 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -260,7 +260,7 @@
if(!amount)
return
vol_each = min(reagents.total_volume / amount, 50)
- var/name = stripped_input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN)
+ var/name = html_decode(stripped_input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
var/obj/item/reagent_containers/pill/P
@@ -287,7 +287,7 @@
adjust_item_drop_location(P)
reagents.trans_to(P,vol_each)
else
- var/name = stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN)
+ var/name = html_decode(stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
var/obj/item/reagent_containers/food/condiment/pack/P = new/obj/item/reagent_containers/food/condiment/pack(drop_location())
@@ -313,7 +313,7 @@
if(!amount)
return
vol_each = min(reagents.total_volume / amount, 40)
- var/name = stripped_input(usr,"Name:","Name your patch!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN)
+ var/name = html_decode(stripped_input(usr,"Name:","Name your patch!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
var/obj/item/reagent_containers/pill/P
@@ -331,7 +331,7 @@
return
if(condi)
- var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN)
+ var/name = html_decode(stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
var/obj/item/reagent_containers/food/condiment/P = new(drop_location())
@@ -344,7 +344,7 @@
if(text2num(many))
amount_full = round(reagents.total_volume / 30)
vol_part = ((reagents.total_volume*1000) % 30000) / 1000 //% operator doesn't support decimals.
- var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN)
+ var/name = html_decode(stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
@@ -372,7 +372,7 @@
if(text2num(many))
amount_full = round(reagents.total_volume / 60)
vol_part = reagents.total_volume % 60
- var/name = stripped_input(usr, "Name:","Name your hypovial!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN)
+ var/name = html_decode(stripped_input(usr, "Name:","Name your hypovial!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
@@ -407,7 +407,7 @@
return
vol_each = min(reagents.total_volume / amount, 20)
- var/name = stripped_input(usr,"Name:","Name your SmartDart!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN)
+ var/name = html_decode(stripped_input(usr,"Name:","Name your SmartDart!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index 5d31bfae9b..e8551074e7 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -247,6 +247,23 @@
. = 1
..()
+/datum/reagent/consumable/coconutmilk
+ name = "Coconut Milk"
+ id = "coconutmilk"
+ description = "A transparent white liquid extracted from coconuts. Rich in taste."
+ color = "#DFDFDF" // rgb: 223, 223, 223
+ taste_description = "sweet milk"
+ quality = DRINK_GOOD
+ glass_icon_state = "glass_white"
+ glass_name = "glass of coconut milk"
+ glass_desc = "White and nutritious goodness!"
+
+/datum/reagent/consumable/coconutmilk/on_mob_life(mob/living/carbon/M)
+ if(M.getBruteLoss() && prob(20))
+ M.heal_bodypart_damage(2,0, 0)
+ . = 1
+ ..()
+
/datum/reagent/consumable/cream
name = "Cream"
id = "cream"
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index 4446b5c561..e956fcac36 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -13,6 +13,7 @@
/datum/reagent/drug/space_drugs
name = "Space drugs"
id = "space_drugs"
+ value = 6
description = "An illegal chemical compound used as drug."
color = "#60A584" // rgb: 96, 165, 132
overdose_threshold = 30
@@ -40,6 +41,7 @@
/datum/reagent/drug/nicotine
name = "Nicotine"
id = "nicotine"
+ value = 0
description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 23eb24ed15..64e693a326 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -622,7 +622,7 @@
M.adjustBruteLoss(-1*REM, 0)
M.adjustFireLoss(-1*REM, 0)
M.adjustOxyLoss(-1*REM, 0)
- M.adjustToxLoss(-1*REM, 0)
+ M.adjustToxLoss(-1*REM, 0, TRUE) //heals TOXINLOVERs
..()
/datum/reagent/consumable/honey/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 512b8a21a1..bd6eb4244c 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1870,133 +1870,82 @@
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(/turf/open/floor/carpet)
+ F.PlaceOnTop(carpet_type, flags = CHANGETURF_INHERIT_AIR)
..()
/datum/reagent/carpet/black
name = "Liquid Black Carpet"
id = "blackcarpet"
color = "#363636"
-
-/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)
- ..()
+ carpet_type = /turf/open/floor/carpet/black
/datum/reagent/carpet/blackred
name = "Liquid Red Black Carpet"
id = "blackredcarpet"
color = "#342125"
-
-/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)
- ..()
+ carpet_type = /turf/open/floor/carpet/blackred
/datum/reagent/carpet/monochrome
name = "Liquid Monochrome Carpet"
id = "monochromecarpet"
color = "#b4b4b4"
-
-/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)
- ..()
+ carpet_type = /turf/open/floor/carpet/monochrome
/datum/reagent/carpet/blue
name = "Liquid Blue Carpet"
id = "bluecarpet"
color = "#1256ff"
-
-/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)
- ..()
+ carpet_type = /turf/open/floor/carpet/blue
/datum/reagent/carpet/cyan
name = "Liquid Cyan Carpet"
id = "cyancarpet"
color = "#3acfb9"
-
-/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)
- ..()
+ carpet_type = /turf/open/floor/carpet/cyan
/datum/reagent/carpet/green
name = "Liquid Green Carpet"
id = "greencarpet"
color = "#619b62"
-
-/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)
- ..()
+ carpet_type = /turf/open/floor/carpet/green
/datum/reagent/carpet/orange
name = "Liquid Orange Carpet"
id = "orangecarpet"
color = "#cc7900"
-
-/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)
- ..()
+ carpet_type = /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"
-
-/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)
- ..()
+ carpet_type = /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 c170858d98..36621aa662 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()
+ F.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
if(isfloorturf(T))
var/turf/open/floor/F = T
if(prob(reac_volume))
diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm
index 59394e6e4b..08d07b8a52 100644
--- a/code/modules/reagents/chemistry/recipes/special.dm
+++ b/code/modules/reagents/chemistry/recipes/special.dm
@@ -123,24 +123,11 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related
/datum/chemical_reaction/randomized/proc/LoadOldRecipe(recipe_data)
created = text2num(recipe_data["timestamp"])
-
- 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_reagents = SANITIZE_LIST(recipe_data["required_reagents"])
+ required_catalysts = SANITIZE_LIST(recipe_data["required_catalysts"])
required_temp = recipe_data["required_temp"]
is_cold_recipe = recipe_data["is_cold_recipe"]
-
- var/temp_results = unwrap_reagent_list(recipe_data["results"])
- if(!temp_results)
- return FALSE
- results = temp_results
+ results = SANITIZE_LIST(recipe_data["results"])
var/containerpath = text2path(recipe_data["required_container"])
if(!containerpath)
return FALSE
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index 2bd5fb2d9f..94ad5fdb2c 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -26,12 +26,11 @@ Borg Hypospray
var/bypass_protection = 0 //If the hypospray can go through armor or thick material
var/list/datum/reagents/reagent_list = list()
- var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution")
+ var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution", "insulin")
var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed.
var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values.
//Used as list for input() in shakers.
-
/obj/item/reagent_containers/borghypo/Initialize()
. = ..()
@@ -40,12 +39,10 @@ Borg Hypospray
START_PROCESSING(SSobj, src)
-
/obj/item/reagent_containers/borghypo/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
-
/obj/item/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
charge_tick++
if(charge_tick >= recharge_time)
@@ -162,7 +159,7 @@ Borg Hypospray
icon_state = "borghypo_s"
charge_cost = 20
recharge_time = 2
- reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine")
+ reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine", "insulin")
bypass_protection = 1
accepts_reagent_upgrades = FALSE
@@ -178,7 +175,6 @@ Borg Shaker
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
recharge_time = 3
accepts_reagent_upgrades = FALSE
-
reagent_ids = list("beer", "orangejuice", "grenadine", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale", "milk", "coffee", "banana", "lemonjuice")
/obj/item/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user)
@@ -234,23 +230,21 @@ Borg Shaker
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
recharge_time = 3
accepts_reagent_upgrades = FALSE
-
reagent_ids = list("fakebeer", "fernet")
/obj/item/reagent_containers/borghypo/peace
name = "Peace Hypospray"
-
- reagent_ids = list("dizzysolution","tiresolution","synthpax")
+ reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "insulin")
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/peace/hacked
desc = "Everything's peaceful in death!"
icon_state = "borghypo_s"
- reagent_ids = list("dizzysolution","tiresolution","synthpax","tirizene","sulfonal","sodium_thiopental","cyanide","fentanyl")
+ reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "tirizene", "sulfonal", "sodium_thiopental", "cyanide", "fentanyl")
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/epi
- name = "epinephrine injector"
+ name = "Stabilizer injector"
desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients."
- reagent_ids = list("epinephrine")
+ reagent_ids = list("epinephrine", "insulin")
accepts_reagent_upgrades = FALSE
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 3ed505c360..85248250a2 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -109,11 +109,13 @@
/obj/item/reagent_containers/glass/beaker
name = "beaker"
- desc = "A beaker. It can hold up to 50 units. Unable to withstand extreme pHes"
+ desc = "A beaker. It can hold up to 60 units. Unable to withstand extreme pHes."
icon = 'icons/obj/chemical.dmi'
+ volume = 60
icon_state = "beaker"
item_state = "beaker"
materials = list(MAT_GLASS=500)
+ possible_transfer_amounts = list(5,10,15,20,25,30,60)
beaker_weakness_bitflag = PH_WEAK
/obj/item/reagent_containers/glass/beaker/Initialize()
@@ -156,28 +158,28 @@
/obj/item/reagent_containers/glass/beaker/jar
name = "honey jar"
- desc = "A jar for honey. It can hold up to 50 units of sweet delight. Unable to withstand reagents of an extreme pH."
+ desc = "A jar for honey. It can hold up to 60 units of sweet delight. Unable to withstand reagents of an extreme pH."
icon = 'icons/obj/chemical.dmi'
icon_state = "vapour"
/obj/item/reagent_containers/glass/beaker/large
name = "large beaker"
- desc = "A large beaker. Can hold up to 100 units. Unable to withstand reagents of an extreme pH."
+ desc = "A large beaker. Can hold up to 120 units. Unable to withstand reagents of an extreme pH."
icon_state = "beakerlarge"
materials = list(MAT_GLASS=2500)
- volume = 100
+ volume = 120
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list(5,10,15,20,25,30,50,100)
+ possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120)
container_HP = 3
/obj/item/reagent_containers/glass/beaker/plastic
name = "x-large beaker"
- desc = "An extra-large beaker. Can hold up to 150 units. Is able to resist acid and alkaline solutions, but melts at 444K"
+ desc = "An extra-large beaker. Can hold up to 180 units. Is able to resist acid and alkaline solutions, but melts at 444 K."
icon_state = "beakerwhite"
materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000)
- volume = 150
+ volume = 180
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list(5,10,15,20,25,30,50,100,150)
+ 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
@@ -191,14 +193,14 @@
/obj/item/reagent_containers/glass/beaker/meta
name = "metamaterial beaker"
- desc = "A large beaker. Can hold up to 200 units. Is able to withstand all chemical situations."
+ desc = "A large beaker. Can hold up to 240 units, and is able to withstand all chemical situations."
icon_state = "beakergold"
materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000, MAT_GOLD=1000, MAT_TITANIUM=1000)
- volume = 200
+ volume = 240
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list(5,10,15,20,25,30,50,100,200)
+ possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120,200,240)
-/obj/item/reagent_containers/glass/beaker/meta/Initialize()
+/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
. = ..()
@@ -228,7 +230,7 @@
volume = 300
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300)
- container_HP = 4
+ container_HP = 5
/obj/item/reagent_containers/glass/beaker/cryoxadone
list_reagents = list("cryoxadone" = 30)
diff --git a/code/modules/reagents/reagent_containers/hypovial.dm b/code/modules/reagents/reagent_containers/hypovial.dm
index ba5ce48a4a..482877afcd 100644
--- a/code/modules/reagents/reagent_containers/hypovial.dm
+++ b/code/modules/reagents/reagent_containers/hypovial.dm
@@ -1,6 +1,6 @@
//hypovials used with the MkII hypospray. See hypospray.dm.
-/obj/item/reagent_containers/glass/bottle/vial
+/obj/item/reagent_containers/glass/bottle/vial // these have literally no fucking right to just be better beakers that you can shit out of a chemmaster
name = "broken hypovial"
desc = "A hypovial compatible with most hyposprays."
icon_state = "hypovial"
@@ -27,6 +27,8 @@
for(var/R in comes_with)
reagents.add_reagent(R,comes_with[R])
update_icon()
+// beaker_weakness_bitflag |= PH_WEAK // fuck you if you're using these like beakers
+// beaker_weakness_bitflag |= TEMP_WEAK
/obj/item/reagent_containers/glass/bottle/vial/on_reagent_change()
@@ -60,11 +62,11 @@
/obj/item/reagent_containers/glass/bottle/vial/small
name = "hypovial"
volume = 60
- possible_transfer_amounts = list(5,10)
+ 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(5,10)
+ possible_transfer_amounts = list(1,2,5,10,20,30,40)
name = "bluespace hypovial"
icon_state = "hypovialbs"
unique_reskin = null
@@ -74,7 +76,7 @@
desc = "A large hypovial, for deluxe hypospray models."
icon_state = "hypoviallarge"
volume = 120
- possible_transfer_amounts = list(5,10,15,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",
@@ -106,7 +108,7 @@
add_overlay(filling)
/obj/item/reagent_containers/glass/bottle/vial/large/bluespace
- possible_transfer_amounts = list(5,10,15,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 7701e58616..46ddb1e2ed 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_game("### MAPPING ERROR: [src] at [AREACOORD(src)] spawned without using a diagonal dir. Please replace with a normal version.")
+ log_mapping("[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/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index e70362553c..f2ded3a57b 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -152,6 +152,16 @@
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+/datum/design/telescopiciv
+ name = "Telescopic IV Drip"
+ desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. This one is telescopic, and can be picked up and put down."
+ id = "telescopiciv"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 5000, MAT_GLASS = 3500, MAT_SILVER = 1000)
+ build_path = /obj/item/tele_iv
+ category = list("Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+
/datum/design/holobarrier_med
name = "PENLITE holobarrier projector"
desc = "PENLITE holobarriers, a device that halts individuals with malicious diseases."
diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm
index 177d7073a1..09fe1d9c9b 100644
--- a/code/modules/research/designs/nanite_designs.dm
+++ b/code/modules/research/designs/nanite_designs.dm
@@ -25,6 +25,20 @@
program_type = /datum/nanite_program/viral
category = list("Utility Nanites")
+/datum/design/nanites/research
+ name = "Distributed Computing"
+ desc = "The nanites aid the research servers by performing a portion of its calculations, increasing research point generation."
+ id = "research_nanites"
+ program_type = /datum/nanite_program/research
+ category = list("Utility Nanites")
+
+/datum/design/nanites/researchplus
+ name = "Neural Network"
+ desc = "The nanites link the host's brains together forming a neural research network, that becomes more efficient with the amount of total hosts. Can be overloaded to increase research output."
+ id = "researchplus_nanites"
+ program_type = /datum/nanite_program/researchplus
+ category = list("Utility Nanites")
+
/datum/design/nanites/monitoring
name = "Monitoring"
desc = "The nanites monitor the host's vitals and location, sending them to the suit sensor network."
@@ -39,6 +53,13 @@
program_type = /datum/nanite_program/triggered/self_scan
category = list("Utility Nanites")
+/datum/design/nanites/dermal_button
+ name = "Dermal Button"
+ desc = "Displays a button on the host's skin, which can be used to send a signal to the nanites."
+ id = "dermal_button_nanites"
+ program_type = /datum/nanite_program/dermal_button
+ category = list("Utility Nanites")
+
/datum/design/nanites/stealth
name = "Stealth"
desc = "The nanites hide their activity and programming from superficial scans."
@@ -46,6 +67,15 @@
program_type = /datum/nanite_program/stealth
category = list("Utility Nanites")
+
+/datum/design/nanites/reduced_diagnostics
+ name = "Reduced Diagnostics"
+ desc = "Disables some high-cost diagnostics in the nanites, making them unable to communicate their program list to portable scanners. \
+ Doing so saves some power, slightly increasing their replication speed."
+ id = "red_diag_nanites"
+ program_type = /datum/nanite_program/reduced_diagnostics
+ category = list("Utility Nanites")
+
/datum/design/nanites/access
name = "Subdermal ID"
desc = "The nanites store the host's ID access rights in a subdermal magnetic strip. Updates when triggered, copying the host's current access."
diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm
index a269d01ac0..3db482d989 100644
--- a/code/modules/research/nanites/nanite_programs/utility.dm
+++ b/code/modules/research/nanites/nanite_programs/utility.dm
@@ -130,7 +130,7 @@
/datum/nanite_program/stealth
name = "Stealth"
- desc = "The nanites hide their activity and programming from superficial scans."
+ desc = "The nanites mask their activity from superficial scans, becoming undetectable by HUDs and non-specialized scanners."
rogue_types = list(/datum/nanite_program/toxic)
use_rate = 0.2
@@ -142,6 +142,22 @@
. = ..()
nanites.stealth = FALSE
+/datum/nanite_program/reduced_diagnostics
+ name = "Reduced Diagnostics"
+ desc = "Disables some high-cost diagnostics in the nanites, making them unable to communicate their program list to portable scanners. \
+ Doing so saves some power, slightly increasing their replication speed."
+ rogue_types = list(/datum/nanite_program/toxic)
+ use_rate = -0.1
+
+/datum/nanite_program/reduced_diagnostics/enable_passive_effect()
+ . = ..()
+ nanites.diagnostics = FALSE
+
+/datum/nanite_program/reduced_diagnostics/disable_passive_effect()
+ . = ..()
+ nanites.diagnostics = TRUE
+
+
/datum/nanite_program/relay
name = "Relay"
desc = "The nanites receive and relay long-range nanite signals."
@@ -271,3 +287,138 @@
if(fault == src)
return
fault.software_error()
+
+/datum/nanite_program/dermal_button
+ name = "Dermal Button"
+ desc = "Displays a button on the host's skin, which can be used to send a signal to the nanites."
+ extra_settings = list("Sent Code","Button Name","Icon","Color")
+ unique = FALSE
+ var/datum/action/innate/nanite_button/button
+ var/button_name = "Button"
+ var/icon = "power"
+ var/color = "green"
+ var/sent_code = 0
+
+/datum/nanite_program/dermal_button/set_extra_setting(user, setting)
+ if(setting == "Sent Code")
+ var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num
+ if(isnull(new_code))
+ return
+ sent_code = CLAMP(round(new_code, 1), 1, 9999)
+ if(setting == "Button Name")
+ var/new_button_name = stripped_input(user, "Choose the name for the button.", "Button Name", button_name, MAX_NAME_LEN)
+ if(!new_button_name)
+ return
+ button_name = new_button_name
+ if(setting == "Icon")
+ var/new_icon = input("Select the icon to display on the button:", name) as null|anything in list("one","two","three","four","five","plus","minus","power")
+ if(!new_icon)
+ return
+ icon = new_icon
+ if(setting == "Color")
+ var/new_color = input("Select the color of the button's icon:", name) as null|anything in list("green","red","yellow","blue")
+ if(!new_color)
+ return
+ color = new_color
+
+/datum/nanite_program/dermal_button/get_extra_setting(setting)
+ if(setting == "Sent Code")
+ return sent_code
+ if(setting == "Button Name")
+ return button_name
+ if(setting == "Icon")
+ return capitalize(icon)
+ if(setting == "Color")
+ return capitalize(color)
+
+/datum/nanite_program/dermal_button/copy_extra_settings_to(datum/nanite_program/dermal_button/target)
+ target.sent_code = sent_code
+ target.button_name = button_name
+ target.icon = icon
+ target.color = color
+
+/datum/nanite_program/dermal_button/enable_passive_effect()
+ . = ..()
+ if(!button)
+ button = new(src, button_name, icon, color)
+ button.target = host_mob
+ button.Grant(host_mob)
+
+/datum/nanite_program/dermal_button/disable_passive_effect()
+ . = ..()
+ if(button)
+ button.Remove(host_mob)
+
+/datum/nanite_program/dermal_button/on_mob_remove()
+ . = ..()
+ qdel(button)
+
+/datum/nanite_program/dermal_button/proc/press()
+ if(activated)
+ host_mob.visible_message("[host_mob] presses a button on [host_mob.p_their()] forearm.",
+ "You press the nanite button on your forearm.", null, 2)
+ SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code, "a [name] program")
+
+/datum/action/innate/nanite_button
+ name = "Button"
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
+ check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS
+ button_icon_state = "power_green"
+ var/datum/nanite_program/dermal_button/program
+
+/datum/action/innate/nanite_button/New(datum/nanite_program/dermal_button/_program, _name, _icon, _color)
+ ..()
+ program = _program
+ name = _name
+ button_icon_state = "[_icon]_[_color]"
+
+/datum/action/innate/nanite_button/Activate()
+ program.press()
+
+/datum/nanite_program/research
+ name = "Distributed Computing"
+ desc = "The nanites aid the research servers by performing a portion of its calculations, increasing research point generation."
+ use_rate = 0.2
+ rogue_types = list(/datum/nanite_program/toxic)
+
+/datum/nanite_program/research/active_effect()
+ if(!iscarbon(host_mob))
+ return
+ var/points = 1
+ if(!host_mob.client) //less brainpower
+ points *= 0.25
+ SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points))
+
+/datum/nanite_program/researchplus
+ name = "Neural Network"
+ desc = "The nanites link the host's brains together forming a neural research network, that becomes more efficient with the amount of total hosts."
+ use_rate = 0.3
+ rogue_types = list(/datum/nanite_program/brain_decay)
+
+/datum/nanite_program/researchplus/enable_passive_effect()
+ . = ..()
+ if(!iscarbon(host_mob))
+ return
+ if(host_mob.client)
+ SSnanites.neural_network_count++
+ else
+ SSnanites.neural_network_count += 0.25
+
+/datum/nanite_program/researchplus/disable_passive_effect()
+ . = ..()
+ if(!iscarbon(host_mob))
+ return
+ if(host_mob.client)
+ SSnanites.neural_network_count--
+ else
+ SSnanites.neural_network_count -= 0.25
+
+/datum/nanite_program/researchplus/active_effect()
+ if(!iscarbon(host_mob))
+ return
+ var/mob/living/carbon/C = host_mob
+ var/points = round(SSnanites.neural_network_count / 12, 0.1)
+ if(!C.client) //less brainpower
+ points *= 0.25
+ SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points))
+
diff --git a/code/modules/research/nanites/program_disks.dm b/code/modules/research/nanites/program_disks.dm
index 86b7803fc9..f780f40932 100644
--- a/code/modules/research/nanites/program_disks.dm
+++ b/code/modules/research/nanites/program_disks.dm
@@ -130,4 +130,16 @@
program_type = /datum/nanite_program/pacifying
/obj/item/disk/nanite_program/stun
- program_type = /datum/nanite_program/triggered/stun
\ No newline at end of file
+ program_type = /datum/nanite_program/triggered/stun
+
+/obj/item/disk/nanite_program/dermal_button
+ program_type = /datum/nanite_program/dermal_button
+
+/obj/item/disk/nanite_program/research
+ program_type = /datum/nanite_program/research
+
+/obj/item/disk/nanite_program/researchplus
+ program_type = /datum/nanite_program/researchplus
+
+/obj/item/disk/nanite_program/reduced_diagnostics
+ program_type = /datum/nanite_program/reduced_diagnostics
\ No newline at end of file
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 05eeb564e5..af4148d194 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -71,7 +71,7 @@
display_name = "Biological Technology"
description = "What makes us tick." //the MC, silly!
prereq_ids = list("base")
- design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen")
+ design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -960,7 +960,7 @@
prereq_ids = list("datatheory","robotics")
design_ids = list("nanite_disk","nanite_remote","nanite_scanner",\
"nanite_chamber","public_nanite_chamber","nanite_chamber_control","nanite_programmer","nanite_program_hub","nanite_cloud_control",\
- "relay_nanites", "monitoring_nanites", "access_nanites", "repairing_nanites","sensor_nanite_volume", "repeater_nanites", "relay_repeater_nanites")
+ "relay_nanites", "monitoring_nanites", "access_nanites", "repairing_nanites","sensor_nanite_volume", "repeater_nanites", "relay_repeater_nanites","red_diag_nanites")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -969,7 +969,7 @@
display_name = "Smart Nanite Programming"
description = "Nanite programs that require nanites to perform complex actions, act independently, roam or seek targets."
prereq_ids = list("nanite_base","adv_robotics")
- design_ids = list("purging_nanites", "metabolic_nanites", "stealth_nanites", "memleak_nanites","sensor_voice_nanites", "voice_nanites")
+ design_ids = list("purging_nanites", "research_nanites", "metabolic_nanites", "stealth_nanites", "memleak_nanites","sensor_voice_nanites", "voice_nanites")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
export_price = 4000
@@ -978,7 +978,7 @@
display_name = "Mesh Nanite Programming"
description = "Nanite programs that require static structures and membranes."
prereq_ids = list("nanite_base","engineering")
- design_ids = list("hardening_nanites", "refractive_nanites", "cryo_nanites", "conductive_nanites", "shock_nanites", "emp_nanites", "temperature_nanites")
+ design_ids = list("hardening_nanites", "dermal_button_nanites", "refractive_nanites", "cryo_nanites", "conductive_nanites", "shock_nanites", "emp_nanites", "temperature_nanites")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -1015,7 +1015,7 @@
display_name = "Harmonic Nanite Programming"
description = "Nanite programs that require seamless integration between nanites and biology."
prereq_ids = list("nanite_bio","nanite_smart","nanite_mesh")
- design_ids = list("fakedeath_nanites","aggressive_nanites","defib_nanites","regenerative_plus_nanites","brainheal_plus_nanites","purging_plus_nanites","adrenaline_nanites")
+ design_ids = list("fakedeath_nanites","researchplus_nanites","aggressive_nanites","defib_nanites","regenerative_plus_nanites","brainheal_plus_nanites","purging_plus_nanites","adrenaline_nanites")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
export_price = 8000
@@ -1095,13 +1095,13 @@
continue
boost_item_paths |= UI.item //allows deconning to unlock.
-/datum/techweb_node/advanced_illegl_ballistics
+/datum/techweb_node/advanced_illegal_ballistics
id = "advanced_illegal_ballistics"
- display_name = "Advanced Illegal Ballistics"
- description = "Advanced Ballistic for Illegal weaponds."
- design_ids = list("10mm","10mmap","10mminc","10mmhp","pistolm9mm","m45","bolt_clip")
+ display_name = "Advanced Non-Standard Ballistics"
+ description = "Ballistic ammunition for non-standard firearms. Usually the ones you don't have nor want to be involved with."
+ design_ids = list("10mm","10mmap","10mminc","10mmhp","sl357","pistolm9mm","m45","bolt_clip")
prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons")
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns form traitors or space.
+ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns from traitors, space, or anything in between.
export_price = 7000
//Helpers for debugging/balancing the techweb in its entirety!
diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm
index caa2ca7adf..76897b5276 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)
+ T.ChangeTurf(/turf/open/chasm, flags = CHANGETURF_INHERIT_AIR)
var/turf/open/chasm/C = T
C.set_target(dest)
C.drop(user)
diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm
index 70b06e6438..13d1543c92 100644
--- a/code/modules/security_levels/security_levels.dm
+++ b/code/modules/security_levels/security_levels.dm
@@ -49,7 +49,7 @@ GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN)
else
SSshuttle.emergency.modTimer(1.5)
GLOB.security_level = SEC_LEVEL_BLUE
- sound_to_playing_players('sound/misc/voybluealert.ogg') // Citadel change - Makes alerts play a sound
+ sound_to_playing_players('sound/misc/voybluealert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
for(var/obj/machinery/firealarm/FA in GLOB.machines)
if(is_station_level(FA.z))
FA.update_icon()
@@ -66,7 +66,7 @@ GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN)
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
SSshuttle.emergency.modTimer(1.6)
GLOB.security_level = SEC_LEVEL_AMBER
- sound_to_playing_players('sound/effects/alert.ogg') // Citadel change - Makes alerts play a sound
+ sound_to_playing_players('sound/effects/alert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
for(var/obj/machinery/firealarm/FA in GLOB.machines)
if(is_station_level(FA.z))
FA.update_icon()
@@ -83,7 +83,7 @@ GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN)
else
minor_announce(CONFIG_GET(string/alert_red_downto), "Attention! Code red!")
GLOB.security_level = SEC_LEVEL_RED
- sound_to_playing_players('sound/misc/voyalert.ogg') // Citadel change - Makes alerts play a sound
+ sound_to_playing_players('sound/misc/voyalert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
for(var/obj/machinery/firealarm/FA in GLOB.machines)
if(is_station_level(FA.z))
diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm
index 2b7be7b4d7..6bf2d54ae8 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)
+ O.ChangeTurf(N, flags = CHANGETURF_INHERIT_AIR)
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 8b8328abbe..d97d466e4d 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])
+ T.ChangeTurf(dancefloor_turfs_types[i], flags = CHANGETURF_INHERIT_AIR)
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)
+ 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)
i++
/datum/effect_system/smoke_spread/transparent/dancefloor_devil
diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index dedff3ae04..161461d099 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -560,7 +560,7 @@
else if((findtext(message, honk_words)))
cooldown = COOLDOWN_MEME
addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25)
- if(user.mind && user.mind.assigned_role == "Clown")
+ if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))
for(var/mob/living/carbon/C in listeners)
C.slip(140 * power_multiplier)
cooldown = COOLDOWN_MEME
@@ -807,9 +807,8 @@
E.enthrallTally += (power_multiplier*(((length(message))/200) + 1)) //encourage players to say more than one word.
else
E.enthrallTally += power_multiplier*1.25 //thinking about it, I don't know how this can proc
- if(L.canbearoused)
- if(L.client?.prefs.lewdchem)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] is so nice to listen to."), 5)
+ if(L.canbearoused && E.lewd)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] is so nice to listen to."), 5)
E.cooldown += 1
//REWARD mixable works
@@ -820,7 +819,7 @@
power_multiplier *= distancelist[get_dist(user, V)+1]
if(L == user)
continue
- if (L.client?.prefs.lewdchem)
+ if (E.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] has praised me!!"), 5)
if(HAS_TRAIT(L, TRAIT_NYMPHO))
L.adjustArousalLoss(2*power_multiplier)
@@ -832,7 +831,7 @@
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've been praised for doing a good job!"), 5)
E.resistanceTally -= power_multiplier
E.enthrallTally += power_multiplier
- var/descmessage = "[(L.client?.prefs.lewdchem?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]"
+ var/descmessage = "[(E.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]"
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise, descmessage)
E.cooldown += 1
@@ -841,10 +840,10 @@
for(var/V in listeners)
var/mob/living/L = V
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
- var/descmessage = "[(L.client?.prefs.lewdchem?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
+ var/descmessage = "[(E.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
if(L == user)
continue
- if (L.client?.prefs.lewdchem)
+ if (E.lewd)
if(HAS_TRAIT(L, TRAIT_MASO))
L.adjustArousalLoss(3*power_multiplier)
descmessage += "And yet, it feels so good..!" //I don't really understand masco, is this the right sort of thing they like?
@@ -871,7 +870,7 @@
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
REMOVE_TRAIT(C, TRAIT_MUTE, "enthrall")
C.silent = 0
- if(C.client?.prefs.lewdchem)
+ if(E.lewd)
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.enthrallGender]"), 5)
else
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.master]"), 5)
@@ -887,7 +886,7 @@
E.phase = 3
E.status = null
user.emote("snap")
- if(L.client?.prefs.lewdchem)
+ if(E.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "The snapping of your [E.enthrallGender]'s fingers brings you back to your enthralled state, obedient and ready to serve."), 5)
else
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "The snapping of [E.master]'s fingers brings you back to being under their influence."), 5)
@@ -910,11 +909,11 @@
addtimer(CALLBACK(H, /atom/movable/proc/say, "I feel happy being with you."), 5)
continue
if(2)
- speaktrigger += "[(H.client?.prefs.lewdchem?"I think I'm in love with you... ":"I find you really inspirational, ")]" //'
+ speaktrigger += "[(E.lewd?"I think I'm in love with you... ":"I find you really inspirational, ")]" //'
if(3)
- speaktrigger += "[(H.client?.prefs.lewdchem?"I'm devoted to being your pet":"I'm commited to following your cause!")]! "
+ speaktrigger += "[(E.lewd?"I'm devoted to being your pet":"I'm commited to following your cause!")]! "
if(4)
- speaktrigger += "[(H.client?.prefs.lewdchem?"You are my whole world and all of my being belongs to you, ":"I cannot think of anything else but aiding your cause, ")] "//Redflags!!
+ speaktrigger += "[(E.lewd?"You are my whole world and all of my being belongs to you, ":"I cannot think of anything else but aiding your cause, ")] "//Redflags!!
//mood
var/datum/component/mood/mood = H.GetComponent(/datum/component/mood)
@@ -1003,7 +1002,7 @@
speaktrigger += "I feel like I'm on the brink of losing my mind, "
//horny
- if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && H.client?.prefs.lewdchem)
+ if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && E.lewd)
switch(H.getArousalLoss())
if(40 to 60)
speaktrigger += "I'm feeling a little horny, "
@@ -1013,10 +1012,10 @@
speaktrigger += "I'm really, really horny, "
//collar
- if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar) && H.client?.prefs.lewdchem)
+ if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar) && E.lewd)
speaktrigger += "I love the collar you gave me, "
//End
- if(H.client?.prefs.lewdchem)
+ if(E.lewd)
speaktrigger += "[E.enthrallGender]!"
else
speaktrigger += "[user.first_name()]!"
@@ -1044,7 +1043,7 @@
REMOVE_TRAIT(C, TRAIT_MUTE, "enthrall")
C.silent = 0
E.cooldown += 3
- to_chat(user, "You [(C.client?.prefs.lewdchem?"allow [C] to speak again":"encourage [C] to speak again")].")
+ to_chat(user, "You [(E.lewd?"allow [C] to speak again":"encourage [C] to speak again")].")
//Antiresist
@@ -1074,7 +1073,7 @@
for(var/mob/living/carbon/C in listeners)
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
if(E.phase == 4)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You're unable to forget about [(C.client?.prefs.lewdchem?"the dominating presence of [E.enthrallGender]":"[E.master]")]!"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You're unable to forget about [(E.lewd?"the dominating presence of [E.enthrallGender]":"[E.master]")]!"), 5)
continue
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!"), 5)
C.Sleeping(50)
@@ -1086,7 +1085,7 @@
if(3)
E.phase = 0
E.cooldown = 0
- if(C.client?.prefs.lewdchem)
+ if(E.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You revert to yourself before being enthralled by your [E.enthrallGender], with no memory of what happened."), 5)
else
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You revert to who you were before, with no memory of what happened with [E.master]."), 5)
@@ -1112,7 +1111,7 @@
var/mob/living/carbon/human/H = V
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
if(E.phase > 1)
- if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && H.client?.prefs.lewdchem) // probably a redundant check but for good measure
+ if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && E.lewd) // probably a redundant check but for good measure
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Your [E.enthrallGender] pushes you over the limit, overwhelming your body with pleasure."), 5)
H.mob_climax(forced_climax=TRUE)
H.SetStun(20)
@@ -1168,7 +1167,7 @@
for(var/obj/item/W in items)
if(W == H.wear_suit)
H.dropItemToGround(W, TRUE)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Before you can even think about it, you quickly remove your clothes in response to [(H.client?.prefs.lewdchem?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")]."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Before you can even think about it, you quickly remove your clothes in response to [(E.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")]."), 5)
E.cooldown += 10
//WALK
@@ -1206,7 +1205,7 @@
if(2 to INFINITY)
L.lay_down()
E.cooldown += 10
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(L.client?.prefs.lewdchem?"You eagerly lie down!":"You suddenly lie down!")]"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(E.lewd?"You eagerly lie down!":"You suddenly lie down!")]"), 5)
to_chat(user, "You encourage [L] to lie down.")
//KNOCKDOWN
@@ -1237,7 +1236,7 @@
for (var/trigger in E.customTriggers)
speaktrigger += "[trigger], "
to_chat(user, "[C] whispers, \"[speaktrigger] are my triggers.\"")//So they don't trigger themselves!
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You whisper your triggers to [(C.client?.prefs.lewdchem?"Your [E.enthrallGender]":"[E.master]")]."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You whisper your triggers to [(E.lewd?"Your [E.enthrallGender]":"[E.master]")]."), 5)
//CUSTOM TRIGGERS
@@ -1249,7 +1248,7 @@
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
to_chat(user, "You need to be next to your pet to give them a new trigger!")
continue
- if(!H.client?.prefs.lewdchem)
+ if(!E.lewd)
to_chat(user, "[H] seems incapable of being implanted with triggers.")
continue
else
@@ -1272,7 +1271,7 @@
E.customTriggers[trigger] = trigger2
log_game("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2].")
E.mental_capacity -= 5
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.client?.prefs.lewdchem?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger."), 5)
to_chat(user, "You sucessfully set the trigger word [trigger] in [H]")
else
to_chat(user, "Your pet looks at you confused, it seems they don't understand that effect!")
@@ -1290,7 +1289,7 @@
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
to_chat(user, "You need to be next to your pet to give them a new echophrase!")
continue
- if(!H.client?.prefs.lewdchem)
+ if(!E.lewd)
to_chat(user, "[H] seems incapable of being implanted with an echoing phrase.")
continue
else
@@ -1334,7 +1333,7 @@
objective = replacetext(lowertext(objective), "suicide", "self-love")
message_admins("[H] has been implanted by [user] with the objective [objective].")
log_game("FERMICHEM: [H] has been implanted by [user] with the objective [objective] via MKUltra.")
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.client?.prefs.lewdchem?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective."), 5)
brainwash(H, objective)
E.mental_capacity -= 200
to_chat(user, "You sucessfully give an objective to [H]")
@@ -1348,7 +1347,7 @@
for(var/V in listeners)
var/mob/living/carbon/human/H = V
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
- if(E.phase >= 3 && H.client?.prefs.lewdchem)
+ if(E.phase >= 3 && E.lewd)
var/instill = stripped_input(user, "Instill an emotion in [H].", MAX_MESSAGE_LEN)
to_chat(H, "[instill]")
to_chat(user, "You sucessfully instill a feeling in [H]")
@@ -1363,7 +1362,7 @@
if(E.phase > 1)
if(user.ckey == E.enthrallID && user.real_name == E.master.real_name)
E.master = user
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.client?.prefs.lewdchem?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]"), 5)
to_chat(user, "[H] looks at you with sparkling eyes, recognising you!")
//I dunno how to do state objectives without them revealing they're an antag
diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm
index 2de04cf0df..97fa6041a9 100644
--- a/code/modules/uplink/uplink_items.dm
+++ b/code/modules/uplink/uplink_items.dm
@@ -357,9 +357,9 @@
exclude_modes = list(/datum/game_mode/nuclear/clown_ops)
/datum/uplink_item/dangerous/revolver
- name = "Syndicate Revolver"
- desc = "A brutally simple syndicate revolver that fires .357 Magnum rounds and has 7 chambers."
- item = /obj/item/gun/ballistic/revolver
+ name = "Syndicate Revolver Kit"
+ desc = "A sleek box containing a brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers, and an extra speedloader."
+ item = /obj/item/storage/box/syndie_kit/revolver
cost = 13
surplus = 50
exclude_modes = list(/datum/game_mode/nuclear/clown_ops)
@@ -641,7 +641,7 @@
cost = 2
/datum/uplink_item/stealthy_weapons/martialarts
- name = "Martial Arts Scroll"
+ name = "Sleeping Carp Scroll"
desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \
deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry."
item = /obj/item/book/granter/martial/carp
@@ -649,6 +649,15 @@
surplus = 0
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
+/datum/uplink_item/stealthy_weapons/martialartstwo
+ name = "Rising Bass Scroll"
+ desc = "This scroll contains the secrets of an ancient martial arts technique. You will become proficient in fleeing situations, \
+ and dodging all ranged weapon fire, but you will refuse to use dishonorable ranged weaponry."
+ item = /obj/item/book/granter/martial/bass
+ cost = 18
+ surplus = 0
+ exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
+
/datum/uplink_item/stealthy_weapons/crossbow
name = "Miniature Energy Crossbow"
desc = "A short bow mounted across a tiller in miniature. Small enough to \
diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm
index a2a9c37cfd..1415604aff 100644
--- a/code/modules/vehicles/cars/clowncar.dm
+++ b/code/modules/vehicles/cars/clowncar.dm
@@ -21,7 +21,7 @@
/obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
- if(H.mind && H.mind.assigned_role == "Clown") //Ensures only clowns can drive the car. (Including more at once)
+ if(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY)) //Ensures only clowns can drive the car. (Including more at once)
add_control_flags(M, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION)
return
add_control_flags(M, VEHICLE_CONTROL_KIDNAPPED)
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index 626abd51ef..6144f4c57a 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -70,14 +70,22 @@
/obj/item/clothing/under/skirt/red = 3,
/obj/item/clothing/under/skirt/purple = 3,
/obj/item/clothing/under/sundress = 4,
+ /obj/item/clothing/under/sundresswhite = 4,
/obj/item/clothing/under/stripeddress = 3,
/obj/item/clothing/under/sailordress = 3,
+ /obj/item/clothing/under/sweptskirt = 3,
+ /obj/item/clothing/under/greendress = 3,
+ /obj/item/clothing/under/pinkdress = 3,
/obj/item/clothing/under/redeveninggown = 3,
/obj/item/clothing/under/blacktango = 3,
+ /obj/item/clothing/under/westernbustle = 3,
+ /obj/item/clothing/under/flamenco = 3,
+ /obj/item/clothing/under/flowerdress = 3,
/obj/item/clothing/under/plaid_skirt = 3,
/obj/item/clothing/under/plaid_skirt/blue = 3,
/obj/item/clothing/under/plaid_skirt/purple = 3,
/obj/item/clothing/under/plaid_skirt/green = 3,
+ /obj/item/clothing/under/croptop = 3,
/obj/item/clothing/glasses/regular = 2,
/obj/item/clothing/glasses/regular/jamjar = 2,
/obj/item/clothing/head/sombrero = 3,
diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm
index 5c092c3659..03241c4a86 100644
--- a/code/modules/vending/megaseed.dm
+++ b/code/modules/vending/megaseed.dm
@@ -14,6 +14,7 @@
/obj/item/seeds/chanter = 3,
/obj/item/seeds/chili = 3,
/obj/item/seeds/cocoapod = 3,
+ /obj/item/seeds/coconut = 3,
/obj/item/seeds/coffee = 3,
/obj/item/seeds/cotton = 3,
/obj/item/seeds/corn = 3,
diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm
index d65a507f96..894aecc600 100644
--- a/code/modules/vending/wardrobes.dm
+++ b/code/modules/vending/wardrobes.dm
@@ -135,7 +135,6 @@
/obj/item/clothing/gloves/fingerless = 3,
/obj/item/clothing/head/soft/black = 3,
/obj/item/clothing/mask/bandana/skull = 2)
- premium = list(/obj/item/radio/headset/headset_rob = 2) //Cit change
contraband = list(/obj/item/clothing/suit/hooded/techpriest = 2)
refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe
diff --git a/config/dynamic_config.txt b/config/dynamic_config.txt
index 18c0d7827d..2ddebdf37a 100644
--- a/config/dynamic_config.txt
+++ b/config/dynamic_config.txt
@@ -40,6 +40,7 @@ DYNAMIC_WEIGHT WIZARD 1
DYNAMIC_WEIGHT CULT 3
DYNAMIC_WEIGHT NUCLEAR 3
DYNAMIC_WEIGHT REVOLUTION 2
+DYNAMIC_WEIGHT BLOODSUCKER 4
# All below are impossible-by-default
DYNAMIC_WEIGHT EXTENDED 3
DYNAMIC_WEIGHT CLOCKWORK_CULT 3
@@ -49,18 +50,20 @@ DYNAMIC_WEIGHT MONKEY 3
DYNAMIC_WEIGHT METEOR 3
## Midround antags
-DYNAMIC_WEIGHT MIDROUND_TRAITOR 7
-DYNAMIC_WEIGHT MIDROUND_MALF_AI 8
-DYNAMIC_WEIGHT MIDROUND_WIZARD 9
-DYNAMIC_WEIGHT MIDROUND_NUCLEAR 9
-DYNAMIC_WEIGHT BLOB 8
-DYNAMIC_WEIGHT XENOS 8
-DYNAMIC_WEIGHT NIGHTMARE 8
-DYNAMIC_WEIGHT SENTIENT_DISEASE 6
-DYNAMIC_WEIGHT REVENANT 6
-DYNAMIC_WEIGHT SLAUGHTER_DEMON 4
-DYNAMIC_WEIGHT ABDUCTORS 8
-DYNAMIC_WEIGHT SPACE_NINJA 8
+DYNAMIC_WEIGHT MIDROUND_TRAITOR 9
+DYNAMIC_WEIGHT MIDROUND_MALF_AI 5
+DYNAMIC_WEIGHT MIDROUND_WIZARD 4
+DYNAMIC_WEIGHT MIDROUND_NUCLEAR 2
+DYNAMIC_WEIGHT BLOB 2
+DYNAMIC_WEIGHT XENOS 2
+DYNAMIC_WEIGHT NIGHTMARE 3
+DYNAMIC_WEIGHT SENTIENT_DISEASE 4
+DYNAMIC_WEIGHT REVENANT 2
+DYNAMIC_WEIGHT SLAUGHTER_DEMON 1
+DYNAMIC_WEIGHT ABDUCTORS 3
+DYNAMIC_WEIGHT SPACE_NINJA 3
+
+## Events
DYNAMIC_WEIGHT SPIDERS 5
DYNAMIC_WEIGHT VENTCLOG_NORMAL 3
DYNAMIC_WEIGHT VENTCLOG_THREATENING 3
@@ -88,6 +91,7 @@ DYNAMIC_WEIGHT RADIATION_STORM 1
## Latejoin antags
DYNAMIC_WEIGHT LATEJOIN_TRAITOR 7
DYNAMIC_WEIGHT LATEJOIN_REVOLUTION 2
+DYNAMIC_WEIGHT LATEJOIN_BLOODSUCKER 4
## Threat cost. This is decreased from the mode's threat when the rule is executed.
DYNAMIC_COST TRAITOR 10
@@ -98,7 +102,7 @@ DYNAMIC_COST WIZARD 30
DYNAMIC_COST CULT 35
DYNAMIC_COST NUCLEAR 45
DYNAMIC_COST REVOLUTION 40
-# All below are impossible-by-default
+DYNAMIC_cOST BLOODSUCKER 15
DYNAMIC_COST EXTENDED 0
DYNAMIC_COST CLOCKWORK_CULT 35
DYNAMIC_COST CLOWNOPS 40
@@ -112,13 +116,15 @@ DYNAMIC_COST MIDROUND_MALF_AI 35
DYNAMIC_COST MIDROUND_WIZARD 20
DYNAMIC_COST MIDROUND_NUCLEAR 35
DYNAMIC_COST BLOB 10
-DYNAMIC_COST XENOS 10
+DYNAMIC_COST XENOS 20
DYNAMIC_COST NIGHTMARE 10
DYNAMIC_COST SENTIENT_DISEASE 5
DYNAMIC_COST REVENANT 5
DYNAMIC_COST SLAUGHTER_DEMON 15
DYNAMIC_COST ABDUCTORS 10
DYNAMIC_COST SPACE_NINJA 15
+
+## Events
DYNAMIC_COST SPIDERS 10
DYNAMIC_COST VENTCLOG_NORMAL 2
DYNAMIC_COST VENTCLOG_THREATENING 5
@@ -146,6 +152,7 @@ DYNAMIC_COST RADIATION_STORM 3
## Latejoin antags
DYNAMIC_COST LATEJOIN_TRAITOR 5
DYNAMIC_COST LATEJOIN_REVOLUTION 20
+DYNAMIC_COST LATEJOIN_BLOODSUCKER 10
## Rule will not be generated with threat levels below requirement at a pop value. Pop values are determined by dynamic's pop-per-requirement.
## By default it's 0-8, 9-17, 18-26, 27-35, 36-44, 45-53, 54-60, 61-69, 70-78, 79+.
@@ -153,13 +160,12 @@ DYNAMIC_COST LATEJOIN_REVOLUTION 20
DYNAMIC_REQUIREMENTS TRAITOR 50 50 50 50 50 50 50 50 50 50
DYNAMIC_REQUIREMENTS TRAITORBRO 101 101 101 101 101 101 101 101 101 101
DYNAMIC_REQUIREMENTS CHANGELING 101 101 101 101 101 101 101 101 101 101
-DYNAMIC_REQUIREMENTS WIZARD 101 101 101 60 50 50 50 50 50 50
+DYNAMIC_REQUIREMENTS WIZARD 101 101 60 60 50 50 50 50 50 50
DYNAMIC_REQUIREMENTS CULT 101 101 101 60 50 50 50 50 50 50
DYNAMIC_REQUIREMENTS NUCLEAR 101 101 101 60 50 50 50 50 50 50
DYNAMIC_REQUIREMENTS REVOLUTION 101 101 101 60 50 50 50 50 50 50
-# All below are impossible-by-default
DYNAMIC_REQUIREMENTS EXTENDED 101 101 101 101 101 101 101 101 101 101
-DYNAMIC_REQUIREMENTS CLOCKWORK_CULT 101 101 101 80 70 60 50 50 50 50
+DYNAMIC_REQUIREMENTS CLOCKWORK_CULT 101 101 101 70 60 60 50 50 50 50
DYNAMIC_REQUIREMENTS CLOWNOPS 101 101 101 101 101 101 101 101 101 101
DYNAMIC_REQUIREMENTS DEVIL 101 101 101 101 101 101 101 101 101 101
DYNAMIC_REQUIREMENTS MONKEY 101 101 101 101 101 101 101 101 101 101
@@ -168,24 +174,22 @@ DYNAMIC_REQUIREMENTS METEOR 101 101 101 101 101 101 101 101 101 101
## Midround antags
DYNAMIC_REQUIREMENTS MIDROUND_TRAITOR 30 25 20 15 15 15 15 15 15 15
DYNAMIC_REQUIREMENTS MIDROUND_MALF_AI 101 101 70 50 50 50 40 30 30 30
-DYNAMIC_REQUIREMENTS MIDROUND_WIZARD 90 90 70 50 50 50 50 40 30 30
+DYNAMIC_REQUIREMENTS MIDROUND_WIZARD 90 90 60 40 30 30 30 30 30 30
DYNAMIC_REQUIREMENTS MIDROUND_NUCLEAR 90 90 90 80 70 60 50 40 40 40
DYNAMIC_REQUIREMENTS BLOB 101 101 101 80 60 50 50 50 50 50
DYNAMIC_REQUIREMENTS XENOS 101 101 101 70 50 50 50 50 50 50
DYNAMIC_REQUIREMENTS NIGHTMARE 101 101 101 70 50 40 20 15 15 15
DYNAMIC_REQUIREMENTS SENTIENT_DISEASE 30 30 20 20 15 10 10 10 10 5
DYNAMIC_REQUIREMENTS REVENANT 30 30 30 30 20 15 15 15 15 15
-DYNAMIC_REQUIREMENTS SLAUGHTER_DEMON 101 101 101 90 80 70 60 50 40 30
+DYNAMIC_REQUIREMENTS SLAUGHTER_DEMON 101 101 101 90 80 70 60 50 50 50
DYNAMIC_REQUIREMENTS ABDUCTORS 80 80 70 50 40 30 30 20 15 15
DYNAMIC_REQUIREMENTS SPACE_NINJA 101 101 101 90 80 70 60 50 40 30
+
+## Events
DYNAMIC_REQUIREMENTS SPIDERS 70 60 50 50 40 40 40 30 20 15
-DYNAMIC_REQUIREMENTS VENTCLOG_NORMAL 5 5 5 5 5 5 5 5 5 5
-DYNAMIC_REQUIREMENTS VENTCLOG_THREATENING 15 15 15 15 15 15 15 15 15 15
-DYNAMIC_REQUIREMENTS VENTCLOG_CATASTROPHIC 30 30 30 30 30 30 30 30 30 30
+DYNAMIC_REQUIREMENTS VENTCLOG 5 5 5 5 5 5 5 5 5 5
DYNAMIC_REQUIREMENTS ION_STORM 5 5 5 5 5 5 5 5 5 5
-DYNAMIC_REQUIREMENTS METEOR_WAVE_NORMAL 60 50 40 30 30 30 30 30 30 30
-DYNAMIC_REQUIREMENTS METEOR_WAVE_THREATENING 80 70 60 50 40 40 40 40 40 40
-DYNAMIC_REQUIREMENTS METEOR_WAVE_CATASTROPHIC 101 100 90 80 70 60 50 50 50 50
+DYNAMIC_REQUIREMENTS METEOR_WAVE 60 50 40 30 30 30 30 30 30 30
DYNAMIC_REQUIREMENTS PIRATES 70 60 50 50 40 40 40 30 20 15
DYNAMIC_REQUIREMENTS ANOMALY_BLUESPACE 5 5 5 5 5 5 5 5 5 5
DYNAMIC_REQUIREMENTS ANOMALY_FLUX 5 5 5 5 5 5 5 5 5 5
@@ -205,6 +209,7 @@ DYNAMIC_REQUIREMENTS RADIATION_STORM 5 5 5 5 5 5 5 5 5 5
## Latejoin antags
DYNAMIC_REQUIREMENTS LATEJOIN_TRAITOR 40 30 20 15 15 15 15 15 15 15
DYNAMIC_REQUIREMENTS LATEJOIN_REVOLUTION 101 101 70 40 40 40 40 40 40 40
+DYNAMIC_REQUIREMENTS LATEJOIN_BLOODSUCKER 40 30 20 15 15 15 15 15 15 15
## An alternative, static requirement used instead when pop is over mode's high_pop_limit.
DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITOR 50
@@ -236,14 +241,12 @@ DYNAMIC_HIGH_POPULATION_REQUIREMENT REVENANT 15
DYNAMIC_HIGH_POPULATION_REQUIREMENT SLAUGHTER_DEMON 30
DYNAMIC_HIGH_POPULATION_REQUIREMENT ABDUCTORS 15
DYNAMIC_HIGH_POPULATION_REQUIREMENT SPACE_NINJA 30
+
+## Events
DYNAMIC_HIGH_POPULATION_REQUIREMENT SPIDERS 15
-DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG_NORMAL 5
-DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG_THREATENING 15
-DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG_CATASTROPHIC 30
+DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG 5
DYNAMIC_HIGH_POPULATION_REQUIREMENT ION_STORM 5
-DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE_NORMAL 30
-DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE_THREATENING 40
-DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE_CATASTROPHIC 50
+DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE 30
DYNAMIC_HIGH_POPULATION_REQUIREMENT PIRATES 15
DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_BLUESPACE 5
DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_FLUX 5
@@ -263,6 +266,7 @@ DYNAMIC_HIGH_POPULATION_REQUIREMENT RADIATION_STORM 5
## Latejoin antags
DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_TRAITOR 15
DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_REVOLUTION 50
+DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_BLOODSUCKER 15
## Dynamic traitor stuff
diff --git a/config/game_options.txt b/config/game_options.txt
index 3b031bb5b9..34c8ca48fd 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -574,3 +574,8 @@ MONKEYCAP 64
#Replaces standard extended/secret dichotomy with extended and calm/chaotic votes for dynamic.
DYNAMIC_VOTING
+
+## Choose which Engine to start the round with, comment to remove an Engine from the rotation
+BOX_RANDOM_ENGINE Engine SM
+BOX_RANDOM_ENGINE Engine Tesla
+BOX_RANDOM_ENGINE Engine Singulo
\ No newline at end of file
diff --git a/html/changelog.html b/html/changelog.html
index 8eabba83df..21cade10d2 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,328 @@
-->
+
30 December 2019
+
AnturK updated:
+
+ - Fixed ranged syndicate mobs stormtrooper training.
+
+
Arturlang updated:
+
+ - Adds Bloodsuckers, beware.
+
+
BlueWildrose updated:
+
+ - Fixed stargazers being unable to link to themselves if mindshielded or if holding psionic shielding devices (tinfoil hats) when the species is set.
+ - Fixes non-roundstart slimes being unable to wag their tail.
+
+
Commandersand updated:
+
+ - added two words to clown filter
+ - Added new things to loadouts, check em
+
+
DeltaFire15 updated:
+
+ - Clock cult kindle no longer cares about oxygen damage
+ - changed mecha internals access for some special mechs.
+ - no more mech maintenance access for engineers.
+ - All heads of staff can now message CC
+ - Removes a magicnumber
+ - Rebalanced cult vs cult stun effects to debuff instead of stun
+
+
Detective-Google updated:
+
+ - short hair 80's is no longer jank
+
+
Fermis updated:
+
+ - tweaked how super bases/acids work but limiting them
+
+
Fikou updated:
+
+ - the windup toolbox now has some more "realistic" sounds
+ - the windup toolbox now rumbles again
+
+
Ghommie updated:
+
+ - Fixed hulks, sleeping carp users, pacifists and people with chunky fingers being able to unrestrictly use gun and pneumatic cannon circuit assemblies.
+ - Fixed gun circuit assemblies being only usable by human mobs.
+ - Doubled the locomotion circuit external cooldown, thus halving the movable assemblies' movespeed.
+ - Made wooden cabinet/closets... actually made of wood.
+ - Wooden cabinets are now deconstructable with a screwdriver.
+ - Deconstruction of large crates and other closet subtypes deconstructable with tools other than the welder is no longer instant.
+ - You shouldn't be able to target objects you can't see (excluding darkness) with the ARCD and RLD
+ - The admin RCD is ranged too, just like the ARCD.
+ - Fixed welding, thirteen loko, welding and wraith spectacles not blinding people as expected. Thank you all whomst reported this issue in the suggestions box channel instead of the github repository's issues section, very smart!
+ - Fixed on_mob eyes overlays not updating properly in certain cases.
+ - Fixed deconversion from bloodshot eyes blood cult resetting your eyes' color to pitch black instead of their previous color, more or less.
+ - Spinfusor nerf: Upped the casing and ammo box size by one step, removed the projectile's dismemberment value (explosions can still rip a limb or two off), halved the ammo box capacity, reduced the spinfusor ammo supply pack contents from 32 to 8, removed the casing's ability to explode when thrown.
+ - Fixes bubblegum's death not unlocking the arena shuttle buyment.
+ - Fixed alien tech node not being unlockable with subtypes of the accepted items.
+ - Fixed reactive armor onmob overlays not updating when toggled and reactive teleport armor still using forceMove() instead of do_teleport()
+ - Fixed space hermit asteroid rocks unintendedly spawning airless asteroid turf when mined, save for the perimeter.
+ - Fixes reviver implant having been a crapshot ever since soft-crit was introduced years ago.
+ - Added a "convalescence" time (about 15 seconds) after the user is out of unconsciousbess/crit to ensure they are properly stabilized.
+ - Added a 15 minutes hardcap for accumulated revive cooldown (equivalent to 150 points of brute or burn healed) above which the implant starts cooling down regardless of user's conditions.
+ - Fixed AI core displays I may have broken with my coding extravaganza.
+ - Blue, Amber and Red security alert sounds should be half as loud now.
+ - Buffed clown ops by removing their clumsiness and adding a new trait to be used in place of several clown role checks.
+ - Clown ops too also suffer from not holding or wearing clown shoes now.
+ - Fixed a few holo barriers lacking transparency.
+ - Fixed character setup preview bodyparts not displaying correctly most of times.
+ - Fixed character appearance preview displaying the mannequin in job attire instead of undergarments.
+ - Fixed raven's shuttle computer not being of the emergency shuttle type.
+ - Blood bank generators can now be anchored and unanchored now.
+ - Ghost mentors can now orbit around the target instead of setting their view to theirs'.
+ - Fixes a ghostchat eavesdropping exploit concerning VR.
+ - Fixes VR deaths being broadcasted in deadchat.
+ - Fixed a few pill bottle issues with the ChemMaster.
+ - Fixes a few negative quirks not being properly removed when deleted.
+ - Phobia and mute quirks are no longer cheesed by brain surgery grade healing or medicines.
+ - Fixed double-flavour (and bland custom) ice creams.
+ - Fixed Pubbystation's wall Nanomeds being inconsistent with other stations'.
+ - dextrous simplemobs can now swap action intent with 1, 2, 3, 4 now. Just like humies, ayys and monkys.
+ - Stops humanoids whose skin_tone variable is set to "albino" from showing up as pale when examined should their species not use skintones anyway.
+ - Removed the old (almost) unused roboticist encryption key and headset.
+ - Fixed goose meat.
+ - Fixed a little door assembly glass dupe exploit
+ - Fixed AI holopad speech text being small and whispers that in multiple exclamation marks echo through multiple areas.
+ - Removed literally atrocious polka dotted accessories. They were even more atrocious than the yellow horrible tie.
+
+
Ghommie (also porting PRs by AnturK and Arkatos) updated:
+
+ - Fixed light eaters not burning out borg lamplights and flashes. fix Fixed light eater not affecting open turfs emitting lights such as light tiles and fairy grass.
+ - Fixed an empty reference about light eater armblade disintegration after Heart of Darkness removal.
+
+
Ghommie, Skogol updated:
+
+ - refactored altclick interaction to allow alt-click interactable objects to parent call without forcing the turf contents stat menu open.
+ - Alt clicking will no longer show turf contents for items inside bags etc.
+ - Alt clicking the source of your turf contents stat menu will now close said menu.
+
+
GrayRachnid updated:
+
+
Hatterhat updated:
+
+ - Regenerative nanites, a "chemical" used in the combat stimulant injector. Actually quite stimulating, and not bad in a pinch for a nuclear operative. Check the Combat Medic Kit!
+ - The Combat Medic Kit now has an advanced health analyzer and medisprays instead of patches and a chloral syringe.
+ - The Advanced Syndicate Surgery Duffelbag or whatever it was doesn't get the better injector, because nobody uses it and so nobody's bothered to update it.
+ - .357 speedloaders can now be printed with the Advanced Illegal Ballistics node on the tech tree!
+ - okay so i may have given the .357 an extra speedloader at the same cost but it comes in a box now
+
+
ItzGabby updated:
+
+ - Fixed AltClick on polychromic collars so they actually work now.
+
+
KeRSedChaplain updated:
+
+ - Extends the file "deltakalaxon.ogg" to a 38 second .ogg.
+
+
Linzolle updated:
+
+ - neck slice. harm intent someone's head while they are unconscious or in a neck grab to make them bleed uncontrollably.
+ - officer's sabre now properly makes the unsheating and resheating noise
+ - fireman failure has a different message depending on the circumstance
+ - Abductor chem dispenser, and added it to the abductor console.
+ - "Superlingual matrix" to the abductor console. It's the abductor's tongue. Can be used to link it to your abductor communication channel and then implanted into a test subject.
+ - Shrink ray and added it to the abductor console.
+ - Shrink ray sound effect (its the fucking mega man death sound)
+ - special jumpsuit for abductors
+ - abductor jumpsuit, including digi version if a digitigrade person somehow manages to get their hands on it. sprites for the shrink ray and chem dispenser.
+ - new glands to play with, including the all-access gland, the quantum gland, and the blood type randomiser.
+ - split every gland into its own file instead of all being in one file
+ - cosmic coat crafting recipe changed to coat + cosmic bedsheet
+
+
Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac updated:
+
+ - Certain incompatible quirks can no longer be taken together.
+ - If an admin sends a ghost back to the lobby, they can now choose a different set of quirks.
+ - the quirk menu went through some minor formatting changes.
+ - Podcloning now lets you keep your quirks.
+ - Quirks have flavor text in medical records.
+ - All quirk medical records refer to "Patient", removing a few instances of "Subject".
+ - Quirks no longer apply to off-station roundstart antagonists.
+ - Mood quirks are now only processed by the quirk holders
+
+
Narcissisko (ported by Hatterhat) updated:
+
+ - Luxury Bar Capsule, at 10,000 points. Comes with no medical supplies, a bar, and a bunch of cigars. Ported from tgstation/tgstation#45547.
+
+
Nervere and subject217, Militaires, py01, nemvar updated:
+
+ - The cook's CQC now only works when in the kitchen or the kitchen backroom.
+ - corrected CQC help instructions
+ - CQC and Sleeping Carp are properly logged.
+ - CQC can passively grab targets when not on grab intent. Passive grabs do not count towards combos for CQC or Sleeping carp.
+ - Martial Art and NOGUN cleanup.
+
+
PersianXerxes updated:
+
+ - Removed night vision quirk
+
+
Putnam updated:
+
+ - acute hepatic pharmacokinesis now works if you already have relevant genitals
+ - Contamination is no longer an infinitely spreading deadly contagion causing mass panic
+ - Dynamic rulesets have lower weight if a round recently featured them (except traitor).
+
+
Putnam3145 updated:
+
+ - Buffed HE pipes by making them realistically radiate away heat.
+ - Dynamic has a (totally unused for any relevant purpose) roundstart report now.
+ - A whole bunch of dynamic data is now available for statbus
+ - Dynamic from-ghost antags no longer double dip on threat refunds when the mode fails due to not enough applications.
+ - whoops broke quirks
+ - quirks work
+ - New tab in preferences screen: "ERP preferences"
+ - New opt-outs for individual effects of incubus draught, succubus milk
+ - Acute hepatic pharmacokinesis has been removed, replaced with above
+ - Renamed "Toggle Lewdchem" to "Toggle Lewd MKUltra", since that's what it actually means, and made it toggle the "hypno" setting (rename it again if more hypno mechanics are added).
+ - Made MKUltra's lewd messages require both people involved to have hypno opted-in.
+ - Buncha dynamic config tweaks
+ - Ghost cafe spawns are actual ghost roles by the game's reckoning now
+ - a runtime in radioactive contamination
+ - Bomb armor now acts like other armor types.
+ - Devastation-level explosions on armorless people no longer destroys everything in their bags.
+
+
Seris02 updated:
+
+ - the clowns headset
+ - distance checks
+ - the sprites
+ - added the runed and brass winter coats (cosmetic ratvarian/narsian)
+ - how the narsian/ratvarian coats can be made
+ - fixes some ghost roles from dying of stupid shit
+ - pandoras attacking their owners
+ - Added Rising Bass and the shifting scroll.
+ - Changes the martial arts scroll in the uplink to "Sleeping Carp Scroll"
+
+
ShizCalev updated:
+
+ - Fixed floodlights not turning off properly when they're underpowered.
+ - Fixed emitters not changing icons properly when they're underpowered.
+
+
Sishen1542 updated:
+
+ - Clicking a pack of seeds with a pen allows you to set the plant's name, description and the pack of seeds' description. Useful for differentiating genetically modified plants. These changes will persist through different generations of the plant.
+ - Hydroponics trays update their name and description to reflect the plant inside them. They revert to default when emptied.
+
+
Toriate updated:
+
+ - Polychromic shorts now have a digitigrade state
+
+
Trilbyspaceclone updated:
+
+ - ports all the new donuts, burgars, and chicken stuff from RG
+ - ports new snowcone
+ - ports grill
+ - ports beakfeast tag/mood lit as TG has it
+ - ports all the amazing new sprites
+ - ports crafting for many things like snowcones needing water
+ - ports of many craftings
+ - lowers fryers sound
+ - ported icons for new food/grill
+ - ports the deletion of some icons and images
+ - ports a spell check for the snowcones
+ - ports fixes for stuff I didnt know were even broken with snowcones
+ - coder cat failers to push the last commit from year(s) ago
+ - Updates the changlogs
+ - meat hook from HUGE to bulky
+ - CE hardsuit is now more rad-proof
+ - Wrong icon names, missing dog fashion with telegram hat
+ - New softdrink that comes in its own vender!
+ - Honey now has a reaction with plants
+ - Buzz fuzz now only has a 5% to give honey and will now give 1u of sugar not 2
+ - Blaster shotguns back into armory
+ - Removed Lighters in thunderdomes
+ - Silicons now know what a slime is saying!
+ - honey now will not kill slimes. Honey slimepeople can be a thing now, go sci.
+ - Added insulin into many of the borg hypo's
+
+
Useroth updated:
+
+ - bamboo which can be used to build punji sticks/ blowguns available as a sugarcane mutation or in exotic seed crate
+ - changed the sugar cane growth stages because fuck if I know why, but it was in the PR
+ - New lavaland ruin: Pulsating tumor
+ - New class of lavaland mobs, a bit weaker than megafauna but still stronger than most of what you normally see
+ - Ghost cafe spawner. For letting people spawn as their own character in the ninja holding facility. It bypasses the usual check, so people who have suicided/ghosted/cryod may use it.
+ - Dorms in the ninja holding facility.
+
+
Xantholne updated:
+
+ - Santa Hats to Loadout and Clothesmate
+ - Christmas Wintercoats to Loadout and Clothesmate
+ - Christmas male and female uniforms to loadout and Clothesmate
+ - Red, Green, and Traditional Santa boots to loadout and Clothesmate
+ - Christmas Socks, Red candycane socks, Green candycane socks to sock selection
+
+
kappa-sama updated:
+
+ - legion drops more crates now
+ - .357 speedloaders in autolathes are now individual bullets instead, speedloaders are now illegal tech, costs less total metal to make 7 bullets than a previous speedloader. 7.62mm bullets in autolathe when hacked and costs more metal to make 5 7.62mm bullets than getting a clip from the seclathe.
+ - mentions that you can refill speedloaders on .357 uplink description
+ - you can now strip people while aggrograbbing or higher
+ - plasmafist to wizard
+ - modular is gone
+ - martial apprentices for the local Chinese wizard
+ - broodmother baby lag
+ - you can no longer get 100k credits by spending 4k roundstart
+ - cooking oil in sunflowers instead of corn oil
+ - throats are no longer slit happy
+
+
keronshb updated:
+
+ - Adds reflector blobs to shield blob upgrades
+
+
kevinz000 updated:
+
+ - Launchpads can now take number inputs for offsets rather than just buttons.
+ - nanites no longer spread through air blocking objects
+ - Night vision readded as a darkness dampening effect rather than darksight.
+ - conveyors can only stack items on tiles to 150 now.
+ - added 8 character save slots
+ - Cargo shuttle now silently ignores slaughter demons/revenants instead of being blocked even while they are jaunted. A drawback is that manifested ones can't block it either, any more.
+ - flashbangs process light/sound separately and uses viewers(), so xray users beware.
+ - Stat() slowed down for anti-lag measures.
+ - sprint/stamina huds now work again
+ - Combat defibs now instant stun on disarm rather than 1 second again
+ - Defibs are now always emagged when emagged with an emag rather than EMP.
+ - aooc toggling now only broadcasts to antagonists
+ - Antag rep proc is now easier to read and supports returning a list.
+ - Clockwork marauders are now on a configured summon cooldown if being summoned on station. They also rapidly bleed health while in or next to space. And they glow brighter.
+
+
lolman360 updated:
+
+ - Added ability to pick up certain simplemobs.
+
+
nemvar updated:
+
+ - The brains of roundstart borgs no longer decay.
+ - Refactored the visibility of reagents for mobs.
+
+
nicbn, Kevinz000, ShizCalev updated:
+
+ - Fire alarm is now simpler. Touch it to activate, touch it to deactivate. When activated, it will blink inconsistently if it is emagged.
+ - You can no longer spam fire alarms. Also, they're logged again.
+ - Fixed fire alarms not updating icons properly after being emagged and hacked by Malf AI's.
+
+
r4d6 updated:
+
+ - Added a N2O pressure tank
+ - Removed a AM Shielding from the crate
+ - Added Handshakes
+ - Added Nose booping
+ - Added submaps for the SM, Tesla and Singulo
+ - Added a placeholder on Boxstation for the Engines
+ - fixed Nose boops not triggering
+
+
shellspeed1 updated:
+
+ - Adds Insect markings
+ - Adds three new moth wings.
+
+
07 December 2019
AffectedArc07 updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index f5e4fea7cb..db9c8e6d08 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -23656,3 +23656,327 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- tweak: Supply ordered looms are unanchored. Bring a wrench.
r4d6:
- rscadd: Added Departements Winter Coats to the loadout list.
+2019-12-30:
+ AnturK:
+ - bugfix: Fixed ranged syndicate mobs stormtrooper training.
+ Arturlang:
+ - rscadd: Adds Bloodsuckers, beware.
+ BlueWildrose:
+ - bugfix: Fixed stargazers being unable to link to themselves if mindshielded or
+ if holding psionic shielding devices (tinfoil hats) when the species is set.
+ - bugfix: Fixes non-roundstart slimes being unable to wag their tail.
+ Commandersand:
+ - tweak: added two words to clown filter
+ - rscadd: Added new things to loadouts, check em
+ DeltaFire15:
+ - balance: Clock cult kindle no longer cares about oxygen damage
+ - tweak: changed mecha internals access for some special mechs.
+ - tweak: no more mech maintenance access for engineers.
+ - tweak: All heads of staff can now message CC
+ - code_imp: Removes a magicnumber
+ - balance: Rebalanced cult vs cult stun effects to debuff instead of stun
+ Detective-Google:
+ - bugfix: short hair 80's is no longer jank
+ Fermis:
+ - tweak: tweaked how super bases/acids work but limiting them
+ Fikou:
+ - tweak: the windup toolbox now has some more "realistic" sounds
+ - bugfix: the windup toolbox now rumbles again
+ Ghommie:
+ - bugfix: Fixed hulks, sleeping carp users, pacifists and people with chunky fingers
+ being able to unrestrictly use gun and pneumatic cannon circuit assemblies.
+ - bugfix: Fixed gun circuit assemblies being only usable by human mobs.
+ - balance: Doubled the locomotion circuit external cooldown, thus halving the movable
+ assemblies' movespeed.
+ - tweak: Made wooden cabinet/closets... actually made of wood.
+ - tweak: Wooden cabinets are now deconstructable with a screwdriver.
+ - tweak: Deconstruction of large crates and other closet subtypes deconstructable
+ with tools other than the welder is no longer instant.
+ - tweak: You shouldn't be able to target objects you can't see (excluding darkness)
+ with the ARCD and RLD
+ - tweak: The admin RCD is ranged too, just like the ARCD.
+ - bugfix: Fixed welding, thirteen loko, welding and wraith spectacles not blinding
+ people as expected. Thank you all whomst reported this issue in the suggestions
+ box channel instead of the github repository's issues section, very smart!
+ - bugfix: Fixed on_mob eyes overlays not updating properly in certain cases.
+ - bugfix: Fixed deconversion from bloodshot eyes blood cult resetting your eyes'
+ color to pitch black instead of their previous color, more or less.
+ - balance: 'Spinfusor nerf: Upped the casing and ammo box size by one step, removed
+ the projectile''s dismemberment value (explosions can still rip a limb or two
+ off), halved the ammo box capacity, reduced the spinfusor ammo supply pack contents
+ from 32 to 8, removed the casing''s ability to explode when thrown.'
+ - bugfix: Fixes bubblegum's death not unlocking the arena shuttle buyment.
+ - bugfix: Fixed alien tech node not being unlockable with subtypes of the accepted
+ items.
+ - bugfix: Fixed reactive armor onmob overlays not updating when toggled and reactive
+ teleport armor still using forceMove() instead of do_teleport()
+ - bugfix: Fixed space hermit asteroid rocks unintendedly spawning airless asteroid
+ turf when mined, save for the perimeter.
+ - bugfix: Fixes reviver implant having been a crapshot ever since soft-crit was
+ introduced years ago.
+ - tweak: Added a "convalescence" time (about 15 seconds) after the user is out of
+ unconsciousbess/crit to ensure they are properly stabilized.
+ - tweak: Added a 15 minutes hardcap for accumulated revive cooldown (equivalent
+ to 150 points of brute or burn healed) above which the implant starts cooling
+ down regardless of user's conditions.
+ - bugfix: Fixed AI core displays I may have broken with my coding extravaganza.
+ - soundadd: Blue, Amber and Red security alert sounds should be half as loud now.
+ - balance: Buffed clown ops by removing their clumsiness and adding a new trait
+ to be used in place of several clown role checks.
+ - tweak: Clown ops too also suffer from not holding or wearing clown shoes now.
+ - bugfix: Fixed a few holo barriers lacking transparency.
+ - bugfix: Fixed character setup preview bodyparts not displaying correctly most
+ of times.
+ - bugfix: Fixed character appearance preview displaying the mannequin in job attire
+ instead of undergarments.
+ - bugfix: Fixed raven's shuttle computer not being of the emergency shuttle type.
+ - tweak: Blood bank generators can now be anchored and unanchored now.
+ - admin: Ghost mentors can now orbit around the target instead of setting their
+ view to theirs'.
+ - bugfix: Fixes a ghostchat eavesdropping exploit concerning VR.
+ - bugfix: Fixes VR deaths being broadcasted in deadchat.
+ - bugfix: Fixed a few pill bottle issues with the ChemMaster.
+ - bugfix: Fixes a few negative quirks not being properly removed when deleted.
+ - tweak: Phobia and mute quirks are no longer cheesed by brain surgery grade healing
+ or medicines.
+ - bugfix: Fixed double-flavour (and bland custom) ice creams.
+ - bugfix: Fixed Pubbystation's wall Nanomeds being inconsistent with other stations'.
+ - bugfix: dextrous simplemobs can now swap action intent with 1, 2, 3, 4 now. Just
+ like humies, ayys and monkys.
+ - bugfix: Stops humanoids whose skin_tone variable is set to "albino" from showing
+ up as pale when examined should their species not use skintones anyway.
+ - rscdel: Removed the old (almost) unused roboticist encryption key and headset.
+ - bugfix: Fixed goose meat.
+ - bugfix: Fixed a little door assembly glass dupe exploit
+ - bugfix: Fixed AI holopad speech text being small and whispers that in multiple
+ exclamation marks echo through multiple areas.
+ - rscdel: Removed literally atrocious polka dotted accessories. They were even more
+ atrocious than the yellow horrible tie.
+ Ghommie (also porting PRs by AnturK and Arkatos):
+ - bugfix: Fixed light eaters not burning out borg lamplights and flashes. fix Fixed
+ light eater not affecting open turfs emitting lights such as light tiles and
+ fairy grass.
+ - bugfix: Fixed an empty reference about light eater armblade disintegration after
+ Heart of Darkness removal.
+ Ghommie, Skogol:
+ - refactor: refactored altclick interaction to allow alt-click interactable objects
+ to parent call without forcing the turf contents stat menu open.
+ - tweak: Alt clicking will no longer show turf contents for items inside bags etc.
+ - tweak: Alt clicking the source of your turf contents stat menu will now close
+ said menu.
+ GrayRachnid:
+ - bugfix: fixes consistency
+ Hatterhat:
+ - rscadd: Regenerative nanites, a "chemical" used in the combat stimulant injector.
+ Actually quite stimulating, and not bad in a pinch for a nuclear operative.
+ Check the Combat Medic Kit!
+ - tweak: The Combat Medic Kit now has an advanced health analyzer and medisprays
+ instead of patches and a chloral syringe.
+ - balance: The Advanced Syndicate Surgery Duffelbag or whatever it was doesn't get
+ the better injector, because nobody uses it and so nobody's bothered to update
+ it.
+ - rscadd: .357 speedloaders can now be printed with the Advanced Illegal Ballistics
+ node on the tech tree!
+ - balance: okay so i may have given the .357 an extra speedloader at the same cost
+ but it comes in a box now
+ ItzGabby:
+ - bugfix: Fixed AltClick on polychromic collars so they actually work now.
+ KeRSedChaplain:
+ - soundadd: Extends the file "deltakalaxon.ogg" to a 38 second .ogg.
+ Linzolle:
+ - rscadd: neck slice. harm intent someone's head while they are unconscious or in
+ a neck grab to make them bleed uncontrollably.
+ - bugfix: officer's sabre now properly makes the unsheating and resheating noise
+ - bugfix: fireman failure has a different message depending on the circumstance
+ - rscadd: Abductor chem dispenser, and added it to the abductor console.
+ - rscadd: '"Superlingual matrix" to the abductor console. It''s the abductor''s
+ tongue. Can be used to link it to your abductor communication channel and then
+ implanted into a test subject.'
+ - rscadd: Shrink ray and added it to the abductor console.
+ - soundadd: Shrink ray sound effect (its the fucking mega man death sound)
+ - rscadd: special jumpsuit for abductors
+ - imageadd: abductor jumpsuit, including digi version if a digitigrade person somehow
+ manages to get their hands on it. sprites for the shrink ray and chem dispenser.
+ - rscadd: new glands to play with, including the all-access gland, the quantum gland,
+ and the blood type randomiser.
+ - code_imp: split every gland into its own file instead of all being in one file
+ - tweak: cosmic coat crafting recipe changed to coat + cosmic bedsheet
+ Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac:
+ - bugfix: Certain incompatible quirks can no longer be taken together.
+ - bugfix: If an admin sends a ghost back to the lobby, they can now choose a different
+ set of quirks.
+ - spellcheck: the quirk menu went through some minor formatting changes.
+ - bugfix: Podcloning now lets you keep your quirks.
+ - rscadd: Quirks have flavor text in medical records.
+ - spellcheck: All quirk medical records refer to "Patient", removing a few instances
+ of "Subject".
+ - tweak: Quirks no longer apply to off-station roundstart antagonists.
+ - code_imp: Mood quirks are now only processed by the quirk holders
+ Narcissisko (ported by Hatterhat):
+ - rscadd: Luxury Bar Capsule, at 10,000 points. Comes with no medical supplies,
+ a bar, and a bunch of cigars. Ported from tgstation/tgstation#45547.
+ Nervere and subject217, Militaires, py01, nemvar:
+ - balance: The cook's CQC now only works when in the kitchen or the kitchen backroom.
+ - spellcheck: corrected CQC help instructions
+ - bugfix: CQC and Sleeping Carp are properly logged.
+ - tweak: CQC can passively grab targets when not on grab intent. Passive grabs do
+ not count towards combos for CQC or Sleeping carp.
+ - code_imp: Martial Art and NOGUN cleanup.
+ PersianXerxes:
+ - rscdel: Removed night vision quirk
+ Putnam:
+ - bugfix: acute hepatic pharmacokinesis now works if you already have relevant genitals
+ - balance: Contamination is no longer an infinitely spreading deadly contagion causing
+ mass panic
+ - tweak: Dynamic rulesets have lower weight if a round recently featured them (except
+ traitor).
+ Putnam3145:
+ - balance: Buffed HE pipes by making them realistically radiate away heat.
+ - bugfix: Dynamic has a (totally unused for any relevant purpose) roundstart report
+ now.
+ - admin: A whole bunch of dynamic data is now available for statbus
+ - bugfix: Dynamic from-ghost antags no longer double dip on threat refunds when
+ the mode fails due to not enough applications.
+ - bugfix: whoops broke quirks
+ - bugfix: quirks work
+ - rscadd: 'New tab in preferences screen: "ERP preferences"'
+ - rscadd: New opt-outs for individual effects of incubus draught, succubus milk
+ - rscdel: Acute hepatic pharmacokinesis has been removed, replaced with above
+ - tweak: Renamed "Toggle Lewdchem" to "Toggle Lewd MKUltra", since that's what it
+ actually means, and made it toggle the "hypno" setting (rename it again if more
+ hypno mechanics are added).
+ - tweak: Made MKUltra's lewd messages require both people involved to have hypno
+ opted-in.
+ - config: Buncha dynamic config tweaks
+ - bugfix: Ghost cafe spawns are actual ghost roles by the game's reckoning now
+ - bugfix: a runtime in radioactive contamination
+ - balance: Bomb armor now acts like other armor types.
+ - balance: Devastation-level explosions on armorless people no longer destroys everything
+ in their bags.
+ Seris02:
+ - rscadd: the clowns headset
+ - bugfix: distance checks
+ - bugfix: the sprites
+ - rscadd: added the runed and brass winter coats (cosmetic ratvarian/narsian)
+ - tweak: how the narsian/ratvarian coats can be made
+ - bugfix: fixes some ghost roles from dying of stupid shit
+ - bugfix: pandoras attacking their owners
+ - rscadd: Added Rising Bass and the shifting scroll.
+ - tweak: Changes the martial arts scroll in the uplink to "Sleeping Carp Scroll"
+ ShizCalev:
+ - bugfix: Fixed floodlights not turning off properly when they're underpowered.
+ - bugfix: Fixed emitters not changing icons properly when they're underpowered.
+ Sishen1542:
+ - rscadd: Clicking a pack of seeds with a pen allows you to set the plant's name,
+ description and the pack of seeds' description. Useful for differentiating genetically
+ modified plants. These changes will persist through different generations of
+ the plant.
+ - rscadd: Hydroponics trays update their name and description to reflect the plant
+ inside them. They revert to default when emptied.
+ Toriate:
+ - rscadd: Polychromic shorts now have a digitigrade state
+ Trilbyspaceclone:
+ - rscadd: ports all the new donuts, burgars, and chicken stuff from RG
+ - rscadd: ports new snowcone
+ - rscadd: ports grill
+ - rscadd: ports beakfeast tag/mood lit as TG has it
+ - rscadd: ports all the amazing new sprites
+ - tweak: ports crafting for many things like snowcones needing water
+ - balance: ports of many craftings
+ - soundadd: lowers fryers sound
+ - imageadd: ported icons for new food/grill
+ - imagedel: ports the deletion of some icons and images
+ - spellcheck: ports a spell check for the snowcones
+ - code_imp: ports fixes for stuff I didnt know were even broken with snowcones
+ - bugfix: coder cat failers to push the last commit from year(s) ago
+ - admin: Updates the changlogs
+ - tweak: meat hook from HUGE to bulky
+ - tweak: CE hardsuit is now more rad-proof
+ - bugfix: Wrong icon names, missing dog fashion with telegram hat
+ - rscadd: New softdrink that comes in its own vender!
+ - rscadd: Honey now has a reaction with plants
+ - tweak: Buzz fuzz now only has a 5% to give honey and will now give 1u of sugar
+ not 2
+ - rscadd: Blaster shotguns back into armory
+ - rscdel: Removed Lighters in thunderdomes
+ - rscadd: Silicons now know what a slime is saying!
+ - balance: honey now will not kill slimes. Honey slimepeople can be a thing now,
+ go sci.
+ - rscadd: Added insulin into many of the borg hypo's
+ Useroth:
+ - rscadd: bamboo which can be used to build punji sticks/ blowguns available as
+ a sugarcane mutation or in exotic seed crate
+ - tweak: changed the sugar cane growth stages because fuck if I know why, but it
+ was in the PR
+ - rscadd: 'New lavaland ruin: Pulsating tumor'
+ - rscadd: New class of lavaland mobs, a bit weaker than megafauna but still stronger
+ than most of what you normally see
+ - rscadd: Ghost cafe spawner. For letting people spawn as their own character in
+ the ninja holding facility. It bypasses the usual check, so people who have
+ suicided/ghosted/cryod may use it.
+ - rscadd: Dorms in the ninja holding facility.
+ Xantholne:
+ - rscadd: Santa Hats to Loadout and Clothesmate
+ - rscadd: Christmas Wintercoats to Loadout and Clothesmate
+ - rscadd: Christmas male and female uniforms to loadout and Clothesmate
+ - rscadd: Red, Green, and Traditional Santa boots to loadout and Clothesmate
+ - rscadd: Christmas Socks, Red candycane socks, Green candycane socks to sock selection
+ kappa-sama:
+ - balance: legion drops more crates now
+ - balance: .357 speedloaders in autolathes are now individual bullets instead, speedloaders
+ are now illegal tech, costs less total metal to make 7 bullets than a previous
+ speedloader. 7.62mm bullets in autolathe when hacked and costs more metal to
+ make 5 7.62mm bullets than getting a clip from the seclathe.
+ - tweak: mentions that you can refill speedloaders on .357 uplink description
+ - bugfix: you can now strip people while aggrograbbing or higher
+ - rscadd: plasmafist to wizard
+ - code_imp: modular is gone
+ - rscadd: martial apprentices for the local Chinese wizard
+ - bugfix: broodmother baby lag
+ - balance: you can no longer get 100k credits by spending 4k roundstart
+ - balance: cooking oil in sunflowers instead of corn oil
+ - bugfix: throats are no longer slit happy
+ keronshb:
+ - rscadd: Adds reflector blobs to shield blob upgrades
+ kevinz000:
+ - rscadd: Launchpads can now take number inputs for offsets rather than just buttons.
+ - balance: nanites no longer spread through air blocking objects
+ - rscadd: Night vision readded as a darkness dampening effect rather than darksight.
+ - rscdel: conveyors can only stack items on tiles to 150 now.
+ - rscadd: added 8 character save slots
+ - rscadd: Cargo shuttle now silently ignores slaughter demons/revenants instead
+ of being blocked even while they are jaunted. A drawback is that manifested
+ ones can't block it either, any more.
+ - balance: flashbangs process light/sound separately and uses viewers(), so xray
+ users beware.
+ - tweak: Stat() slowed down for anti-lag measures.
+ - bugfix: sprint/stamina huds now work again
+ - balance: Combat defibs now instant stun on disarm rather than 1 second again
+ - balance: Defibs are now always emagged when emagged with an emag rather than EMP.
+ - bugfix: aooc toggling now only broadcasts to antagonists
+ - code_imp: Antag rep proc is now easier to read and supports returning a list.
+ - balance: Clockwork marauders are now on a configured summon cooldown if being
+ summoned on station. They also rapidly bleed health while in or next to space.
+ And they glow brighter.
+ lolman360:
+ - rscadd: Added ability to pick up certain simplemobs.
+ nemvar:
+ - bugfix: The brains of roundstart borgs no longer decay.
+ - code_imp: Refactored the visibility of reagents for mobs.
+ nicbn, Kevinz000, ShizCalev:
+ - tweak: Fire alarm is now simpler. Touch it to activate, touch it to deactivate.
+ When activated, it will blink inconsistently if it is emagged.
+ - bugfix: You can no longer spam fire alarms. Also, they're logged again.
+ - bugfix: Fixed fire alarms not updating icons properly after being emagged and
+ hacked by Malf AI's.
+ r4d6:
+ - rscadd: Added a N2O pressure tank
+ - rscdel: Removed a AM Shielding from the crate
+ - rscadd: Added Handshakes
+ - rscadd: Added Nose booping
+ - rscadd: Added submaps for the SM, Tesla and Singulo
+ - rscadd: Added a placeholder on Boxstation for the Engines
+ - bugfix: fixed Nose boops not triggering
+ shellspeed1:
+ - rscadd: Adds Insect markings
+ - rscadd: Adds three new moth wings.
diff --git a/html/changelogs/AutoChangeLog-pr-10026.yml b/html/changelogs/AutoChangeLog-pr-10026.yml
deleted file mode 100644
index 6e8062874b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10026.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - rscadd: "neck slice. harm intent someone's head while they are unconscious or in a neck grab to make them bleed uncontrollably."
diff --git a/html/changelogs/AutoChangeLog-pr-10037.yml b/html/changelogs/AutoChangeLog-pr-10037.yml
deleted file mode 100644
index b0f0501516..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10037.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed hulks, sleeping carp users, pacifists and people with chunky fingers being able to unrestrictly use gun and pneumatic cannon circuit assemblies."
- - bugfix: "Fixed gun circuit assemblies being only usable by human mobs."
- - balance: "Doubled the locomotion circuit external cooldown, thus halving the movable assemblies' movespeed."
diff --git a/html/changelogs/AutoChangeLog-pr-10044.yml b/html/changelogs/AutoChangeLog-pr-10044.yml
deleted file mode 100644
index 8d1782c3a8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10044.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "Made wooden cabinet/closets... actually made of wood."
- - tweak: "Wooden cabinets are now deconstructable with a screwdriver."
- - tweak: "Deconstruction of large crates and other closet subtypes deconstructable with tools other than the welder is no longer instant."
diff --git a/html/changelogs/AutoChangeLog-pr-10050.yml b/html/changelogs/AutoChangeLog-pr-10050.yml
deleted file mode 100644
index c736ded339..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10050.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "You shouldn't be able to target objects you can't see (excluding darkness) with the ARCD and RLD"
- - tweak: "The admin RCD is ranged too, just like the ARCD."
diff --git a/html/changelogs/AutoChangeLog-pr-10053.yml b/html/changelogs/AutoChangeLog-pr-10053.yml
deleted file mode 100644
index 36d392d8f8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10053.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed welding, thirteen loko, welding and wraith spectacles not blinding people as expected. Thank you all whomst reported this issue in the suggestions box channel instead of the github repository's issues section, very smart!"
diff --git a/html/changelogs/AutoChangeLog-pr-10054.yml b/html/changelogs/AutoChangeLog-pr-10054.yml
deleted file mode 100644
index 0dc3b36618..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10054.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - balance: ".357 speedloaders in autolathes are now individual bullets instead, speedloaders are now illegal tech, costs less total metal to make 7 bullets than a previous speedloader. 7.62mm bullets in autolathe when hacked and costs more metal to make 5 7.62mm bullets than getting a clip from the seclathe."
- - tweak: "mentions that you can refill speedloaders on .357 uplink description"
diff --git a/html/changelogs/AutoChangeLog-pr-10057.yml b/html/changelogs/AutoChangeLog-pr-10057.yml
deleted file mode 100644
index be285bfc57..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10057.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed on_mob eyes overlays not updating properly in certain cases."
- - bugfix: "Fixed deconversion from bloodshot eyes blood cult resetting your eyes' color to pitch black instead of their previous color, more or less."
diff --git a/html/changelogs/AutoChangeLog-pr-10058.yml b/html/changelogs/AutoChangeLog-pr-10058.yml
deleted file mode 100644
index 6f9a985765..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10058.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - balance: "Spinfusor nerf: Upped the casing and ammo box size by one step, removed the projectile's dismemberment value (explosions can still rip a limb or two off), halved the ammo box capacity, reduced the spinfusor ammo supply pack contents from 32 to 8, removed the casing's ability to explode when thrown."
diff --git a/html/changelogs/AutoChangeLog-pr-10059.yml b/html/changelogs/AutoChangeLog-pr-10059.yml
deleted file mode 100644
index e9f89c18a2..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10059.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "lolman360"
-delete-after: True
-changes:
- - rscadd: "Added ability to pick up certain simplemobs."
diff --git a/html/changelogs/AutoChangeLog-pr-10067.yml b/html/changelogs/AutoChangeLog-pr-10067.yml
deleted file mode 100644
index ac65487761..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10067.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Sishen1542"
-delete-after: True
-changes:
- - rscadd: "Clicking a pack of seeds with a pen allows you to set the plant's name, description and the pack of seeds' description. Useful for differentiating genetically modified plants. These changes will persist through different generations of the plant."
- - rscadd: "Hydroponics trays update their name and description to reflect the plant inside them. They revert to default when emptied."
diff --git a/html/changelogs/AutoChangeLog-pr-10068.yml b/html/changelogs/AutoChangeLog-pr-10068.yml
deleted file mode 100644
index 39b2c37c28..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10068.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Fikou"
-delete-after: True
-changes:
- - tweak: "the windup toolbox now has some more \"realistic\" sounds"
- - bugfix: "the windup toolbox now rumbles again"
diff --git a/html/changelogs/AutoChangeLog-pr-10071.yml b/html/changelogs/AutoChangeLog-pr-10071.yml
deleted file mode 100644
index 3632bdfa86..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10071.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes bubblegum's death not unlocking the arena shuttle buyment."
diff --git a/html/changelogs/AutoChangeLog-pr-10072.yml b/html/changelogs/AutoChangeLog-pr-10072.yml
deleted file mode 100644
index 9a6f45e61e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10072.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "bamboo which can be used to build punji sticks/ blowguns available as a sugarcane mutation or in exotic seed crate"
- - tweak: "changed the sugar cane growth stages because fuck if I know why, but it was in the PR"
diff --git a/html/changelogs/AutoChangeLog-pr-10076.yml b/html/changelogs/AutoChangeLog-pr-10076.yml
deleted file mode 100644
index 0e04ceddbc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10076.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed alien tech node not being unlockable with subtypes of the accepted items."
diff --git a/html/changelogs/AutoChangeLog-pr-10079.yml b/html/changelogs/AutoChangeLog-pr-10079.yml
deleted file mode 100644
index a729b1bc56..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10079.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed reactive armor onmob overlays not updating when toggled and reactive teleport armor still using forceMove() instead of do_teleport()"
diff --git a/html/changelogs/AutoChangeLog-pr-10082.yml b/html/changelogs/AutoChangeLog-pr-10082.yml
deleted file mode 100644
index e5c669f798..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10082.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "Launchpads can now take number inputs for offsets rather than just buttons."
diff --git a/html/changelogs/AutoChangeLog-pr-10083.yml b/html/changelogs/AutoChangeLog-pr-10083.yml
deleted file mode 100644
index c60c3fea36..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10083.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed space hermit asteroid rocks unintendedly spawning airless asteroid turf when mined, save for the perimeter."
diff --git a/html/changelogs/AutoChangeLog-pr-10085.yml b/html/changelogs/AutoChangeLog-pr-10085.yml
deleted file mode 100644
index a82f052fed..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10085.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes reviver implant having been a crapshot ever since soft-crit was introduced years ago."
- - tweak: "Added a \"convalescence\" time (about 15 seconds) after the user is out of unconsciousbess/crit to ensure they are properly stabilized."
- - tweak: "Added a 15 minutes hardcap for accumulated revive cooldown (equivalent to 150 points of brute or burn healed) above which the implant starts cooling down regardless of user's conditions."
diff --git a/html/changelogs/AutoChangeLog-pr-10086.yml b/html/changelogs/AutoChangeLog-pr-10086.yml
deleted file mode 100644
index 08dff8ee5c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10086.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed AI core displays I may have broken with my coding extravaganza."
diff --git a/html/changelogs/AutoChangeLog-pr-10090.yml b/html/changelogs/AutoChangeLog-pr-10090.yml
deleted file mode 100644
index 924d83b65e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10090.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Hatterhat"
-delete-after: True
-changes:
- - rscadd: "Regenerative nanites, a \"chemical\" used in the combat stimulant injector. Actually quite stimulating, and not bad in a pinch for a nuclear operative. Check the Combat Medic Kit!"
- - tweak: "The Combat Medic Kit now has an advanced health analyzer and medisprays instead of patches and a chloral syringe."
- - balance: "The Advanced Syndicate Surgery Duffelbag or whatever it was doesn't get the better injector, because nobody uses it and so nobody's bothered to update it."
diff --git a/html/changelogs/AutoChangeLog-pr-10093.yml b/html/changelogs/AutoChangeLog-pr-10093.yml
deleted file mode 100644
index e692ed5d2a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10093.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "ports all the new donuts, burgars, and chicken stuff from RG"
- - rscadd: "ports new snowcone"
- - rscadd: "ports grill"
- - rscadd: "ports beakfeast tag/mood lit as TG has it"
- - rscadd: "ports all the amazing new sprites"
- - tweak: "ports crafting for many things like snowcones needing water"
- - balance: "ports of many craftings"
- - soundadd: "lowers fryers sound"
- - imageadd: "ported icons for new food/grill"
- - imagedel: "ports the deletion of some icons and images"
- - spellcheck: "ports a spell check for the snowcones"
- - code_imp: "ports fixes for stuff I didnt know were even broken with snowcones"
diff --git a/html/changelogs/AutoChangeLog-pr-10094.yml b/html/changelogs/AutoChangeLog-pr-10094.yml
deleted file mode 100644
index ee9513489d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10094.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - bugfix: "coder cat failers to push the last commit from year(s) ago"
diff --git a/html/changelogs/AutoChangeLog-pr-10096.yml b/html/changelogs/AutoChangeLog-pr-10096.yml
deleted file mode 100644
index 0089c11a9d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10096.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "nanites no longer spread through air blocking objects"
diff --git a/html/changelogs/AutoChangeLog-pr-10099.yml b/html/changelogs/AutoChangeLog-pr-10099.yml
deleted file mode 100644
index 9ad4bfdfc2..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10099.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed a few holo barriers lacking transparency."
diff --git a/html/changelogs/AutoChangeLog-pr-10108.yml b/html/changelogs/AutoChangeLog-pr-10108.yml
deleted file mode 100644
index 67c6396763..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10108.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - balance: "Clock cult kindle no longer cares about oxygen damage"
diff --git a/html/changelogs/AutoChangeLog-pr-10111.yml b/html/changelogs/AutoChangeLog-pr-10111.yml
deleted file mode 100644
index 0a80f01eef..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10111.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - bugfix: "you can now strip people while aggrograbbing or higher"
diff --git a/html/changelogs/AutoChangeLog-pr-10114.yml b/html/changelogs/AutoChangeLog-pr-10114.yml
deleted file mode 100644
index f413760ff9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10114.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscadd: "Added a N2O pressure tank"
diff --git a/html/changelogs/AutoChangeLog-pr-10115.yml b/html/changelogs/AutoChangeLog-pr-10115.yml
deleted file mode 100644
index f7a60e4911..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10115.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "New lavaland ruin: Pulsating tumor"
- - rscadd: "New class of lavaland mobs, a bit weaker than megafauna but still stronger than most of what you normally see"
diff --git a/html/changelogs/AutoChangeLog-pr-10116.yml b/html/changelogs/AutoChangeLog-pr-10116.yml
deleted file mode 100644
index 70c1b4590d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10116.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - bugfix: "acute hepatic pharmacokinesis now works if you already have relevant genitals"
diff --git a/html/changelogs/AutoChangeLog-pr-10120.yml b/html/changelogs/AutoChangeLog-pr-10120.yml
deleted file mode 100644
index 5777519d83..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10120.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "Night vision readded as a darkness dampening effect rather than darksight."
diff --git a/html/changelogs/AutoChangeLog-pr-10121.yml b/html/changelogs/AutoChangeLog-pr-10121.yml
deleted file mode 100644
index 38a91fcc01..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10121.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - rscadd: "plasmafist to wizard"
diff --git a/html/changelogs/AutoChangeLog-pr-10122.yml b/html/changelogs/AutoChangeLog-pr-10122.yml
deleted file mode 100644
index 4d503dc2be..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10122.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscdel: "conveyors can only stack items on tiles to 150 now."
diff --git a/html/changelogs/AutoChangeLog-pr-10123.yml b/html/changelogs/AutoChangeLog-pr-10123.yml
new file mode 100644
index 0000000000..208b17b930
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10123.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - rscadd: "throwing things no longer makes them randomly turned as long as you aren't on harm intent"
diff --git a/html/changelogs/AutoChangeLog-pr-10126.yml b/html/changelogs/AutoChangeLog-pr-10126.yml
deleted file mode 100644
index 6cf568ca70..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10126.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - balance: "Buffed HE pipes by making them realistically radiate away heat."
diff --git a/html/changelogs/AutoChangeLog-pr-10130.yml b/html/changelogs/AutoChangeLog-pr-10130.yml
deleted file mode 100644
index 1f6ba6ac6a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10130.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - code_imp: "modular is gone"
diff --git a/html/changelogs/AutoChangeLog-pr-10132.yml b/html/changelogs/AutoChangeLog-pr-10132.yml
deleted file mode 100644
index d8755d2b90..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10132.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - tweak: "meat hook from HUGE to bulky"
diff --git a/html/changelogs/AutoChangeLog-pr-10137.yml b/html/changelogs/AutoChangeLog-pr-10137.yml
deleted file mode 100644
index 63678d4425..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10137.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "KeRSedChaplain"
-delete-after: True
-changes:
- - soundadd: "Extends the file \"deltakalaxon.ogg\" to a 38 second .ogg."
diff --git a/html/changelogs/AutoChangeLog-pr-10140.yml b/html/changelogs/AutoChangeLog-pr-10140.yml
deleted file mode 100644
index d5e33fa02d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10140.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "Dynamic has a (totally unused for any relevant purpose) roundstart report now."
diff --git a/html/changelogs/AutoChangeLog-pr-10141.yml b/html/changelogs/AutoChangeLog-pr-10141.yml
deleted file mode 100644
index 5f0bfe2267..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10141.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - admin: "A whole bunch of dynamic data is now available for statbus"
diff --git a/html/changelogs/AutoChangeLog-pr-10142.yml b/html/changelogs/AutoChangeLog-pr-10142.yml
deleted file mode 100644
index aba2675550..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10142.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - tweak: "CE hardsuit is now more rad-proof"
diff --git a/html/changelogs/AutoChangeLog-pr-10143.yml b/html/changelogs/AutoChangeLog-pr-10143.yml
deleted file mode 100644
index 45dfe225c4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10143.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "Dynamic from-ghost antags no longer double dip on threat refunds when the mode fails due to not enough applications."
diff --git a/html/changelogs/AutoChangeLog-pr-10144.yml b/html/changelogs/AutoChangeLog-pr-10144.yml
deleted file mode 100644
index 6b175b149b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10144.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - bugfix: "officer's sabre now properly makes the unsheating and resheating noise"
diff --git a/html/changelogs/AutoChangeLog-pr-10150.yml b/html/changelogs/AutoChangeLog-pr-10150.yml
deleted file mode 100644
index d2a2b79ff0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10150.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - bugfix: "Wrong icon names, missing dog fashion with telegram hat"
diff --git a/html/changelogs/AutoChangeLog-pr-10153.yml b/html/changelogs/AutoChangeLog-pr-10153.yml
deleted file mode 100644
index 7196583de9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10153.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - bugfix: "fireman failure has a different message depending on the circumstance"
diff --git a/html/changelogs/AutoChangeLog-pr-10156.yml b/html/changelogs/AutoChangeLog-pr-10156.yml
deleted file mode 100644
index ec08642b3f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10156.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed character setup preview bodyparts not displaying correctly most of times."
- - bugfix: "Fixed character appearance preview displaying the mannequin in job attire instead of undergarments."
diff --git a/html/changelogs/AutoChangeLog-pr-10157.yml b/html/changelogs/AutoChangeLog-pr-10157.yml
deleted file mode 100644
index 6ec495b7fc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10157.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "ShizCalev"
-delete-after: True
-changes:
- - bugfix: "Fixed floodlights not turning off properly when they're underpowered."
- - bugfix: "Fixed emitters not changing icons properly when they're underpowered."
diff --git a/html/changelogs/AutoChangeLog-pr-10160.yml b/html/changelogs/AutoChangeLog-pr-10160.yml
deleted file mode 100644
index 2046324dc8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10160.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "nicbn, Kevinz000, ShizCalev"
-delete-after: True
-changes:
- - tweak: "Fire alarm is now simpler. Touch it to activate, touch it to deactivate. When activated, it will blink inconsistently if it is emagged."
- - bugfix: "You can no longer spam fire alarms. Also, they're logged again."
- - bugfix: "Fixed fire alarms not updating icons properly after being emagged and hacked by Malf AI's."
diff --git a/html/changelogs/AutoChangeLog-pr-10161.yml b/html/changelogs/AutoChangeLog-pr-10161.yml
deleted file mode 100644
index 7f09609b99..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10161.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed raven's shuttle computer not being of the emergency shuttle type."
diff --git a/html/changelogs/AutoChangeLog-pr-10163.yml b/html/changelogs/AutoChangeLog-pr-10163.yml
deleted file mode 100644
index 2818019ad7..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10163.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "Blood bank generators can now be anchored and unanchored now."
diff --git a/html/changelogs/AutoChangeLog-pr-10164.yml b/html/changelogs/AutoChangeLog-pr-10164.yml
deleted file mode 100644
index 464edda73b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10164.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - rscadd: "martial apprentices for the local Chinese wizard"
diff --git a/html/changelogs/AutoChangeLog-pr-10165.yml b/html/changelogs/AutoChangeLog-pr-10165.yml
new file mode 100644
index 0000000000..be6f9dedf7
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10165.yml
@@ -0,0 +1,5 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - bugfix: "Fixed missing digi versions fishnet sprites and wrong digitigrade left dir purple stockings sprite."
+ - imageadd: "Add digitigrade versions for boxers and the long johns."
diff --git a/html/changelogs/AutoChangeLog-pr-10166.yml b/html/changelogs/AutoChangeLog-pr-10166.yml
deleted file mode 100644
index ba919010af..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10166.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "nemvar"
-delete-after: True
-changes:
- - bugfix: "The brains of roundstart borgs no longer decay."
diff --git a/html/changelogs/AutoChangeLog-pr-10171.yml b/html/changelogs/AutoChangeLog-pr-10171.yml
deleted file mode 100644
index 0138d7a381..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10171.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscdel: "Removed a AM Shielding from the crate"
diff --git a/html/changelogs/AutoChangeLog-pr-10172.yml b/html/changelogs/AutoChangeLog-pr-10172.yml
deleted file mode 100644
index ce76e04d13..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10172.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-author: "Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac"
-delete-after: True
-changes:
- - bugfix: "Certain incompatible quirks can no longer be taken together."
- - bugfix: "If an admin sends a ghost back to the lobby, they can now choose a different set of quirks."
- - spellcheck: "the quirk menu went through some minor formatting changes."
- - bugfix: "Podcloning now lets you keep your quirks."
- - rscadd: "Quirks have flavor text in medical records."
- - spellcheck: "All quirk medical records refer to \"Patient\", removing a few instances of \"Subject\"."
- - tweak: "Quirks no longer apply to off-station roundstart antagonists."
- - code_imp: "Mood quirks are now only processed by the quirk holders"
diff --git a/html/changelogs/AutoChangeLog-pr-10180.yml b/html/changelogs/AutoChangeLog-pr-10180.yml
deleted file mode 100644
index 0a22910940..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10180.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes a ghostchat eavesdropping exploit concerning VR."
- - bugfix: "Fixes VR deaths being broadcasted in deadchat."
diff --git a/html/changelogs/AutoChangeLog-pr-10181.yml b/html/changelogs/AutoChangeLog-pr-10181.yml
deleted file mode 100644
index bb00ab1012..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10181.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed a few pill bottle issues with the ChemMaster."
diff --git a/html/changelogs/AutoChangeLog-pr-10189.yml b/html/changelogs/AutoChangeLog-pr-10189.yml
new file mode 100644
index 0000000000..5889e127d2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10189.yml
@@ -0,0 +1,5 @@
+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-10190.yml b/html/changelogs/AutoChangeLog-pr-10190.yml
deleted file mode 100644
index d05ad85db3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10190.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "New softdrink that comes in its own vender!"
- - rscadd: "Honey now has a reaction with plants"
diff --git a/html/changelogs/AutoChangeLog-pr-10193.yml b/html/changelogs/AutoChangeLog-pr-10193.yml
deleted file mode 100644
index b432eb74a3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10193.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Commandersand"
-delete-after: True
-changes:
- - tweak: "added two words to clown filter"
diff --git a/html/changelogs/AutoChangeLog-pr-10195.yml b/html/changelogs/AutoChangeLog-pr-10195.yml
deleted file mode 100644
index be8ed0ce76..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10195.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes a few negative quirks not being properly removed when deleted."
- - tweak: "Phobia and mute quirks are no longer cheesed by brain surgery grade healing or medicines."
diff --git a/html/changelogs/AutoChangeLog-pr-10197.yml b/html/changelogs/AutoChangeLog-pr-10197.yml
deleted file mode 100644
index 05545c066c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10197.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed double-flavour (and bland custom) ice creams."
diff --git a/html/changelogs/AutoChangeLog-pr-10198.yml b/html/changelogs/AutoChangeLog-pr-10198.yml
deleted file mode 100644
index 3414258d84..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10198.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "AnturK"
-delete-after: True
-changes:
- - bugfix: "Fixed ranged syndicate mobs stormtrooper training."
diff --git a/html/changelogs/AutoChangeLog-pr-10203.yml b/html/changelogs/AutoChangeLog-pr-10203.yml
deleted file mode 100644
index 7cb4df817b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10203.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - tweak: "changed mecha internals access for some special mechs."
- - tweak: "no more mech maintenance access for engineers."
diff --git a/html/changelogs/AutoChangeLog-pr-10204.yml b/html/changelogs/AutoChangeLog-pr-10204.yml
deleted file mode 100644
index ad5a872bc0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10204.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscadd: "Added Handshakes"
- - rscadd: "Added Nose booping"
diff --git a/html/changelogs/AutoChangeLog-pr-10207.yml b/html/changelogs/AutoChangeLog-pr-10207.yml
deleted file mode 100644
index c451475dfa..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10207.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed Pubbystation's wall Nanomeds being inconsistent with other stations'."
diff --git a/html/changelogs/AutoChangeLog-pr-10210.yml b/html/changelogs/AutoChangeLog-pr-10210.yml
deleted file mode 100644
index 39167dee25..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10210.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "Cargo shuttle now silently ignores slaughter demons/revenants instead of being blocked even while they are jaunted. A drawback is that manifested ones can't block it either, any more."
diff --git a/html/changelogs/AutoChangeLog-pr-10214.yml b/html/changelogs/AutoChangeLog-pr-10214.yml
deleted file mode 100644
index fe5df9f22c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10214.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "dextrous simplemobs can now swap action intent with 1, 2, 3, 4 now. Just like humies, ayys and monkys."
diff --git a/html/changelogs/AutoChangeLog-pr-10216.yml b/html/changelogs/AutoChangeLog-pr-10216.yml
deleted file mode 100644
index 69daa62448..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10216.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "Nervere and subject217, Militaires, py01, nemvar"
-delete-after: True
-changes:
- - balance: "The cook's CQC now only works when in the kitchen or the kitchen backroom."
- - spellcheck: "corrected CQC help instructions"
- - bugfix: "CQC and Sleeping Carp are properly logged."
- - tweak: "CQC can passively grab targets when not on grab intent. Passive grabs do not count towards combos for CQC or Sleeping carp."
- - code_imp: "Martial Art and NOGUN cleanup."
diff --git a/html/changelogs/AutoChangeLog-pr-10225.yml b/html/changelogs/AutoChangeLog-pr-10225.yml
deleted file mode 100644
index 964cc68223..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10225.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "BlueWildrose"
-delete-after: True
-changes:
- - bugfix: "Fixed stargazers being unable to link to themselves if mindshielded or if holding psionic shielding devices (tinfoil hats) when the species is set."
- - bugfix: "Fixes non-roundstart slimes being unable to wag their tail."
diff --git a/html/changelogs/AutoChangeLog-pr-10227.yml b/html/changelogs/AutoChangeLog-pr-10227.yml
deleted file mode 100644
index 5d9446d045..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10227.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "whoops broke quirks"
diff --git a/html/changelogs/AutoChangeLog-pr-10228.yml b/html/changelogs/AutoChangeLog-pr-10228.yml
deleted file mode 100644
index ccc386bbcb..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10228.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "quirks work"
diff --git a/html/changelogs/AutoChangeLog-pr-10232.yml b/html/changelogs/AutoChangeLog-pr-10232.yml
deleted file mode 100644
index 479012a868..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10232.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - tweak: "All heads of staff can now message CC"
diff --git a/html/changelogs/AutoChangeLog-pr-10235.yml b/html/changelogs/AutoChangeLog-pr-10235.yml
deleted file mode 100644
index ca8e4da164..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10235.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "flashbangs process light/sound separately and uses viewers(), so xray users beware."
diff --git a/html/changelogs/AutoChangeLog-pr-10238.yml b/html/changelogs/AutoChangeLog-pr-10238.yml
new file mode 100644
index 0000000000..dda40c86c9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10238.yml
@@ -0,0 +1,7 @@
+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-10246.yml b/html/changelogs/AutoChangeLog-pr-10246.yml
deleted file mode 100644
index 73b2b24ee8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10246.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - tweak: "Stat() slowed down for anti-lag measures."
diff --git a/html/changelogs/AutoChangeLog-pr-10254.yml b/html/changelogs/AutoChangeLog-pr-10254.yml
deleted file mode 100644
index 59fefc5703..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10254.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - bugfix: "fixed Nose boops not triggering"
diff --git a/html/changelogs/AutoChangeLog-pr-10255.yml b/html/changelogs/AutoChangeLog-pr-10255.yml
new file mode 100644
index 0000000000..ebaccd0af6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10255.yml
@@ -0,0 +1,4 @@
+author: "Xantholne"
+delete-after: True
+changes:
+ - bugfix: "Christmas clothes that where missing stuff should work again"
diff --git a/html/changelogs/AutoChangeLog-pr-10257.yml b/html/changelogs/AutoChangeLog-pr-10257.yml
deleted file mode 100644
index d18807c1eb..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10257.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - code_imp: "Removes a magicnumber"
diff --git a/html/changelogs/AutoChangeLog-pr-10263.yml b/html/changelogs/AutoChangeLog-pr-10263.yml
deleted file mode 100644
index a8fa2b9e26..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10263.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - tweak: "Buzz fuzz now only has a 5% to give honey and will now give 1u of sugar not 2"
diff --git a/html/changelogs/AutoChangeLog-pr-10270.yml b/html/changelogs/AutoChangeLog-pr-10270.yml
new file mode 100644
index 0000000000..b47a249f9a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10270.yml
@@ -0,0 +1,4 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - bugfix: "Fixed the secret sauce recipe being randomized every round."
diff --git a/html/changelogs/AutoChangeLog-pr-10301.yml b/html/changelogs/AutoChangeLog-pr-10301.yml
new file mode 100644
index 0000000000..2acac559e9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10301.yml
@@ -0,0 +1,4 @@
+author: "Trilbyspaceclone"
+delete-after: True
+changes:
+ - tweak: "range on Engi Tray scanners and Rad-Scanners"
diff --git a/html/changelogs/AutoChangeLog-pr-10011.yml b/html/changelogs/AutoChangeLog-pr-10306.yml
similarity index 52%
rename from html/changelogs/AutoChangeLog-pr-10011.yml
rename to html/changelogs/AutoChangeLog-pr-10306.yml
index 70d569699f..9ab82dbda0 100644
--- a/html/changelogs/AutoChangeLog-pr-10011.yml
+++ b/html/changelogs/AutoChangeLog-pr-10306.yml
@@ -1,4 +1,4 @@
author: "Arturlang"
delete-after: True
changes:
- - rscadd: "Adds Bloodsuckers, beware."
+ - tweak: "Vampires are no longer as tanky"
diff --git a/html/changelogs/AutoChangeLog-pr-10155.yml b/html/changelogs/AutoChangeLog-pr-10309.yml
similarity index 60%
rename from html/changelogs/AutoChangeLog-pr-10155.yml
rename to html/changelogs/AutoChangeLog-pr-10309.yml
index d82ea5ed43..a59ebff156 100644
--- a/html/changelogs/AutoChangeLog-pr-10155.yml
+++ b/html/changelogs/AutoChangeLog-pr-10309.yml
@@ -1,4 +1,4 @@
author: "Seris02"
delete-after: True
changes:
- - bugfix: "distance checks"
+ - rscadd: "disabler sechuds"
diff --git a/html/changelogs/AutoChangeLog-pr-10319.yml b/html/changelogs/AutoChangeLog-pr-10319.yml
new file mode 100644
index 0000000000..88235aab8e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10319.yml
@@ -0,0 +1,5 @@
+author: "Seris02"
+delete-after: True
+changes:
+ - rscadd: "adds coconut"
+ - rscadd: "adds a coconut bong"
diff --git a/html/changelogs/AutoChangeLog-pr-10330.yml b/html/changelogs/AutoChangeLog-pr-10330.yml
new file mode 100644
index 0000000000..b2a46ef605
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10330.yml
@@ -0,0 +1,4 @@
+author: "keronshb"
+delete-after: True
+changes:
+ - rscadd: "Adds new features for nanites"
diff --git a/html/changelogs/AutoChangeLog-pr-10101.yml b/html/changelogs/AutoChangeLog-pr-10333.yml
similarity index 50%
rename from html/changelogs/AutoChangeLog-pr-10101.yml
rename to html/changelogs/AutoChangeLog-pr-10333.yml
index 059c8b2d85..b5c11a4646 100644
--- a/html/changelogs/AutoChangeLog-pr-10101.yml
+++ b/html/changelogs/AutoChangeLog-pr-10333.yml
@@ -1,4 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- - admin: "Updates the changlogs"
+ - rscadd: "Grass now makes light beer when distilled"
diff --git a/html/changelogs/AutoChangeLog-pr-10337.yml b/html/changelogs/AutoChangeLog-pr-10337.yml
new file mode 100644
index 0000000000..370a8fdc04
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10337.yml
@@ -0,0 +1,5 @@
+author: "Seris02"
+delete-after: True
+changes:
+ - rscadd: "Auto ooc"
+ - admin: "changed \"assume direct control\" from m.ckey = src.ckey to adminmob.transfer_ckey(M) so it works with auto ooc"
diff --git a/html/changelogs/AutoChangeLog-pr-10231.yml b/html/changelogs/AutoChangeLog-pr-10338.yml
similarity index 64%
rename from html/changelogs/AutoChangeLog-pr-10231.yml
rename to html/changelogs/AutoChangeLog-pr-10338.yml
index 7caf65b09f..c4816a3fbe 100644
--- a/html/changelogs/AutoChangeLog-pr-10231.yml
+++ b/html/changelogs/AutoChangeLog-pr-10338.yml
@@ -1,4 +1,4 @@
author: "Seris02"
delete-after: True
changes:
- - bugfix: "the sprites"
+ - rscadd: "marshmallow"
diff --git a/html/changelogs/AutoChangeLog-pr-10339.yml b/html/changelogs/AutoChangeLog-pr-10339.yml
new file mode 100644
index 0000000000..c313c4bf80
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10339.yml
@@ -0,0 +1,4 @@
+author: "Seris02"
+delete-after: True
+changes:
+ - rscadd: "telescopic IV drip"
diff --git a/html/changelogs/AutoChangeLog-pr-10344.yml b/html/changelogs/AutoChangeLog-pr-10344.yml
new file mode 100644
index 0000000000..e0381c6a43
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10344.yml
@@ -0,0 +1,4 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - bugfix: "Chestbursters won't delete the host's brain somewhat anymore."
diff --git a/html/changelogs/AutoChangeLog-pr-10345.yml b/html/changelogs/AutoChangeLog-pr-10345.yml
new file mode 100644
index 0000000000..a95653cdda
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10345.yml
@@ -0,0 +1,4 @@
+author: "Trilbyspaceclone"
+delete-after: True
+changes:
+ - tweak: "allows bandoliers to hold any ammo type as long as it has a casing"
diff --git a/html/changelogs/AutoChangeLog-pr-10349.yml b/html/changelogs/AutoChangeLog-pr-10349.yml
new file mode 100644
index 0000000000..fad3179c6e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10349.yml
@@ -0,0 +1,6 @@
+author: "KathrinBailey"
+delete-after: True
+changes:
+ - rscadd: "Empty engineering lockers for mappers."
+ - rscadd: "Industrial welding tools to the engineer welding locker."
+ - rscdel: "Removed the multitool, airlock painter, mechanical toolbox, brown sneakers, hazard vest and airlock painter from the CE's locker."
diff --git a/html/changelogs/AutoChangeLog-pr-10356.yml b/html/changelogs/AutoChangeLog-pr-10356.yml
new file mode 100644
index 0000000000..1016b559ee
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10356.yml
@@ -0,0 +1,5 @@
+author: "Bhijn"
+delete-after: True
+changes:
+ - rscadd: "Added a preference to make the sprint hotkey be a toggle instead of a hold bind"
+ - rscadd: "Added a preference to bind the sprint hotkey to space instead of shift."
diff --git a/html/changelogs/AutoChangeLog-pr-10357.yml b/html/changelogs/AutoChangeLog-pr-10357.yml
new file mode 100644
index 0000000000..048baa3041
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10357.yml
@@ -0,0 +1,4 @@
+author: "Putnam3145"
+delete-after: True
+changes:
+ - bugfix: "You can toggle some prefs properly now."
diff --git a/html/changelogs/AutoChangeLog-pr-10361.yml b/html/changelogs/AutoChangeLog-pr-10361.yml
new file mode 100644
index 0000000000..0224bdcb49
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10361.yml
@@ -0,0 +1,4 @@
+author: "CameronWoof"
+delete-after: True
+changes:
+ - rscadd: "Ghost Cafe patrons now spawn with chameleon kits. Dress up! Be fancy!"
diff --git a/html/changelogs/AutoChangeLog-pr-10362.yml b/html/changelogs/AutoChangeLog-pr-10362.yml
new file mode 100644
index 0000000000..f92e16302a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10362.yml
@@ -0,0 +1,4 @@
+author: "Trilbyspaceclone"
+delete-after: True
+changes:
+ - bugfix: "rouge cases of #$39; in bottle/pill/patch/condiments"
diff --git a/html/changelogs/AutoChangeLog-pr-10364.yml b/html/changelogs/AutoChangeLog-pr-10364.yml
new file mode 100644
index 0000000000..8834c494ad
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10364.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - bugfix: "telescopic iv drips now have the proper sanity checks for deployment."
diff --git a/html/changelogs/AutoChangeLog-pr-10365.yml b/html/changelogs/AutoChangeLog-pr-10365.yml
new file mode 100644
index 0000000000..f7ba047fc7
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10365.yml
@@ -0,0 +1,4 @@
+author: "Putnam3145"
+delete-after: True
+changes:
+ - bugfix: "no ass slap is no longer the same thing as no aphro"
diff --git a/html/changelogs/AutoChangeLog-pr-10366.yml b/html/changelogs/AutoChangeLog-pr-10366.yml
new file mode 100644
index 0000000000..ec8d234edd
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10366.yml
@@ -0,0 +1,5 @@
+author: "Hatterhat"
+delete-after: True
+changes:
+ - balance: "Beakers are generally more useful now, with slight capacity increases."
+ - tweak: "Transfer amounts are different now. Adjust your muscle memory to compensate."
diff --git a/html/changelogs/AutoChangeLog-pr-10368.yml b/html/changelogs/AutoChangeLog-pr-10368.yml
new file mode 100644
index 0000000000..e6486f2815
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10368.yml
@@ -0,0 +1,4 @@
+author: "Hatterhat"
+delete-after: True
+changes:
+ - balance: "ore redemption machines actually get affected by lasers again kthx"
diff --git a/html/changelogs/AutoChangeLog-pr-10369.yml b/html/changelogs/AutoChangeLog-pr-10369.yml
new file mode 100644
index 0000000000..c292d948fb
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10369.yml
@@ -0,0 +1,4 @@
+author: "Hatterhat"
+delete-after: True
+changes:
+ - tweak: "crusher trophy drop chance on mining mobs increased to 1 in 4 (from 1 in 20)"
diff --git a/html/changelogs/AutoChangeLog-pr-10370.yml b/html/changelogs/AutoChangeLog-pr-10370.yml
new file mode 100644
index 0000000000..6674fd2e17
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10370.yml
@@ -0,0 +1,4 @@
+author: "Hatterhat"
+delete-after: True
+changes:
+ - bugfix: "Blood-drunk buff from blood-drunk eye crusher trophy is less likely to cripple its user."
diff --git a/html/changelogs/AutoChangeLog-pr-10051.yml b/html/changelogs/AutoChangeLog-pr-10371.yml
similarity index 52%
rename from html/changelogs/AutoChangeLog-pr-10051.yml
rename to html/changelogs/AutoChangeLog-pr-10371.yml
index 0d7d274891..e4322d70f1 100644
--- a/html/changelogs/AutoChangeLog-pr-10051.yml
+++ b/html/changelogs/AutoChangeLog-pr-10371.yml
@@ -1,4 +1,4 @@
author: "kappa-sama"
delete-after: True
changes:
- - balance: "legion drops more crates now"
+ - rscadd: "loot crates in cargo contraband"
diff --git a/html/changelogs/AutoChangeLog-pr-10372.yml b/html/changelogs/AutoChangeLog-pr-10372.yml
new file mode 100644
index 0000000000..6bb60c3d8d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10372.yml
@@ -0,0 +1,5 @@
+author: "Hatterhat"
+delete-after: True
+changes:
+ - tweak: "Forcefield projectors now fit on toolbelts."
+ - imageadd: "New sprites for ATMOS holofan and forcefield projectors!"
diff --git a/html/changelogs/AutoChangeLog-pr-10374.yml b/html/changelogs/AutoChangeLog-pr-10374.yml
new file mode 100644
index 0000000000..376f49a4d4
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10374.yml
@@ -0,0 +1,4 @@
+author: "Bhijn helped"
+delete-after: True
+changes:
+ - bugfix: "Fixes Dragon's Tooth Sword 50% armor penetration by making it 35%"
diff --git a/html/changelogs/AutoChangeLog-pr-10379.yml b/html/changelogs/AutoChangeLog-pr-10379.yml
new file mode 100644
index 0000000000..9623f815d6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10379.yml
@@ -0,0 +1,4 @@
+author: "Ryll/Shaps, ported by Hatterhat"
+delete-after: True
+changes:
+ - rscadd: "Point-blanking people with shotguns actually throws them backwards!"
diff --git a/html/changelogs/AutoChangeLog-pr-10200.yml b/html/changelogs/AutoChangeLog-pr-10383.yml
similarity index 53%
rename from html/changelogs/AutoChangeLog-pr-10200.yml
rename to html/changelogs/AutoChangeLog-pr-10383.yml
index 8d4782ee98..c6787bbafe 100644
--- a/html/changelogs/AutoChangeLog-pr-10200.yml
+++ b/html/changelogs/AutoChangeLog-pr-10383.yml
@@ -1,4 +1,4 @@
author: "kevinz000"
delete-after: True
changes:
- - rscadd: "added 8 character save slots"
+ - bugfix: "megafauna can hear again"
diff --git a/html/changelogs/AutoChangeLog-pr-10388.yml b/html/changelogs/AutoChangeLog-pr-10388.yml
new file mode 100644
index 0000000000..fd06a5db3f
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10388.yml
@@ -0,0 +1,4 @@
+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-10403.yml b/html/changelogs/AutoChangeLog-pr-10403.yml
new file mode 100644
index 0000000000..321789a546
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10403.yml
@@ -0,0 +1,5 @@
+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-9538.yml b/html/changelogs/AutoChangeLog-pr-9538.yml
deleted file mode 100644
index a036a8d24a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9538.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "Combat defibs now instant stun on disarm rather than 1 second again"
- - balance: "Defibs are now always emagged when emagged with an emag rather than EMP."
diff --git a/html/changelogs/AutoChangeLog-pr-9563.yml b/html/changelogs/AutoChangeLog-pr-9563.yml
deleted file mode 100644
index 47fab1530d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9563.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fermis"
-delete-after: True
-changes:
- - tweak: "tweaked how super bases/acids work but limiting them"
diff --git a/html/changelogs/AutoChangeLog-pr-9596.yml b/html/changelogs/AutoChangeLog-pr-9596.yml
deleted file mode 100644
index 3f924b85ab..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9596.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - rscadd: "Abductor chem dispenser, and added it to the abductor console."
- - rscadd: "\"Superlingual matrix\" to the abductor console. It's the abductor's tongue. Can be used to link it to your abductor communication channel and then implanted into a test subject."
- - rscadd: "Shrink ray and added it to the abductor console."
- - soundadd: "Shrink ray sound effect (its the fucking mega man death sound)"
- - rscadd: "special jumpsuit for abductors"
- - imageadd: "abductor jumpsuit, including digi version if a digitigrade person somehow manages to get their hands on it. sprites for the shrink ray and chem dispenser."
- - rscadd: "new glands to play with, including the all-access gland, the quantum gland, and the blood type randomiser."
- - code_imp: "split every gland into its own file instead of all being in one file"
diff --git a/html/changelogs/AutoChangeLog-pr-9629.yml b/html/changelogs/AutoChangeLog-pr-9629.yml
deleted file mode 100644
index f0419e4ce9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9629.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - bugfix: "aooc toggling now only broadcasts to antagonists"
diff --git a/html/changelogs/AutoChangeLog-pr-9736.yml b/html/changelogs/AutoChangeLog-pr-9736.yml
deleted file mode 100644
index 768474b8ef..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9736.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - code_imp: "Antag rep proc is now easier to read and supports returning a list."
diff --git a/html/changelogs/AutoChangeLog-pr-9747.yml b/html/changelogs/AutoChangeLog-pr-9747.yml
deleted file mode 100644
index 01caf36136..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9747.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed AI holopad speech text being small and whispers that in multiple exclamation marks echo through multiple areas."
diff --git a/html/changelogs/AutoChangeLog-pr-9830.yml b/html/changelogs/AutoChangeLog-pr-9830.yml
deleted file mode 100644
index 86fb9c439a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9830.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - balance: "Rebalanced cult vs cult stun effects to debuff instead of stun"
diff --git a/html/changelogs/AutoChangeLog-pr-9856.yml b/html/changelogs/AutoChangeLog-pr-9856.yml
new file mode 100644
index 0000000000..697c1c78f5
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9856.yml
@@ -0,0 +1,5 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - rscadd: "Refactored code to allow all living mobs to use shields and not only humans."
+ - tweak: "Monkys will now retaliate against aliens attacking them (as if they even posed a threat to start with)."
diff --git a/html/changelogs/AutoChangeLog-pr-9894.yml b/html/changelogs/AutoChangeLog-pr-9894.yml
deleted file mode 100644
index 6e4b5c09d0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9894.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - balance: "Bomb armor now acts like other armor types."
- - balance: "Devastation-level explosions on armorless people no longer destroys everything in their bags."
diff --git a/html/changelogs/AutoChangeLog-pr-9903.yml b/html/changelogs/AutoChangeLog-pr-9903.yml
deleted file mode 100644
index 0c21b30fd6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9903.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "PersianXerxes"
-delete-after: True
-changes:
- - rscdel: "Removed night vision quirk"
diff --git a/html/changelogs/AutoChangeLog-pr-9925.yml b/html/changelogs/AutoChangeLog-pr-9925.yml
deleted file mode 100644
index 6e2f44fc7b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9925.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - tweak: "cosmic coat crafting recipe changed to coat + cosmic bedsheet"
diff --git a/html/changelogs/AutoChangeLog-pr-9940.yml b/html/changelogs/AutoChangeLog-pr-9940.yml
deleted file mode 100644
index 75563c69b4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9940.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - tweak: "Dynamic rulesets have lower weight if a round recently featured them (except traitor)."
diff --git a/html/changelogs/AutoChangeLog-pr-9950.yml b/html/changelogs/AutoChangeLog-pr-9950.yml
deleted file mode 100644
index 6d328aa131..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9950.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "Clockwork marauders are now on a configured summon cooldown if being summoned on station. They also rapidly bleed health while in or next to space. And they glow brighter."
diff --git a/html/changelogs/AutoChangeLog-pr-9970.yml b/html/changelogs/AutoChangeLog-pr-9970.yml
deleted file mode 100644
index ebeaa326e7..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9970.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscdel: "Removed literally atrocious polka dotted accessories. They were even more atrocious than the yellow horrible tie."
diff --git a/html/changelogs/AutoChangeLog-pr-9971.yml b/html/changelogs/AutoChangeLog-pr-9971.yml
deleted file mode 100644
index 951b9dfc81..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9971.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "Xantholne"
-delete-after: True
-changes:
- - rscadd: "Santa Hats to Loadout and Clothesmate"
- - rscadd: "Christmas Wintercoats to Loadout and Clothesmate"
- - rscadd: "Christmas male and female uniforms to loadout and Clothesmate"
- - rscadd: "Red, Green, and Traditional Santa boots to loadout and Clothesmate"
- - rscadd: "Christmas Socks, Red candycane socks, Green candycane socks to sock selection"
diff --git a/html/changelogs/AutoChangeLog-pr-9983.yml b/html/changelogs/AutoChangeLog-pr-9983.yml
deleted file mode 100644
index b8cd4f0f5b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9983.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie, Skogol"
-delete-after: True
-changes:
- - refactor: "refactored altclick interaction to allow alt-click interactable objects to parent call without forcing the turf contents stat menu open."
- - tweak: "Alt clicking will no longer show turf contents for items inside bags etc."
- - tweak: "Alt clicking the source of your turf contents stat menu will now close said menu."
diff --git a/icons/mob/custom_w.dmi b/icons/mob/custom_w.dmi
index b572338fc6..a73da3aa0c 100644
Binary files a/icons/mob/custom_w.dmi and b/icons/mob/custom_w.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index 9540599364..772a263358 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/insect_markings.dmi b/icons/mob/insect_markings.dmi
new file mode 100644
index 0000000000..6aea140271
Binary files /dev/null and b/icons/mob/insect_markings.dmi differ
diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi
index bf0df371eb..e0789a1eeb 100644
Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ
diff --git a/icons/mob/underwear_old.dmi b/icons/mob/underwear_old.dmi
deleted file mode 100644
index 5e16a473ba..0000000000
Binary files a/icons/mob/underwear_old.dmi and /dev/null differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 0f962591a5..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 94d9f07e10..e568d70310 100644
Binary files a/icons/mob/uniform_digi.dmi and b/icons/mob/uniform_digi.dmi differ
diff --git a/icons/mob/wings.dmi b/icons/mob/wings.dmi
index 7d95805dc5..ace37b1f17 100644
Binary files a/icons/mob/wings.dmi and b/icons/mob/wings.dmi differ
diff --git a/icons/obj/bongs.dmi b/icons/obj/bongs.dmi
new file mode 100644
index 0000000000..406cce3817
Binary files /dev/null and b/icons/obj/bongs.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 5d243f93b8..2e53bb24db 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 43162f2b7e..2dcd8b9a06 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/custom.dmi b/icons/obj/custom.dmi
index bbb813d7c9..d0be1113ee 100644
Binary files a/icons/obj/custom.dmi and b/icons/obj/custom.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index f467da6fbf..73eb12fd6a 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi
index 6b29d599cc..a719150f11 100644
Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ
diff --git a/icons/obj/hydroponics/growing.dmi b/icons/obj/hydroponics/growing.dmi
index 469b1e1aff..712ea11a3b 100644
Binary files a/icons/obj/hydroponics/growing.dmi and b/icons/obj/hydroponics/growing.dmi differ
diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi
index a57719fb3a..e746d8f43d 100644
Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ
diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi
index 8695d03b3c..43e231cbab 100644
Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ
diff --git a/icons/obj/iv_drip.dmi b/icons/obj/iv_drip.dmi
index f530688da7..ddd22dea89 100644
Binary files a/icons/obj/iv_drip.dmi and b/icons/obj/iv_drip.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 8ede8c66ab..8fee8fcf9f 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/icons/rooms/box/engine.dmi b/icons/rooms/box/engine.dmi
new file mode 100644
index 0000000000..c7b0546db2
Binary files /dev/null and b/icons/rooms/box/engine.dmi differ
diff --git a/modular_citadel/code/_onclick/hud/screen_objects.dm b/modular_citadel/code/_onclick/hud/screen_objects.dm
index 3a0eb364cb..6ad0603c49 100644
--- a/modular_citadel/code/_onclick/hud/screen_objects.dm
+++ b/modular_citadel/code/_onclick/hud/screen_objects.dm
@@ -18,10 +18,11 @@
var/mob/living/carbon/C = usr
C.toggle_combat_mode()
-/obj/screen/combattoggle/proc/rebasetointerbay(mob/living/carbon/C)
- if(!C)
+/obj/screen/combattoggle/update_icon_state()
+ var/mob/living/carbon/user = hud?.mymob
+ if(!istype(user))
return
- if(C.combatmode)
+ if(user.combatmode)
icon_state = "combat"
else
icon_state = "combat_off"
@@ -36,10 +37,11 @@
var/mob/living/carbon/C = usr
C.toggle_vore_mode()
-/obj/screen/voretoggle/proc/rebaseintomygut(mob/living/carbon/C)
- if(!C)
+/obj/screen/voretoggle/update_icon_state()
+ var/mob/living/carbon/user = hud?.mymob
+ if(!istype(user))
return
- if(C.voremode && !C.combatmode)
+ if(user.voremode && !user.combatmode)
icon_state = "nom"
else
icon_state = "nom_off"
diff --git a/modular_citadel/code/_onclick/hud/sprint.dm b/modular_citadel/code/_onclick/hud/sprint.dm
index 290fcd368e..c1c81b6d5b 100644
--- a/modular_citadel/code/_onclick/hud/sprint.dm
+++ b/modular_citadel/code/_onclick/hud/sprint.dm
@@ -12,10 +12,11 @@
var/mob/living/carbon/human/H = usr
H.togglesprint()
-/obj/screen/sprintbutton/proc/insert_witty_toggle_joke_here(mob/living/carbon/human/H)
- if(!H)
+/obj/screen/sprintbutton/update_icon_state()
+ var/mob/living/user = hud?.mymob
+ if(!istype(user))
return
- if(H.sprinting)
+ if(user.sprinting)
icon_state = "act_sprint_on"
else
icon_state = "act_sprint"
diff --git a/modular_citadel/code/_onclick/hud/stamina.dm b/modular_citadel/code/_onclick/hud/stamina.dm
index 781b7cb25f..184e3add24 100644
--- a/modular_citadel/code/_onclick/hud/stamina.dm
+++ b/modular_citadel/code/_onclick/hud/stamina.dm
@@ -13,31 +13,16 @@
var/mob/living/L = usr
to_chat(L, "You have [L.getStaminaLoss()] stamina loss.
Your stamina buffer can take [L.stambuffer] stamina loss, and will use 50% of that stamina loss when recharging.
Your stamina buffer is [(L.stambuffer*(100/L.stambuffer))-(L.bufferedstam*(100/L.stambuffer))]% full.")
-/mob/living/carbon/human/proc/staminahudamount()
- if(stat == DEAD || recoveringstam)
- return "staminacrit"
+/obj/screen/staminas/update_icon_state()
+ var/mob/living/carbon/user = hud?.mymob
+ if(!user)
+ return
+ if(user.stat == DEAD || user.recoveringstam || (user.hal_screwyhud in 1 to 2))
+ icon_state = "staminacrit"
+ else if(user.hal_screwyhud == 5)
+ icon_state = "stamina0"
else
- switch(hal_screwyhud)
- if(1 to 2)
- return "staminacrit"
- if(5)
- return "stamina0"
- else
- switch(100 - getStaminaLoss())
- if(100 to INFINITY)
- return "stamina0"
- if(80 to 100)
- return "stamina1"
- if(60 to 80)
- return "stamina2"
- if(40 to 60)
- return "stamina3"
- if(20 to 40)
- return "stamina4"
- if(0 to 20)
- return "stamina5"
- else
- return "stamina6"
+ icon_state = "stamina[CLAMP(FLOOR(user.getStaminaLoss() /20, 1), 0, 6)]"
//stam buffer
/obj/screen/staminabuffer
@@ -48,31 +33,29 @@
layer = ABOVE_HUD_LAYER + 0.1
mouse_opacity = 0
-/mob/living/carbon/human/proc/staminabufferhudamount()
- if(stat == DEAD || recoveringstam)
- return "stambuffer7"
+/obj/screen/staminabuffer/update_icon_state()
+ var/mob/living/carbon/user = hud?.mymob
+ if(!user)
+ return
+ if(user.stat == DEAD || user.recoveringstam || (user.hal_screwyhud in 1 to 2))
+ icon_state = "stambuffer7"
+ else if(user.hal_screwyhud == 5)
+ icon_state = "stambuffer0"
else
- switch(hal_screwyhud)
- if(1 to 2)
- return "stambuffer7"
- if(5)
- return "stambuffer0"
+ switch(user.bufferedstam / user.stambuffer)
+ if(0.95 to INFINITY)
+ icon_state = "stambuffer7"
+ if(0.9 to 0.95)
+ icon_state = "stambuffer6"
+ if(0.8 to 0.9)
+ icon_state = "stambuffer5"
+ if(0.6 to 0.8)
+ icon_state = "stambuffer4"
+ if(0.4 to 0.6)
+ icon_state = "stambuffer3"
+ if(0.2 to 0.4)
+ icon_state = "stambuffer2"
+ if(0.05 to 0.2)
+ icon_state = "stambuffer1"
else
- var/percentmult = 100/stambuffer
- switch(stambuffer*percentmult - bufferedstam*percentmult)
- if(95 to INFINITY)
- return "stambuffer0"
- if(90 to 95)
- return "stambuffer1"
- if(80 to 90)
- return "stambuffer2"
- if(60 to 80)
- return "stambuffer3"
- if(40 to 60)
- return "stambuffer4"
- if(20 to 40)
- return "stambuffer5"
- if(5 to 20)
- return "stambuffer6"
- else
- return "stambuffer7"
+ icon_state = "stambuffer0"
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index 5d9010a7bd..8adc7c0745 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -209,12 +209,12 @@
//Preamble
-/mob/living/verb/toggle_lewd()
+/mob/living/verb/toggle_hypno()
set category = "IC"
- set name = "Toggle Lewdchem"
- set desc = "Allows you to toggle if you'd like lewd flavour messages."
- client.prefs.lewdchem = !(client.prefs.lewdchem)
- to_chat(usr, "You [(client.prefs.lewdchem?"will":"no longer")] receive lewdchem messages.")
+ set name = "Toggle Lewd MKUltra"
+ set desc = "Allows you to toggle if you'd like lewd flavour messages for MKUltra."
+ client.prefs.cit_toggles ^= HYPNO
+ to_chat(usr, "You [((client.prefs.cit_toggles & HYPNO) ?"will":"no longer")] receive lewd flavour messages for MKUltra.")
/datum/status_effect/chem/enthrall
id = "enthrall"
@@ -252,6 +252,8 @@
var/customEcho //Custom looping text in owner
var/customSpan //Custom spans for looping text
+ var/lewd = FALSE // Set on on_apply. Will only be true if both individuals involved have opted in.
+
/datum/status_effect/chem/enthrall/on_apply()
var/mob/living/carbon/M = owner
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in M.reagents.reagent_list
@@ -269,10 +271,11 @@
var/mob/living/carbon/human/H = owner
if(H)//Prefs
if(!H.canbearoused)
- H.client?.prefs.lewdchem = FALSE
- var/message = "[(owner.client?.prefs.lewdchem?"I am a good pet for [enthrallGender].":"[master] is a really inspirational person!")]"
+ H.client?.prefs.cit_toggles &= ~HYPNO
+ lewd = (owner.client?.prefs.cit_toggles & HYPNO) && (master.client?.prefs.cit_toggles & HYPNO)
+ var/message = "[(lewd ? "I am a good pet for [enthrallGender]." : "[master] is a really inspirational person!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message)
- to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!")
+ to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!")
log_game("FERMICHEM: MKULTRA: Status applied on [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Enthrall attempts")
return ..()
@@ -318,7 +321,7 @@
resistanceTally /= 2
enthrallTally = 0
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Enthralled to state 2")
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your conciousness slips, as you sink deeper into trance and servitude.")
else
to_chat(owner, "Your conciousness slips, as you feel more drawn to following [master].")
@@ -327,11 +330,11 @@
phase = -1
to_chat(owner, "You break free of the influence in your mind, your thoughts suddenly turning lucid!")
if(DistApart < 10)
- to_chat(master, "[(master.client?.prefs.lewdchem?"Your pet":"Your thrall")] seems to have broken free of your enthrallment!")
+ to_chat(master, "[(lewd?"Your pet":"Your thrall")] seems to have broken free of your enthrallment!")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Thralls broken free")
owner.remove_status_effect(src) //If resisted in phase 1, effect is removed.
if(prob(10))
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "[pick("It feels so good to listen to [master].", "You can't keep your eyes off [master].", "[master]'s voice is making you feel so sleepy.", "You feel so comfortable with [master]", "[master] is so dominant, it feels right to obey them.")].")
if (2) //partially enthralled
if(enthrallTally > 200)
@@ -339,12 +342,12 @@
mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity.
enthrallTally = 0
resistanceTally /= 2
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your mind gives, eagerly obeying and serving [master].")
to_chat(owner, "You are now fully enthralled to [master], and eager to follow their commands. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [enthrallGender] in death. ")//If people start using this as an excuse to be violent I'll just make them all pacifists so it's not OP.
else
to_chat(owner, "You are unable to put up a resistance any longer, and now are under the influence of [master]. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot follow [master] in death. ")
- to_chat(master, "Your [(master.client?.prefs.lewdchem?"pet":"follower")] [owner] appears to have fully fallen under your sway.")
+ to_chat(master, "Your [(lewd?"pet":"follower")] [owner] appears to have fully fallen under your sway.")
log_game("FERMICHEM: MKULTRA: Status on [owner] ckey: [owner.key] has been fully entrhalled (state 3) with a master of [master] ckey: [enthrallID].")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "thralls fully enthralled.")
else if (resistanceTally > 200)
@@ -353,20 +356,18 @@
resistanceTally = 0
resistGrowth = 0
to_chat(owner, "You manage to shake some of the effects from your addled mind, however you can still feel yourself drawn towards [master].")
- if(prob(10))
- if(owner.client?.prefs.lewdchem)
- to_chat(owner, "[pick("It feels so good to listen to [enthrallGender].", "You can't keep your eyes off [enthrallGender].", "[enthrallGender]'s voice is making you feel so sleepy.", "You feel so comfortable with [enthrallGender]", "[enthrallGender] is so dominant, it feels right to obey them.")].")
+ if(lewd && prob(10))
+ to_chat(owner, "[pick("It feels so good to listen to [enthrallGender].", "You can't keep your eyes off [enthrallGender].", "[enthrallGender]'s voice is making you feel so sleepy.", "You feel so comfortable with [enthrallGender]", "[enthrallGender] is so dominant, it feels right to obey them.")].")
if (3)//fully entranced
if ((resistanceTally >= 200 && withdrawalTick >= 150) || (HAS_TRAIT(M, TRAIT_MINDSHIELD) && (resistanceTally >= 100)))
enthrallTally = 0
phase -= 1
resistanceTally = 0
resistGrowth = 0
- to_chat(owner, "The separation from [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.")
+ to_chat(owner, "The separation from [(lewd?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.")
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "MKUltra")
- if(prob(1))
- if(owner.client?.prefs.lewdchem && !customEcho)
- to_chat(owner, "[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].")
+ if(lewd && prob(1) && !customEcho)
+ to_chat(owner, "[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].")
if (4) //mindbroken
if (mental_capacity >= 499 && (owner.getOrganLoss(ORGAN_SLOT_BRAIN) <=0 || HAS_TRAIT(M, TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent("MKUltra"))
phase = 2
@@ -382,7 +383,7 @@
cooldownMsg = FALSE
else if (cooldownMsg == FALSE)
if(DistApart < 10)
- if(master.client?.prefs.lewdchem)
+ if(lewd)
to_chat(master, "Your pet [owner] appears to have finished internalising your last command.")
cooldownMsg = TRUE
else
@@ -390,7 +391,7 @@
cooldownMsg = TRUE
if(get_dist(master, owner) > 10)
if(prob(10))
- to_chat(owner, "You feel [(owner.client?.prefs.lewdchem?"a deep NEED to return to your [enthrallGender]":"like you have to return to [master]")].")
+ to_chat(owner, "You feel [(lewd ?"a deep NEED to return to your [enthrallGender]":"like you have to return to [master]")].")
M.throw_at(get_step_towards(master,owner), 5, 1)
return//If you break the mind of someone, you can't use status effects on them.
@@ -423,29 +424,29 @@
if (withdrawal == TRUE)//Your minions are really REALLY needy.
switch(withdrawalTick)//denial
if(5)//To reduce spam
- to_chat(owner, "You are unable to complete [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.")
+ to_chat(owner, "You are unable to complete [(lewd?"your [enthrallGender]":"[master]")]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.")
ADD_TRAIT(owner, TRAIT_PACIFISM, "MKUltra") //IMPORTANT
if(10 to 35)//Gives wiggle room, so you're not SUPER needy
if(prob(5))
- to_chat(owner, "You're starting to miss [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].")
+ to_chat(owner, "You're starting to miss [(lewd?"your [enthrallGender]":"[master]")].")
if(prob(5))
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.1)
- to_chat(owner, "[(owner.client?.prefs.lewdchem?"[enthrallGender]":"[master]")] will surely be back soon") //denial
+ to_chat(owner, "[(lewd?"[enthrallGender]":"[master]")] will surely be back soon") //denial
if(36)
- var/message = "[(owner.client?.prefs.lewdchem?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]"
+ var/message = "[(lewd?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing1", /datum/mood_event/enthrallmissing1, message)
if(37 to 65)//barganing
if(prob(10))
to_chat(owner, "They are coming back, right...?")
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)
if(prob(10))
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "I just need to be a good pet for [enthrallGender], they'll surely return if I'm a good pet.")
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1.5)
if(66)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing1")
- var/message = "[(owner.client?.prefs.lewdchem?"I feel so lost in this complicated world without [enthrallGender]..":"I have to return to [master]!")]"
- to_chat(owner, "You start to feel really angry about how you're not with [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")]!")
+ var/message = "[(lewd?"I feel so lost in this complicated world without [enthrallGender]..":"I have to return to [master]!")]"
+ to_chat(owner, "You start to feel really angry about how you're not with [(lewd?"your [enthrallGender]":"[master]")]!")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing2", /datum/mood_event/enthrallmissing2, message)
owner.stuttering += 50
owner.jitteriness += 250
@@ -453,15 +454,15 @@
if(prob(10))
addtimer(CALLBACK(M, /mob/verb/a_intent_change, INTENT_HARM), 2)
addtimer(CALLBACK(M, /mob/proc/click_random_mob), 2)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!")
else
to_chat(owner, "You are overwhelmed with anger and suddenly lash out!")
if(90)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2")
- var/message = "[(owner.client?.prefs.lewdchem?"Where are you [enthrallGender]??!":"I need to find [master]!")]"
+ var/message = "[(lewd?"Where are you [enthrallGender]??!":"I need to find [master]!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing3", /datum/mood_event/enthrallmissing3, message)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "You need to find your [enthrallGender] at all costs, you can't hold yourself back anymore!")
else
to_chat(owner, "You need to find [master] at all costs, you can't hold yourself back anymore!")
@@ -474,15 +475,15 @@
M.hallucination += 10
if(101)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
- var/message = "[(owner.client?.prefs.lewdchem?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]"
+ var/message = "[(lewd?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing4", /datum/mood_event/enthrallmissing4, message)
- to_chat(owner, "You can hardly find the strength to continue without [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].")
+ to_chat(owner, "You can hardly find the strength to continue without [(lewd?"your [enthrallGender]":"[master]")].")
M.gain_trauma_type(BRAIN_TRAUMA_SEVERE)
if(102 to 140) //depression 2, revengeance
if(prob(20))
owner.Stun(50)
owner.emote("cry")//does this exist?
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "You're unable to hold back your tears, suddenly sobbing as the desire to see your [enthrallGender] oncemore overwhelms you.")
else
to_chat(owner, "You are overwheled with withdrawl from [master].")
@@ -504,7 +505,7 @@
deltaResist += 5
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1)
if(prob(20))
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Maybe you'll be okay without your [enthrallGender].")
else
to_chat(owner, "You feel your mental functions slowly begin to return.")
@@ -537,7 +538,7 @@
else if(status == "charge")
owner.add_movespeed_modifier(MOVESPEED_ID_MKULTRA, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
status = "charged"
- if(master.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your [enthrallGender]'s order fills you with a burst of speed!")
else
to_chat(owner, "[master]'s command fills you with a burst of speed!")
@@ -560,7 +561,7 @@
//adrenals?
//customEcho
- if(customEcho && withdrawal == FALSE && owner.client?.prefs.lewdchem)
+ if(customEcho && withdrawal == FALSE && lewd)
if(prob(2))
if(!customSpan) //just in case!
customSpan = "notice"
@@ -576,7 +577,7 @@
cooldownMsg = FALSE
else if (cooldownMsg == FALSE)
if(DistApart < 10)
- if(master.client?.prefs.lewdchem)
+ if(lewd)
to_chat(master, "Your pet [owner] appears to have finished internalising your last command.")
else
to_chat(master, "Your thrall [owner] appears to have finished internalising your last command.")
@@ -609,7 +610,7 @@
/datum/status_effect/chem/enthrall/proc/owner_hear(datum/source, list/hearing_args)
- if(owner.client?.prefs.lewdchem == FALSE)
+ if(lewd == FALSE)
return
if (cTriggered > 0)
return
@@ -638,7 +639,7 @@
//Shocking truth!
else if (lowertext(customTriggers[trigger]) == "shock")
- if (C.canbearoused && C.client?.prefs.lewdchem)
+ if (C.canbearoused && lewd)
C.adjustArousalLoss(5)
C.jitteriness += 100
C.stuttering += 25
@@ -648,7 +649,7 @@
//wah intensifies wah-rks
else if (lowertext(customTriggers[trigger]) == "cum")//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- if (HAS_TRAIT(C, TRAIT_NYMPHO) && C.client?.prefs.lewdchem)
+ if (HAS_TRAIT(C, TRAIT_NYMPHO) && lewd)
if (C.getArousalLoss() > 80)
C.mob_climax(forced_climax=TRUE)
C.SetStun(10)//We got your stun effects in somewhere, Kev.
@@ -689,20 +690,20 @@
if (status == "Sleeper" || phase == 0)
return
else if (phase == 4)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your mind is too far gone to even entertain the thought of resisting. Unless you can fix the brain damage, you won't be able to break free of your [enthrallGender]'s control.")
else
to_chat(owner, "Your brain is too overwhelmed with from the high volume of chemicals in your system, rendering you unable to resist, unless you can fix the brain damage.")
return
else if (phase == 3 && withdrawal == FALSE)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "The presence of your [enthrallGender] fully captures the horizon of your mind, removing any thoughts of resistance. If you get split up from them, then you might be able to entertain the idea of resisting.")
else
to_chat(owner, "You are unable to resist [master] in your current state. If you get split up from them, then you might be able to resist.")
return
else if (status == "Antiresist")//If ordered to not resist; resisting while ordered to not makes it last longer, and increases the rate in which you are enthralled.
if (statusStrength > 0)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "The order from your [enthrallGender] to give in is conflicting with your attempt to resist, drawing you deeper into trance! You'll have to wait a bit before attemping again, lest your attempts become frustrated again.")
else
to_chat(owner, "The order from your [master] to give in is conflicting with your attempt to resist. You'll have to wait a bit before attemping again, lest your attempts become frustrated again.")
@@ -742,7 +743,7 @@
deltaResist *= 1.25
if (owner.reagents.has_reagent("neurine"))
deltaResist *= 1.5
- if (!HAS_TRAIT(owner, TRAIT_CROCRIN_IMMUNE) && M.canbearoused && owner.client?.prefs.lewdchem)
+ if (!(owner.client?.prefs.cit_toggles & NO_APHRO) && M.canbearoused && lewd)
if (owner.reagents.has_reagent("anaphro"))
deltaResist *= 1.5
if (owner.reagents.has_reagent("anaphro+"))
diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm
index 53fe6a8f56..e75ba17801 100755
--- a/modular_citadel/code/game/machinery/vending.dm
+++ b/modular_citadel/code/game/machinery/vending.dm
@@ -52,6 +52,7 @@
/obj/item/clothing/mask/muzzle = 4,
/obj/item/clothing/under/stripper_pink = 3,
/obj/item/clothing/under/stripper_green = 3,
+ /obj/item/clothing/under/corset = 3,
/obj/item/clothing/under/gear_harness = 10,
/obj/item/dildo/custom = 5,
/obj/item/electropack/shockcollar = 3,
@@ -71,7 +72,8 @@
)
premium = list(
/obj/item/clothing/accessory/skullcodpiece/fake = 3,
- /obj/item/reagent_containers/glass/bottle/hexacrocin = 10
+ /obj/item/reagent_containers/glass/bottle/hexacrocin = 10,
+ /obj/item/clothing/under/pants/chaps = 5
)
refill_canister = /obj/item/vending_refill/kink
diff --git a/modular_citadel/code/modules/client/client_procs.dm b/modular_citadel/code/modules/client/client_procs.dm
index 3b91deb6e5..f20dd08a51 100644
--- a/modular_citadel/code/modules/client/client_procs.dm
+++ b/modular_citadel/code/modules/client/client_procs.dm
@@ -19,6 +19,12 @@
mentor_follow(M)
return TRUE
+ if(href_list["mentor_unfollow"])
+ var/mob/living/M = locate(href_list["mentor_follow"])
+ if(M && mentor_datum.following == M)
+ mentor_unfollow()
+ return TRUE
+
/client/proc/mentor_datum_set(admin)
mentor_datum = GLOB.mentor_datums[ckey]
if(!mentor_datum && check_rights_for(src, R_ADMIN,0)) // admin with no mentor datum?let's fix that
diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm
index d75ffc2347..cf68666532 100644
--- a/modular_citadel/code/modules/client/loadout/__donator.dm
+++ b/modular_citadel/code/modules/client/loadout/__donator.dm
@@ -458,3 +458,33 @@ datum/gear/darksabresheath
category = SLOT_NECK
path = /obj/item/clothing/neck/necklace/onion
ckeywhitelist = list("cdrcross")
+
+/datum/gear/mikubikini
+ name = "starlight singer bikini"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/mikubikini
+ ckeywhitelist = list("grandvegeta")
+
+/datum/gear/mikujacket
+ name = "starlight singer jacket"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/mikujacket
+ ckeywhitelist = list("grandvegeta")
+
+/datum/gear/mikuhair
+ name = "starlight singer hair"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/head/mikuhair
+ ckeywhitelist = list("grandvegeta")
+
+/datum/gear/mikugloves
+ name = "starlight singer gloves"
+ category = SLOT_GLOVES
+ path = /obj/item/clothing/gloves/mikugloves
+ ckeywhitelist = list("grandvegeta")
+
+/datum/gear/mikuleggings
+ name = "starlight singer leggings"
+ category = SLOT_SHOES
+ path = /obj/item/clothing/shoes/sneakers/mikuleggings
+ ckeywhitelist = list("grandvegeta")
diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm
index b8f3bd1cc1..d5f2e3cbd1 100644
--- a/modular_citadel/code/modules/client/loadout/suit.dm
+++ b/modular_citadel/code/modules/client/loadout/suit.dm
@@ -69,6 +69,16 @@
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/hooded/wintercoat/aformal
+/datum/gear/coat/runed
+ name = "Runed winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/narsie/fake
+
+/datum/gear/coat/brass
+ name = "Brass winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/ratvar/fake
+
/* Commented out until it is "balanced"
/datum/gear/coat/sec
name = "Security winter coat"
diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm
index 72709069eb..64ed0d363d 100644
--- a/modular_citadel/code/modules/client/loadout/uniform.dm
+++ b/modular_citadel/code/modules/client/loadout/uniform.dm
@@ -103,6 +103,45 @@
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/stripeddress
+/datum/gear/sundresswhite
+ name = "White Sundress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/sundresswhite
+
+/datum/gear/sundress
+ name = "Sundress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/sundress
+
+/datum/gear/greendress
+ name = "Green Dress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/greendress
+
+/datum/gear/pinkdress
+ name = "Pink Dress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pinkdress
+/datum/gear/flowerdress
+ name = "Flower Dress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/flowerdress
+
+/datum/gear/sweptskirt
+ name = "Swept skirt"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/sweptskirt
+
+/datum/gear/croptop
+ name = "Croptop"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/croptop
+
+/datum/gear/yoga
+ name = "Yoga Pants"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/yoga
+
/datum/gear/kilt
name = "Kilt"
category = SLOT_W_UNIFORM
@@ -116,7 +155,7 @@
/datum/gear/athleticshorts
name = "Athletic Shorts"
category = SLOT_W_UNIFORM
- path = /obj/item/clothing/under/shorts
+ path = /obj/item/clothing/under/shorts/red
/datum/gear/bjeans
name = "Black Jeans"
@@ -153,6 +192,26 @@
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/pants/track
+/datum/gear/rippedjeans
+ name = "Ripped Jeans"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/jeanripped
+
+/datum/gear/jeanshort
+ name = "Jean Shorts"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/jeanshort
+
+/datum/gear/denimskirt
+ name = "Denim Skirt"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/denimskirt
+
+/datum/gear/yoga
+ name = "Yoga Pants"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/yoga
+
// Pantsless Sweaters
/datum/gear/turtleneck
@@ -362,4 +421,4 @@
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/stripper_green
cost = 3
-
+
diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm
index 29f8a113e8..eef8664fbb 100644
--- a/modular_citadel/code/modules/client/preferences.dm
+++ b/modular_citadel/code/modules/client/preferences.dm
@@ -15,7 +15,7 @@
var/arousable = TRUE
var/widescreenpref = TRUE
var/autostand = TRUE
- var/lewdchem = FALSE
+ var/auto_ooc = FALSE
//vore prefs
var/toggleeatingnoise = TRUE
@@ -54,6 +54,5 @@ datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1)
character.give_genitals(TRUE)
character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially
character.canbearoused = arousable
- character.client?.prefs.lewdchem = lewdchem
if(icon_updates)
character.update_genitals()
diff --git a/modular_citadel/code/modules/clothing/clothing.dm b/modular_citadel/code/modules/clothing/clothing.dm
deleted file mode 100644
index 843b7a84c9..0000000000
--- a/modular_citadel/code/modules/clothing/clothing.dm
+++ /dev/null
@@ -1,91 +0,0 @@
-/* //
-// GLOBALIZED POLYCHROME FOR ALL CLOTHING //
-// //
-// NOTICE: POLYCHROME STUFF MUST USE ALTERNATE_WORN_ICON AND PLACE THEIR OVERLAYS IN BOTH THE ICON AND ALTERNATE_WORN_ICON //
-// //
-*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-// COPYPASTE THE FOLLOWING PROC TO WHATEVER CATERGORY OF CLOTHING YOU WANT TO POLYCHROME
-
-// THIS IS REQUIRED DUE TO EACH CLOTHING CATEGORY HAVING A SNOWFLAKE WORN_OVERLAYS() THING
-
-// Don't forget to append the appropriate typepath! Also, refer to polychromic_clothes.dm for example implementations
-
-/*
-/obj/item/clothing/worn_overlays(isinhands, icon_file) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon
- . = ..()
- if(hasprimary | hassecondary | hastertiary)
- if(!isinhands) //prevents the worn sprites from showing up if you're just holding them
- if(hasprimary) //checks if overlays are enabled
- var/mutable_appearance/primary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-primary") //automagical sprite selection
- primary_worn.color = primary_color //colors the overlay
- . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite.
- if(hassecondary)
- var/mutable_appearance/secondary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-secondary")
- secondary_worn.color = secondary_color
- . += secondary_worn
- if(hastertiary)
- var/mutable_appearance/tertiary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-tertiary")
- tertiary_worn.color = tertiary_color
- . += tertiary_worn
-*/
-
-/obj/item/clothing/
- var/hasprimary = FALSE //These vars allow you to choose which overlays a clothing has
- var/hassecondary = FALSE
- var/hastertiary = FALSE
- var/primary_color = "#FFFFFF" //RGB in hexcode
- var/secondary_color = "#FFFFFF"
- var/tertiary_color = "#808080"
-
- var/force_alternate_icon = FALSE
-
-/obj/item/clothing/update_icon() // picks the colored overlays from the ICON file
- ..()
- if(hasprimary) //Checks if the overlay is enabled
- var/mutable_appearance/primary_overlay = mutable_appearance(icon, "[item_color]-primary") //Automagically picks overlays
- primary_overlay.color = primary_color //Colors the greyscaled overlay
- add_overlay(primary_overlay) //Applies the coloured overlay onto the item sprite. but NOT the mob sprite.
- if(hassecondary)
- var/mutable_appearance/secondary_overlay = mutable_appearance(icon, "[item_color]-secondary")
- secondary_overlay.color = secondary_color
- add_overlay(secondary_overlay)
- if(hastertiary)
- var/mutable_appearance/tertiary_overlay = mutable_appearance(icon, "[item_color]-tertiary")
- tertiary_overlay.color = tertiary_color
- add_overlay(tertiary_overlay)
-
-/obj/item/clothing/AltClick(mob/living/user)
- . = ..()
- if(hasprimary | hassecondary | hastertiary)
- var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays
- switch(choice) //Lets the list's options actually lead to something
- if("Primary Color")
- var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it.
- if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL.
- primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly
- update_icon() //updates the item icon
- user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works.
- if("Secondary Color")
- var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null
- if(secondary_color_input)
- secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1)
- update_icon()
- user.regenerate_icons()
- if("Tertiary Color")
- var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null
- if(tertiary_color_input)
- tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1)
- update_icon()
- user.regenerate_icons()
- return TRUE
-
-/obj/item/clothing/examine(mob/user)
- . = ..()
- if(hasprimary | hassecondary | hastertiary)
- . += "Alt-click to recolor it."
-
-/obj/item/clothing/Initialize()
- ..()
- if(hasprimary | hassecondary | hastertiary)
- update_icon() //Applies the overlays and default colors onto the clothes on spawn.
\ No newline at end of file
diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm
index 274a345369..3d88dae26c 100644
--- a/modular_citadel/code/modules/custom_loadout/custom_items.dm
+++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm
@@ -510,3 +510,49 @@
icon_state = "onion"
item_state = "onion"
alternate_worn_icon = 'icons/mob/custom_w.dmi'
+
+/obj/item/clothing/under/mikubikini
+ name = "starlight singer bikini"
+ desc = " "
+ icon_state = "mikubikini"
+ item_state = "mikubikini"
+ icon = 'icons/obj/custom.dmi'
+ alternate_worn_icon = 'icons/mob/custom_w.dmi'
+ mutantrace_variation = NO_MUTANTRACE_VARIATION
+
+/obj/item/clothing/suit/mikujacket
+ name = "starlight singer jacket"
+ desc = " "
+ icon_state = "mikujacket"
+ item_state = "mikujacket"
+ icon = 'icons/obj/custom.dmi'
+ alternate_worn_icon = 'icons/mob/custom_w.dmi'
+ mutantrace_variation = NO_MUTANTRACE_VARIATION
+
+/obj/item/clothing/head/mikuhair
+ name = "starlight singer hair"
+ desc = " "
+ icon_state = "mikuhair"
+ item_state = "mikuhair"
+ icon = 'icons/obj/custom.dmi'
+ alternate_worn_icon = 'icons/mob/custom_w.dmi'
+ mutantrace_variation = NO_MUTANTRACE_VARIATION
+ flags_inv = HIDEHAIR
+
+/obj/item/clothing/gloves/mikugloves
+ name = "starlight singer gloves"
+ desc = " "
+ icon_state = "mikugloves"
+ item_state = "mikugloves"
+ icon = 'icons/obj/custom.dmi'
+ alternate_worn_icon = 'icons/mob/custom_w.dmi'
+ mutantrace_variation = NO_MUTANTRACE_VARIATION
+
+/obj/item/clothing/shoes/sneakers/mikuleggings
+ name = "starlight singer leggings"
+ desc = " "
+ icon_state = "mikuleggings"
+ item_state = "mikuleggings"
+ icon = 'icons/obj/custom.dmi'
+ alternate_worn_icon = 'icons/mob/custom_w.dmi'
+ mutantrace_variation = NO_MUTANTRACE_VARIATION
diff --git a/modular_citadel/code/modules/mentor/follow.dm b/modular_citadel/code/modules/mentor/follow.dm
index 6695155ad0..5da3ce4726 100644
--- a/modular_citadel/code/modules/mentor/follow.dm
+++ b/modular_citadel/code/modules/mentor/follow.dm
@@ -1,16 +1,18 @@
/client/proc/mentor_follow(mob/living/M)
if(!is_mentor())
return
- if(isnull(M))
- return
- if(!ismob(usr))
- return
- mentor_datum.following = M
- usr.reset_perspective(M)
- verbs += /client/proc/mentor_unfollow
- to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is now following [key_name(M)]")
- to_chat(usr, "Click the \"Stop Following\" button in the Mentor tab to stop following [key_name(M)].")
- log_mentor("[key_name(usr)] began following [key_name(M)]")
+ var/orbiting = TRUE
+ if(!isobserver(usr))
+ mentor_datum.following = M
+ usr.reset_perspective(M)
+ verbs += /client/proc/mentor_unfollow
+ to_chat(usr, "Click the \"Stop Following\" button here or in the Mentor tab to stop following [key_name(M)].")
+ orbiting = FALSE
+ else
+ var/mob/dead/observer/O = usr
+ O.ManualFollow(M)
+ to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is now [orbiting ? "orbiting" : "following"] [key_name(M)][key_name(M)][orbiting ? " as a ghost" : ""].")
+ log_mentor("[key_name(usr)] [orbiting ? "is now orbiting" : "began following"][key_name(M)][orbiting ? " as a ghost" : ""].")
/client/proc/mentor_unfollow()
set category = "Mentor"
@@ -21,6 +23,6 @@
return
usr.reset_perspective()
verbs -= /client/proc/mentor_unfollow
- to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is no longer following [key_name(mentor_datum.following)]")
- log_mentor("[key_name(usr)] stopped following [key_name(mentor_datum.following)]")
+ to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is no longer following [key_name(mentor_datum.following)].")
+ log_mentor("[key_name(usr)] stopped following [key_name(mentor_datum.following)].")
mentor_datum.following = null
\ No newline at end of file
diff --git a/modular_citadel/code/modules/mentor/mentorhelp.dm b/modular_citadel/code/modules/mentor/mentorhelp.dm
index 87b05a3f26..eb2b8546da 100644
--- a/modular_citadel/code/modules/mentor/mentorhelp.dm
+++ b/modular_citadel/code/modules/mentor/mentorhelp.dm
@@ -19,7 +19,7 @@
log_mentor("MENTORHELP: [key_name_mentor(src, 0, 0, 0, 0)]: [msg]")
for(var/client/X in GLOB.mentors | GLOB.admins)
- X << 'sound/items/bikehorn.ogg'
+ SEND_SOUND(X, 'sound/items/bikehorn.ogg')
to_chat(X, mentor_msg)
to_chat(src, "PM to-Mentors: [msg]")
diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm
index 1c6b957d9f..34ea0e789f 100644
--- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm
@@ -41,18 +41,16 @@
playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above!
if(client)
client.show_popup_menus = !combatmode // So we can right-click for alternate actions and all that other good shit. Also moves examine to shift+rightclick to make it possible to attack while sprinting
- if(hud_used && hud_used.static_inventory)
- for(var/obj/screen/combattoggle/selector in hud_used.static_inventory)
- selector.rebasetointerbay(src)
+ var/obj/screen/combattoggle/T = locate() in hud_used?.static_inventory
+ T?.update_icon_state()
combatmessagecooldown = 10 SECONDS + world.time //This is set 100% of the time to make sure squeezing regen out of process cycles doesn't result in the combat mode message getting spammed
SEND_SIGNAL(src, COMSIG_COMBAT_TOGGLED, src, combatmode)
return TRUE
mob/living/carbon/proc/toggle_vore_mode()
voremode = !voremode
- if(hud_used && hud_used.static_inventory)
- for(var/obj/screen/voretoggle/selector in hud_used.static_inventory)
- selector.rebaseintomygut(src)
+ var/obj/screen/voretoggle/T = locate() in hud_used?.static_inventory
+ T?.update_icon_state()
if(combatmode)
return FALSE //let's not override the main draw of the game these days
SEND_SIGNAL(src, COMSIG_VORE_TOGGLED, src, voremode)
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm b/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm
index 15e08907d5..0b6903c9fe 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm
@@ -1,6 +1,3 @@
-/mob/living/carbon/human
- var/sprinting = FALSE
-
/mob/living/carbon/human/Move(NewLoc, direct)
var/oldpseudoheight = pseudo_z_axis
. = ..()
@@ -28,9 +25,8 @@
playsound_local(src, 'sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE)
else
playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
- if(hud_used && hud_used.static_inventory)
- for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
- selector.insert_witty_toggle_joke_here(src)
+ var/obj/screen/sprintbutton/S = locate() in hud_used?.static_inventory
+ S?.update_icon_state()
return TRUE
/mob/living/carbon/human/proc/sprint_hotkey(targetstatus)
diff --git a/modular_citadel/code/modules/mob/living/living.dm b/modular_citadel/code/modules/mob/living/living.dm
index 16bf776171..513a80cae0 100644
--- a/modular_citadel/code/modules/mob/living/living.dm
+++ b/modular_citadel/code/modules/mob/living/living.dm
@@ -1,4 +1,5 @@
/mob/living
+ var/sprinting = FALSE
var/recoveringstam = FALSE
var/incomingstammult = 1
var/bufferedstam = 0
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
index 532f2eb5dd..cbd53486b3 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
@@ -424,12 +424,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
if(hit_atom)
if(isliving(hit_atom))
var/mob/living/L = hit_atom
- var/blocked = 0
- if(ishuman(hit_atom))
- var/mob/living/carbon/human/H = hit_atom
- if(H.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK))
- blocked = 1
- if(!blocked)
+ if(!L.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK))
L.visible_message("[src] pounces on [L]!", "[src] pounces on you!")
L.Knockdown(iscarbon(L) ? 60 : 45, override_stamdmg = CLAMP(pounce_stamloss, 0, pounce_stamloss_cap-L.getStaminaLoss())) // Temporary. If someone could rework how dogborg pounces work to accomodate for combat changes, that'd be nice.
playsound(src, 'sound/weapons/Egloves.ogg', 50, 1)
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm
index 59630186d1..3f88513372 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm
@@ -1,6 +1,3 @@
-/mob/living/silicon/robot
- var/sprinting = FALSE
-
/mob/living/silicon/robot/Move(NewLoc, direct)
. = ..()
if(. && sprinting && !(movement_type & FLYING) && canmove && !resting)
@@ -24,9 +21,8 @@
if(shutdown)
playsound_local(src, 'sound/effects/light_flicker.ogg', 50, FALSE, pressure_affected = FALSE)
playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
- if(hud_used && hud_used.static_inventory)
- for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
- selector.insert_witty_toggle_joke_here(src)
+ var/obj/screen/sprintbutton/S = locate() in hud_used?.static_inventory
+ S?.update_icon_state()
return TRUE
/mob/living/silicon/robot/proc/sprint_hotkey(targetstatus)
diff --git a/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm b/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm
index b039eb9b42..8cb56803b1 100644
--- a/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm
+++ b/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm
@@ -50,7 +50,7 @@
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-/datum/design/m45 //Kinda NT in throey
+/datum/design/m45 //Kinda NT in theory
name = "handgun magazine (.45)"
id = "m45"
build_type = PROTOLATHE
@@ -68,3 +68,13 @@
build_path = /obj/item/ammo_box/magazine/pistolm9mm
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/sl357
+ name = "revolver speedloader (.357)"
+ desc = "A revolver speedloader."
+ id = "sl357"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 30000)
+ build_path = /obj/item/ammo_box/a357
+ category = list("Ammo")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm
index 35d13b3aa6..65c652434b 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm
@@ -170,6 +170,9 @@ Creating a chem with a low purity will make you permanently fall in love with so
/datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M)
. = ..()
+ if(M.client?.prefs.cit_toggles & NEVER_HYPNO) // Just in case people are opting out of this
+ holder.remove_reagent(id, 10000000)
+ return
if(!ishuman(M))//Just to make sure screwy stuff doesn't happen.
return
if(!creatorID)
@@ -183,7 +186,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
E.enthrallID = creatorID
E.enthrallGender = creatorGender
E.master = get_mob_by_key(creatorID)
- to_chat(M, to_chat(M, "Your aldled, plastic, mind bends under the chemical influence of a new [(M.client?.prefs.lewdchem?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.")) //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE.
+ to_chat(M, "Your addled, plastic, mind bends under the chemical influence of a new [(E.lewd?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.") //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE.
log_game("FERMICHEM: Narcissist [M] ckey: [M.key] been rebound to [creatorName], ID: [creatorID]")
return
if((M.ckey == creatorID) && (creatorName == M.real_name)) //same name AND same player - same instance of the player. (should work for clones?)
@@ -194,7 +197,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
Vc.Remove(M)
nVc.Insert(M)
qdel(Vc)
- to_chat(M, "You feel your vocal chords tingle you speak in a more charasmatic and sultry tone.)]")
+ to_chat(M, "You feel your vocal chords tingle you speak in a more charasmatic and sultry tone.")
else
log_game("FERMICHEM: MKUltra: [creatorName], [creatorID], is enthralling [M.name], [M.ckey]")
M.apply_status_effect(/datum/status_effect/chem/enthrall)
@@ -230,7 +233,6 @@ Creating a chem with a low purity will make you permanently fall in love with so
M.reagents.remove_reagent(id, volume)
FallInLove(C, M)
return
-
if (M.ckey == creatorID && creatorName == M.real_name)//If you yourself drink it, it supresses the vocal effects, for stealth. NEVERMIND ADD THIS LATER I CAN'T GET IT TO WORK
return
if(!M.client)
@@ -261,7 +263,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
E.master = creator
else
E = M.has_status_effect(/datum/status_effect/chem/enthrall)
- if(M.client?.prefs.lewdchem)
+ if(E.lewd)
to_chat(M, "Your mind shatters under the volume of the mild altering chem inside of you, breaking all will and thought completely. Instead the only force driving you now is the instinctual desire to obey and follow [creatorName]. Your highest priority is now to stay by their side and protect them at all costs.")
else
to_chat(M, "The might volume of chemicals in your system overwhelms your mind, and you suddenly agree with what [creatorName] has been saying. Your highest priority is now to stay by their side and protect them at all costs.")
@@ -288,6 +290,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
chemical_flags = REAGENT_DONOTSPLIT
can_synth = FALSE
var/mob/living/carbon/love
+ var/lewd = FALSE
/datum/reagent/fermi/enthrallExplo/on_mob_life(mob/living/carbon/M)//Love gas, only affects while it's in your system,Gives a positive moodlet if close, gives brain damagea and a negative moodlet if not close enough.
if(HAS_TRAIT(M, TRAIT_MINDSHIELD))
@@ -303,24 +306,25 @@ Creating a chem with a low purity will make you permanently fall in love with so
if(!love)
return
M.apply_status_effect(STATUS_EFFECT_INLOVE, love)
- to_chat(M, "[(M.client?.prefs.lewdchem?"":"")][(M.client?.prefs.lewdchem?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.")
+ lewd = (M.client?.prefs.cit_toggles & HYPNO) && (love.client?.prefs.cit_toggles & HYPNO)
+ to_chat(M, "[(lewd?"":"")][(lewd?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.")
log_game("FERMICHEM: [M] ckey: [M.key] has temporarily bonded with [love] ckey: [love.key]")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have bonded")
else
if(get_dist(M, love) < 8)
if(HAS_TRAIT(M, TRAIT_NYMPHO)) //Add this back when merged/updated.
M.adjustArousalLoss(5)
- var/message = "[(M.client?.prefs.lewdchem?"I'm next to my crush..! Eee!":"I'm making friends with [love]!")]"
+ var/message = "[(lewd?"I'm next to my crush..! Eee!":"I'm making friends with [love]!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "InLove", /datum/mood_event/InLove, message)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove")
else
- var/message = "[(M.client?.prefs.lewdchem?"I can't keep my crush off my mind, I need to see them again!":"I really want to make friends with [love]!")]"
+ var/message = "[(lewd?"I can't keep my crush off my mind, I need to see them again!":"I really want to make friends with [love]!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "MissingLove", /datum/mood_event/MissingLove, message)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove")
if(prob(5))
M.Stun(10)
M.emote("whimper")//does this exist?
- to_chat(M, "[(M.client?.prefs.lewdchem?"":"")] You're overcome with a desire to see [love].")
+ to_chat(M, "[(lewd?"":"")] You're overcome with a desire to see [love].")
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)//I found out why everyone was so damaged!
..()
@@ -330,7 +334,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
M.remove_status_effect(STATUS_EFFECT_INLOVE)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove")
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove")
- to_chat(M, "[(M.client?.prefs.lewdchem?"":"")]Your feelings for [love] suddenly vanish!")
+ to_chat(M, "[(lewd?"":"")]Your feelings for [love] suddenly vanish!")
log_game("FERMICHEM: [M] ckey: [M.key] is no longer in temp bond")
..()
@@ -338,7 +342,8 @@ Creating a chem with a low purity will make you permanently fall in love with so
if(Lover.has_status_effect(STATUS_EFFECT_INLOVE))
to_chat(Lover, "You are already fully devoted to someone else!")
return
- to_chat(Lover, "[(Lover.client?.prefs.lewdchem?"":"")]You develop a deep and sudden bond with [Love][(Lover.client?.prefs.lewdchem?", your heart beginning to race as your mind filles with thoughts about them.":".")] You are determined to keep them safe and happy, and feel drawn towards them.")
+ var/lewd = (Lover.client?.prefs.cit_toggles & HYPNO) && (Love.client?.prefs.cit_toggles & HYPNO)
+ to_chat(Lover, "[(lewd?"":"")]You develop a deep and sudden bond with [Love][(lewd?", your heart beginning to race as your mind filles with thoughts about them.":".")] You are determined to keep them safe and happy, and feel drawn towards them.")
if(Lover.mind)
Lover.mind.store_memory("You are in love with [Love].")
Lover.faction |= "[REF(Love)]"
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm
index d7ff42a9eb..7e094eddda 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)
+ F.PlaceOnTop(/turf/open/floor/fakespace, flags = CHANGETURF_INHERIT_AIR)
..()
/datum/reagent/fermi/astral/reaction_obj(obj/O, reac_volume)
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
index 7d358b4149..6732fb06a5 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
@@ -56,8 +56,8 @@
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS)
- //If they have Acute hepatic pharmacokinesis, then route processing though liver.
- if(HAS_TRAIT(H, TRAIT_PHARMA) || !H.canbearoused)
+ //If they've opted out, then route processing though liver.
+ if(!(H.client?.prefs.cit_toggles & BREAST_ENLARGEMENT))
var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
if(L)
L.swelling += 0.05
@@ -94,9 +94,7 @@
return ..()
/datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders.
-
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA) || !M.canbearoused)
+ if(!(M.client?.prefs.cit_toggles & FORCED_FEM))
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
L.swelling+= 0.05
return ..()
@@ -133,15 +131,10 @@
/datum/reagent/fermi/BEsmaller/on_mob_life(mob/living/carbon/M)
var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS)
- if(!B)
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA) || !M.canbearoused)
- var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
- L.swelling-= 0.05
- return ..()
-
- //otherwise proceed as normal
- return..()
+ if(!(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) || !B)
+ var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
+ L.swelling-= 0.05
+ return ..()
B.modify_size(-0.05)
return ..()
@@ -221,8 +214,7 @@
return ..()
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS)
- //If they have Acute hepatic pharmacokinesis, then route processing though liver.
- if(HAS_TRAIT(H, TRAIT_PHARMA) || !H.canbearoused)
+ if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT))
var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
if(L)
L.swelling += 0.05
@@ -252,8 +244,7 @@
/datum/reagent/fermi/penis_enlarger/overdose_process(mob/living/carbon/human/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders.
if(!istype(M))
return ..()
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA) || !M.canbearoused)
+ if(!(M.client?.prefs.cit_toggles & FORCED_MASC))
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
L.swelling+= 0.05
return..()
@@ -292,11 +283,9 @@
return ..()
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS)
- if(!P)
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA))
- var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
- L.swelling-= 0.05
+ if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) || !P)
+ var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
+ L.swelling-= 0.05
return..()
P.modify_size(-0.1)
diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
index aa4c65c3bb..f6b70eb7b6 100644
--- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
+++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
@@ -100,7 +100,7 @@
color = "#FFADFF"//PINK, rgb(255, 173, 255)
/datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M)
- if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE))
+ if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO))
if(prob(33))
M.adjustArousalLoss(2)
if(prob(5))
@@ -122,7 +122,7 @@
overdose_threshold = 20
/datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M)
- if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE))
+ if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO))
if(prob(33))
M.adjustArousalLoss(6)//not quite six times as powerful, but still considerably more powerful.
if(prob(5))
@@ -154,7 +154,7 @@
..()
/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M)
- if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE) && prob(33))
+ if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33))
if(prob(5) && M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna())
if(prob(5)) //Less spam
to_chat(M, "Your libido is going haywire!")
diff --git a/modular_citadel/icons/polyclothes/item/uniform.dmi b/modular_citadel/icons/polyclothes/item/uniform.dmi
deleted file mode 100644
index 87c3479a6a..0000000000
Binary files a/modular_citadel/icons/polyclothes/item/uniform.dmi and /dev/null differ
diff --git a/modular_citadel/icons/polyclothes/mob/uniform.dmi b/modular_citadel/icons/polyclothes/mob/uniform.dmi
deleted file mode 100644
index 15b5262bab..0000000000
Binary files a/modular_citadel/icons/polyclothes/mob/uniform.dmi and /dev/null differ
diff --git a/sound/effects/bonghit.ogg b/sound/effects/bonghit.ogg
new file mode 100644
index 0000000000..45a0dec1b6
Binary files /dev/null and b/sound/effects/bonghit.ogg differ
diff --git a/sound/weapons/klonk.ogg b/sound/weapons/klonk.ogg
new file mode 100644
index 0000000000..471f3ad8b7
Binary files /dev/null and b/sound/weapons/klonk.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
old mode 100644
new mode 100755
index dbcccdc899..a3163598ca
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -43,6 +43,7 @@
#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,6 +110,7 @@
#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"
@@ -200,7 +202,6 @@
#include "code\_onclick\hud\ghost.dm"
#include "code\_onclick\hud\guardian.dm"
#include "code\_onclick\hud\hud.dm"
-#include "code\_onclick\hud\hud_cit.dm"
#include "code\_onclick\hud\human.dm"
#include "code\_onclick\hud\lavaland_elite.dm"
#include "code\_onclick\hud\monkey.dm"
@@ -485,6 +486,7 @@
#include "code\datums\martial\mushpunch.dm"
#include "code\datums\martial\plasma_fist.dm"
#include "code\datums\martial\psychotic_brawl.dm"
+#include "code\datums\martial\rising_bass.dm"
#include "code\datums\martial\sleeping_carp.dm"
#include "code\datums\martial\wrestling.dm"
#include "code\datums\mood_events\beauty_events.dm"
@@ -503,6 +505,7 @@
#include "code\datums\mutations\telekinesis.dm"
#include "code\datums\ruins\lavaland.dm"
#include "code\datums\ruins\space.dm"
+#include "code\datums\ruins\station.dm"
#include "code\datums\status_effects\buffs.dm"
#include "code\datums\status_effects\debuffs.dm"
#include "code\datums\status_effects\gas.dm"
@@ -580,6 +583,7 @@
#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"
@@ -883,6 +887,7 @@
#include "code\game\objects\items\taster.dm"
#include "code\game\objects\items\teleportation.dm"
#include "code\game\objects\items\teleprod.dm"
+#include "code\game\objects\items\telescopic_iv.dm"
#include "code\game\objects\items\theft_tools.dm"
#include "code\game\objects\items\toys.dm"
#include "code\game\objects\items\trash.dm"
@@ -1601,6 +1606,7 @@
#include "code\modules\clothing\clothing.dm"
#include "code\modules\clothing\ears\_ears.dm"
#include "code\modules\clothing\glasses\_glasses.dm"
+#include "code\modules\clothing\glasses\disablerglasses.dm"
#include "code\modules\clothing\glasses\engine_goggles.dm"
#include "code\modules\clothing\glasses\hud.dm"
#include "code\modules\clothing\glasses\phantomthief.dm"
@@ -1666,6 +1672,7 @@
#include "code\modules\clothing\under\color.dm"
#include "code\modules\clothing\under\miscellaneous.dm"
#include "code\modules\clothing\under\pants.dm"
+#include "code\modules\clothing\under\polychromic_clothes.dm"
#include "code\modules\clothing\under\shorts.dm"
#include "code\modules\clothing\under\syndicate.dm"
#include "code\modules\clothing\under\trek.dm"
@@ -3111,12 +3118,10 @@
#include "modular_citadel\code\modules\client\loadout\suit.dm"
#include "modular_citadel\code\modules\client\loadout\uniform.dm"
#include "modular_citadel\code\modules\client\verbs\who.dm"
-#include "modular_citadel\code\modules\clothing\clothing.dm"
#include "modular_citadel\code\modules\clothing\neck.dm"
#include "modular_citadel\code\modules\clothing\spacesuits\flightsuit.dm"
#include "modular_citadel\code\modules\clothing\suits\polychromic_cloaks.dm"
#include "modular_citadel\code\modules\clothing\suits\suits.dm"
-#include "modular_citadel\code\modules\clothing\under\polychromic_clothes.dm"
#include "modular_citadel\code\modules\clothing\under\trek_under.dm"
#include "modular_citadel\code\modules\clothing\under\turtlenecks.dm"
#include "modular_citadel\code\modules\clothing\under\under.dm"