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!"; + 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!"; - 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 += "" dat += "
    " dat += "

    Clothing & Equipment

    " dat += "Underwear:[underwear]" - if(UNDIE_COLORABLE(GLOB.underwear_list[underwear])) + if(GLOB.underwear_list[underwear]?.has_color) dat += "Underwear Color:     Change
    " dat += "Undershirt:[undershirt]" - if(UNDIE_COLORABLE(GLOB.undershirt_list[undershirt])) + if(GLOB.undershirt_list[undershirt]?.has_color) dat += "Undershirt Color:     Change
    " dat += "Socks:[socks]" - if(UNDIE_COLORABLE(GLOB.socks_list[socks])) + if(GLOB.socks_list[socks]?.has_color) dat += "Socks Color:     Change
    " dat += "Backpack:[backbag]" dat += "Jumpsuit:
    [jumpsuit_style]
    " @@ -820,13 +838,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat +="
    " dat += "

    Citadel Preferences

    " //Because fuck me if preferences can't be fucking modularized and expected to update in a reasonable timeframe. - 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 += "Lewdchem:[lewdchem == TRUE ? "Enabled" : "Disabled"]
    " dat += "Widescreen: [widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"]
    " dat += "Auto stand: [autostand ? "Enabled" : "Disabled"]
    " + dat += "Auto OOC: [auto_ooc ? "Enabled" : "Disabled"]
    " dat += "Screen Shake: [(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")]
    " if (user && user.client && !user.client.prefs.screenshake==0) dat += "Damage Screen Shake: [(damagescreenshake==1) ? "On" : ((damagescreenshake==0) ? "Off" : "Only when down")]
    " @@ -878,6 +892,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
    " dat += "Ambient Occlusion: [ambientocclusion ? "Enabled" : "Disabled"]
    " dat += "Fit Viewport: [auto_fit_viewport ? "Auto" : "Manual"]
    " + dat += "Sprint Key: [sprint_spacebar ? "Space" : "Shift"]
    " + dat += "Toggle Sprint: [sprint_toggle ? "Enabled" : "Disabled"]
    " if (CONFIG_GET(flag/maprotation) && CONFIG_GET(flag/tgstyle_maprotation)) var/p_map = preferred_map @@ -977,6 +993,26 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" dat += "
    [gear.description]
    " + if(4) // Content preferences + dat += "" + 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 += "

    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:

    + +

    Arturlang updated:

    + +

    BlueWildrose updated:

    + +

    Commandersand updated:

    + +

    DeltaFire15 updated:

    + +

    Detective-Google updated:

    + +

    Fermis updated:

    + +

    Fikou updated:

    + +

    Ghommie updated:

    + +

    Ghommie (also porting PRs by AnturK and Arkatos) updated:

    + +

    Ghommie, Skogol updated:

    + +

    GrayRachnid updated:

    + +

    Hatterhat updated:

    + +

    ItzGabby updated:

    + +

    KeRSedChaplain updated:

    + +

    Linzolle updated:

    + +

    Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac updated:

    + +

    Narcissisko (ported by Hatterhat) updated:

    + +

    Nervere and subject217, Militaires, py01, nemvar updated:

    + +

    PersianXerxes updated:

    + +

    Putnam updated:

    + +

    Putnam3145 updated:

    + +

    Seris02 updated:

    + +

    ShizCalev updated:

    + +

    Sishen1542 updated:

    + +

    Toriate updated:

    + +

    Trilbyspaceclone updated:

    + +

    Useroth updated:

    + +

    Xantholne updated:

    + +

    kappa-sama updated:

    + +

    keronshb updated:

    + +

    kevinz000 updated:

    + +

    lolman360 updated:

    + +

    nemvar updated:

    + +

    nicbn, Kevinz000, ShizCalev updated:

    + +

    r4d6 updated:

    + +

    shellspeed1 updated:

    + +

    07 December 2019

    AffectedArc07 updated: