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 8f6eda450c..bae0b05e3d 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 d50480c381..96c1a08b1f 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 525c8fcf7b..57e03061dd 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 25f8bfdd4c..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" = ( @@ -37308,7 +37247,6 @@ /obj/item/clothing/accessory/armband/deputy, /obj/item/clothing/accessory/armband/deputy, /obj/item/clothing/accessory/armband/deputy, -/obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -56102,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" = ( @@ -56146,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" = ( @@ -57183,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" = ( @@ -58732,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" = ( @@ -60665,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" = ( @@ -80916,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; @@ -84408,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{ @@ -119500,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" = ( @@ -120829,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 @@ -126415,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, @@ -126443,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, @@ -126536,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 @@ -126579,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 @@ -126611,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 @@ -126646,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{ @@ -126690,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 @@ -126720,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, @@ -126740,6 +126736,10 @@ }, /turf/open/floor/plasteel, /area/maintenance/department/electrical) +"hds" = ( +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) "hdH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -126748,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, @@ -126761,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" @@ -126785,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{ @@ -126816,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 @@ -126851,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{ @@ -126884,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 @@ -126917,9 +126901,6 @@ }, /turf/open/floor/engine/vacuum, /area/science/mixing) -"iyd" = ( -/turf/open/space, -/area/space) "iQh" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -126960,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 @@ -126984,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{ @@ -127096,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{ @@ -127129,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{ @@ -127137,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 @@ -127162,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 @@ -127202,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{ @@ -127242,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 @@ -127355,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{ @@ -127381,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, @@ -127413,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 @@ -127455,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 @@ -127616,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{ @@ -127726,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{ @@ -127764,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, @@ -127773,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, @@ -127782,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 @@ -127812,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{ @@ -127846,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) @@ -127863,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{ @@ -127891,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 }, @@ -127902,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 @@ -127952,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" @@ -127984,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{ @@ -128016,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 @@ -128025,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 }, @@ -128079,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" @@ -128097,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 @@ -128184,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, @@ -157106,7 +157117,7 @@ arB aug alg alg -whX +pDQ aKg alf aMO @@ -157363,7 +157374,7 @@ aAb aAb aAb aAb -pHf +vph aKh alf aMN @@ -157621,7 +157632,7 @@ aCv aFJ aAb aIH -tAi +eIC alf aMP aDw @@ -158135,7 +158146,7 @@ aEB aFL aAb aIH -tbC +lva avm arB arB @@ -158387,7 +158398,7 @@ alf aAb aBj aCv -oaP +wQz aEC aFM aAb @@ -158518,7 +158529,7 @@ edL eep eff aad -aeH +lag aaa ajr aaa @@ -158644,7 +158655,7 @@ alg aAb aBk aCv -ozr +lem aEC aFN aAb @@ -158775,7 +158786,7 @@ edM eeq dLY aad -gFk +hds aaa aad aaa @@ -158906,7 +158917,7 @@ aED aFO aHm aII -mdk +euu aLz aMR aOq @@ -159163,7 +159174,7 @@ aEE aFP aHn aIJ -iiH +wsI aLz aMS aOr @@ -159415,12 +159426,12 @@ ayX aAb aBn aCx -ibC +wjb aCv aFQ aAb -owI -iiH +hig +wsI aLz aMT aOs @@ -159793,7 +159804,7 @@ dXz dYt dON dOl -vON +gER eaX dYu ect @@ -160049,8 +160060,8 @@ dON dON dON dON -gQw -rYR +sBk +nUj ebc ebQ ecu @@ -160191,7 +160202,7 @@ aAb aAb aAb aIL -tbC +lva aLz aLz aLz @@ -160312,12 +160323,12 @@ dZN dZN dZN dZN -fHS +jPL dZN dZN dLY aad -aeH +lag aad aad aaa @@ -160448,7 +160459,7 @@ aEG aFS aHp aIM -obe +tzT aLB aFS aEG @@ -160563,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 @@ -160752,7 +160763,7 @@ caG chU cjt ckR -kZu +qkw cnR cpv cqQ @@ -160822,12 +160833,12 @@ dTw dTw dZN dZN -hei -gNJ -jPA -jPA -vFw -rbY +kTU +agv +eHb +eHb +qzY +siB dTw aad aad @@ -161069,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 @@ -161334,7 +161345,7 @@ dUj dXC dYw dZh -ijd +wJf eau edr ebS @@ -168156,7 +168167,7 @@ aCP avQ aFe aGp -oOb +nZa aJg aKF aLP @@ -170713,7 +170724,7 @@ aox apu aqy arb -aax +flG aig auA avU @@ -170970,7 +170981,7 @@ aoy apv aqz apu -aay +arX aig auB avU @@ -171479,8 +171490,8 @@ aiC akU alI amE -aav -aaw +anz +oDr apw aqA apy @@ -171998,7 +172009,7 @@ aiC apy apy apu -aaz +iZm atw auD avW @@ -172255,7 +172266,7 @@ aoB apz apw apv -aaA +asa atw auE avW @@ -172843,7 +172854,7 @@ bsE cAm cBI cDo -aaq +cFc cAm cHW cIW @@ -174923,7 +174934,7 @@ dkv dma dma dma -mMC +pLz dsI dro dvz @@ -175359,7 +175370,7 @@ aaa aaa aad aQR -ost +tma aUq aVR aXF @@ -177216,7 +177227,7 @@ cFr cGP cqd cJe -aar +cKT cMq cAw cPM @@ -179462,7 +179473,7 @@ aaa aaa aaa aaa -aeH +lag aFm aIc aFm @@ -179719,9 +179730,9 @@ aaa aaa aaa aaa -aeH +lag aFm -mEy +umo bbt aFm aMc @@ -179976,10 +179987,10 @@ aaa aaa aaa aaa -aeH +lag aFm -oNW -tmZ +jie +gug aFm aKV aNy @@ -180235,10 +180246,10 @@ ajr ajr aad aFm -pEq -hlc -gUV -hlc +rTc +mqT +uNx +mqT aNz aPh aQZ @@ -180492,7 +180503,7 @@ ajr aad aad aFn -mvf +dWi aJA aJA aMe @@ -182811,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/food.dm b/code/__DEFINES/food.dm index 15c7af5749..72e6a12f84 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -11,6 +11,7 @@ #define GROSS (1<<10) #define TOXIC (1<<11) #define PINEAPPLE (1<<12) +#define BREAKFAST (1<<13) #define DRINK_NICE 1 #define DRINK_GOOD 2 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 29ff0a8fae..d89743d2d2 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -528,3 +528,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 d17db07b50..4f66482f51 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -118,6 +118,7 @@ #define TRAIT_PARALYSIS_R_ARM "para-r-arm" #define TRAIT_PARALYSIS_L_LEG "para-l-leg" #define TRAIT_PARALYSIS_R_LEG "para-r-leg" +#define TRAIT_DISK_VERIFIER "disk-verifier" #define TRAIT_UNINTELLIGIBLE_SPEECH "unintelligible-speech" #define TRAIT_SOOTHED_THROAT "soothed-throat" #define TRAIT_LAW_ENFORCEMENT_METABOLISM "law-enforcement-metabolism" @@ -133,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 @@ -159,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" @@ -192,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" @@ -225,5 +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/__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/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm index 768622818f..493f7b2096 100644 --- a/code/__HELPERS/sorts/__main.dm +++ b/code/__HELPERS/sorts/__main.dm @@ -31,58 +31,58 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) var/list/runLens = list() - proc/timSort(start, end) - runBases.Cut() - runLens.Cut() +/datum/sortInstance/proc/timSort(start, end) + runBases.Cut() + runLens.Cut() - var/remaining = end - start + var/remaining = end - start - //If array is small, do a 'mini-TimSort' with no merges - if(remaining < MIN_MERGE) - var/initRunLen = countRunAndMakeAscending(start, end) - binarySort(start, end, start+initRunLen) - return + //If array is small, do a 'mini-TimSort' with no merges + if(remaining < MIN_MERGE) + var/initRunLen = countRunAndMakeAscending(start, end) + binarySort(start, end, start+initRunLen) + return - //March over the array finding natural runs - //Extend any short natural runs to runs of length minRun - var/minRun = minRunLength(remaining) + //March over the array finding natural runs + //Extend any short natural runs to runs of length minRun + var/minRun = minRunLength(remaining) - do - //identify next run - var/runLen = countRunAndMakeAscending(start, end) + do + //identify next run + var/runLen = countRunAndMakeAscending(start, end) - //if run is short, extend to min(minRun, remaining) - if(runLen < minRun) - var/force = (remaining <= minRun) ? remaining : minRun + //if run is short, extend to min(minRun, remaining) + if(runLen < minRun) + var/force = (remaining <= minRun) ? remaining : minRun - binarySort(start, start+force, start+runLen) - runLen = force + binarySort(start, start+force, start+runLen) + runLen = force - //add data about run to queue - runBases.Add(start) - runLens.Add(runLen) + //add data about run to queue + runBases.Add(start) + runLens.Add(runLen) - //maybe merge - mergeCollapse() + //maybe merge + mergeCollapse() - //Advance to find next run - start += runLen - remaining -= runLen + //Advance to find next run + start += runLen + remaining -= runLen - while(remaining > 0) + while(remaining > 0) - //Merge all remaining runs to complete sort - //ASSERT(start == end) - mergeForceCollapse(); - //ASSERT(runBases.len == 1) + //Merge all remaining runs to complete sort + //ASSERT(start == end) + mergeForceCollapse(); + //ASSERT(runBases.len == 1) - //reset minGallop, for successive calls - minGallop = MIN_GALLOP + //reset minGallop, for successive calls + minGallop = MIN_GALLOP - return L + return L - /* +/* Sorts the specified portion of the specified array using a binary insertion sort. This is the best method for sorting small numbers of elements. It requires O(n log n) compares, but O(n^2) data @@ -95,33 +95,33 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) lo the index of the first element in the range to be sorted hi the index after the last element in the range to be sorted start the index of the first element in the range that is not already known to be sorted - */ - proc/binarySort(lo, hi, start) - //ASSERT(lo <= start && start <= hi) - if(start <= lo) - start = lo + 1 +*/ +/datum/sortInstance/proc/binarySort(lo, hi, start) + //ASSERT(lo <= start && start <= hi) + if(start <= lo) + start = lo + 1 - for(,start < hi, ++start) - var/pivot = fetchElement(L,start) + for(,start < hi, ++start) + var/pivot = fetchElement(L,start) - //set left and right to the index where pivot belongs - var/left = lo - var/right = start - //ASSERT(left <= right) + //set left and right to the index where pivot belongs + var/left = lo + var/right = start + //ASSERT(left <= right) - //[lo, left) elements <= pivot < [right, start) elements - //in other words, find where the pivot element should go using bisection search - while(left < right) - var/mid = (left + right) >> 1 //round((left+right)/2) - if(call(cmp)(fetchElement(L,mid), pivot) > 0) - right = mid - else - left = mid+1 + //[lo, left) elements <= pivot < [right, start) elements + //in other words, find where the pivot element should go using bisection search + while(left < right) + var/mid = (left + right) >> 1 //round((left+right)/2) + if(call(cmp)(fetchElement(L,mid), pivot) > 0) + right = mid + else + left = mid+1 - //ASSERT(left == right) - moveElement(L, start, left) //move pivot element to correct location in the sorted range + //ASSERT(left == right) + moveElement(L, start, left) //move pivot element to correct location in the sorted range - /* +/* Returns the length of the run beginning at the specified position and reverses the run if it is back-to-front A run is the longest ascending sequence with: @@ -132,514 +132,514 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) For its intended use in a stable mergesort, the strictness of the definition of "descending" is needed so that the call can safely reverse a descending sequence without violating stability. - */ - proc/countRunAndMakeAscending(lo, hi) - //ASSERT(lo < hi) +*/ +/datum/sortInstance/proc/countRunAndMakeAscending(lo, hi) + //ASSERT(lo < hi) - var/runHi = lo + 1 - if(runHi >= hi) - return 1 + var/runHi = lo + 1 + if(runHi >= hi) + return 1 - var/last = fetchElement(L,lo) - var/current = fetchElement(L,runHi++) + var/last = fetchElement(L,lo) + var/current = fetchElement(L,runHi++) - if(call(cmp)(current, last) < 0) - while(runHi < hi) - last = current - current = fetchElement(L,runHi) - if(call(cmp)(current, last) >= 0) - break - ++runHi - reverseRange(L, lo, runHi) - else - while(runHi < hi) - last = current - current = fetchElement(L,runHi) - if(call(cmp)(current, last) < 0) - break - ++runHi + if(call(cmp)(current, last) < 0) + while(runHi < hi) + last = current + current = fetchElement(L,runHi) + if(call(cmp)(current, last) >= 0) + break + ++runHi + reverseRange(L, lo, runHi) + else + while(runHi < hi) + last = current + current = fetchElement(L,runHi) + if(call(cmp)(current, last) < 0) + break + ++runHi - return runHi - lo + return runHi - lo - //Returns the minimum acceptable run length for an array of the specified length. - //Natural runs shorter than this will be extended with binarySort - proc/minRunLength(n) - //ASSERT(n >= 0) - var/r = 0 //becomes 1 if any bits are shifted off - while(n >= MIN_MERGE) - r |= (n & 1) - n >>= 1 - return n + r +//Returns the minimum acceptable run length for an array of the specified length. +//Natural runs shorter than this will be extended with binarySort +/datum/sortInstance/proc/minRunLength(n) + //ASSERT(n >= 0) + var/r = 0 //becomes 1 if any bits are shifted off + while(n >= MIN_MERGE) + r |= (n & 1) + n >>= 1 + return n + r - //Examines the stack of runs waiting to be merged and merges adjacent runs until the stack invariants are reestablished: - // runLen[i-3] > runLen[i-2] + runLen[i-1] - // runLen[i-2] > runLen[i-1] - //This method is called each time a new run is pushed onto the stack. - //So the invariants are guaranteed to hold for i= 2) - var/n = runBases.len - 1 - if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) - if(runLens[n-1] < runLens[n+1]) - --n - mergeAt(n) - else if(runLens[n] <= runLens[n+1]) - mergeAt(n) - else - break //Invariant is established - - - //Merges all runs on the stack until only one remains. - //Called only once, to finalise the sort - proc/mergeForceCollapse() - while(runBases.len >= 2) - var/n = runBases.len - 1 - if(n > 1 && runLens[n-1] < runLens[n+1]) +//Examines the stack of runs waiting to be merged and merges adjacent runs until the stack invariants are reestablished: +// runLen[i-3] > runLen[i-2] + runLen[i-1] +// runLen[i-2] > runLen[i-1] +//This method is called each time a new run is pushed onto the stack. +//So the invariants are guaranteed to hold for i= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) + if(runLens[n-1] < runLens[n+1]) --n mergeAt(n) - - - //Merges the two consecutive runs at stack indices i and i+1 - //Run i must be the penultimate or antepenultimate run on the stack - //In other words, i must be equal to stackSize-2 or stackSize-3 - proc/mergeAt(i) - //ASSERT(runBases.len >= 2) - //ASSERT(i >= 1) - //ASSERT(i == runBases.len - 1 || i == runBases.len - 2) - - var/base1 = runBases[i] - var/base2 = runBases[i+1] - var/len1 = runLens[i] - var/len2 = runLens[i+1] - - //ASSERT(len1 > 0 && len2 > 0) - //ASSERT(base1 + len1 == base2) - - //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run - //(which isn't involved in this merge). The current run (i+1) goes away in any case. - runLens[i] += runLens[i+1] - runLens.Cut(i+1, i+2) - runBases.Cut(i+1, i+2) - - - //Find where the first element of run2 goes in run1. - //Prior elements in run1 can be ignored (because they're already in place) - var/k = gallopRight(fetchElement(L,base2), base1, len1, 0) - //ASSERT(k >= 0) - base1 += k - len1 -= k - if(len1 == 0) - return - - //Find where the last element of run1 goes in run2. - //Subsequent elements in run2 can be ignored (because they're already in place) - len2 = gallopLeft(fetchElement(L,base1 + len1 - 1), base2, len2, len2-1) - //ASSERT(len2 >= 0) - if(len2 == 0) - return - - //Merge remaining runs, using tmp array with min(len1, len2) elements - if(len1 <= len2) - mergeLo(base1, len1, base2, len2) + else if(runLens[n] <= runLens[n+1]) + mergeAt(n) else - mergeHi(base1, len1, base2, len2) + break //Invariant is established - /* - Locates the position to insert key within the specified sorted range - If the range contains elements equal to key, this will return the index of the LEFTMOST of those elements +//Merges all runs on the stack until only one remains. +//Called only once, to finalise the sort +/datum/sortInstance/proc/mergeForceCollapse() + while(runBases.len >= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] < runLens[n+1]) + --n + mergeAt(n) - key the element to be inserted into the sorted range - base the index of the first element of the sorted range - len the length of the sorted range, must be greater than 0 - hint the offset from base at which to begin the search, such that 0 <= hint < len; i.e. base <= hint < base+hint - Returns the index at which to insert element 'key' - */ - proc/gallopLeft(key, base, len, hint) - //ASSERT(len > 0 && hint >= 0 && hint < len) +//Merges the two consecutive runs at stack indices i and i+1 +//Run i must be the penultimate or antepenultimate run on the stack +//In other words, i must be equal to stackSize-2 or stackSize-3 +/datum/sortInstance/proc/mergeAt(i) + //ASSERT(runBases.len >= 2) + //ASSERT(i >= 1) + //ASSERT(i == runBases.len - 1 || i == runBases.len - 2) - var/lastOffset = 0 - var/offset = 1 - if(call(cmp)(key, fetchElement(L,base+hint)) > 0) - var/maxOffset = len - hint - while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) > 0) - lastOffset = offset - offset = (offset << 1) + 1 + var/base1 = runBases[i] + var/base2 = runBases[i+1] + var/len1 = runLens[i] + var/len2 = runLens[i+1] - if(offset > maxOffset) - offset = maxOffset + //ASSERT(len1 > 0 && len2 > 0) + //ASSERT(base1 + len1 == base2) - lastOffset += hint - offset += hint + //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run + //(which isn't involved in this merge). The current run (i+1) goes away in any case. + runLens[i] += runLens[i+1] + runLens.Cut(i+1, i+2) + runBases.Cut(i+1, i+2) - else - var/maxOffset = hint + 1 - while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) <= 0) - lastOffset = offset - offset = (offset << 1) + 1 - if(offset > maxOffset) - offset = maxOffset + //Find where the first element of run2 goes in run1. + //Prior elements in run1 can be ignored (because they're already in place) + var/k = gallopRight(fetchElement(L,base2), base1, len1, 0) + //ASSERT(k >= 0) + base1 += k + len1 -= k + if(len1 == 0) + return - var/temp = lastOffset - lastOffset = hint - offset - offset = hint - temp + //Find where the last element of run1 goes in run2. + //Subsequent elements in run2 can be ignored (because they're already in place) + len2 = gallopLeft(fetchElement(L,base1 + len1 - 1), base2, len2, len2-1) + //ASSERT(len2 >= 0) + if(len2 == 0) + return - //ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len) + //Merge remaining runs, using tmp array with min(len1, len2) elements + if(len1 <= len2) + mergeLo(base1, len1, base2, len2) + else + mergeHi(base1, len1, base2, len2) - //Now L[base+lastOffset] < key <= L[base+offset], so key belongs somewhere to the right of lastOffset but no farther than - //offset. Do a binary search with invariant L[base+lastOffset-1] < key <= L[base+offset] - ++lastOffset - while(lastOffset < offset) - var/m = lastOffset + ((offset - lastOffset) >> 1) - if(call(cmp)(key, fetchElement(L,base+m)) > 0) - lastOffset = m + 1 - else - offset = m +/* + Locates the position to insert key within the specified sorted range + If the range contains elements equal to key, this will return the index of the LEFTMOST of those elements - //ASSERT(lastOffset == offset) - return offset + key the element to be inserted into the sorted range + base the index of the first element of the sorted range + len the length of the sorted range, must be greater than 0 + hint the offset from base at which to begin the search, such that 0 <= hint < len; i.e. base <= hint < base+hint - /** - * Like gallopLeft, except that if the range contains an element equal to - * key, gallopRight returns the index after the rightmost equal element. - * - * @param key the key whose insertion point to search for - * @param a the array in which to search - * @param base the index of the first element in the range - * @param len the length of the range; must be > 0 - * @param hint the index at which to begin the search, 0 <= hint < n. - * The closer hint is to the result, the faster this method will run. - * @param c the comparator used to order the range, and to search - * @return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k] - */ - proc/gallopRight(key, base, len, hint) - //ASSERT(len > 0 && hint >= 0 && hint < len) + Returns the index at which to insert element 'key' +*/ +/datum/sortInstance/proc/gallopLeft(key, base, len, hint) + //ASSERT(len > 0 && hint >= 0 && hint < len) - var/offset = 1 - var/lastOffset = 0 - if(call(cmp)(key, fetchElement(L,base+hint)) < 0) //key <= L[base+hint] - var/maxOffset = hint + 1 //therefore we want to insert somewhere in the range [base,base+hint] = [base+,base+(hint+1)) - while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards - lastOffset = offset - offset = (offset << 1) + 1 //1 3 7 15 + var/lastOffset = 0 + var/offset = 1 + if(call(cmp)(key, fetchElement(L,base+hint)) > 0) + var/maxOffset = len - hint + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) > 0) + lastOffset = offset + offset = (offset << 1) + 1 - if(offset > maxOffset) - offset = maxOffset + if(offset > maxOffset) + offset = maxOffset - var/temp = lastOffset - lastOffset = hint - offset - offset = hint - temp + lastOffset += hint + offset += hint - else //key > L[base+hint] - var/maxOffset = len - hint //therefore we want to insert somewhere in the range (base+hint,base+len) = [base+hint+1, base+hint+(len-hint)) - while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0) - lastOffset = offset - offset = (offset << 1) + 1 + else + var/maxOffset = hint + 1 + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) <= 0) + lastOffset = offset + offset = (offset << 1) + 1 - if(offset > maxOffset) - offset = maxOffset + if(offset > maxOffset) + offset = maxOffset - lastOffset += hint - offset += hint + var/temp = lastOffset + lastOffset = hint - offset + offset = hint - temp //ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len) - ++lastOffset - while(lastOffset < offset) - var/m = lastOffset + ((offset - lastOffset) >> 1) + //Now L[base+lastOffset] < key <= L[base+offset], so key belongs somewhere to the right of lastOffset but no farther than + //offset. Do a binary search with invariant L[base+lastOffset-1] < key <= L[base+offset] + ++lastOffset + while(lastOffset < offset) + var/m = lastOffset + ((offset - lastOffset) >> 1) - if(call(cmp)(key, fetchElement(L,base+m)) < 0) //key <= L[base+m] - offset = m - else //key > L[base+m] - lastOffset = m + 1 + if(call(cmp)(key, fetchElement(L,base+m)) > 0) + lastOffset = m + 1 + else + offset = m - //ASSERT(lastOffset == offset) + //ASSERT(lastOffset == offset) + return offset - return offset +/** + * Like gallopLeft, except that if the range contains an element equal to + * key, gallopRight returns the index after the rightmost equal element. + * + * @param key the key whose insertion point to search for + * @param a the array in which to search + * @param base the index of the first element in the range + * @param len the length of the range; must be > 0 + * @param hint the index at which to begin the search, 0 <= hint < n. + * The closer hint is to the result, the faster this method will run. + * @param c the comparator used to order the range, and to search + * @return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k] + */ +/datum/sortInstance/proc/gallopRight(key, base, len, hint) + //ASSERT(len > 0 && hint >= 0 && hint < len) + + var/offset = 1 + var/lastOffset = 0 + if(call(cmp)(key, fetchElement(L,base+hint)) < 0) //key <= L[base+hint] + var/maxOffset = hint + 1 //therefore we want to insert somewhere in the range [base,base+hint] = [base+,base+(hint+1)) + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards + lastOffset = offset + offset = (offset << 1) + 1 //1 3 7 15 + + if(offset > maxOffset) + offset = maxOffset + + var/temp = lastOffset + lastOffset = hint - offset + offset = hint - temp + + else //key > L[base+hint] + var/maxOffset = len - hint //therefore we want to insert somewhere in the range (base+hint,base+len) = [base+hint+1, base+hint+(len-hint)) + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0) + lastOffset = offset + offset = (offset << 1) + 1 + + if(offset > maxOffset) + offset = maxOffset + + lastOffset += hint + offset += hint + + //ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len) + + ++lastOffset + while(lastOffset < offset) + var/m = lastOffset + ((offset - lastOffset) >> 1) + + if(call(cmp)(key, fetchElement(L,base+m)) < 0) //key <= L[base+m] + offset = m + else //key > L[base+m] + lastOffset = m + 1 + + //ASSERT(lastOffset == offset) + + return offset - //Merges two adjacent runs in-place in a stable fashion. - //For performance this method should only be called when len1 <= len2! - proc/mergeLo(base1, len1, base2, len2) - //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) +//Merges two adjacent runs in-place in a stable fashion. +//For performance this method should only be called when len1 <= len2! +/datum/sortInstance/proc/mergeLo(base1, len1, base2, len2) + //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) - var/cursor1 = base1 - var/cursor2 = base2 + var/cursor1 = base1 + var/cursor2 = base2 - //degenerate cases - if(len2 == 1) - moveElement(L, cursor2, cursor1) - return + //degenerate cases + if(len2 == 1) + moveElement(L, cursor2, cursor1) + return - if(len1 == 1) - moveElement(L, cursor1, cursor2+len2) - return + if(len1 == 1) + moveElement(L, cursor1, cursor2+len2) + return - //Move first element of second run - moveElement(L, cursor2++, cursor1++) - --len2 + //Move first element of second run + moveElement(L, cursor2++, cursor1++) + --len2 - outer: - while(1) - var/count1 = 0 //# of times in a row that first run won - var/count2 = 0 // " " " " " " second run won + outer: + while(1) + var/count1 = 0 //# of times in a row that first run won + var/count2 = 0 // " " " " " " second run won - //do the straightfoward thin until one run starts winning consistently + //do the straightfoward thin until one run starts winning consistently - do - //ASSERT(len1 > 1 && len2 > 0) - if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) - moveElement(L, cursor2++, cursor1++) - --len2 + do + //ASSERT(len1 > 1 && len2 > 0) + if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) + moveElement(L, cursor2++, cursor1++) + --len2 - ++count2 - count1 = 0 + ++count2 + count1 = 0 - if(len2 == 0) - break outer - else - ++cursor1 - - ++count1 - count2 = 0 - - if(--len1 == 1) - break outer - - while((count1 | count2) < minGallop) - - - //one run is winning consistently so galloping may provide huge benifits - //so try galloping, until such time as the run is no longer consistently winning - do - //ASSERT(len1 > 1 && len2 > 0) - - count1 = gallopRight(fetchElement(L,cursor2), cursor1, len1, 0) - if(count1) - cursor1 += count1 - len1 -= count1 - - if(len1 <= 1) - break outer - - moveElement(L, cursor2, cursor1) - ++cursor2 - ++cursor1 - if(--len2 == 0) + if(len2 == 0) break outer - - count2 = gallopLeft(fetchElement(L,cursor1), cursor2, len2, 0) - if(count2) - moveRange(L, cursor2, cursor1, count2) - - cursor2 += count2 - cursor1 += count2 - len2 -= count2 - - if(len2 == 0) - break outer - + else ++cursor1 + + ++count1 + count2 = 0 + if(--len1 == 1) break outer - --minGallop - - while((count1|count2) > MIN_GALLOP) - - if(minGallop < 0) - minGallop = 0 - minGallop += 2; // Penalize for leaving gallop mode + while((count1 | count2) < minGallop) - if(len1 == 1) - //ASSERT(len2 > 0) - moveElement(L, cursor1, cursor2+len2) + //one run is winning consistently so galloping may provide huge benifits + //so try galloping, until such time as the run is no longer consistently winning + do + //ASSERT(len1 > 1 && len2 > 0) - //else - //ASSERT(len2 == 0) - //ASSERT(len1 > 1) + count1 = gallopRight(fetchElement(L,cursor2), cursor1, len1, 0) + if(count1) + cursor1 += count1 + len1 -= count1 - - proc/mergeHi(base1, len1, base2, len2) - //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) - - var/cursor1 = base1 + len1 - 1 //start at end of sublists - var/cursor2 = base2 + len2 - 1 - - //degenerate cases - if(len2 == 1) - moveElement(L, base2, base1) - return - - if(len1 == 1) - moveElement(L, base1, cursor2+1) - return - - moveElement(L, cursor1--, cursor2-- + 1) - --len1 - - outer: - while(1) - var/count1 = 0 //# of times in a row that first run won - var/count2 = 0 // " " " " " " second run won - - //do the straightfoward thing until one run starts winning consistently - do - //ASSERT(len1 > 0 && len2 > 1) - if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) - moveElement(L, cursor1--, cursor2-- + 1) - --len1 - - ++count1 - count2 = 0 - - if(len1 == 0) - break outer - else - --cursor2 - --len2 - - ++count2 - count1 = 0 - - if(len2 == 1) - break outer - while((count1 | count2) < minGallop) - - //one run is winning consistently so galloping may provide huge benifits - //so try galloping, until such time as the run is no longer consistently winning - do - //ASSERT(len1 > 0 && len2 > 1) - - count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1? - if(count1) - cursor1 -= count1 - - moveRange(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition - - cursor2 -= count1 - len1 -= count1 - - if(len1 == 0) - break outer - - --cursor2 - - if(--len2 == 1) + if(len1 <= 1) break outer - count2 = len2 - gallopLeft(fetchElement(L,cursor1), cursor1+1, len2, len2-1) - if(count2) - cursor2 -= count2 - len2 -= count2 + moveElement(L, cursor2, cursor1) + ++cursor2 + ++cursor1 + if(--len2 == 0) + break outer - if(len2 <= 1) - break outer + count2 = gallopLeft(fetchElement(L,cursor1), cursor2, len2, 0) + if(count2) + moveRange(L, cursor2, cursor1, count2) + cursor2 += count2 + cursor1 += count2 + len2 -= count2 + + if(len2 == 0) + break outer + + ++cursor1 + if(--len1 == 1) + break outer + + --minGallop + + while((count1|count2) > MIN_GALLOP) + + if(minGallop < 0) + minGallop = 0 + minGallop += 2; // Penalize for leaving gallop mode + + + if(len1 == 1) + //ASSERT(len2 > 0) + moveElement(L, cursor1, cursor2+len2) + + //else + //ASSERT(len2 == 0) + //ASSERT(len1 > 1) + + +/datum/sortInstance/proc/mergeHi(base1, len1, base2, len2) + //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) + + var/cursor1 = base1 + len1 - 1 //start at end of sublists + var/cursor2 = base2 + len2 - 1 + + //degenerate cases + if(len2 == 1) + moveElement(L, base2, base1) + return + + if(len1 == 1) + moveElement(L, base1, cursor2+1) + return + + moveElement(L, cursor1--, cursor2-- + 1) + --len1 + + outer: + while(1) + var/count1 = 0 //# of times in a row that first run won + var/count2 = 0 // " " " " " " second run won + + //do the straightfoward thing until one run starts winning consistently + do + //ASSERT(len1 > 0 && len2 > 1) + if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) moveElement(L, cursor1--, cursor2-- + 1) --len1 + ++count1 + count2 = 0 + + if(len1 == 0) + break outer + else + --cursor2 + --len2 + + ++count2 + count1 = 0 + + if(len2 == 1) + break outer + while((count1 | count2) < minGallop) + + //one run is winning consistently so galloping may provide huge benifits + //so try galloping, until such time as the run is no longer consistently winning + do + //ASSERT(len1 > 0 && len2 > 1) + + count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1? + if(count1) + cursor1 -= count1 + + moveRange(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition + + cursor2 -= count1 + len1 -= count1 + if(len1 == 0) break outer - --minGallop - while((count1|count2) > MIN_GALLOP) + --cursor2 - if(minGallop < 0) - minGallop = 0 - minGallop += 2 // Penalize for leaving gallop mode + if(--len2 == 1) + break outer - if(len2 == 1) - //ASSERT(len1 > 0) + count2 = len2 - gallopLeft(fetchElement(L,cursor1), cursor1+1, len2, len2-1) + if(count2) + cursor2 -= count2 + len2 -= count2 - cursor1 -= len1 - moveRange(L, cursor1+1, cursor2+1, len1) + if(len2 <= 1) + break outer - //else - //ASSERT(len1 == 0) - //ASSERT(len2 > 0) + moveElement(L, cursor1--, cursor2-- + 1) + --len1 + + if(len1 == 0) + break outer + + --minGallop + while((count1|count2) > MIN_GALLOP) + + if(minGallop < 0) + minGallop = 0 + minGallop += 2 // Penalize for leaving gallop mode + + if(len2 == 1) + //ASSERT(len1 > 0) + + cursor1 -= len1 + moveRange(L, cursor1+1, cursor2+1, len1) + + //else + //ASSERT(len1 == 0) + //ASSERT(len2 > 0) - proc/mergeSort(start, end) - var/remaining = end - start +/datum/sortInstance/proc/mergeSort(start, end) + var/remaining = end - start - //If array is small, do an insertion sort - if(remaining < MIN_MERGE) - binarySort(start, end, start/*+initRunLen*/) - return + //If array is small, do an insertion sort + if(remaining < MIN_MERGE) + binarySort(start, end, start/*+initRunLen*/) + return - var/minRun = minRunLength(remaining) + var/minRun = minRunLength(remaining) - do - var/runLen = (remaining <= minRun) ? remaining : minRun + do + var/runLen = (remaining <= minRun) ? remaining : minRun - binarySort(start, start+runLen, start) + binarySort(start, start+runLen, start) - //add data about run to queue - runBases.Add(start) - runLens.Add(runLen) + //add data about run to queue + runBases.Add(start) + runLens.Add(runLen) - //Advance to find next run - start += runLen - remaining -= runLen + //Advance to find next run + start += runLen + remaining -= runLen - while(remaining > 0) + while(remaining > 0) - while(runBases.len >= 2) - var/n = runBases.len - 1 - if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) - if(runLens[n-1] < runLens[n+1]) - --n - mergeAt2(n) - else if(runLens[n] <= runLens[n+1]) - mergeAt2(n) - else - break //Invariant is established - - while(runBases.len >= 2) - var/n = runBases.len - 1 - if(n > 1 && runLens[n-1] < runLens[n+1]) + while(runBases.len >= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) + if(runLens[n-1] < runLens[n+1]) --n mergeAt2(n) + else if(runLens[n] <= runLens[n+1]) + mergeAt2(n) + else + break //Invariant is established - return L + while(runBases.len >= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] < runLens[n+1]) + --n + mergeAt2(n) - proc/mergeAt2(i) - var/cursor1 = runBases[i] - var/cursor2 = runBases[i+1] + return L - var/end1 = cursor1+runLens[i] - var/end2 = cursor2+runLens[i+1] +/datum/sortInstance/proc/mergeAt2(i) + var/cursor1 = runBases[i] + var/cursor2 = runBases[i+1] - var/val1 = fetchElement(L,cursor1) - var/val2 = fetchElement(L,cursor2) + var/end1 = cursor1+runLens[i] + var/end2 = cursor2+runLens[i+1] - while(1) - if(call(cmp)(val1,val2) <= 0) - if(++cursor1 >= end1) - break - val1 = fetchElement(L,cursor1) - else - moveElement(L,cursor2,cursor1) + var/val1 = fetchElement(L,cursor1) + var/val2 = fetchElement(L,cursor2) - if(++cursor2 >= end2) - break - ++end1 - ++cursor1 + while(1) + if(call(cmp)(val1,val2) <= 0) + if(++cursor1 >= end1) + break + val1 = fetchElement(L,cursor1) + else + moveElement(L,cursor2,cursor1) - val2 = fetchElement(L,cursor2) + if(++cursor2 >= end2) + break + ++end1 + ++cursor1 + + val2 = fetchElement(L,cursor2) - //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run - //(which isn't involved in this merge). The current run (i+1) goes away in any case. - runLens[i] += runLens[i+1] - runLens.Cut(i+1, i+2) - runBases.Cut(i+1, i+2) + //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run + //(which isn't involved in this merge). The current run (i+1) goes away in any case. + runLens[i] += runLens[i+1] + runLens.Cut(i+1, i+2) + runBases.Cut(i+1, i+2) #undef MIN_GALLOP #undef MIN_MERGE diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 29f5331fd3..74c32dd52f 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/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/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..974d870a8a 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 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/components/sizzle.dm b/code/datums/components/sizzle.dm new file mode 100644 index 0000000000..5e56dd15cb --- /dev/null +++ b/code/datums/components/sizzle.dm @@ -0,0 +1,25 @@ +/datum/component/sizzle + var/mutable_appearance/sizzling + var/sizzlealpha = 0 + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + +/datum/component/sizzle/Initialize() + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + setup_sizzle() + +/datum/component/sizzle/InheritComponent(datum/component/C, i_am_original) + var/atom/food = parent + sizzlealpha += 5 + sizzling.alpha = sizzlealpha + food.cut_overlay(sizzling) + food.add_overlay(sizzling) + +/datum/component/sizzle/proc/setup_sizzle() + var/atom/food = parent + var/icon/grill_marks = icon(initial(food.icon), initial(food.icon_state)) //we only want to apply grill marks to the initial icon_state for each object + grill_marks.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) + grill_marks.Blend(icon('icons/obj/kitchen.dmi', "grillmarks"), ICON_MULTIPLY) //adds grill marks and the remaining white areas become transparent + sizzling = new(grill_marks) + sizzling.alpha = sizzlealpha + food.add_overlay(sizzling) \ No newline at end of file diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index b84133faf7..f9a9e07aed 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -4,7 +4,7 @@ mid_sounds = list('sound/machines/shower/shower_mid1.ogg'=1,'sound/machines/shower/shower_mid2.ogg'=1,'sound/machines/shower/shower_mid3.ogg'=1) mid_length = 10 end_sound = 'sound/machines/shower/shower_end.ogg' - volume = 20 + volume = 10 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -32,7 +32,7 @@ mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1) mid_length = 2 end_sound = 'sound/machines/fryer/deep_fryer_emerge.ogg' - volume = 15 + volume = 5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -43,3 +43,12 @@ mid_length = 10 end_sound = 'sound/machines/microwave/microwave-end.ogg' volume = 90 + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/grill + mid_length = 2 + mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1) + volume = 10 + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// \ No newline at end of file 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/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 19be10e668..94fd08535f 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -134,6 +134,12 @@ mood_change = 3 timeout = 3000 +/datum/mood_event/breakfast + description = "Nothing like a hearty breakfast to start the shift.\n" + mood_change = 2 + timeout = 15 MINUTES + +//Power gamer stuff below /datum/mood_event/drankblood description = "I have fed greedly from that which nourishes me.\n" mood_change = 10 @@ -143,6 +149,7 @@ description = "I slept in a coffin during the day. I feel whole again.\n" mood_change = 8 timeout = 1200 + //Cursed stuff below. /datum/mood_event/orgasm 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 7de5707032..36b701aae1 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 ef20b6e35e..7c57de74a4 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -515,10 +515,10 @@ step(src, AM.dir) ..() -/atom/movable/proc/safe_throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, var/datum/callback/callback) - return throw_at(target, range, speed, thrower, spin, diagonals_first, callback) +/atom/movable/proc/safe_throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, var/datum/callback/callback, messy_throw = TRUE) + return throw_at(target, range, speed, thrower, spin, diagonals_first, callback, messy_throw) -/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, var/datum/callback/callback) //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, var/datum/callback/callback, 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..0890d81dfb 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -741,7 +741,7 @@ 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) 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/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 9f072c48b6..6f92e94759 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -72,6 +72,11 @@ desc = "It's still good. Four second rule!" icon_state = "flour" +/obj/effect/decal/cleanable/greenglow/ecto + name = "ectoplasmic puddle" + desc = "You know who to call." + light_power = 2 + /obj/effect/decal/cleanable/greenglow name = "glowing goo" desc = "Jeez. I hope that's not for lunch." 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 c5d198c05f..a410827347 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 A.hitby(src, 0, itempush) -/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) +/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, 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) -/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/gift.dm b/code/game/objects/items/gift.dm index f97b3f99d6..8054d8c6a4 100644 --- a/code/game/objects/items/gift.dm +++ b/code/game/objects/items/gift.dm @@ -76,7 +76,7 @@ GLOBAL_LIST_EMPTY(possible_gifts) /obj/item/clothing/suit/poncho/red, /obj/item/clothing/suit/snowman, /obj/item/clothing/head/snowman, - /obj/item/trash/coal) + /obj/item/stack/sheet/mineral/coal) gift_type_list += subtypesof(/obj/item/clothing/head/collectable) gift_type_list += subtypesof(/obj/item/toy) - (((typesof(/obj/item/toy/cards) - /obj/item/toy/cards/deck) + /obj/item/toy/figure + /obj/item/toy/ammo)) //All toys, except for abstract types and syndicate cards. 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 d8abff70a6..4242fb6c4b 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/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 63ebd24b16..fe42f88f56 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -4,7 +4,6 @@ Mineral Sheets - Sandstone - Sandbags - Diamond - - Snow - Uranium - Plasma - Gold @@ -15,8 +14,9 @@ Mineral Sheets Others: - Adamantine - Mythril - - Enriched Uranium + - Snow - Abductor + - Coal */ /obj/item/stack/sheet/mineral/Initialize(mapload) @@ -410,3 +410,36 @@ GLOBAL_LIST_INIT(abductor_recipes, list ( \ /obj/item/stack/sheet/mineral/abductor/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.abductor_recipes . = ..() + +/* + * Coal + */ + +/obj/item/stack/sheet/mineral/coal + name = "coal" + desc = "Someone's gotten on the naughty list." + icon = 'icons/obj/mining.dmi' + icon_state = "slag" + singular_name = "coal lump" + merge_type = /obj/item/stack/sheet/mineral/coal + grind_results = list("carbon" = 20) + +/obj/item/stack/sheet/mineral/coal/attackby(obj/item/W, mob/user, params) + if(W.get_temperature() > 300)//If the temperature of the object is over 300, then ignite + var/turf/T = get_turf(src) + message_admins("Coal ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") + log_game("Coal ignited by [key_name(user)] in [AREACOORD(T)]") + fire_act(W.get_temperature()) + return TRUE + else + return ..() + +/obj/item/stack/sheet/mineral/coal/fire_act(exposed_temperature, exposed_volume) + atmos_spawn_air("co2=[amount*10];TEMP=[exposed_temperature]") + qdel(src) + +/obj/item/stack/sheet/mineral/coal/five + amount = 5 + +/obj/item/stack/sheet/mineral/coal/ten + amount = 10 \ No newline at end of file diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index e8bd50f19b..d2ddd493b2 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 484b9862ff..6972587263 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/trash.dm b/code/game/objects/items/trash.dm index 37ab948332..b2158eb1c8 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -72,17 +72,10 @@ resistance_flags = NONE grind_results = list("aluminium" = 10) +/obj/item/trash/boritos + name = "boritos bag" + icon_state = "boritos" + grind_results = list("aluminium" = 1) //from the mylar bag + /obj/item/trash/attack(mob/M, mob/living/user) return - -/obj/item/trash/coal - name = "lump of coal" - icon = 'icons/obj/mining.dmi' - icon_state = "slag" - desc = "Someone's gotten on the naughty list." - grind_results = list("carbon" = 20) - -/obj/item/trash/coal/burn() - visible_message("[src] fuses into a diamond! Someone wasn't so naughty after all...") - new /obj/item/stack/ore/diamond(loc) - 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 51386c791c..14ac2f037e 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) - ..() +/obj/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, messy_throw) + . = ..() 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 688006a6e3..fd6030453c 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 @@ -251,6 +253,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" @@ -353,6 +358,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!" @@ -595,3 +603,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/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 9f2da57312..ecc8ee5e8d 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 362b410cbb..2f8ae0cb93 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/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/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 5968c7643a..0fb41cabc8 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -34,6 +34,12 @@ . = ..() name_source = GLOB.commando_names +/datum/antagonist/ert/deathsquad/apply_innate_effects(mob/living/mob_override) + ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) + +/datum/antagonist/ert/deathsquad/remove_innate_effects(mob/living/mob_override) + REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) + /datum/antagonist/ert/security // kinda handled by the base template but here for completion /datum/antagonist/ert/security/amber 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/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 8021ee5f08..e1c50a7cf5 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -611,10 +611,7 @@ This is here to make the tiles around the station mininuke change when it's arme if(!fake) return - var/ghost = isobserver(user) - var/captain = user.mind && user.mind.assigned_role == "Captain" - var/nukie = user.mind && user.mind.has_antag_datum(/datum/antagonist/nukeop) - if(ghost || captain || nukie) + if(isobserver(user) || HAS_TRAIT(user, TRAIT_DISK_VERIFIER) || (user.mind && HAS_TRAIT(user.mind, TRAIT_DISK_VERIFIER))) . += "The serial numbers on [src] are incorrect." /obj/item/disk/nuclear/attackby(obj/item/I, mob/living/user, params) @@ -653,3 +650,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/fake fake = TRUE + +/obj/item/disk/nuclear/fake/obvious + name = "cheap plastic imitation of the nuclear authentication disk" + desc = "How anyone could mistake this for the real thing is beyond you." diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 4604439fc8..d343951d53 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -23,10 +23,12 @@ /datum/antagonist/nukeop/apply_innate_effects(mob/living/mob_override) var/mob/living/M = mob_override || owner.current update_synd_icons_added(M) + ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, NUKEOP_TRAIT) /datum/antagonist/nukeop/remove_innate_effects(mob/living/mob_override) var/mob/living/M = mob_override || owner.current update_synd_icons_removed(M) + REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, NUKEOP_TRAIT) /datum/antagonist/nukeop/proc/equip_op() if(!ishuman(owner.current)) @@ -42,7 +44,6 @@ owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ops.ogg',100,0) to_chat(owner, "You are a [nuke_team ? nuke_team.syndicate_name : "syndicate"] agent!") owner.announce_objectives() - return /datum/antagonist/nukeop/on_gain() give_alias() 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 45baed091a..fc69fc83c7 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/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 6823cee6b9..9b5d902c7b 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -162,6 +162,23 @@ /obj/item/storage/bag/tray) crate_name = "fruit crate" +/datum/supply_pack/organic/grill + name = "Grilling Starter Kit" + desc = "Hey dad I'm Hungry. Hi Hungry I'm THE NEW GRILLING STARTER KIT ONLY 5000 BUX GET NOW! Contains a cooking grill and five fuel coal sheets." + cost = 3000 + crate_type = /obj/structure/closet/crate + contains = list(/obj/item/stack/sheet/mineral/coal/five, + /obj/machinery/grill/unwrenched) + crate_name = "grilling starter kit crate" + +/datum/supply_pack/organic/grillfuel + name = "Grilling Fuel Kit" + desc = "Contains coal and coal accessories. (Note: only ten coal sheets.)" + cost = 1000 + crate_type = /obj/structure/closet/crate + contains = list(/obj/item/stack/sheet/mineral/coal/ten) + crate_name = "grilling fuel kit crate" + /datum/supply_pack/organic/cream_piee name = "High-yield Clown-grade Cream Pie Crate" desc = "Designed by Aussec's Advanced Warfare Research Division, these high-yield, Clown-grade cream pies are powered by a synergy of performance and efficiency. Guaranteed to provide maximum results." 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/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 804193b09c..92f412dd89 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -198,6 +198,7 @@ spillable = TRUE resistance_flags = FREEZE_PROOF isGlass = FALSE + foodtype = BREAKFAST //Used by MREs /obj/item/reagent_containers/food/drinks/coffee/type2 @@ -317,27 +318,27 @@ icon_state = "orangebox" name = "orange juice box" desc = "A great source of vitamins. Stay healthy!" - foodtype = FRUIT + foodtype = FRUIT | BREAKFAST if("milk") icon_state = "milkbox" name = "carton of milk" desc = "An excellent source of calcium for growing space explorers." - foodtype = DAIRY + foodtype = DAIRY | BREAKFAST if("applejuice") icon_state = "juicebox" name = "apple juice box" desc = "Sweet apple juice. Don't be late for school!" - foodtype = FRUIT + foodtype = FRUIT | BREAKFAST if("grapejuice") icon_state = "grapebox" name = "grape juice box" desc = "Tasty grape juice in a fun little container. Non-alcoholic!" - foodtype = FRUIT + foodtype = FRUIT | BREAKFAST if("chocolate_milk") icon_state = "chocolatebox" name = "carton of chocolate milk" desc = "Milk for cool kids!" - foodtype = SUGAR + foodtype = SUGAR | BREAKFAST if("eggnog") icon_state = "nog2" name = "carton of eggnog" @@ -524,3 +525,10 @@ desc = "There is no air shortage. Do not drink." icon_state = "air" list_reagents = list("nitrogen" = 24, "oxygen" = 6) + +/obj/item/reagent_containers/food/drinks/soda_cans/monkey_energy + name = "Monkey Energy" + desc = "Unleash the ape!" + icon_state = "monkey_energy" + list_reagents = list("monkey_energy" = 50) + foodtype = SUGAR | JUNKFOOD diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 6a69721cef..271ff93b15 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -429,7 +429,7 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' isGlass = FALSE list_reagents = list("orangejuice" = 100) - foodtype = FRUIT + foodtype = FRUIT| BREAKFAST /obj/item/reagent_containers/food/drinks/bottle/cream name = "milk cream" diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 132e000893..6d3f007fd9 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -5,6 +5,9 @@ /// the parent to the exclusion list in code/__HELPERS/unsorted.dm's /// get_random_food proc. //////////////////////////////////////////////////////////////////////////////// + +#define STOP_SERVING_BREAKFAST (15 MINUTES) + /obj/item/reagent_containers/food possible_transfer_amounts = list() volume = 50 //Sets the default container amount for all food items. @@ -40,4 +43,8 @@ if(foodtype & H.dna.species.toxic_food) to_chat(H, "You don't feel so good...") H.adjust_disgust(25 + 30 * fraction) + if((foodtype & BREAKFAST) && world.time - SSticker.round_start_time < STOP_SERVING_BREAKFAST) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "breakfast", /datum/mood_event/breakfast) last_check_time = world.time + +#undef STOP_SERVING_BREAKFAST \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 1d0b626d98..7288d91f2d 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -26,6 +26,7 @@ "cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"), "sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"), "mayonnaise" = list("mayonnaise", "mayonnaise jar", "An oily condiment made from egg yolks."), + "bbqsauce" = list("condi_bbq", "BBQ sauce", "Hand wipes not included."), "peanut_butter" = list("peanutbutter", "peanut butter jar", "A deliciously and sticky spread made from peanuts.")) var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters. @@ -299,3 +300,8 @@ name = "astrotame pack" originalname = "astrotame" list_reagents = list("astrotame" = 5) + +/obj/item/reagent_containers/food/condiment/pack/bbqsauce + name = "bbq sauce pack" + originalname = "bbq sauce" + list_reagents = list("bbqsauce" = 10) 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 b8a63afb7f..97e8423e78 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -52,6 +52,8 @@ All foods are distributed among various categories. Use common sense. var/list/bonus_reagents //the amount of reagents (usually nutriment and vitamin) added to crafted/cooked snacks, on top of the ingredients reagents. var/customfoodfilling = 1 // whether it can be used as filling in custom food var/list/tastes // for example list("crisps" = 2, "salt" = 1) + var/dunkable = FALSE // for dunkable food, make true + var/dunk_amount = 10 // how much reagent is transferred per dunk //Placeholder for effect that trigger on eating that aren't tied to reagents. @@ -267,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") @@ -328,6 +330,24 @@ All foods are distributed among various categories. Use common sense. M.emote("me", EMOTE_VISIBLE, "[sattisfaction_text]") qdel(src) +//////////////////////////////////////////Dunking/////////////////////////////////////////// + +/obj/item/reagent_containers/food/snacks/afterattack(obj/item/reagent_containers/M, mob/user, proximity) + . = ..() + if(!dunkable || !proximity) + return + if(istype(M, /obj/item/reagent_containers/glass) || istype(M, /obj/item/reagent_containers/food/drinks)) //you can dunk dunkable snacks into beakers or drinks + if(!M.is_drainable()) + to_chat(user, "[M] is unable to be dunked in!") + return + if(M.reagents.trans_to(src, dunk_amount)) //if reagents were transfered, show the message + to_chat(user, "You dunk the [M].") + return + if(!M.reagents.total_volume) + to_chat(user, "[M] is empty!") + else + to_chat(user, "[src] is full!") + // //////////////////////////////////////////////Store//////////////////////////////////////// /// All the food items that can store an item inside itself, like bread or cake. /obj/item/reagent_containers/food/snacks/store diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index 5d5ad59c49..8f02cd81b4 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -57,6 +57,33 @@ else if(subjectjob) S.name = "[subjectjob] meatsteak" +/obj/item/reagent_containers/food/snacks/meat/rawcrab + name = "raw crab meat" + desc = "A pile of raw crab meat." + icon_state = "crabmeatraw" + cooked_type = /obj/item/reagent_containers/food/snacks/meat/crab + bitesize = 3 + list_reagents = list("nutriment" = 1, "cooking_oil" = 3) + filling_color = "#EAD079" + tastes = list("raw crab" = 1) + foodtype = RAW | MEAT + +/obj/item/reagent_containers/food/snacks/meat/crab + name = "crab meat" + desc = "Some deliciously cooked crab meat." + icon_state = "crabmeat" + list_reagents = list("nutriment" = 2) + bonus_reagents = list("nutriment" = 3, "vitamin" = 2, "cooking_oil" = 2) + filling_color = "#DFB73A" + tastes = list("crab" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/meat/slab/chicken + name = "chicken meat" + desc = "A slab of raw chicken. Remember to wash your hands!" + cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/chicken + slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/chicken + tastes = list("chicken" = 1) /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime icon_state = "slimemeat" @@ -205,7 +232,6 @@ tastes = list("meat" = 1, "salmon" = 1) foodtype = RAW | MEAT - /obj/item/reagent_containers/food/snacks/meat/slab/xeno name = "xeno meat" desc = "A slab of meat." @@ -229,7 +255,6 @@ tastes = list("cobwebs" = 1) foodtype = RAW | MEAT | TOXIC - /obj/item/reagent_containers/food/snacks/meat/slab/goliath name = "goliath meat" desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava." @@ -277,7 +302,7 @@ bonus_reagents = list("nutriment" = 1, "vitamin" = 1, "cooking_oil" = 2) filling_color = "#854817" tastes = list("bacon" = 1) - foodtype = MEAT + foodtype = MEAT | BREAKFAST /obj/item/reagent_containers/food/snacks/meat/slab/gondola name = "gondola meat" @@ -303,6 +328,10 @@ foodtype = MEAT tastes = list("meat" = 1) +/obj/item/reagent_containers/food/snacks/meat/steak/chicken + name = "chicken steak" //Can you have chicken steaks? Maybe this should be renamed once it gets new sprites. + tastes = list("chicken" = 1) + /obj/item/reagent_containers/food/snacks/meat/steak/plain foodtype = MEAT @@ -310,6 +339,10 @@ tastes = list("tender meat" = 1) foodtype = MEAT | GROSS +/obj/item/reagent_containers/food/snacks/meat/steak/penguin + name = "penguin steak" + tastes = list("beef" = 1, "cod fish" = 1) + /obj/item/reagent_containers/food/snacks/meat/steak/killertomato name = "killer tomato steak" tastes = list("tomato" = 1) @@ -376,6 +409,11 @@ else if(subjectjob) S.name = "[subjectjob] [initial(S.name)]" +/obj/item/reagent_containers/food/snacks/meat/rawcutlet/chicken + name = "raw chicken cutlet" + cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/chicken + tastes = list("chicken" = 1) + /obj/item/reagent_containers/food/snacks/meat/rawcutlet/killertomato name = "raw killer tomato cutlet" cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/killertomato @@ -441,3 +479,11 @@ /obj/item/reagent_containers/food/snacks/meat/cutlet/gondola name = "gondola cutlet" tastes = list("meat" = 1, "tranquility" = 1) + +/obj/item/reagent_containers/food/snacks/meat/cutlet/penguin + name = "penguin cutlet" + tastes = list("beef" = 1, "cod fish" = 1) + +/obj/item/reagent_containers/food/snacks/meat/cutlet/chicken + name = "chicken cutlet" + tastes = list("chicken" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 0f11fc8ed2..628b883e73 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -5,7 +5,7 @@ slices_num = 5 tastes = list("bread" = 10) foodtype = GRAIN - + dunkable = TRUE /obj/item/reagent_containers/food/snacks/breadslice icon = 'icons/obj/food/burgerbread.dmi' @@ -16,6 +16,7 @@ slot_flags = ITEM_SLOT_HEAD customfoodfilling = 0 //to avoid infinite bread-ception foodtype = GRAIN + dunkable = TRUE /obj/item/reagent_containers/food/snacks/store/bread/plain name = "bread" @@ -270,6 +271,7 @@ GLOBAL_LIST_INIT(frying_bad_chems, list( list_reagents = list("nutriment" = 4) bonus_reagents = list("nutriment" = 1, "vitamin" = 1) tastes = list("butter" = 1, "toast" = 1) + foodtype = GRAIN | BREAKFAST /obj/item/reagent_containers/food/snacks/butterbiscuit name = "butter biscuit" @@ -280,6 +282,7 @@ GLOBAL_LIST_INIT(frying_bad_chems, list( list_reagents = list("nutriment" = 5) bonus_reagents = list("nutriment" = 1, "vitamin" = 1) tastes = list("butter" = 1, "biscuit" = 1) + foodtype = GRAIN | BREAKFAST /obj/item/reagent_containers/food/snacks/butterdog name = "butterdog" diff --git a/code/modules/food_and_drinks/food/snacks_burgers.dm b/code/modules/food_and_drinks/food/snacks_burgers.dm index 814875d2da..8b6d6212f1 100644 --- a/code/modules/food_and_drinks/food/snacks_burgers.dm +++ b/code/modules/food_and_drinks/food/snacks_burgers.dm @@ -134,13 +134,54 @@ tastes = list("bun" = 4, "brains" = 2) foodtype = GRAIN | MEAT | GROSS +////////////////////////////////////////////////////////////////////////////////////////////////////////////// /obj/item/reagent_containers/food/snacks/burger/ghost name = "ghost burger" desc = "Too Spooky!" - alpha = 125 + icon_state = "ghostburger" bonus_reagents = list("nutriment" = 5, "vitamin" = 12) tastes = list("bun" = 4, "ectoplasm" = 2) foodtype = GRAIN + alpha = 170 + verb_say = "moans" + verb_yell = "wails" + +/obj/item/reagent_containers/food/snacks/burger/ghost/Initialize() + . = ..() + START_PROCESSING(SSobj, src) + +/obj/item/reagent_containers/food/snacks/burger/ghost/process() + if(!isturf(loc)) //no floating out of bags + return + var/paranormal_activity = rand(100) + switch(paranormal_activity) + if(97 to 100) + audible_message("[src] rattles a length of chain.") + playsound(loc,'sound/spookoween/chain_rattling.ogg', 300, TRUE) + if(91 to 96) + say(pick("OoOoOoo.", "OoooOOooOoo!!")) + if(84 to 90) + dir = pick(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) + step(src, dir) + if(71 to 83) + step(src, dir) + if(65 to 70) + var/obj/machinery/light/L = locate(/obj/machinery/light) in view(4, src) + if(L) + L.flicker() + if(62 to 64) + playsound(loc,pick('sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg'), 50, TRUE, ignore_walls = FALSE) + if(61) + visible_message("[src] spews out a glob of ectoplasm!") + new /obj/effect/decal/cleanable/greenglow/ecto(loc) + playsound(loc,'sound/effects/splat.ogg', 200, TRUE) + + //If i was less lazy i would make the burger forcefeed itself to a nearby mob here. + +/obj/item/reagent_containers/food/snacks/burger/ghost/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() +////////////////////////////////////////////////////////////////////////////////////////////////////////// /obj/item/reagent_containers/food/snacks/burger/red name = "red burger" @@ -281,3 +322,49 @@ bonus_reagents = list("nutriment" = 8, "vitamin" = 1) tastes = list("bun" = 4, "bacon" = 2) foodtype = GRAIN | MEAT + +/obj/item/reagent_containers/food/snacks/burger/soylent + name = "soylent burger" + desc = "A eco-friendly burger made using upcycled low value biomass." + icon_state = "soylentburger" + bonus_reagents = list("nutriment" = 5, "vitamin" = 3) + tastes = list("bun" = 2, "assistant" = 4) + foodtype = GRAIN | MEAT | DAIRY + +/obj/item/reagent_containers/food/snacks/burger/rib + name = "mcrib" + desc = "An elusive rib shaped burger with limited availablity across the galaxy. Not as good as you remember it." + icon_state = "mcrib" + bonus_reagents = list("bbqsauce" = 5, "vitamin" = 3) + tastes = list("bun" = 2, "pork patty" = 4) + foodtype = GRAIN | MEAT + +/obj/item/reagent_containers/food/snacks/burger/mcguffin + name = "mcguffin" + desc = "A cheap and greasy imitation of an eggs benedict." + icon_state = "mcguffin" + tastes = list("muffin" = 2, "bacon" = 3) + bonus_reagents = list("eggyolk" = 3, "nutriment" = 1) + foodtype = GRAIN | MEAT | BREAKFAST + +/obj/item/reagent_containers/food/snacks/burger/chicken + name = "chicken sandwich" //Apparently the proud people of Americlapstan object to this thing being called a burger. Apparently McDonald's just calls it a burger in Europe as to not scare and confuse us. + desc = "A delicious chicken sandwich, it is said the proceeds from this treat helps criminalize homosexuality on the space frontier." + icon_state = "chickenburger" + tastes = list("bun" = 2, "chicken" = 4, "God's covenant" = 1) + bonus_reagents = list("mayonnaise" = 3, "cooking_oil" = 2, "nutriment" = 2) + foodtype = GRAIN | MEAT | FRIED + +/obj/item/reagent_containers/food/snacks/burger/cheese + name = "cheese burger" + desc = "This noble burger stands proudly clad in golden cheese." + icon_state = "cheeseburger" + tastes = list("bun" = 2, "beef patty" = 4, "cheese" = 3) + bonus_reagents = list("nutriment" = 1) + foodtype = GRAIN | MEAT | DAIRY + +/obj/item/reagent_containers/food/snacks/burger/cheese/Initialize() + . = ..() + if(prob(33)) + icon_state = "cheeseburgeralt" + diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index 7dadd2b12e..dd4dad4d9b 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -379,3 +379,21 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake filling_color = "#00FFFF" tastes = list("cake" = 1, "sugar" = 1, "peachjuice" = 10) foodtype = GRAIN | SUGAR | DAIRY + +/obj/item/reagent_containers/food/snacks/store/cake/trumpet + name = "spaceman's cake" + desc = "A spaceman's trumpet frosted cake." + icon_state = "trumpetcake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/trumpet + bonus_reagents = list("polypyr" = 15, "cream" = 5, "vitamin" = 5, "berryjuice" = 5) + filling_color = "#7A3D80" + tastes = list("cake" = 4, "violets" = 2, "jam" = 2) + foodtype = GRAIN | DAIRY | FRUIT | SUGAR + +/obj/item/reagent_containers/food/snacks/cakeslice/trumpet + name = "spaceman's cake" + desc = "A spaceman's trumpet frosted cake." + icon_state = "trumpetcakeslice" + filling_color = "#7A3D80" + tastes = list("cake" = 4, "violets" = 2, "jam" = 2) + foodtype = GRAIN | DAIRY | FRUIT | SUGAR \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index 510783479e..0d51db04ce 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -94,7 +94,7 @@ filling_color = "#FFFFF0" list_reagents = list("nutriment" = 3) tastes = list("egg" = 4, "salt" = 1, "pepper" = 1) - foodtype = MEAT | FRIED + foodtype = MEAT | FRIED | BREAKFAST /obj/item/reagent_containers/food/snacks/boiledegg name = "boiled egg" @@ -104,7 +104,7 @@ filling_color = "#FFFFF0" list_reagents = list("nutriment" = 2, "vitamin" = 1) tastes = list("egg" = 1) - foodtype = MEAT + foodtype = MEAT | BREAKFAST /obj/item/reagent_containers/food/snacks/omelette //FUCK THIS name = "omelette du fromage" @@ -116,7 +116,7 @@ bitesize = 1 w_class = WEIGHT_CLASS_NORMAL tastes = list("egg" = 1, "cheese" = 1) - foodtype = MEAT + foodtype = MEAT | BREAKFAST /obj/item/reagent_containers/food/snacks/omelette/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/kitchen/fork)) @@ -145,5 +145,4 @@ w_class = WEIGHT_CLASS_NORMAL list_reagents = list("nutriment" = 6, "vitamin" = 4) tastes = list("egg" = 1, "bacon" = 1, "bun" = 1) - - foodtype = MEAT + foodtype = MEAT | BREAKFAST diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index 3988909b30..fb7bcf33b4 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -81,16 +81,15 @@ filling_color = "#87CEFA" tastes = list("blue cherries" = 2, "ice cream" = 2) foodtype = FRUIT | DAIRY - ///////////// //SNOWCONES// ///////////// /obj/item/reagent_containers/food/snacks/snowcones //We use this as a base for all other snowcones - name = "flaverless snowcone" - desc = "Its just harden water slivers. Still fun to chew on." + name = "flavorless snowcone" + desc = "It's just shaved ice. Still fun to chew on." icon = 'icons/obj/food/snowcones.dmi' - icon_state = "flaverless_sc" + icon_state = "flavorless_sc" trash = /obj/item/reagent_containers/food/drinks/sillycup //We dont eat paper cups bonus_reagents = list("water" = 10) //Base line will allways give water list_reagents = list("water" = 1) // We dont get food for water/juices @@ -99,106 +98,106 @@ foodtype = SUGAR //We use SUGAR as a base line to act in as junkfood, other wise we use fruit /obj/item/reagent_containers/food/snacks/snowcones/lime - name = "lime flavored snowcone" - desc = "A lime flavord snowball in a paper cup." + name = "lime snowcone" + desc = "Lime syrup drizzled over a snowball in a paper cup." icon_state = "lime_sc" list_reagents = list("nutriment" = 1, "limejuice" = 5) tastes = list("ice" = 1, "water" = 1, "limes" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/lemon - name = "lemon flavored snowcone" - desc = "A lemon flavord snowball in a paper cup." + name = "lemon snowcone" + desc = "Lemon syrup drizzled over a snowball in a paper cup." icon_state = "lemon_sc" list_reagents = list("nutriment" = 1, "lemonjuice" = 5) tastes = list("ice" = 1, "water" = 1, "lemons" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/apple - name = "apple flavored snowcone" - desc = "A apple flavord snowball in a paper cup." - icon_state = "blue_sc" + name = "apple snowcone" + desc = "Apple syrup drizzled over a snowball in a paper cup." + icon_state = "amber_sc" list_reagents = list("nutriment" = 1, "applejuice" = 5) tastes = list("ice" = 1, "water" = 1, "apples" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/grape - name = "grape flavored snowcone" - desc = "A grape flavord snowball in a paper cup." + name = "grape snowcone" + desc = "Grape syrup drizzled over a snowball in a paper cup." icon_state = "grape_sc" - list_reagents = list("nutriment" = 1, "berryjuice" = 5) + list_reagents = list("nutriment" = 1, "grapejuice" = 5) tastes = list("ice" = 1, "water" = 1, "grape" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/orange - name = "orange flavored snowcone" - desc = "A orange flavor dizzled on a snowball in a paper cup." + name = "orange snowcone" + desc = "Orange syrup drizzled over a snowball in a paper cup." icon_state = "orange_sc" - list_reagents = list("nutriment" = 1, "orangejuice" = 10) - tastes = list("ice" = 1, "water" = 1, "berries" = 5) + list_reagents = list("nutriment" = 1, "orangejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "orange" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/blue - name = "bluecherry flavored snowcone" - desc = "A bluecharry flavord snowball in a paper cup, how rare!" - icon_state = "red_sc" + name = "bluecherry snowcone" + desc = "Bluecherry syrup drizzled over a snowball in a paper cup, how rare!" + icon_state = "blue_sc" list_reagents = list("nutriment" = 1, "bluecherryjelly" = 5) - tastes = list("ice" = 1, "water" = 1, "blue" = 5) + tastes = list("ice" = 1, "water" = 1, "blue" = 5, "cherries" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/red - name = "cherry flavored snowcone" - desc = "A cherry flavord snowball in a paper cup." - icon_state = "blue_sc" + name = "cherry snowcone" + desc = "Cherry syrup drizzled over a snowball in a paper cup." + icon_state = "red_sc" list_reagents = list("nutriment" = 1, "cherryjelly" = 5) - tastes = list("ice" = 1, "water" = 1, "red" = 5) + tastes = list("ice" = 1, "water" = 1, "red" = 5, "cherries" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/kiwi - name = "kiwi flavored snowcone" - desc = "A kiwi flavord snowball in a paper cup." + name = "kiwi snowcone" + desc = "A kiwi snowball in a paper cup." icon_state = "kiwi_sc" list_reagents = list("nutriment" = 3, "vitamin" = 6) tastes = list("ice" = 1, "space" = 3, "kiwi" = 5) foodtype = FRUIT -/obj/item/reagent_containers/food/snacks/snowcones/mix - name = "mixed berry flavored snowcone" - desc = "A mix of different flavors dizzled on a snowball in a paper cup." - icon_state = "berry_sc" - list_reagents = list("nutriment" = 1, "berryjuice" = 10) - tastes = list("ice" = 1, "water" = 1, "berries" = 5) - foodtype = FRUIT - /obj/item/reagent_containers/food/snacks/snowcones/peach - name = "peach flavored snowcone" - desc = "A peach flavord snowball in a paper cup." + name = "peach snowcone" + desc = "A peach snowball in a paper cup." icon_state = "peach_sc" list_reagents = list("nutriment" = 1, "peachjuice" = 10) tastes = list("ice" = 1, "water" = 1, " peach" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/strawberry - name = "strawberry flavored snowcone" - desc = "A strawberry flavord snowball in a paper cup." + name = "strawberry snowcone" + desc = "A strawberry snowball in a paper cup." icon_state = "blue_sc" list_reagents = list("nutriment" = 1, "berryjuice" = 10) tastes = list("ice" = 1, "water" = 1, " strawberry" = 5) foodtype = FRUIT +/obj/item/reagent_containers/food/snacks/snowcones/berry + name = "berry snowcone" + desc = "Berry syrup drizzled over a snowball in a paper cup." + icon_state = "berry_sc" + list_reagents = list("nutriment" = 1, "berryjuice" = 5) + tastes = list("ice" = 1, "water" = 1, "berries" = 5) + foodtype = FRUIT + /obj/item/reagent_containers/food/snacks/snowcones/fruitsalad - name = "mixed fruit flavored snowcone" - desc = "A mix of different flavors dizzled on a snowball in a paper cup." + name = "fruit salad snowcone" + desc = "A delightful mix of citrus syrups drizzled over a snowball in a paper cup." icon_state = "fruitsalad_sc" - list_reagents = list("nutriment" = 1, "limejuice" = 5, "lemonjuice" = 5, "orangejuice" = 5) - tastes = list("ice" = 1, "water" = 1, "fruits" = 25) + list_reagents = list("nutriment" = 1, "lemonjuice" = 5, "limejuice" = 5, "orangejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "oranges" = 5, "limes" = 5, "lemons" = 5, "citrus" = 5, "salad" = 5) foodtype = FRUIT /obj/item/reagent_containers/food/snacks/snowcones/pineapple - name = "pineapple flavored snowcone" - desc = "A pineapple flavord snowball in a paper cup." + name = "pineapple snowcone" + desc = "Pineapple syrup drizzled over a snowball in a paper cup." icon_state = "pineapple_sc" - list_reagents = list("nutriment" = 1, "water" = 1) + list_reagents = list("nutriment" = 1, "water" = 10) tastes = list("ice" = 1, "water" = 1, "pineapples" = 5) foodtype = PINEAPPLE //Pineapple to allow all that like pineapple to enjoy @@ -207,41 +206,46 @@ desc = "..." icon_state = "mime_sc" list_reagents = list("nutriment" = 1, "nothing" = 5) - tastes = list("nothing" = 5) + tastes = list("ice" = 1, "water" = 1, "nothing" = 5) /obj/item/reagent_containers/food/snacks/snowcones/clown - name = "joke flavored snowcone" - desc = "A waterd down jokeful flavord snowball in a paper cup." + name = "clown snowcone" + desc = "Laughter drizzled over a snowball in a paper cup." icon_state = "clown_sc" list_reagents = list("nutriment" = 1, "laughter" = 5) - tastes = list("jokes" = 5, "brainfreeze" = 5, "joy" = 5) + tastes = list("ice" = 1, "water" = 1, "jokes" = 5, "brainfreeze" = 5, "joy" = 5) /obj/item/reagent_containers/food/snacks/snowcones/soda - name = "sodawater flavored snowcone" - desc = "A waterd down sodawater flavored snowcone snowball in a paper cup." + name = "space cola snowcone" + desc = "Space Cola drizzled over a snowball in a paper cup." icon_state = "soda_sc" - list_reagents = list("nutriment" = 1, "sodawater" = 5) - tastes = list("surgar" = 1, "water" = 5, "soda" = 5) - foodtype = JUNKFOOD | SUGAR + list_reagents = list("nutriment" = 1, "cola" = 5) + tastes = list("ice" = 1, "water" = 1, "cola" = 5) -/obj/item/reagent_containers/food/snacks/snowcones/pwgrmer - name = "pwergamer flavored snowcone" - desc = "A waterd down pwergamer soda flavord snowball in a paper cup." - icon_state = "pwergamer_sc" - list_reagents = list("nutriment" = 1, "laughter" = 1) - tastes = list("vaild" = 5, "salt" = 5, "wats" = 5) - foodtype = JUNKFOOD | SUGAR +/obj/item/reagent_containers/food/snacks/snowcones/spacemountainwind + name = "Space Mountain Wind snowcone" + desc = "Space Mountain Wind drizzled over a snowball in a paper cup." + icon_state = "kiwi_sc" + list_reagents = list("nutriment" = 1, "spacemountainwind" = 5) + tastes = list("ice" = 1, "water" = 1, "mountain wind" = 5) + +/obj/item/reagent_containers/food/snacks/snowcones/pwrgame + name = "pwrgame snowcone" + desc = "Pwrgame soda drizzled over a snowball in a paper cup." + icon_state = "pwrgame_sc" + list_reagents = list("nutriment" = 1, "pwr_game" = 5) + tastes = list("ice" = 1, "water" = 1, "valid" = 5, "salt" = 5, "wats" = 5) /obj/item/reagent_containers/food/snacks/snowcones/honey - name = "honey flavored snowcone" - desc = "A honey flavord snowball in a paper cup." - icon_state = "honey_sc" + name = "honey snowcone" + desc = "Honey drizzled over a snowball in a paper cup." + icon_state = "amber_sc" list_reagents = list("nutriment" = 1, "honey" = 5) - tastes = list("pollen" = 5, "sweetness" = 5, "wax" = 1) + tastes = list("ice" = 1, "water" = 1, "flowers" = 5, "sweetness" = 5, "wax" = 1) /obj/item/reagent_containers/food/snacks/snowcones/rainbow - name = "rainbow color snowcone" - desc = "A rainbow color snowball in a paper cup." + name = "rainbow snowcone" + desc = "A very colorful snowball in a paper cup." icon_state = "rainbow_sc" list_reagents = list("nutriment" = 5, "laughter" = 25) - tastes = list("sunlight" = 5, "light" = 5, "slime" = 5, "paint" = 3, "clouds" = 3) + 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_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 0b53ec8822..cf499c9d15 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -149,7 +149,7 @@ bonus_reagents = list("nutriment" = 1, "vitamin" = 1) list_reagents = list("nutriment" = 6, "vitamin" = 1) tastes = list("meat" = 1) - foodtype = MEAT + foodtype = MEAT | BREAKFAST var/roasted = FALSE /obj/item/reagent_containers/food/snacks/sausage/Initialize() @@ -344,3 +344,19 @@ icon_state = "doubleratkebab" tastes = list("rat meat" = 2, "metal" = 1) bonus_reagents = list("nutriment" = 6, "vitamin" = 2) + +/obj/item/reagent_containers/food/snacks/kebab/fiesta + name = "fiesta skewer" + icon_state = "fiestaskewer" + tastes = list("tex-mex" = 3, "cumin" = 2) + bonus_reagents = list("vitamin" = 5, "capsaicin" = 3) + +/obj/item/reagent_containers/food/snacks/bbqribs + name = "bbq ribs" + desc = "BBQ ribs, slathered in a healthy coating of BBQ sauce. The least vegan thing to ever exist." + icon_state = "ribs" + w_class = WEIGHT_CLASS_NORMAL + list_reagents = list("nutriment" = 8, "vitamin" = 2, "bbqsauce" = 5) + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + tastes = list("meat" = 3, "smokey sauce" = 1) + foodtype = MEAT \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index ad0824dd79..de22537063 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -47,6 +47,7 @@ filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR + dunkable = TRUE /obj/item/reagent_containers/food/snacks/hugemushroomslice name = "huge mushroom slice" @@ -90,6 +91,7 @@ filling_color = "#FFD700" tastes = list("fries" = 3, "salt" = 1) foodtype = VEGETABLES | GRAIN | FRIED + dunkable = TRUE /obj/item/reagent_containers/food/snacks/tatortot name = "tator tot" @@ -99,6 +101,7 @@ filling_color = "FFD700" tastes = list("potato" = 3, "valids" = 1) foodtype = FRIED | VEGETABLES + dunkable = TRUE /obj/item/reagent_containers/food/snacks/soydope name = "soy dope" @@ -109,6 +112,7 @@ filling_color = "#DEB887" tastes = list("soy" = 1) foodtype = VEGETABLES + dunkable = TRUE /obj/item/reagent_containers/food/snacks/cheesyfries name = "cheesy fries" @@ -128,6 +132,7 @@ list_reagents = list("bad_food" = 30) filling_color = "#8B4513" foodtype = GROSS + dunkable = TRUE /obj/item/reagent_containers/food/snacks/carrotfries name = "carrot fries" @@ -401,7 +406,6 @@ tastes = list("death" = 2, "rock" = 1, "meat" = 1, "hot peppers" = 1) foodtype = MEAT - /obj/item/reagent_containers/food/snacks/powercrepe name = "Powercrepe" desc = "With great power, comes great crepes. It looks like a pancake filled with jelly but packs quite a punch." @@ -583,6 +587,7 @@ filling_color = "#ffdf26" tastes = list("strawberries" = 5, "chocolate" = 3) foodtype = FRUIT | SUGAR + dunkable = TRUE /obj/item/reagent_containers/food/snacks/chocolatebanana name = "Chocolate dipped banana" @@ -591,4 +596,81 @@ list_reagents = list("sugar" = 5, "nutriment" = 3, "vitamin" = 1) filling_color = "#ffdf26" tastes = list("banana" = 5, "chocolate" = 3) - foodtype = FRUIT | SUGAR \ No newline at end of file + foodtype = FRUIT | SUGAR + dunkable = TRUE + +/obj/item/reagent_containers/food/snacks/cornchips + name = "boritos corn chips" + desc = "Triangular corn chips. They do seem a bit bland but would probably go well with some kind of dipping sauce." + icon_state = "boritos" + trash = /obj/item/trash/boritos + bitesize = 2 + list_reagents = list("nutriment" = 3, "cooking_oil" = 2, "sodiumchloride" = 3) + filling_color = "#ECA735" + tastes = list("fried corn" = 1) + foodtype = JUNKFOOD | FRIED + 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 baf8e150c5..de5d577193 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -5,28 +5,31 @@ /obj/item/reagent_containers/food/snacks/donut name = "donut" desc = "Goes great with robust coffee." - icon_state = "donut1" + icon = 'icons/obj/food/donut.dmi' + icon_state = "donut" bitesize = 5 bonus_reagents = list("sugar" = 1) list_reagents = list("nutriment" = 3, "sprinkles" = 1, "sugar" = 2) filling_color = "#D2691E" tastes = list("donut" = 1) - foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR - var/frosted_icon = "donut2" - var/is_frosted = FALSE + foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR | BREAKFAST + dunkable = TRUE + var/decorated_icon = "donut_homer" + var/is_decorated = FALSE var/extra_reagent = null + var/decorated_adjective = "sprinkled" /obj/item/reagent_containers/food/snacks/donut/Initialize() . = ..() if(prob(30)) - frost_donut() + decorate_donut() -/obj/item/reagent_containers/food/snacks/donut/proc/frost_donut() - if(is_frosted || !frosted_icon) +/obj/item/reagent_containers/food/snacks/donut/proc/decorate_donut() + if(is_decorated || !decorated_icon) return - is_frosted = TRUE - name = "frosted [name]" - icon_state = frosted_icon //delish~! + is_decorated = TRUE + name = "[decorated_adjective] [name]" + icon_state = decorated_icon //delish~! reagents.add_reagent("sprinkles", 1) filling_color = "#FF69B4" return TRUE @@ -43,64 +46,283 @@ return ..() +/obj/item/reagent_containers/food/snacks/donut/plain + //Use this donut ingame + /obj/item/reagent_containers/food/snacks/donut/chaos name = "chaos donut" desc = "Like life, it never quite tastes the same." + icon_state = "donut_chaos" bitesize = 10 tastes = list("donut" = 3, "chaos" = 1) /obj/item/reagent_containers/food/snacks/donut/chaos/Initialize() . = ..() extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine") - reagents.add_reagent("[extra_reagent]", 3) + reagents.add_reagent(extra_reagent, 3) + +/obj/item/reagent_containers/food/snacks/donut/meat + name = "Meat Donut" + desc = "Tastes as gross as it looks." + icon_state = "donut_meat" + bonus_reagents = list("ketchup" = 1) + list_reagents = list("nutriment" = 3, "ketchup" = 2) + tastes = list("meat" = 1) + foodtype = JUNKFOOD | MEAT | GROSS | FRIED | BREAKFAST + +/obj/item/reagent_containers/food/snacks/donut/berry + name = "pink donut" + desc = "Goes great with a soy latte." + icon_state = "donut_pink" + bonus_reagents = list("berryjuice" = 3, "sprinkles" = 1) //Extra sprinkles to reward frosting + filling_color = "#E57d9A" + decorated_icon = "donut_homer" + +/obj/item/reagent_containers/food/snacks/donut/trumpet + name = "spaceman's donut" + desc = "Goes great with a cold beaker of malk." + icon_state = "donut_purple" + bonus_reagents = list("polypyr" = 3, "sprinkles" = 1) + tastes = list("donut" = 3, "violets" = 1) + is_decorated = TRUE + filling_color = "#8739BF" + +/obj/item/reagent_containers/food/snacks/donut/apple + name = "apple donut" + desc = "Goes great with a shot of cinnamon schnapps." + icon_state = "donut_green" + bonus_reagents = list("applejuice" = 3, "sprinkles" = 1) + tastes = list("donut" = 3, "green apples" = 1) + is_decorated = TRUE + filling_color = "#6ABE30" + +/obj/item/reagent_containers/food/snacks/donut/caramel + name = "caramel donut" + desc = "Goes great with a mug of hot coco." + icon_state = "donut_beige" + bonus_reagents = list("caramel" = 3, "sprinkles" = 1) + tastes = list("donut" = 3, "buttery sweetness" = 1) + is_decorated = TRUE + filling_color = "#D4AD5B" + +/obj/item/reagent_containers/food/snacks/donut/choco + name = "chocolate donut" + desc = "Goes great with a glass of warm milk." + icon_state = "donut_choc" + bonus_reagents = list("hot_coco" = 3, "sprinkles" = 1) //the coco reagent is just bitter. + tastes = list("donut" = 4, "bitterness" = 1) + decorated_icon = "donut_choc_sprinkles" + filling_color = "#4F230D" + +/obj/item/reagent_containers/food/snacks/donut/blumpkin + name = "blumpkin donut" + desc = "Goes great with a mug of soothing drunken blumpkin." + icon_state = "donut_blue" + bonus_reagents = list("blumpkinjuice" = 3, "sprinkles" = 1) + tastes = list("donut" = 2, "blumpkin" = 1) + is_decorated = TRUE + filling_color = "#2788C4" + +/obj/item/reagent_containers/food/snacks/donut/bungo + name = "bungo donut" + desc = "Goes great with a mason jar of hippie's delight." + icon_state = "donut_yellow" + bonus_reagents = list("bungojuice" = 3, "sprinkles" = 1) + tastes = list("donut" = 3, "tropical sweetness" = 1) + is_decorated = TRUE + filling_color = "#DEC128" + +/obj/item/reagent_containers/food/snacks/donut/matcha + name = "matcha donut" + desc = "Goes great with a cup of tea." + icon_state = "donut_olive" + bonus_reagents = list("teapowder = 3", "sprinkles" = 1) + tastes = list("donut" = 3, "matcha" = 1) + is_decorated = TRUE + filling_color = "#879630" + +//////////////////////JELLY DONUTS///////////////////////// /obj/item/reagent_containers/food/snacks/donut/jelly name = "jelly donut" desc = "You jelly?" - icon_state = "jdonut1" - frosted_icon = "jdonut2" + icon_state = "jelly" + decorated_icon = "jelly_homer" bonus_reagents = list("sugar" = 1, "vitamin" = 1) extra_reagent = "berryjuice" tastes = list("jelly" = 1, "donut" = 3) - foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR + foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR | BREAKFAST /obj/item/reagent_containers/food/snacks/donut/jelly/Initialize() . = ..() if(extra_reagent) reagents.add_reagent("[extra_reagent]", 3) +/obj/item/reagent_containers/food/snacks/donut/jelly/plain //use this ingame to avoid inheritance related crafting issues. + +/obj/item/reagent_containers/food/snacks/donut/jelly/berry + name = "pink jelly donut" + desc = "Goes great with a soy latte." + icon_state = "jelly_pink" + bonus_reagents = list("berryjuice" = 3, "sprinkles" = 1, "vitamin" = 1) //Extra sprinkles to reward frosting. + filling_color = "#E57d9A" + decorated_icon = "jelly_homer" + +/obj/item/reagent_containers/food/snacks/donut/jelly/trumpet + name = "spaceman's jelly donut" + desc = "Goes great with a cold beaker of malk." + icon_state = "jelly_purple" + bonus_reagents = list("polypyr" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) + is_decorated = TRUE + filling_color = "#8739BF" + +/obj/item/reagent_containers/food/snacks/donut/jelly/apple + name = "apple jelly donut" + desc = "Goes great with a shot of cinnamon schnapps." + icon_state = "jelly_green" + bonus_reagents = list("applejuice" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) + is_decorated = TRUE + filling_color = "#6ABE30" + +/obj/item/reagent_containers/food/snacks/donut/jelly/caramel + name = "caramel jelly donut" + desc = "Goes great with a mug of hot coco." + icon_state = "jelly_beige" + bonus_reagents = list("caramel" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) + is_decorated = TRUE + filling_color = "#D4AD5B" + +/obj/item/reagent_containers/food/snacks/donut/jelly/choco + name = "chocolate jelly donut" + desc = "Goes great with a glass of warm milk." + icon_state = "jelly_choc" + bonus_reagents = list("hot_coco" = 3, "sprinkles" = 1, "vitamin" = 1) //the coco reagent is just bitter. + tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) + decorated_icon = "jelly_choc_sprinkles" + filling_color = "#4F230D" + +/obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin + name = "blumpkin jelly donut" + desc = "Goes great with a mug of soothing drunken blumpkin." + icon_state = "jelly_blue" + bonus_reagents = list("blumpkinjuice" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) + is_decorated = TRUE + filling_color = "#2788C4" + +/obj/item/reagent_containers/food/snacks/donut/jelly/bungo + name = "bungo jelly donut" + desc = "Goes great with a mason jar of hippie's delight." + icon_state = "jelly_yellow" + bonus_reagents = list("bungojuice" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) + is_decorated = TRUE + filling_color = "#DEC128" + +/obj/item/reagent_containers/food/snacks/donut/jelly/matcha + name = "matcha jelly donut" + desc = "Goes great with a cup of tea." + icon_state = "jelly_olive" + bonus_reagents = list("teapowder" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) + is_decorated = TRUE + filling_color = "#879630" + +//////////////////////////SLIME DONUTS///////////////////////// + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly name = "jelly donut" desc = "You jelly?" - icon_state = "jdonut1" + icon_state = "jelly" extra_reagent = "slimejelly" - foodtype = JUNKFOOD | GRAIN | FRIED | TOXIC | SUGAR + foodtype = JUNKFOOD | GRAIN | FRIED | TOXIC | SUGAR | BREAKFAST -/obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly - name = "jelly donut" - desc = "You jelly?" - icon_state = "jdonut1" - extra_reagent = "cherryjelly" - foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain -/obj/item/reagent_containers/food/snacks/donut/meat - bonus_reagents = list("ketchup" = 1) - list_reagents = list("nutriment" = 3, "ketchup" = 2) - tastes = list("meat" = 1) - foodtype = JUNKFOOD | MEAT | GROSS | FRIED +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry + name = "pink jelly donut" + desc = "Goes great with a soy latte." + icon_state = "jelly_pink" + bonus_reagents = list("berryjuice" = 3, "sprinkles" = 1, "vitamin" = 1) //Extra sprinkles to reward frosting + filling_color = "#E57d9A" -/obj/item/reagent_containers/food/snacks/donut/semen - name = "\"cream\" donut" - desc = "That cream looks a little runny..." - icon_state = "donut3" +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet + name = "spaceman's jelly donut" + desc = "Goes great with a cold beaker of malk." + icon_state = "jelly_purple" + bonus_reagents = list("polypyr" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) + is_decorated = TRUE + filling_color = "#8739BF" + +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple + name = "apple jelly donut" + desc = "Goes great with a shot of cinnamon schnapps." + icon_state = "jelly_green" + bonus_reagents = list("applejuice" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) + is_decorated = TRUE + filling_color = "#6ABE30" + +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel + name = "caramel jelly donut" + desc = "Goes great with a mug of hot coco." + icon_state = "jelly_beige" + bonus_reagents = list("caramel" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) + is_decorated = TRUE + filling_color = "#D4AD5B" + +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco + name = "chocolate jelly donut" + desc = "Goes great with a glass of warm milk." + icon_state = "jelly_choc" + bonus_reagents = list("hot_coco" = 3, "sprinkles" = 1, "vitamin" = 1) //the coco reagent is just bitter. + tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) + decorated_icon = "jelly_choc_sprinkles" + filling_color = "#4F230D" + +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin + name = "blumpkin jelly donut" + desc = "Goes great with a mug of soothing drunken blumpkin." + icon_state = "jelly_blue" + bonus_reagents = list("blumpkinjuice" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) + is_decorated = TRUE + filling_color = "#2788C4" + +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo + name = "bungo jelly donut" + desc = "Goes great with a mason jar of hippie's delight." + icon_state = "jelly_yellow" + bonus_reagents = list("bungojuice" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) + is_decorated = TRUE + filling_color = "#DEC128" + +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha + name = "matcha jelly donut" + desc = "Goes great with a cup of tea." + icon_state = "jelly_olive" + bonus_reagents = list("teapowder" = 3, "sprinkles" = 1, "vitamin" = 1) + tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) + is_decorated = TRUE + filling_color = "#879630" + +/obj/item/reagent_containers/food/snacks/donut/glaze + name = "glazed donut" + desc = "A sugar glazed donut." + icon_state = "donut_glaze" bitesize = 10 - bonus_reagents = list("semen" = 1) - list_reagents = list("nutriment" = 3, "sugar" = 2, "semen" = 5) + bonus_reagents = list("sugar" = 3) + list_reagents = list("nutriment" = 3, "sugar" = 8) filling_color = "#FFFFFF" tastes = list("donut" = 1, "salt" = 3) foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR - ////////////////////////////////////////////MUFFINS//////////////////////////////////////////// /obj/item/reagent_containers/food/snacks/muffin @@ -111,14 +333,14 @@ list_reagents = list("nutriment" = 6) filling_color = "#F4A460" tastes = list("muffin" = 1) - foodtype = GRAIN | SUGAR + foodtype = GRAIN | SUGAR | BREAKFAST /obj/item/reagent_containers/food/snacks/muffin/berry name = "berry muffin" icon_state = "berrymuffin" desc = "A delicious and spongy little cake, with berries." tastes = list("muffin" = 3, "berry" = 1) - foodtype = GRAIN | FRUIT | SUGAR + foodtype = GRAIN | FRUIT | SUGAR | BREAKFAST /obj/item/reagent_containers/food/snacks/muffin/booberry name = "booberry muffin" @@ -126,7 +348,7 @@ alpha = 125 desc = "My stomach is a graveyard! No living being can quench my bloodthirst!" tastes = list("muffin" = 3, "spookiness" = 1) - foodtype = GRAIN | FRUIT | SUGAR + foodtype = GRAIN | FRUIT | SUGAR | BREAKFAST /obj/item/reagent_containers/food/snacks/chawanmushi name = "chawanmushi" @@ -149,7 +371,7 @@ list_reagents = list("nutriment" = 8, "vitamin" = 1) filling_color = "#D2691E" tastes = list("waffles" = 1) - foodtype = GRAIN | SUGAR + foodtype = GRAIN | SUGAR | BREAKFAST /obj/item/reagent_containers/food/snacks/soylentgreen name = "\improper Soylent Green" @@ -160,7 +382,7 @@ list_reagents = list("nutriment" = 10, "vitamin" = 1) filling_color = "#9ACD32" tastes = list("waffles" = 7, "people" = 1) - foodtype = GRAIN | GROSS | MEAT + foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/soylenviridians name = "\improper Soylent Virdians" @@ -183,7 +405,7 @@ list_reagents = list("nutriment" = 8, "mushroomhallucinogen" = 2, "vitamin" = 2) filling_color = "#00BFFF" tastes = list("waffle" = 1, "mushrooms" = 1) - foodtype = GRAIN | VEGETABLES | TOXIC | SUGAR + foodtype = GRAIN | VEGETABLES | SUGAR | BREAKFAST ////////////////////////////////////////////OTHER//////////////////////////////////////////// @@ -196,7 +418,8 @@ list_reagents = list("nutriment" = 1) filling_color = "#F0E68C" tastes = list("cookie" = 1) - foodtype = SUGAR + foodtype = GRAIN | SUGAR + dunkable = TRUE /obj/item/reagent_containers/food/snacks/donkpocket name = "\improper Donk-pocket" @@ -213,6 +436,7 @@ desc = "The heated food of choice for the seasoned traitor." bonus_reagents = list("omnizine" = 3) list_reagents = list("nutriment" = 4, "omnizine" = 3) + cooked_type = null tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) foodtype = GRAIN @@ -315,6 +539,7 @@ filling_color = "#CD853F" tastes = list("sweetness" = 1) foodtype = GRAIN | JUNKFOOD | SUGAR + dunkable = TRUE /obj/item/reagent_containers/food/snacks/chococornet name = "chocolate cornet" @@ -335,6 +560,7 @@ filling_color = "#D2691E" tastes = list("cookie" = 2, "oat" = 1) foodtype = GRAIN + dunkable = TRUE /obj/item/reagent_containers/food/snacks/raisincookie name = "raisin cookie" @@ -345,6 +571,7 @@ filling_color = "#F0E68C" tastes = list("cookie" = 1, "raisins" = 1) foodtype = GRAIN | FRUIT + dunkable = TRUE /obj/item/reagent_containers/food/snacks/cherrycupcake name = "cherry cupcake" @@ -367,7 +594,7 @@ foodtype = GRAIN | FRUIT | SUGAR /obj/item/reagent_containers/food/snacks/strawberrycupcake - name = "Strawberry cupcake" + name = "strawberry cupcake" desc = "Strawberry inside a delicious cupcake." icon_state = "strawberrycupcake" bonus_reagents = list("nutriment" = 1, "vitamin" = 3) @@ -384,9 +611,9 @@ list_reagents = list("nutriment" = 5, "honey" = 5) filling_color = "#F2CE91" tastes = list("pastry" = 1, "sweetness" = 1) - foodtype = GRAIN + foodtype = GRAIN | SUGAR -#define PANCAKE_MAX_STACK 30 +#define PANCAKE_MAX_STACK 10 /obj/item/reagent_containers/food/snacks/pancakes name = "pancake" @@ -397,7 +624,7 @@ list_reagents = list("nutriment" = 4, "vitamin" = 1) filling_color = "#D2691E" tastes = list("pancakes" = 1) - foodtype = GRAIN | SUGAR + foodtype = GRAIN | SUGAR | BREAKFAST /obj/item/reagent_containers/food/snacks/pancakes/blueberry name = "blueberry pancake" @@ -465,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 @@ -480,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/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index 65ff4d2eb9..f5fcec0ac5 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -47,7 +47,7 @@ bonus_reagents = list("nutriment" = 4, "vitamin" = 4) list_reagents = list("nutriment" = 7, "milk" = 10, "vitamin" = 2) tastes = list("oats" = 1, "milk" = 1) - foodtype = DAIRY | GRAIN + foodtype = DAIRY | GRAIN | BREAKFAST /obj/item/reagent_containers/food/snacks/salad/fruit name = "fruit salad" @@ -55,7 +55,7 @@ icon_state = "fruitsalad" bonus_reagents = list("nutriment" = 2, "vitamin" = 4) tastes = list("fruit" = 1) - foodtype = FRUIT + foodtype = FRUIT | BREAKFAST /obj/item/reagent_containers/food/snacks/salad/jungle name = "jungle salad" @@ -64,7 +64,7 @@ bonus_reagents = list("nutriment" = 4, "vitamin" = 4) list_reagents = list("nutriment" = 7, "banana" = 5, "vitamin" = 4) tastes = list("fruit" = 1, "the jungle" = 1) - foodtype = FRUIT + foodtype = FRUIT | BREAKFAST /obj/item/reagent_containers/food/snacks/salad/citrusdelight name = "citrus delight" @@ -73,7 +73,7 @@ bonus_reagents = list("nutriment" = 4, "vitamin" = 4) list_reagents = list("nutriment" = 7, "vitamin" = 5) tastes = list("sourness" = 1, "leaves" = 1) - foodtype = FRUIT + foodtype = FRUIT | BREAKFAST /obj/item/reagent_containers/food/snacks/salad/ricebowl name = "ricebowl" @@ -91,7 +91,7 @@ bonus_reagents = list("nutriment" = 1, "vitamin" = 1) list_reagents = list("nutriment" = 5, "vitamin" = 1) tastes = list("rice" = 1) - foodtype = GRAIN + foodtype = GRAIN | BREAKFAST /obj/item/reagent_containers/food/snacks/salad/ricepudding name = "rice pudding" diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index 5f01d3170e..47c9f02fb9 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -225,3 +225,22 @@ bonus_reagents = list("nutriment" = 4, "vitamin" = 6) tastes = list("beet" = 1) foodtype = VEGETABLES + +/obj/item/reagent_containers/food/snacks/soup/electron + name = "electron soup" + desc = "A gastronomic curiosity of ethereal origin. It is famed for the minature weather system formed over a properly prepared soup." + icon_state = "electronsoup" + list_reagents = list("nutriment" = 3, "liquidelectricity" = 5) + tastes = list("mushroom" = 1, "electrons" = 4, "shockingly good") + filling_color = "#CC2B52" + foodtype = VEGETABLES | TOXIC + +/obj/item/reagent_containers/food/snacks/soup/bungocurry + name = "bungo curry" + desc = "A spicy vegetable curry made with the humble bungo fruit, Exotic!" + icon_state = "bungocurry" + bonus_reagents = list("vitamin" = 11) + list_reagents = list("nutriment" = 6, "capsaicin" = 5) + tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1) + filling_color = "#E6A625" + foodtype = VEGETABLES | FRUIT | DAIRY diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm new file mode 100644 index 0000000000..449da2afe3 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm @@ -0,0 +1,139 @@ +/obj/machinery/grill + name = "grill" + desc = "Just like the old days." + icon = 'icons/obj/kitchen.dmi' + icon_state = "grill_open" + density = TRUE + layer = BELOW_OBJ_LAYER + use_power = NO_POWER_USE + var/grill_fuel = 0 + var/obj/item/reagent_containers/food/grilled_item + var/grill_time = 0 + var/datum/looping_sound/grill/grill_loop + +/obj/machinery/grill/Initialize() + . = ..() + grill_loop = new(list(src), FALSE) + +/obj/machinery/grill/update_icon() + if(grilled_item) + icon_state = "grill" + else if(grill_fuel) + icon_state = "grill_on" + else + icon_state = "grill_open" + +/obj/machinery/grill/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/stack/sheet/mineral/coal) || istype(I, /obj/item/stack/sheet/mineral/wood)) + var/obj/item/stack/S = I + var/stackamount = S.get_amount() + to_chat(user, "You put [stackamount] [I]s in [src].") + if(istype(I, /obj/item/stack/sheet/mineral/coal)) + grill_fuel += (500 * stackamount) + else + grill_fuel += (50 * stackamount) + S.use(stackamount) + update_icon() + return + if(I.resistance_flags & INDESTRUCTIBLE) + to_chat(user, "You don't feel it would be wise to grill [I]...") + return ..() + if(istype(I, /obj/item/reagent_containers)) + if(istype(I, /obj/item/reagent_containers/food) && !istype(I, /obj/item/reagent_containers/food/drinks)) + if(HAS_TRAIT(I, TRAIT_NODROP) || (I.item_flags & (ABSTRACT | DROPDEL))) + return ..() + else if(!grill_fuel) + to_chat(user, "There is not enough fuel.") + return + else if(!grilled_item && user.transferItemToLoc(I, src)) + grilled_item = I + to_chat(user, "You put the [grilled_item] on [src].") + update_icon() + grill_loop.start() + return + else + if(I.reagents.has_reagent("monkey_energy")) + grill_fuel += (20 * (I.reagents.get_reagent_amount("monkey_energy"))) + to_chat(user, "You pour the Monkey Energy in [src].") + I.reagents.remove_reagent("monkey_energy", I.reagents.get_reagent_amount("monkey_energy")) + update_icon() + return + ..() + +/obj/machinery/grill/process() + ..() + update_icon() + if(!grill_fuel) + return + else + grill_fuel -= 1 + if(prob(1)) + var/datum/effect_system/smoke_spread/bad/smoke = new + smoke.set_up(1, loc) + smoke.start() + if(grilled_item) + grill_time += 1 + grilled_item.reagents.add_reagent("char", 1) + grill_fuel -= 10 + grilled_item.AddComponent(/datum/component/sizzle) + +/obj/machinery/grill/Exited(atom/movable/AM) + if(AM == grilled_item) + finish_grill() + grilled_item = null + ..() + +/obj/machinery/grill/Destroy() + grilled_item = null + . = ..() + +/obj/machinery/grill/handle_atom_del(atom/A) + if(A == grilled_item) + grilled_item = null + . = ..() + +/obj/machinery/grill/wrench_act(mob/living/user, obj/item/I) + . = ..() + if(default_unfasten_wrench(user, I) != CANT_UNFASTEN) + return TRUE + +/obj/machinery/grill/deconstruct(disassembled = TRUE) + finish_grill() + if(!(flags_1 & NODECONSTRUCT_1)) + new /obj/item/stack/sheet/metal(loc, 5) + new /obj/item/stack/rods(loc, 5) + ..() + +/obj/machinery/grill/attack_ai(mob/user) + return + +/obj/machinery/grill/attack_hand(mob/user) + if(grilled_item) + to_chat(user, "You take out [grilled_item] from [src].") + grilled_item.forceMove(drop_location()) + update_icon() + return + return ..() + +/obj/machinery/grill/proc/finish_grill() + switch(grill_time) //no 0-9 to prevent spam + if(10 to 15) + grilled_item.name = "lightly-grilled [grilled_item.name]" + grilled_item.desc = "[grilled_item.desc] It's been lightly grilled." + if(16 to 39) + grilled_item.name = "grilled [grilled_item.name]" + grilled_item.desc = "[grilled_item.desc] It's been grilled." + grilled_item.foodtype |= FRIED + if(40 to 50) + grilled_item.name = "heavily grilled [grilled_item.name]" + grilled_item.desc = "[grilled_item.desc] It's been heavily grilled." + grilled_item.foodtype |= FRIED + if(51 to INFINITY) //grill marks reach max alpha + grilled_item.name = "Powerfully Grilled [grilled_item.name]" + grilled_item.desc = "A [grilled_item.name]. Reminds you of your deepfryer skills, wait, no, it's better!" + grilled_item.foodtype |= FRIED + grill_time = 0 + grill_loop.stop() + +/obj/machinery/grill/unwrenched + anchored = FALSE diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index d10286d21a..404f3a6061 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -76,6 +76,22 @@ required_reagents = list("corn_starch" = 1, "sacid" = 1) required_temp = 374 +/datum/chemical_reaction/caramel + name = "Caramel" + id = "caramel" + results = list("caramel" = 1) + required_reagents = list("sugar" = 1) + required_temp = 413 + mob_react = FALSE + +/datum/chemical_reaction/caramel_burned + name = "Caramel burned" + id = "caramel_burned" + results = list("carbon" = 1) + required_reagents = list("caramel" = 1) + required_temp = 483 + mob_react = FALSE + /datum/chemical_reaction/cheesewheel name = "Cheesewheel" id = "cheesewheel" @@ -161,3 +177,9 @@ new /obj/item/reagent_containers/food/snacks/salad/ricebowl(location) if(holder && holder.my_atom) qdel(holder.my_atom) + +/datum/chemical_reaction/bbqsauce + name = "BBQ Sauce" + id = "bbqsauce" + results = list("bbqsauce" = 5) + required_reagents = list("ash" = 1, "tomatojuice" = 1, "salglu_solution" = 3, "blackpepper" = 1) \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm index 1da81b99ec..fbd3f57323 100644 --- a/code/modules/food_and_drinks/recipes/processor_recipes.dm +++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm @@ -44,6 +44,10 @@ input = /obj/item/reagent_containers/food/snacks/grown/parsnip output = /obj/item/reagent_containers/food/snacks/roastparsnip +/datum/food_processor_process/tortilla + input = /obj/item/reagent_containers/food/snacks/tortilla + output = /obj/item/reagent_containers/food/snacks/cornchips + /datum/food_processor_process/mob/slime input = /mob/living/simple_animal/slime output = null diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm index d7beebf461..ffa8709245 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -76,6 +76,7 @@ name = "Fish burger" reqs = list( /obj/item/reagent_containers/food/snacks/carpmeat = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, /obj/item/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/reagent_containers/food/snacks/burger/fish @@ -94,6 +95,7 @@ name = "Ghost burger" reqs = list( /obj/item/ectoplasm = 1, + /datum/reagent/consumable/sodiumchloride = 2, /obj/item/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/reagent_containers/food/snacks/burger/ghost @@ -176,7 +178,7 @@ ) result = /obj/item/reagent_containers/food/snacks/burger/purple subcategory = CAT_BURGER - + /datum/crafting_recipe/food/blackburger name = "Black burger" reqs = list( @@ -186,7 +188,7 @@ ) result = /obj/item/reagent_containers/food/snacks/burger/black subcategory = CAT_BURGER - + /datum/crafting_recipe/food/whiteburger name = "White burger" reqs = list( @@ -218,6 +220,7 @@ name = "Big bite burger" reqs = list( /obj/item/reagent_containers/food/snacks/meat/steak/plain = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 2, /obj/item/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/reagent_containers/food/snacks/burger/bigbite @@ -231,7 +234,8 @@ /obj/item/reagent_containers/food/snacks/meat/steak/plain = 5, /obj/item/reagent_containers/food/snacks/grown/tomato = 4, /obj/item/reagent_containers/food/snacks/cheesewedge = 3, - /obj/item/reagent_containers/food/snacks/boiledegg = 2, + /obj/item/reagent_containers/food/snacks/boiledegg = 1, + /obj/item/reagent_containers/food/snacks/meat/bacon = 1, /obj/item/reagent_containers/food/snacks/bun = 1 ) @@ -260,6 +264,7 @@ name = "Five alarm burger" reqs = list( /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 2, + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, /obj/item/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/reagent_containers/food/snacks/burger/fivealarm @@ -293,3 +298,53 @@ result = /obj/item/reagent_containers/food/snacks/burger/baconburger subcategory = CAT_BURGER + +/datum/crafting_recipe/food/cheeseburger + name = "Cheese Burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/cheese + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/soylentburger + name = "Soylent Burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/soylentgreen = 1, //two full meats worth. + /obj/item/reagent_containers/food/snacks/cheesewedge = 2, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/soylent + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/ribburger + name = "McRib" + reqs = list( + /obj/item/reagent_containers/food/snacks/bbqribs = 1, //The sauce is already included in the ribs + /obj/item/reagent_containers/food/snacks/onion_slice = 1, //feel free to remove if too burdensome. + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/rib + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/mcguffin + name = "McGuffin" + reqs = list( + /obj/item/reagent_containers/food/snacks/friedegg = 1, + /obj/item/reagent_containers/food/snacks/meat/bacon = 2, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/mcguffin + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/chickenburger + name = "Chicken Sandwich" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/steak/chicken = 1, + /datum/reagent/consumable/mayonnaise = 5, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/chicken + subcategory = CAT_BURGER \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index 9c14badb23..c25cd9bed6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -180,6 +180,17 @@ result = /obj/item/reagent_containers/food/snacks/store/cake/peach_cake subcategory = CAT_CAKE +/datum/crafting_recipe/food/trumpetcake + name = "Spaceman's Cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/trumpet = 2, + /datum/reagent/consumable/cream = 5, + /datum/reagent/consumable/berryjuice = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/trumpet + subcategory = CAT_CAKE + /datum/crafting_recipe/food/cak name = "Living cat/cake hybrid" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm index 8f4c5d05f1..a42db0b2b5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm @@ -1,4 +1,8 @@ +///////////////// +//Misc. Frozen.// +///////////////// + /datum/crafting_recipe/food/icecreamsandwich name = "Icecream sandwich" reqs = list( @@ -90,11 +94,10 @@ //////////////////////////SNOW CONES/////////////////////// -/datum/crafting_recipe/food/flaverless_sc - name = "Flaverless snowcone" +/datum/crafting_recipe/food/flavorless_sc + name = "Flavorless snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15 ) result = /obj/item/reagent_containers/food/snacks/snowcones @@ -104,7 +107,6 @@ name = "Pineapple snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /obj/item/reagent_containers/food/snacks/pineappleslice = 2 ) @@ -115,7 +117,6 @@ name = "Lime snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/limejuice = 5 ) @@ -126,7 +127,6 @@ name = "Lemon snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/lemonjuice = 5 ) @@ -137,7 +137,6 @@ name = "Apple snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/applejuice = 5 ) @@ -148,9 +147,8 @@ name = "Grape snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/berryjuice = 5 + /datum/reagent/consumable/grapejuice = 5 ) result = /obj/item/reagent_containers/food/snacks/snowcones/grape subcategory = CAT_ICE @@ -159,7 +157,6 @@ name = "Orange snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/orangejuice = 5 ) @@ -170,7 +167,6 @@ name = "Bluecherry snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/bluecherryjelly= 5 ) @@ -181,22 +177,20 @@ name = "Cherry snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/cherryjelly= 5 ) result = /obj/item/reagent_containers/food/snacks/snowcones/red subcategory = CAT_ICE -/datum/crafting_recipe/food/mix_sc - name = "Mixed berrie snowcone" +/datum/crafting_recipe/food/berry_sc + name = "Berry snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/berryjuice = 15 + /datum/reagent/consumable/berryjuice = 5 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/mix + result = /obj/item/reagent_containers/food/snacks/snowcones/berry subcategory = CAT_ICE /datum/crafting_recipe/food/fruitsalad_sc @@ -216,7 +210,6 @@ name = "Mime snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/nothing = 5 ) @@ -227,86 +220,57 @@ name = "Clown snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/clownstears = 5 + /datum/reagent/consumable/laughter = 5 ) result = /obj/item/reagent_containers/food/snacks/snowcones/clown subcategory = CAT_ICE /datum/crafting_recipe/food/soda_sc - name = "Soda water snowcone" + name = "Space Cola snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/sodawater = 15 + /datum/reagent/consumable/space_cola = 5 ) result = /obj/item/reagent_containers/food/snacks/snowcones/soda subcategory = CAT_ICE -/datum/crafting_recipe/food/pwgrmer_sc - name = "Pwergamer snowcone" +/datum/crafting_recipe/food/spacemountainwind_sc + name = "Space Mountain Wind snowcone" + reqs = list( + /obj/item/reagent_containers/food/drinks/sillycup = 1, + /datum/reagent/consumable/ice = 15, + /datum/reagent/consumable/spacemountainwind = 5 + ) + result = /obj/item/reagent_containers/food/snacks/snowcones/spacemountainwind + +/datum/crafting_recipe/food/pwrgame_sc + name = "Pwrgame snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/pwr_game = 15 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/pwgrmer - subcategory = CAT_ICE - -/datum/crafting_recipe/food/kiwi_sc - name = "Kiwi snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /obj/item/reagent_containers/food/snacks/egg/kiwiEgg = 1, - /datum/reagent/water = 5, - /datum/reagent/consumable/ice = 15 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/kiwi + result = /obj/item/reagent_containers/food/snacks/snowcones/pwrgame subcategory = CAT_ICE /datum/crafting_recipe/food/honey_sc name = "Honey snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, /datum/reagent/consumable/honey = 5 ) result = /obj/item/reagent_containers/food/snacks/snowcones/honey subcategory = CAT_ICE -/datum/crafting_recipe/food/peach_sc - name = "Peach snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, - /datum/reagent/consumable/ice = 15, - /obj/item/reagent_containers/food/snacks/grown/peach = 1 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/peach - subcategory = CAT_ICE - -/datum/crafting_recipe/food/strawberry_sc - name = "Strawberry snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, - /datum/reagent/consumable/ice = 15, - /obj/item/reagent_containers/food/snacks/grown/strawberry = 2 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/strawberry - subcategory = CAT_ICE - -/datum/crafting_recipe/food/honey_sc +/datum/crafting_recipe/food/rainbow_sc name = "Rainbow snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/water = 5, /datum/reagent/consumable/ice = 15, - /datum/reagent/colorful_reagent = 1 //Hard to make + /datum/reagent/colorful_reagent = 1 //Harder to make ) result = /obj/item/reagent_containers/food/snacks/snowcones/rainbow - subcategory = CAT_ICE + subcategory = CAT_ICE \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index d17ccf585e..d8145410cd 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -166,3 +166,25 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/ricepork subcategory = CAT_MEAT + +/datum/crafting_recipe/food/fiestaskewer + name = "Fiesta Skewer" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, + /obj/item/reagent_containers/food/snacks/grown/corn = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/fiesta + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/ribs + name = "BBQ Ribs" + reqs = list( + /datum/reagent/consumable/bbqsauce = 5, + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 2, + /obj/item/stack/rods = 2 + ) + result = /obj/item/reagent_containers/food/snacks/bbqribs + subcategory = CAT_MEAT \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index 365cf499bb..7977a715d8 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -1,18 +1,7 @@ - // see code/module/crafting/table.dm ////////////////////////////////////////////////DONUTS//////////////////////////////////////////////// -/datum/crafting_recipe/food/chaosdonut - name = "Chaos donut" - reqs = list( - /datum/reagent/consumable/frostoil = 5, - /datum/reagent/consumable/capsaicin = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/chaos - subcategory = CAT_PASTRY - /datum/crafting_recipe/food/donut time = 15 name = "Donut" @@ -20,18 +9,17 @@ /datum/reagent/consumable/sugar = 1, /obj/item/reagent_containers/food/snacks/pastrybase = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut + result = /obj/item/reagent_containers/food/snacks/donut/plain subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/semen - time = 15 - name = "Semen donut" +/datum/crafting_recipe/food/donut/chaos + name = "Chaos donut" reqs = list( - /datum/reagent/consumable/semen = 10, + /datum/reagent/consumable/frostoil = 5, + /datum/reagent/consumable/capsaicin = 5, /obj/item/reagent_containers/food/snacks/pastrybase = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/semen - subcategory = CAT_PASTRY + result = /obj/item/reagent_containers/food/snacks/donut/chaos datum/crafting_recipe/food/donut/meat time = 15 @@ -41,35 +29,232 @@ datum/crafting_recipe/food/donut/meat /obj/item/reagent_containers/food/snacks/pastrybase = 1 ) result = /obj/item/reagent_containers/food/snacks/donut/meat - subcategory = CAT_PASTRY -/datum/crafting_recipe/food/jellydonut +/datum/crafting_recipe/food/donut/jelly name = "Jelly donut" reqs = list( /datum/reagent/consumable/berryjuice = 5, /obj/item/reagent_containers/food/snacks/pastrybase = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly - subcategory = CAT_PASTRY + result = /obj/item/reagent_containers/food/snacks/donut/jelly/plain -/datum/crafting_recipe/food/cherryjellydonut - name = "Cherry jelly donut" - reqs = list( - /datum/reagent/consumable/cherryjelly = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/slimejellydonut +/datum/crafting_recipe/food/donut/slimejelly name = "Slime jelly donut" reqs = list( /datum/reagent/toxin/slimejelly = 5, /obj/item/reagent_containers/food/snacks/pastrybase = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain + +/datum/crafting_recipe/food/donut/glaze + time = 15 + name = "glaze donut" + reqs = list( + /datum/reagent/consumable/sugar = 10, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/glaze subcategory = CAT_PASTRY +/datum/crafting_recipe/food/donut/berry + name = "Berry Donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/berry + +/datum/crafting_recipe/food/donut/trumpet + name = "Spaceman's Donut" + reqs = list( + /datum/reagent/medicine/polypyr = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/donut/trumpet + +/datum/crafting_recipe/food/donut/apple + name = "Apple Donut" + reqs = list( + /datum/reagent/consumable/applejuice = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/apple + +/datum/crafting_recipe/food/donut/caramel + name = "Caramel Donut" + reqs = list( + /datum/reagent/consumable/caramel = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/caramel + +/datum/crafting_recipe/food/donut/choco + name = "Chocolate Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/choco + +/datum/crafting_recipe/food/donut/blumpkin + name = "Blumpkin Donut" + reqs = list( + /datum/reagent/consumable/blumpkinjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/blumpkin + +/datum/crafting_recipe/food/donut/bungo + name = "Bungo Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/bungo + +/datum/crafting_recipe/food/donut/matcha + name = "Matcha Donut" + reqs = list( + /datum/reagent/toxin/teapowder = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/matcha + +////////////////////////////////////////////////////JELLY DONUTS/////////////////////////////////////////////////////// + +/datum/crafting_recipe/food/donut/jelly/berry + name = "Berry Jelly Donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/berry + +/datum/crafting_recipe/food/donut/jelly/trumpet + name = "Spaceman's Jelly Donut" + reqs = list( + /datum/reagent/medicine/polypyr = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet + +/datum/crafting_recipe/food/donut/jelly/apple + name = "Apple Jelly Donut" + reqs = list( + /datum/reagent/consumable/applejuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/apple + +/datum/crafting_recipe/food/donut/jelly/caramel + name = "Caramel Jelly Donut" + reqs = list( + /datum/reagent/consumable/caramel = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/caramel + +/datum/crafting_recipe/food/donut/jelly/choco + name = "Chocolate Jelly Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/choco + +/datum/crafting_recipe/food/donut/jelly/blumpkin + name = "Blumpkin Jelly Donut" + reqs = list( + /datum/reagent/consumable/blumpkinjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin + +/datum/crafting_recipe/food/donut/jelly/bungo + name = "Bungo Jelly Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/bungo + +/datum/crafting_recipe/food/donut/jelly/matcha + name = "Matcha Jelly Donut" + reqs = list( + /datum/reagent/toxin/teapowder = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/matcha + +////////////////////////////////////////////////////SLIME DONUTS/////////////////////////////////////////////////////// + +/datum/crafting_recipe/food/donut/slimejelly/berry + name = "Berry Slime Donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry + +/datum/crafting_recipe/food/donut/slimejelly/trumpet + name = "Spaceman's Slime Donut" + reqs = list( + /datum/reagent/medicine/polypyr = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet + +/datum/crafting_recipe/food/donut/slimejelly/apple + name = "Apple Slime Donut" + reqs = list( + /datum/reagent/consumable/applejuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple + +/datum/crafting_recipe/food/donut/slimejelly/caramel + name = "Caramel Slime Donut" + reqs = list( + /datum/reagent/consumable/caramel = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel + +/datum/crafting_recipe/food/donut/slimejelly/choco + name = "Chocolate Slime Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco + +/datum/crafting_recipe/food/donut/slimejelly/blumpkin + name = "Blumpkin Slime Donut" + reqs = list( + /datum/reagent/consumable/blumpkinjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin + +/datum/crafting_recipe/food/donut/slimejelly/bungo + name = "Bungo Slime Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo + +/datum/crafting_recipe/food/donut/slimejelly/matcha + name = "Matcha Slime Donut" + reqs = list( + /datum/reagent/toxin/teapowder = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha + ////////////////////////////////////////////////WAFFLES AND PANCAKES//////////////////////////////////////////////// /datum/crafting_recipe/food/waffles @@ -341,4 +526,4 @@ datum/crafting_recipe/food/donut/meat /datum/reagent/consumable/honey = 5 ) result = /obj/item/reagent_containers/food/snacks/honeybun - subcategory = CAT_PASTRY + subcategory = CAT_PASTRY \ No newline at end of file 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/captain.dm b/code/modules/jobs/job_types/captain.dm index c6342e2154..40bfa0bbfa 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -20,8 +20,7 @@ access = list() //See get_access() minimal_access = list() //See get_access() - mind_traits = list(TRAIT_CAPTAIN_METABOLISM) -// mind_traits = list(TRAIT_DISK_VERIFIER) + mind_traits = list(TRAIT_CAPTAIN_METABOLISM, TRAIT_DISK_VERIFIER) display_order = JOB_DISPLAY_ORDER_CAPTAIN 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 5bdfd174b5..0846cf1ea1 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! @@ -21,7 +19,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. @@ -178,7 +176,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 @@ -277,9 +276,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 @@ -338,10 +344,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) @@ -897,5 +906,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 b9e27c0637..bdc691ce49 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) - ..(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 fe682b5c99..d1ed09665b 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(A) if(isliving(A)) var/mob/living/L = A - var/blocked = FALSE - if(ishuman(A)) - var/mob/living/carbon/human/H = A - 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 6ecedba3be..102bc6fc3d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1,979 +1,991 @@ -/mob/living/carbon - blood_volume = BLOOD_VOLUME_NORMAL - -/mob/living/carbon/Initialize() - . = ..() - create_reagents(1000) - update_body_parts() //to update the carbon's new bodyparts appearance - GLOB.carbon_list += src - blood_volume = (BLOOD_VOLUME_NORMAL * blood_ratio) - -/mob/living/carbon/Destroy() - //This must be done first, so the mob ghosts correctly before DNA etc is nulled - . = ..() - - QDEL_LIST(internal_organs) - QDEL_LIST(stomach_contents) - QDEL_LIST(bodyparts) - QDEL_LIST(implants) - remove_from_all_data_huds() - QDEL_NULL(dna) - GLOB.carbon_list -= src - -/mob/living/carbon/initialize_footstep() - AddComponent(/datum/component/footstep, 0.6, 2) - -/mob/living/carbon/relaymove(mob/user, direction) - if(user in src.stomach_contents) - if(prob(40)) - if(prob(25)) - audible_message("You hear something rumbling inside [src]'s stomach...", \ - "You hear something rumbling.", 4,\ - "Something is rumbling inside your stomach!") - var/obj/item/I = user.get_active_held_item() - if(I && I.force) - var/d = rand(round(I.force / 4), I.force) - var/obj/item/bodypart/BP = get_bodypart(BODY_ZONE_CHEST) - if(BP.receive_damage(d, 0)) - update_damage_overlays() - visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ - "[user] attacks your stomach wall with the [I.name]!") - playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) - - if(prob(src.getBruteLoss() - 50)) - for(var/atom/movable/A in stomach_contents) - A.forceMove(drop_location()) - stomach_contents.Remove(A) - src.gib() - - -/mob/living/carbon/swap_hand(held_index) - if(!held_index) - held_index = (active_hand_index % held_items.len)+1 - - var/obj/item/item_in_hand = src.get_active_held_item() - if(item_in_hand) //this segment checks if the item in your hand is twohanded. - var/obj/item/twohanded/TH = item_in_hand - if(istype(TH)) - if(TH.wielded == 1) - to_chat(usr, "Your other hand is too busy holding [TH]") - return - var/oindex = active_hand_index - active_hand_index = held_index - if(hud_used) - var/obj/screen/inventory/hand/H - H = hud_used.hand_slots["[oindex]"] - if(H) - H.update_icon() - H = hud_used.hand_slots["[held_index]"] - if(H) - H.update_icon() - - -/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len - if(!selhand) - selhand = (active_hand_index % held_items.len)+1 - - if(istext(selhand)) - selhand = lowertext(selhand) - if(selhand == "right" || selhand == "r") - selhand = 2 - if(selhand == "left" || selhand == "l") - selhand = 1 - - if(selhand != active_hand_index) - swap_hand(selhand) - else - mode() // Activate held item - -/mob/living/carbon/attackby(obj/item/I, mob/user, params) - if(lying && surgeries.len) - if(user != src && (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 ..() - -/mob/living/carbon/throw_impact(atom/hit_atom, throwingdatum) - . = ..() - var/hurt = TRUE - if(istype(throwingdatum, /datum/thrownthing)) - var/datum/thrownthing/D = throwingdatum - if(iscyborg(D.thrower)) - var/mob/living/silicon/robot/R = D.thrower - if(!R.emagged) - hurt = FALSE - if(hit_atom.density && isturf(hit_atom)) - if(hurt) - Knockdown(20) - take_bodypart_damage(10) - if(iscarbon(hit_atom) && hit_atom != src) - var/mob/living/carbon/victim = hit_atom - if(victim.movement_type & FLYING) - return - if(hurt) - victim.take_bodypart_damage(10) - take_bodypart_damage(10) - victim.Knockdown(20) - Knockdown(20) - visible_message("[src] crashes into [victim], knocking them both over!",\ - "You violently crash into [victim]!") - playsound(src,'sound/weapons/punch1.ogg',50,1) - - -//Throwing stuff -/mob/living/carbon/proc/toggle_throw_mode() - if(stat) - return - if(in_throw_mode) - throw_mode_off() - else - throw_mode_on() - - -/mob/living/carbon/proc/throw_mode_off() - in_throw_mode = 0 - if(client && hud_used) - hud_used.throw_icon.icon_state = "act_throw_off" - - -/mob/living/carbon/proc/throw_mode_on() - in_throw_mode = 1 - if(client && hud_used) - hud_used.throw_icon.icon_state = "act_throw_on" - -/mob/proc/throw_item(atom/target) - SEND_SIGNAL(src, COMSIG_MOB_THROW, target) - return - -/mob/living/carbon/throw_item(atom/target) - throw_mode_off() - if(!target || !isturf(loc)) - return - if(istype(target, /obj/screen)) - return - - //CIT CHANGES - makes it impossible to throw while in stamina softcrit - if(getStaminaLoss() >= STAMINA_SOFTCRIT) - to_chat(src, "You're too exhausted.") - return - //END OF CIT CHANGES - - var/obj/item/I = src.get_active_held_item() - - var/atom/movable/thrown_thing - var/mob/living/throwable_mob - - if(istype(I, /obj/item/clothing/head/mob_holder)) - var/obj/item/clothing/head/mob_holder/holder = I - if(holder.held_mob) - throwable_mob = holder.held_mob - holder.release() - - if(!I || throwable_mob) - if(!throwable_mob && pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) - throwable_mob = pulling - - if(throwable_mob && !throwable_mob.buckled) - thrown_thing = throwable_mob - if(pulling) - stop_pulling() - if(HAS_TRAIT(src, TRAIT_PACIFISM)) - to_chat(src, "You gently let go of [throwable_mob].") - return - - adjustStaminaLossBuffered(25)//CIT CHANGE - throwing an entire person shall be very tiring - var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors - var/turf/end_T = get_turf(target) - if(start_T && end_T) - log_combat(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]") - - else if(!CHECK_BITFIELD(I.item_flags, ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP)) - thrown_thing = I - dropItemToGround(I) - - if(HAS_TRAIT(src, TRAIT_PACIFISM) && I.throwforce) - to_chat(src, "You set [I] down gently on the ground.") - return - - adjustStaminaLossBuffered(I.getweight()*2)//CIT CHANGE - throwing items shall be more tiring than swinging em. Doubly so. - - if(thrown_thing) - visible_message("[src] has thrown [thrown_thing].") - src.log_message("has thrown [thrown_thing]", LOG_ATTACK) - do_attack_animation(target, no_effect = 1) - playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) - newtonian_move(get_dir(target, src)) - thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src) - - - -/mob/living/carbon/restrained(ignore_grab) - . = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)) - -/mob/living/carbon/proc/canBeHandcuffed() - return 0 - - -/mob/living/carbon/show_inv(mob/user) - user.set_machine(src) - var/dat = {" -
    - [name] -
    -
    Head: [(head && !(head.item_flags & ABSTRACT)) ? head : "Nothing"] -
    Mask: [(wear_mask && !(wear_mask.item_flags & ABSTRACT)) ? wear_mask : "Nothing"] -
    Neck: [(wear_neck && !(wear_neck.item_flags & ABSTRACT)) ? wear_neck : "Nothing"]"} - - for(var/i in 1 to held_items.len) - var/obj/item/I = get_item_for_held_index(i) - dat += "
    [get_held_index_name(i)]:[(I && !(I.item_flags & ABSTRACT)) ? I : "Nothing"]" - - dat += "
    Back: [back ? back : "Nothing"]" - - if(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank)) - dat += "
    [internal ? "Disable Internals" : "Set Internals"]" - - if(handcuffed) - dat += "
    Handcuffed" - if(legcuffed) - dat += "
    Legcuffed" - - dat += {" -
    -
    Close - "} - user << browse(dat, "window=mob[REF(src)];size=325x500") - onclose(user, "mob[REF(src)]") - -/mob/living/carbon/Topic(href, href_list) - ..() - //strip panel - if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) - if(href_list["internal"]) - var/slot = text2num(href_list["internal"]) - var/obj/item/ITEM = get_item_by_slot(slot) - if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) - visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ - "[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") - if(do_mob(usr, src, POCKET_STRIP_DELAY)) - if(internal) - internal = null - update_internals_hud_icon(0) - else if(ITEM && istype(ITEM, /obj/item/tank)) - if((wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) || getorganslot(ORGAN_SLOT_BREATHING_TUBE)) - internal = ITEM - update_internals_hud_icon(1) - - visible_message("[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].", \ - "[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].") - - -/mob/living/carbon/fall(forced) - loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing - -/mob/living/carbon/is_muzzled() - return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) - -/mob/living/carbon/hallucinating() - if(hallucination) - return TRUE - else - return FALSE - -/mob/living/carbon/resist_buckle() - if(restrained()) - changeNext_move(CLICK_CD_BREAKOUT) - last_special = world.time + CLICK_CD_BREAKOUT - var/buckle_cd = 600 - if(handcuffed) - var/obj/item/restraints/O = src.get_item_by_slot(SLOT_HANDCUFFED) - buckle_cd = O.breakouttime - visible_message("[src] attempts to unbuckle [p_them()]self!", \ - "You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)") - if(do_after(src, buckle_cd, 0, target = src)) - if(!buckled) - return - buckled.user_unbuckle_mob(src,src) - else - if(src && buckled) - to_chat(src, "You fail to unbuckle yourself!") - else - buckled.user_unbuckle_mob(src,src) - -/mob/living/carbon/resist_fire() - fire_stacks -= 5 - Knockdown(60, TRUE, TRUE) - spin(32,2) - visible_message("[src] rolls on the floor, trying to put [p_them()]self out!", \ - "You stop, drop, and roll!") - sleep(30) - if(fire_stacks <= 0) - visible_message("[src] has successfully extinguished [p_them()]self!", \ - "You extinguish yourself.") - ExtinguishMob() - return - -/mob/living/carbon/resist_restraints() - var/obj/item/I = null - var/type = 0 - if(handcuffed) - I = handcuffed - type = 1 - else if(legcuffed) - I = legcuffed - type = 2 - if(I) - if(type == 1) - changeNext_move(CLICK_CD_BREAKOUT) - last_special = world.time + CLICK_CD_BREAKOUT - if(type == 2) - changeNext_move(CLICK_CD_RANGE) - last_special = world.time + CLICK_CD_RANGE - cuff_resist(I) - - -/mob/living/carbon/proc/cuff_resist(obj/item/I, breakouttime = 600, cuff_break = 0) - if(I.item_flags & BEING_REMOVED) - to_chat(src, "You're already attempting to remove [I]!") - return - I.item_flags |= BEING_REMOVED - breakouttime = I.breakouttime - if(!cuff_break) - visible_message("[src] attempts to remove [I]!") - to_chat(src, "You attempt to remove [I]... (This will take around [DisplayTimeText(breakouttime)] and you need to stand still.)") - if(do_after(src, breakouttime, 0, target = src)) - clear_cuffs(I, cuff_break) - else - to_chat(src, "You fail to remove [I]!") - - else if(cuff_break == FAST_CUFFBREAK) - breakouttime = 50 - visible_message("[src] is trying to break [I]!") - to_chat(src, "You attempt to break [I]... (This will take around 5 seconds and you need to stand still.)") - if(do_after(src, breakouttime, 0, target = src)) - clear_cuffs(I, cuff_break) - else - to_chat(src, "You fail to break [I]!") - - else if(cuff_break == INSTANT_CUFFBREAK) - clear_cuffs(I, cuff_break) - I.item_flags &= ~BEING_REMOVED - -/mob/living/carbon/proc/uncuff() - if (handcuffed) - var/obj/item/W = handcuffed - handcuffed = null - if (buckled && buckled.buckle_requires_restraints) - buckled.unbuckle_mob(src) - update_handcuffed() - if (client) - client.screen -= W - if (W) - W.forceMove(drop_location()) - W.dropped(src) - if (W) - W.layer = initial(W.layer) - W.plane = initial(W.plane) - changeNext_move(0) - if (legcuffed) - var/obj/item/W = legcuffed - legcuffed = null - update_inv_legcuffed() - if (client) - client.screen -= W - if (W) - W.forceMove(drop_location()) - W.dropped(src) - if (W) - W.layer = initial(W.layer) - W.plane = initial(W.plane) - changeNext_move(0) - -/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) - if(!I.loc || buckled) - return - visible_message("[src] manages to [cuff_break ? "break" : "remove"] [I]!") - to_chat(src, "You successfully [cuff_break ? "break" : "remove"] [I].") - - if(cuff_break) - . = !((I == handcuffed) || (I == legcuffed)) - qdel(I) - return - - else - if(I == handcuffed) - handcuffed.forceMove(drop_location()) - handcuffed.dropped(src) - handcuffed = null - if(buckled && buckled.buckle_requires_restraints) - buckled.unbuckle_mob(src) - update_handcuffed() - return - if(I == legcuffed) - legcuffed.forceMove(drop_location()) - legcuffed.dropped() - legcuffed = null - update_inv_legcuffed() - return - else - dropItemToGround(I) - return - return TRUE - -/mob/living/carbon/get_standard_pixel_y_offset(lying = 0) - if(lying) - return -6 - else - return initial(pixel_y) - -/mob/living/carbon/proc/accident(obj/item/I) - if(!I || (I.item_flags & ABSTRACT) || HAS_TRAIT(I, TRAIT_NODROP)) - return - - //dropItemToGround(I) CIT CHANGE - makes it so the item doesn't drop if the modifier rolls above 100 - - var/modifier = 0 - - if(HAS_TRAIT(src, TRAIT_CLUMSY)) - modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! - - //CIT CHANGES START HERE - else if(combatmode) - modifier += 50 - - if(modifier < 100) - dropItemToGround(I) - //END OF CIT CHANGES - - switch(rand(1,100)+modifier) //91-100=Nothing special happens - if(-INFINITY to 0) //attack yourself - I.attack(src,src) - if(1 to 30) //throw it at yourself - I.throw_impact(src) - if(31 to 60) //Throw object in facing direction - var/turf/target = get_turf(loc) - var/range = rand(2,I.throw_range) - for(var/i = 1; i < range; i++) - var/turf/new_turf = get_step(target, dir) - target = new_turf - if(new_turf.density) - break - I.throw_at(target,I.throw_range,I.throw_speed,src) - if(61 to 90) //throw it down to the floor - var/turf/target = get_turf(loc) - I.throw_at(target,I.throw_range,I.throw_speed,src) - -/mob/living/carbon/Stat() - ..() - if(statpanel("Status")) - var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) - if(vessel) - stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") - if(locate(/obj/item/assembly/health) in src) - stat(null, "Health: [health]") - - add_abilities_to_panel() - -/mob/living/carbon/attack_ui(slot) - if(!has_hand_for_held_index(active_hand_index)) - return 0 - return ..() - -/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = FALSE) - if(HAS_TRAIT(src, TRAIT_NOHUNGER)) - return 1 - - if(nutrition < 100 && !blood) - if(message) - visible_message("[src] dry heaves!", \ - "You try to throw up, but there's nothing in your stomach!") - if(stun) - Knockdown(200) - return 1 - - if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious - if(message) - visible_message("[src] throws up all over [p_them()]self!", \ - "You throw up all over yourself!") - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomitself) - distance = 0 - else - if(message) - visible_message("[src] throws up!", "You throw up!") - if(!isflyperson(src)) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomit) - if(stun) - Stun(80) - - playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) - var/turf/T = get_turf(src) - if(!blood) - nutrition -= lost_nutrition - adjustToxLoss(-3) - for(var/i=0 to distance) - if(blood) - if(T) - add_splatter_floor(T) - if(stun) - adjustBruteLoss(3) - else if(src.reagents.has_reagent("blazaam")) - if(T) - T.add_vomit_floor(src, VOMIT_PURPLE) - else - if(T) - T.add_vomit_floor(src, VOMIT_TOXIC)//toxic barf looks different - T = get_step(T, dir) - if (is_blocked_turf(T)) - break - return 1 - -/mob/living/carbon/proc/spew_organ(power = 5, amt = 1) - for(var/i in 1 to amt) - if(!internal_organs.len) - break //Guess we're out of organs! - var/obj/item/organ/guts = pick(internal_organs) - var/turf/T = get_turf(src) - guts.Remove(src) - guts.forceMove(T) - var/atom/throw_target = get_edge_target_turf(guts, dir) - guts.throw_at(throw_target, power, 4, src) - - -/mob/living/carbon/fully_replace_character_name(oldname,newname) - ..() - if(dna) - dna.real_name = real_name - -//Updates the mob's health from bodyparts and mob damage variables -/mob/living/carbon/updatehealth() - if(status_flags & GODMODE) - return - var/total_burn = 0 - var/total_brute = 0 - var/total_stamina = 0 - for(var/X in bodyparts) //hardcoded to streamline things a bit - var/obj/item/bodypart/BP = X - total_brute += (BP.brute_dam * BP.body_damage_coeff) - total_burn += (BP.burn_dam * BP.body_damage_coeff) - total_stamina += (BP.stamina_dam * BP.stam_damage_coeff) - health = round(maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute, DAMAGE_PRECISION) - staminaloss = round(total_stamina, DAMAGE_PRECISION) - update_stat() - if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) - become_husk("burn") - med_hud_set_health() - if(stat == SOFT_CRIT) - add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN) - else - remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE) - -/mob/living/carbon/update_stamina() - var/stam = getStaminaLoss() - if(stam > DAMAGE_PRECISION) - var/total_health = (health - stam) - if(total_health <= crit_threshold && !stat) - if(!IsKnockdown()) - to_chat(src, "You're too exhausted to keep going...") - Knockdown(100) - update_health_hud() - -/mob/living/carbon/update_sight() - if(!client) - return - if(stat == DEAD) - sight = (SEE_TURFS|SEE_MOBS|SEE_OBJS) - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_OBSERVER - return - - sight = initial(sight) - lighting_alpha = initial(lighting_alpha) - var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) - if(!E) - update_tint() - else - see_invisible = E.see_invisible - see_in_dark = E.see_in_dark - sight |= E.sight_flags - if(!isnull(E.lighting_alpha)) - lighting_alpha = E.lighting_alpha - if(HAS_TRAIT(src, TRAIT_NIGHT_VISION)) - lighting_alpha = min(LIGHTING_PLANE_ALPHA_NV_TRAIT, lighting_alpha) - see_in_dark = max(NIGHT_VISION_DARKSIGHT_RANGE, see_in_dark) - - if(client.eye && client.eye != src) - var/atom/A = client.eye - if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. - return - - if(glasses) - var/obj/item/clothing/glasses/G = glasses - sight |= G.vision_flags - see_in_dark = max(G.darkness_view, see_in_dark) - if(G.invis_override) - see_invisible = G.invis_override - else - see_invisible = min(G.invis_view, see_invisible) - if(!isnull(G.lighting_alpha)) - lighting_alpha = min(lighting_alpha, G.lighting_alpha) - if(dna) - for(var/X in dna.mutations) - var/datum/mutation/M = X - if(M.name == XRAY) - sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) - see_in_dark = max(see_in_dark, 8) - - if(see_override) - see_invisible = see_override - . = ..() - - -//to recalculate and update the mob's total tint from tinted equipment it's wearing. -/mob/living/carbon/proc/update_tint() - if(!GLOB.tinted_weldhelh) - return - tinttotal = get_total_tint() - if(tinttotal >= TINT_BLIND) - become_blind(EYES_COVERED) - else if(tinttotal >= TINT_DARKENED) - cure_blind(EYES_COVERED) - overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2) - else - cure_blind(EYES_COVERED) - clear_fullscreen("tint", 0) - -/mob/living/carbon/proc/get_total_tint() - . = 0 - if(istype(head, /obj/item/clothing/head)) - var/obj/item/clothing/head/HT = head - . += HT.tint - if(wear_mask) - . += wear_mask.tint - - var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) - if(E) - . += E.tint - - else - . += INFINITY - -/mob/living/carbon/get_permeability_protection(list/target_zones = list(HANDS,CHEST,GROIN,LEGS,FEET,ARMS,HEAD)) - var/list/tally = list() - for(var/obj/item/I in get_equipped_items()) - for(var/zone in target_zones) - if(I.body_parts_covered & zone) - tally["[zone]"] = max(1 - I.permeability_coefficient, target_zones["[zone]"]) - var/protection = 0 - for(var/key in tally) - protection += tally[key] - protection *= INVERSE(target_zones.len) - return protection - -//this handles hud updates -/mob/living/carbon/update_damage_hud() - - if(!client) - return - - if(health <= crit_threshold) - var/severity = 0 - switch(health) - if(-20 to -10) - severity = 1 - if(-30 to -20) - severity = 2 - if(-40 to -30) - severity = 3 - if(-50 to -40) - severity = 4 - if(-50 to -40) - severity = 5 - if(-60 to -50) - severity = 6 - if(-70 to -60) - severity = 7 - if(-90 to -70) - severity = 8 - if(-95 to -90) - severity = 9 - if(-INFINITY to -95) - severity = 10 - if(!InFullCritical()) - var/visionseverity = 4 - switch(health) - if(-8 to -4) - visionseverity = 5 - if(-12 to -8) - visionseverity = 6 - if(-16 to -12) - visionseverity = 7 - if(-20 to -16) - visionseverity = 8 - if(-24 to -20) - visionseverity = 9 - if(-INFINITY to -24) - visionseverity = 10 - overlay_fullscreen("critvision", /obj/screen/fullscreen/crit/vision, visionseverity) - else - clear_fullscreen("critvision") - overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity) - else - clear_fullscreen("crit") - clear_fullscreen("critvision") - - //Oxygen damage overlay - var/windedup = getOxyLoss() + getStaminaLoss() * 0.2 - if(windedup) - var/severity = 0 - switch(windedup) - if(10 to 20) - severity = 1 - if(20 to 25) - severity = 2 - if(25 to 30) - severity = 3 - if(30 to 35) - severity = 4 - if(35 to 40) - severity = 5 - if(40 to 45) - severity = 6 - if(45 to INFINITY) - severity = 7 - overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity) - else - clear_fullscreen("oxy") - - //Fire and Brute damage overlay (BSSR) - var/hurtdamage = getBruteLoss() + getFireLoss() + damageoverlaytemp - if(hurtdamage) - var/severity = 0 - switch(hurtdamage) - if(5 to 15) - severity = 1 - if(15 to 30) - severity = 2 - if(30 to 45) - severity = 3 - if(45 to 70) - severity = 4 - if(70 to 85) - severity = 5 - if(85 to INFINITY) - severity = 6 - overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity) - else - clear_fullscreen("brute") - -/mob/living/carbon/update_health_hud(shown_health_amount) - if(!client || !hud_used) - return - if(hud_used.healths) - if(stat != DEAD) - . = 1 - if(!shown_health_amount) - shown_health_amount = health - if(shown_health_amount >= maxHealth) - hud_used.healths.icon_state = "health0" - else if(shown_health_amount > maxHealth*0.8) - hud_used.healths.icon_state = "health1" - else if(shown_health_amount > maxHealth*0.6) - hud_used.healths.icon_state = "health2" - else if(shown_health_amount > maxHealth*0.4) - hud_used.healths.icon_state = "health3" - else if(shown_health_amount > maxHealth*0.2) - hud_used.healths.icon_state = "health4" - else if(shown_health_amount > 0) - hud_used.healths.icon_state = "health5" - else - hud_used.healths.icon_state = "health6" - else - hud_used.healths.icon_state = "health7" - -/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0) - if(hud_used && hud_used.internals) - hud_used.internals.icon_state = "internal[internal_state]" - -/mob/living/carbon/update_stat() - if(status_flags & GODMODE) - return - if(stat != DEAD) - if(health <= HEALTH_THRESHOLD_DEAD && !HAS_TRAIT(src, TRAIT_NODEATH)) - death() - return - if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (HAS_TRAIT(src, TRAIT_DEATHCOMA)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !HAS_TRAIT(src, TRAIT_NOHARDCRIT))) - stat = UNCONSCIOUS - blind_eyes(1) - if(combatmode) - toggle_combat_mode(TRUE, TRUE) - else - if(health <= crit_threshold && !HAS_TRAIT(src, TRAIT_NOSOFTCRIT)) - stat = SOFT_CRIT - if(combatmode) - toggle_combat_mode(TRUE, TRUE) - else - stat = CONSCIOUS - adjust_blindness(-1) - update_canmove() - update_damage_hud() - update_health_hud() - med_hud_set_status() - -//called when we get cuffed/uncuffed -/mob/living/carbon/proc/update_handcuffed() - if(handcuffed) - drop_all_held_items() - stop_pulling() - throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) - if(handcuffed.demoralize_criminals) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "handcuffed", /datum/mood_event/handcuffed) - else - clear_alert("handcuffed") - SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "handcuffed") - update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed. - update_inv_handcuffed() - update_hud_handcuffed() - -/mob/living/carbon/fully_heal(admin_revive = FALSE) - if(reagents) - reagents.clear_reagents() - var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) - if(B) - B.brain_death = FALSE - for(var/thing in diseases) - var/datum/disease/D = thing - if(D.severity != DISEASE_SEVERITY_POSITIVE) - D.cure(FALSE) - if(admin_revive) - regenerate_limbs() - regenerate_organs() - handcuffed = initial(handcuffed) - for(var/obj/item/restraints/R in contents) //actually remove cuffs from inventory - qdel(R) - update_handcuffed() - if(reagents) - reagents.addiction_list = list() - cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) - ..() - // heal ears after healing traits, since ears check TRAIT_DEAF trait - // when healing. - restoreEars() - -/mob/living/carbon/can_be_revived() - . = ..() - if(!getorgan(/obj/item/organ/brain) && (!mind || !mind.has_antag_datum(/datum/antagonist/changeling))) - return 0 - -/mob/living/carbon/harvest(mob/living/user) - if(QDELETED(src)) - return - var/organs_amt = 0 - for(var/X in internal_organs) - var/obj/item/organ/O = X - if(prob(50)) - organs_amt++ - O.Remove(src) - O.forceMove(drop_location()) - if(organs_amt) - to_chat(user, "You retrieve some of [src]\'s internal organs!") - -/mob/living/carbon/ExtinguishMob() - for(var/X in get_equipped_items()) - var/obj/item/I = X - I.acid_level = 0 //washes off the acid on our clothes - I.extinguish() //extinguishes our clothes - ..() - -/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") - var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, -FIRE_LAYER) - new_fire_overlay.appearance_flags = RESET_COLOR - overlays_standing[FIRE_LAYER] = new_fire_overlay - apply_overlay(FIRE_LAYER) - -/mob/living/carbon/fakefireextinguish() - remove_overlay(FIRE_LAYER) - - -/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) - C.visible_message("[src] is attempting to devour [C]!", \ - "[src] is attempting to devour you!") - if(!do_mob(src, C, devour_time)) - return - if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == INTENT_GRAB) - C.visible_message("[src] devours [C]!", \ - "[src] devours you!") - C.forceMove(src) - stomach_contents.Add(C) - log_combat(src, C, "devoured") - -/mob/living/carbon/proc/create_bodyparts() - var/l_arm_index_next = -1 - var/r_arm_index_next = 0 - for(var/X in bodyparts) - var/obj/item/bodypart/O = new X() - O.owner = src - bodyparts.Remove(X) - bodyparts.Add(O) - if(O.body_part == ARM_LEFT) - l_arm_index_next += 2 - O.held_index = l_arm_index_next //1, 3, 5, 7... - hand_bodyparts += O - else if(O.body_part == ARM_RIGHT) - r_arm_index_next += 2 - O.held_index = r_arm_index_next //2, 4, 6, 8... - hand_bodyparts += O - -/mob/living/carbon/do_after_coefficent() - . = ..() - var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) //Currently, only carbons or higher use mood, move this once that changes. - if(mood) - switch(mood.sanity) //Alters do_after delay based on how sane you are - if(SANITY_INSANE to SANITY_DISTURBED) - . *= 1.25 - if(SANITY_NEUTRAL to SANITY_GREAT) - . *= 0.90 - - -/mob/living/carbon/proc/create_internal_organs() - for(var/X in internal_organs) - var/obj/item/organ/I = X - I.Insert(src) - -/mob/living/carbon/proc/update_disabled_bodyparts() - for(var/B in bodyparts) - var/obj/item/bodypart/BP = B - BP.update_disabled() - -/mob/living/carbon/vv_get_dropdown() - . = ..() - . += "---" - .["Make AI"] = "?_src_=vars;[HrefToken()];makeai=[REF(src)]" - .["Modify bodypart"] = "?_src_=vars;[HrefToken()];editbodypart=[REF(src)]" - .["Modify organs"] = "?_src_=vars;[HrefToken()];editorgans=[REF(src)]" - .["Hallucinate"] = "?_src_=vars;[HrefToken()];hallucinate=[REF(src)]" - .["Give martial arts"] = "?_src_=vars;[HrefToken()];givemartialart=[REF(src)]" - .["Give brain trauma"] = "?_src_=vars;[HrefToken()];givetrauma=[REF(src)]" - .["Cure brain traumas"] = "?_src_=vars;[HrefToken()];curetraumas=[REF(src)]" - -/mob/living/carbon/can_resist() - return bodyparts.len > 2 && ..() - -/mob/living/carbon/proc/hypnosis_vulnerable()//unused atm, but added in case - if(HAS_TRAIT(src, TRAIT_MINDSHIELD)) - return FALSE - if(hallucinating()) - return TRUE - if(IsSleeping()) - return TRUE - if(HAS_TRAIT(src, TRAIT_DUMB)) - return TRUE - var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) - if(mood) - if(mood.sanity < SANITY_UNSTABLE) - return TRUE - -/mob/living/carbon/transfer_ckey(mob/new_mob, send_signal = TRUE) - if(combatmode) - toggle_combat_mode(TRUE, TRUE) - return ..() +/mob/living/carbon + blood_volume = BLOOD_VOLUME_NORMAL + +/mob/living/carbon/Initialize() + . = ..() + create_reagents(1000) + update_body_parts() //to update the carbon's new bodyparts appearance + GLOB.carbon_list += src + blood_volume = (BLOOD_VOLUME_NORMAL * blood_ratio) + +/mob/living/carbon/Destroy() + //This must be done first, so the mob ghosts correctly before DNA etc is nulled + . = ..() + + QDEL_LIST(internal_organs) + QDEL_LIST(stomach_contents) + QDEL_LIST(bodyparts) + QDEL_LIST(implants) + remove_from_all_data_huds() + QDEL_NULL(dna) + GLOB.carbon_list -= src + +/mob/living/carbon/initialize_footstep() + AddComponent(/datum/component/footstep, 0.6, 2) + +/mob/living/carbon/relaymove(mob/user, direction) + if(user in src.stomach_contents) + if(prob(40)) + if(prob(25)) + audible_message("You hear something rumbling inside [src]'s stomach...", \ + "You hear something rumbling.", 4,\ + "Something is rumbling inside your stomach!") + var/obj/item/I = user.get_active_held_item() + if(I && I.force) + var/d = rand(round(I.force / 4), I.force) + var/obj/item/bodypart/BP = get_bodypart(BODY_ZONE_CHEST) + if(BP.receive_damage(d, 0)) + update_damage_overlays() + visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ + "[user] attacks your stomach wall with the [I.name]!") + playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) + + if(prob(src.getBruteLoss() - 50)) + for(var/atom/movable/A in stomach_contents) + A.forceMove(drop_location()) + stomach_contents.Remove(A) + src.gib() + + +/mob/living/carbon/swap_hand(held_index) + if(!held_index) + held_index = (active_hand_index % held_items.len)+1 + + var/obj/item/item_in_hand = src.get_active_held_item() + if(item_in_hand) //this segment checks if the item in your hand is twohanded. + var/obj/item/twohanded/TH = item_in_hand + if(istype(TH)) + if(TH.wielded == 1) + to_chat(usr, "Your other hand is too busy holding [TH]") + return + var/oindex = active_hand_index + active_hand_index = held_index + if(hud_used) + var/obj/screen/inventory/hand/H + H = hud_used.hand_slots["[oindex]"] + if(H) + H.update_icon() + H = hud_used.hand_slots["[held_index]"] + if(H) + H.update_icon() + + +/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len + if(!selhand) + selhand = (active_hand_index % held_items.len)+1 + + if(istext(selhand)) + selhand = lowertext(selhand) + if(selhand == "right" || selhand == "r") + selhand = 2 + if(selhand == "left" || selhand == "l") + selhand = 1 + + if(selhand != active_hand_index) + swap_hand(selhand) + else + mode() // Activate held item + +/mob/living/carbon/attackby(obj/item/I, mob/user, params) + if(lying && surgeries.len) + if(user != src && (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 ..() + +/mob/living/carbon/throw_impact(atom/hit_atom, throwingdatum) + . = ..() + var/hurt = TRUE + if(istype(throwingdatum, /datum/thrownthing)) + var/datum/thrownthing/D = throwingdatum + if(iscyborg(D.thrower)) + var/mob/living/silicon/robot/R = D.thrower + if(!R.emagged) + hurt = FALSE + if(hit_atom.density && isturf(hit_atom)) + if(hurt) + Knockdown(20) + take_bodypart_damage(10) + if(iscarbon(hit_atom) && hit_atom != src) + var/mob/living/carbon/victim = hit_atom + if(victim.movement_type & FLYING) + return + if(hurt) + victim.take_bodypart_damage(10) + take_bodypart_damage(10) + victim.Knockdown(20) + Knockdown(20) + visible_message("[src] crashes into [victim], knocking them both over!",\ + "You violently crash into [victim]!") + playsound(src,'sound/weapons/punch1.ogg',50,1) + + +//Throwing stuff +/mob/living/carbon/proc/toggle_throw_mode() + if(stat) + return + if(in_throw_mode) + throw_mode_off() + else + throw_mode_on() + + +/mob/living/carbon/proc/throw_mode_off() + in_throw_mode = 0 + if(client && hud_used) + hud_used.throw_icon.icon_state = "act_throw_off" + + +/mob/living/carbon/proc/throw_mode_on() + in_throw_mode = 1 + if(client && hud_used) + hud_used.throw_icon.icon_state = "act_throw_on" + +/mob/proc/throw_item(atom/target) + SEND_SIGNAL(src, COMSIG_MOB_THROW, target) + return + +/mob/living/carbon/throw_item(atom/target) + throw_mode_off() + if(!target || !isturf(loc)) + return + if(istype(target, /obj/screen)) + return + + //CIT CHANGES - makes it impossible to throw while in stamina softcrit + 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 = src.get_active_held_item() + + var/atom/movable/thrown_thing + var/mob/living/throwable_mob + + if(istype(I, /obj/item/clothing/head/mob_holder)) + var/obj/item/clothing/head/mob_holder/holder = I + if(holder.held_mob) + throwable_mob = holder.held_mob + holder.release() + + if(!I || throwable_mob) + if(!throwable_mob && pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) + throwable_mob = pulling + + if(throwable_mob && !throwable_mob.buckled) + thrown_thing = throwable_mob + if(pulling) + stop_pulling() + if(HAS_TRAIT(src, TRAIT_PACIFISM)) + to_chat(src, "You gently let go of [throwable_mob].") + return + + adjustStaminaLossBuffered(25)//CIT CHANGE - throwing an entire person shall be very tiring + var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors + var/turf/end_T = get_turf(target) + if(start_T && end_T) + log_combat(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]") + + else if(!CHECK_BITFIELD(I.item_flags, ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP)) + thrown_thing = I + dropItemToGround(I) + + if(HAS_TRAIT(src, TRAIT_PACIFISM) && I.throwforce) + to_chat(src, "You set [I] down gently on the ground.") + return + + adjustStaminaLossBuffered(I.getweight()*2)//CIT CHANGE - throwing items shall be more tiring than swinging em. Doubly so. + + if(thrown_thing) + visible_message("[src] has thrown [thrown_thing].") + src.log_message("has thrown [thrown_thing]", LOG_ATTACK) + do_attack_animation(target, no_effect = 1) + playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) + newtonian_move(get_dir(target, src)) + thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src, null, null, null, random_turn) + + + +/mob/living/carbon/restrained(ignore_grab) + . = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)) + +/mob/living/carbon/proc/canBeHandcuffed() + return 0 + + +/mob/living/carbon/show_inv(mob/user) + user.set_machine(src) + var/dat = {" +
    + [name] +
    +
    Head: [(head && !(head.item_flags & ABSTRACT)) ? head : "Nothing"] +
    Mask: [(wear_mask && !(wear_mask.item_flags & ABSTRACT)) ? wear_mask : "Nothing"] +
    Neck: [(wear_neck && !(wear_neck.item_flags & ABSTRACT)) ? wear_neck : "Nothing"]"} + + for(var/i in 1 to held_items.len) + var/obj/item/I = get_item_for_held_index(i) + dat += "
    [get_held_index_name(i)]:[(I && !(I.item_flags & ABSTRACT)) ? I : "Nothing"]" + + dat += "
    Back: [back ? back : "Nothing"]" + + if(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank)) + dat += "
    [internal ? "Disable Internals" : "Set Internals"]" + + if(handcuffed) + dat += "
    Handcuffed" + if(legcuffed) + dat += "
    Legcuffed" + + dat += {" +
    +
    Close + "} + user << browse(dat, "window=mob[REF(src)];size=325x500") + onclose(user, "mob[REF(src)]") + +/mob/living/carbon/Topic(href, href_list) + ..() + //strip panel + if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(href_list["internal"]) + var/slot = text2num(href_list["internal"]) + var/obj/item/ITEM = get_item_by_slot(slot) + if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) + visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ + "[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") + if(do_mob(usr, src, POCKET_STRIP_DELAY)) + if(internal) + internal = null + update_internals_hud_icon(0) + else if(ITEM && istype(ITEM, /obj/item/tank)) + if((wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) || getorganslot(ORGAN_SLOT_BREATHING_TUBE)) + internal = ITEM + update_internals_hud_icon(1) + + visible_message("[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].", \ + "[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].") + + +/mob/living/carbon/fall(forced) + loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing + +/mob/living/carbon/is_muzzled() + return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) + +/mob/living/carbon/hallucinating() + if(hallucination) + return TRUE + else + return FALSE + +/mob/living/carbon/resist_buckle() + if(restrained()) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + var/buckle_cd = 600 + if(handcuffed) + var/obj/item/restraints/O = src.get_item_by_slot(SLOT_HANDCUFFED) + buckle_cd = O.breakouttime + visible_message("[src] attempts to unbuckle [p_them()]self!", \ + "You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)") + if(do_after(src, buckle_cd, 0, target = src)) + if(!buckled) + return + buckled.user_unbuckle_mob(src,src) + else + if(src && buckled) + to_chat(src, "You fail to unbuckle yourself!") + else + buckled.user_unbuckle_mob(src,src) + +/mob/living/carbon/resist_fire() + fire_stacks -= 5 + Knockdown(60, TRUE, TRUE) + spin(32,2) + visible_message("[src] rolls on the floor, trying to put [p_them()]self out!", \ + "You stop, drop, and roll!") + sleep(30) + if(fire_stacks <= 0) + visible_message("[src] has successfully extinguished [p_them()]self!", \ + "You extinguish yourself.") + ExtinguishMob() + return + +/mob/living/carbon/resist_restraints() + var/obj/item/I = null + var/type = 0 + if(handcuffed) + I = handcuffed + type = 1 + else if(legcuffed) + I = legcuffed + type = 2 + if(I) + if(type == 1) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + if(type == 2) + changeNext_move(CLICK_CD_RANGE) + last_special = world.time + CLICK_CD_RANGE + cuff_resist(I) + + +/mob/living/carbon/proc/cuff_resist(obj/item/I, breakouttime = 600, cuff_break = 0) + if(I.item_flags & BEING_REMOVED) + to_chat(src, "You're already attempting to remove [I]!") + return + I.item_flags |= BEING_REMOVED + breakouttime = I.breakouttime + if(!cuff_break) + visible_message("[src] attempts to remove [I]!") + to_chat(src, "You attempt to remove [I]... (This will take around [DisplayTimeText(breakouttime)] and you need to stand still.)") + if(do_after(src, breakouttime, 0, target = src)) + clear_cuffs(I, cuff_break) + else + to_chat(src, "You fail to remove [I]!") + + else if(cuff_break == FAST_CUFFBREAK) + breakouttime = 50 + visible_message("[src] is trying to break [I]!") + to_chat(src, "You attempt to break [I]... (This will take around 5 seconds and you need to stand still.)") + if(do_after(src, breakouttime, 0, target = src)) + clear_cuffs(I, cuff_break) + else + to_chat(src, "You fail to break [I]!") + + else if(cuff_break == INSTANT_CUFFBREAK) + clear_cuffs(I, cuff_break) + I.item_flags &= ~BEING_REMOVED + +/mob/living/carbon/proc/uncuff() + if (handcuffed) + var/obj/item/W = handcuffed + handcuffed = null + if (buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob(src) + update_handcuffed() + if (client) + client.screen -= W + if (W) + W.forceMove(drop_location()) + W.dropped(src) + if (W) + W.layer = initial(W.layer) + W.plane = initial(W.plane) + changeNext_move(0) + if (legcuffed) + var/obj/item/W = legcuffed + legcuffed = null + update_inv_legcuffed() + if (client) + client.screen -= W + if (W) + W.forceMove(drop_location()) + W.dropped(src) + if (W) + W.layer = initial(W.layer) + W.plane = initial(W.plane) + changeNext_move(0) + +/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) + if(!I.loc || buckled) + return + visible_message("[src] manages to [cuff_break ? "break" : "remove"] [I]!") + to_chat(src, "You successfully [cuff_break ? "break" : "remove"] [I].") + + if(cuff_break) + . = !((I == handcuffed) || (I == legcuffed)) + qdel(I) + return + + else + if(I == handcuffed) + handcuffed.forceMove(drop_location()) + handcuffed.dropped(src) + handcuffed = null + if(buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob(src) + update_handcuffed() + return + if(I == legcuffed) + legcuffed.forceMove(drop_location()) + legcuffed.dropped() + legcuffed = null + update_inv_legcuffed() + return + else + dropItemToGround(I) + return + return TRUE + +/mob/living/carbon/get_standard_pixel_y_offset(lying = 0) + if(lying) + return -6 + else + return initial(pixel_y) + +/mob/living/carbon/proc/accident(obj/item/I) + if(!I || (I.item_flags & ABSTRACT) || HAS_TRAIT(I, TRAIT_NODROP)) + return + + //dropItemToGround(I) CIT CHANGE - makes it so the item doesn't drop if the modifier rolls above 100 + + var/modifier = 0 + + if(HAS_TRAIT(src, TRAIT_CLUMSY)) + modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! + + //CIT CHANGES START HERE + else if(combatmode) + modifier += 50 + + if(modifier < 100) + dropItemToGround(I) + //END OF CIT CHANGES + + switch(rand(1,100)+modifier) //91-100=Nothing special happens + if(-INFINITY to 0) //attack yourself + I.attack(src,src) + if(1 to 30) //throw it at yourself + I.throw_impact(src) + if(31 to 60) //Throw object in facing direction + var/turf/target = get_turf(loc) + var/range = rand(2,I.throw_range) + for(var/i = 1; i < range; i++) + var/turf/new_turf = get_step(target, dir) + target = new_turf + if(new_turf.density) + break + I.throw_at(target,I.throw_range,I.throw_speed,src) + if(61 to 90) //throw it down to the floor + var/turf/target = get_turf(loc) + I.throw_at(target,I.throw_range,I.throw_speed,src) + +/mob/living/carbon/Stat() + ..() + if(statpanel("Status")) + var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) + if(vessel) + stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") + if(locate(/obj/item/assembly/health) in src) + stat(null, "Health: [health]") + + add_abilities_to_panel() + +/mob/living/carbon/attack_ui(slot) + if(!has_hand_for_held_index(active_hand_index)) + return 0 + return ..() + +/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = FALSE) + if(HAS_TRAIT(src, TRAIT_NOHUNGER)) + return 1 + + if(nutrition < 100 && !blood) + if(message) + visible_message("[src] dry heaves!", \ + "You try to throw up, but there's nothing in your stomach!") + if(stun) + Knockdown(200) + return 1 + + if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious + if(message) + visible_message("[src] throws up all over [p_them()]self!", \ + "You throw up all over yourself!") + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomitself) + distance = 0 + else + if(message) + visible_message("[src] throws up!", "You throw up!") + if(!isflyperson(src)) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomit) + if(stun) + Stun(80) + + playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) + var/turf/T = get_turf(src) + if(!blood) + nutrition -= lost_nutrition + adjustToxLoss(-3) + for(var/i=0 to distance) + if(blood) + if(T) + add_splatter_floor(T) + if(stun) + adjustBruteLoss(3) + else if(src.reagents.has_reagent("blazaam")) + if(T) + T.add_vomit_floor(src, VOMIT_PURPLE) + else + if(T) + T.add_vomit_floor(src, VOMIT_TOXIC)//toxic barf looks different + T = get_step(T, dir) + if (is_blocked_turf(T)) + break + return 1 + +/mob/living/carbon/proc/spew_organ(power = 5, amt = 1) + for(var/i in 1 to amt) + if(!internal_organs.len) + break //Guess we're out of organs! + var/obj/item/organ/guts = pick(internal_organs) + var/turf/T = get_turf(src) + guts.Remove(src) + guts.forceMove(T) + var/atom/throw_target = get_edge_target_turf(guts, dir) + guts.throw_at(throw_target, power, 4, src) + + +/mob/living/carbon/fully_replace_character_name(oldname,newname) + ..() + if(dna) + dna.real_name = real_name + +//Updates the mob's health from bodyparts and mob damage variables +/mob/living/carbon/updatehealth() + if(status_flags & GODMODE) + return + var/total_burn = 0 + var/total_brute = 0 + var/total_stamina = 0 + for(var/X in bodyparts) //hardcoded to streamline things a bit + var/obj/item/bodypart/BP = X + total_brute += (BP.brute_dam * BP.body_damage_coeff) + total_burn += (BP.burn_dam * BP.body_damage_coeff) + total_stamina += (BP.stamina_dam * BP.stam_damage_coeff) + health = round(maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute, DAMAGE_PRECISION) + staminaloss = round(total_stamina, DAMAGE_PRECISION) + update_stat() + if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) + become_husk("burn") + med_hud_set_health() + if(stat == SOFT_CRIT) + add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN) + else + remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE) + +/mob/living/carbon/update_stamina() + var/stam = getStaminaLoss() + if(stam > DAMAGE_PRECISION) + var/total_health = (health - stam) + if(total_health <= crit_threshold && !stat) + if(!IsKnockdown()) + to_chat(src, "You're too exhausted to keep going...") + Knockdown(100) + update_health_hud() + +/mob/living/carbon/update_sight() + if(!client) + return + if(stat == DEAD) + sight = (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_OBSERVER + return + + sight = initial(sight) + lighting_alpha = initial(lighting_alpha) + var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) + if(!E) + update_tint() + else + see_invisible = E.see_invisible + see_in_dark = E.see_in_dark + sight |= E.sight_flags + if(!isnull(E.lighting_alpha)) + lighting_alpha = E.lighting_alpha + if(HAS_TRAIT(src, TRAIT_NIGHT_VISION)) + lighting_alpha = min(LIGHTING_PLANE_ALPHA_NV_TRAIT, lighting_alpha) + see_in_dark = max(NIGHT_VISION_DARKSIGHT_RANGE, see_in_dark) + + if(client.eye && client.eye != src) + var/atom/A = client.eye + if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. + return + + if(glasses) + var/obj/item/clothing/glasses/G = glasses + sight |= G.vision_flags + see_in_dark = max(G.darkness_view, see_in_dark) + if(G.invis_override) + see_invisible = G.invis_override + else + see_invisible = min(G.invis_view, see_invisible) + if(!isnull(G.lighting_alpha)) + lighting_alpha = min(lighting_alpha, G.lighting_alpha) + if(dna) + for(var/X in dna.mutations) + var/datum/mutation/M = X + if(M.name == XRAY) + sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = max(see_in_dark, 8) + + if(see_override) + see_invisible = see_override + . = ..() + + +//to recalculate and update the mob's total tint from tinted equipment it's wearing. +/mob/living/carbon/proc/update_tint() + if(!GLOB.tinted_weldhelh) + return + tinttotal = get_total_tint() + if(tinttotal >= TINT_BLIND) + become_blind(EYES_COVERED) + else if(tinttotal >= TINT_DARKENED) + cure_blind(EYES_COVERED) + overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2) + else + cure_blind(EYES_COVERED) + clear_fullscreen("tint", 0) + +/mob/living/carbon/proc/get_total_tint() + . = 0 + if(istype(head, /obj/item/clothing/head)) + var/obj/item/clothing/head/HT = head + . += HT.tint + if(wear_mask) + . += wear_mask.tint + + var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) + if(E) + . += E.tint + + else + . += INFINITY + +/mob/living/carbon/get_permeability_protection(list/target_zones = list(HANDS,CHEST,GROIN,LEGS,FEET,ARMS,HEAD)) + var/list/tally = list() + for(var/obj/item/I in get_equipped_items()) + for(var/zone in target_zones) + if(I.body_parts_covered & zone) + tally["[zone]"] = max(1 - I.permeability_coefficient, target_zones["[zone]"]) + var/protection = 0 + for(var/key in tally) + protection += tally[key] + protection *= INVERSE(target_zones.len) + return protection + +//this handles hud updates +/mob/living/carbon/update_damage_hud() + + if(!client) + return + + if(health <= crit_threshold) + var/severity = 0 + switch(health) + if(-20 to -10) + severity = 1 + if(-30 to -20) + severity = 2 + if(-40 to -30) + severity = 3 + if(-50 to -40) + severity = 4 + if(-50 to -40) + severity = 5 + if(-60 to -50) + severity = 6 + if(-70 to -60) + severity = 7 + if(-90 to -70) + severity = 8 + if(-95 to -90) + severity = 9 + if(-INFINITY to -95) + severity = 10 + if(!InFullCritical()) + var/visionseverity = 4 + switch(health) + if(-8 to -4) + visionseverity = 5 + if(-12 to -8) + visionseverity = 6 + if(-16 to -12) + visionseverity = 7 + if(-20 to -16) + visionseverity = 8 + if(-24 to -20) + visionseverity = 9 + if(-INFINITY to -24) + visionseverity = 10 + overlay_fullscreen("critvision", /obj/screen/fullscreen/crit/vision, visionseverity) + else + clear_fullscreen("critvision") + overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity) + else + clear_fullscreen("crit") + clear_fullscreen("critvision") + + //Oxygen damage overlay + var/windedup = getOxyLoss() + getStaminaLoss() * 0.2 + if(windedup) + var/severity = 0 + switch(windedup) + if(10 to 20) + severity = 1 + if(20 to 25) + severity = 2 + if(25 to 30) + severity = 3 + if(30 to 35) + severity = 4 + if(35 to 40) + severity = 5 + if(40 to 45) + severity = 6 + if(45 to INFINITY) + severity = 7 + overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity) + else + clear_fullscreen("oxy") + + //Fire and Brute damage overlay (BSSR) + var/hurtdamage = getBruteLoss() + getFireLoss() + damageoverlaytemp + if(hurtdamage) + var/severity = 0 + switch(hurtdamage) + if(5 to 15) + severity = 1 + if(15 to 30) + severity = 2 + if(30 to 45) + severity = 3 + if(45 to 70) + severity = 4 + if(70 to 85) + severity = 5 + if(85 to INFINITY) + severity = 6 + overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity) + else + clear_fullscreen("brute") + +/mob/living/carbon/update_health_hud(shown_health_amount) + if(!client || !hud_used) + return + if(hud_used.healths) + if(stat != DEAD) + . = 1 + if(!shown_health_amount) + shown_health_amount = health + if(shown_health_amount >= maxHealth) + hud_used.healths.icon_state = "health0" + else if(shown_health_amount > maxHealth*0.8) + hud_used.healths.icon_state = "health1" + else if(shown_health_amount > maxHealth*0.6) + hud_used.healths.icon_state = "health2" + else if(shown_health_amount > maxHealth*0.4) + hud_used.healths.icon_state = "health3" + else if(shown_health_amount > maxHealth*0.2) + hud_used.healths.icon_state = "health4" + else if(shown_health_amount > 0) + hud_used.healths.icon_state = "health5" + else + hud_used.healths.icon_state = "health6" + else + hud_used.healths.icon_state = "health7" + +/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0) + if(hud_used && hud_used.internals) + hud_used.internals.icon_state = "internal[internal_state]" + +/mob/living/carbon/update_stat() + if(status_flags & GODMODE) + return + if(stat != DEAD) + if(health <= HEALTH_THRESHOLD_DEAD && !HAS_TRAIT(src, TRAIT_NODEATH)) + death() + return + if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (HAS_TRAIT(src, TRAIT_DEATHCOMA)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !HAS_TRAIT(src, TRAIT_NOHARDCRIT))) + stat = UNCONSCIOUS + blind_eyes(1) + if(combatmode) + toggle_combat_mode(TRUE, TRUE) + else + if(health <= crit_threshold && !HAS_TRAIT(src, TRAIT_NOSOFTCRIT)) + stat = SOFT_CRIT + if(combatmode) + toggle_combat_mode(TRUE, TRUE) + else + stat = CONSCIOUS + adjust_blindness(-1) + update_canmove() + update_damage_hud() + update_health_hud() + med_hud_set_status() + +//called when we get cuffed/uncuffed +/mob/living/carbon/proc/update_handcuffed() + if(handcuffed) + drop_all_held_items() + stop_pulling() + throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) + if(handcuffed.demoralize_criminals) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "handcuffed", /datum/mood_event/handcuffed) + else + clear_alert("handcuffed") + SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "handcuffed") + update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed. + update_inv_handcuffed() + update_hud_handcuffed() + +/mob/living/carbon/fully_heal(admin_revive = FALSE) + if(reagents) + reagents.clear_reagents() + var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) + if(B) + B.brain_death = FALSE + for(var/thing in diseases) + var/datum/disease/D = thing + if(D.severity != DISEASE_SEVERITY_POSITIVE) + D.cure(FALSE) + if(admin_revive) + regenerate_limbs() + regenerate_organs() + handcuffed = initial(handcuffed) + for(var/obj/item/restraints/R in contents) //actually remove cuffs from inventory + qdel(R) + update_handcuffed() + if(reagents) + reagents.addiction_list = list() + cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) + ..() + // heal ears after healing traits, since ears check TRAIT_DEAF trait + // when healing. + restoreEars() + +/mob/living/carbon/can_be_revived() + . = ..() + if(!getorgan(/obj/item/organ/brain) && (!mind || !mind.has_antag_datum(/datum/antagonist/changeling))) + return 0 + +/mob/living/carbon/harvest(mob/living/user) + if(QDELETED(src)) + return + var/organs_amt = 0 + for(var/X in internal_organs) + var/obj/item/organ/O = X + if(prob(50)) + organs_amt++ + O.Remove(src) + O.forceMove(drop_location()) + if(organs_amt) + to_chat(user, "You retrieve some of [src]\'s internal organs!") + +/mob/living/carbon/ExtinguishMob() + for(var/X in get_equipped_items()) + var/obj/item/I = X + I.acid_level = 0 //washes off the acid on our clothes + I.extinguish() //extinguishes our clothes + ..() + +/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") + var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, -FIRE_LAYER) + new_fire_overlay.appearance_flags = RESET_COLOR + overlays_standing[FIRE_LAYER] = new_fire_overlay + apply_overlay(FIRE_LAYER) + +/mob/living/carbon/fakefireextinguish() + remove_overlay(FIRE_LAYER) + + +/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) + C.visible_message("[src] is attempting to devour [C]!", \ + "[src] is attempting to devour you!") + if(!do_mob(src, C, devour_time)) + return + if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == INTENT_GRAB) + C.visible_message("[src] devours [C]!", \ + "[src] devours you!") + C.forceMove(src) + stomach_contents.Add(C) + log_combat(src, C, "devoured") + +/mob/living/carbon/proc/create_bodyparts() + var/l_arm_index_next = -1 + var/r_arm_index_next = 0 + for(var/X in bodyparts) + var/obj/item/bodypart/O = new X() + O.owner = src + bodyparts.Remove(X) + bodyparts.Add(O) + if(O.body_part == ARM_LEFT) + l_arm_index_next += 2 + O.held_index = l_arm_index_next //1, 3, 5, 7... + hand_bodyparts += O + else if(O.body_part == ARM_RIGHT) + r_arm_index_next += 2 + O.held_index = r_arm_index_next //2, 4, 6, 8... + hand_bodyparts += O + +/mob/living/carbon/do_after_coefficent() + . = ..() + var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) //Currently, only carbons or higher use mood, move this once that changes. + if(mood) + switch(mood.sanity) //Alters do_after delay based on how sane you are + if(SANITY_INSANE to SANITY_DISTURBED) + . *= 1.25 + if(SANITY_NEUTRAL to SANITY_GREAT) + . *= 0.90 + + +/mob/living/carbon/proc/create_internal_organs() + for(var/X in internal_organs) + var/obj/item/organ/I = X + I.Insert(src) + +/mob/living/carbon/proc/update_disabled_bodyparts() + for(var/B in bodyparts) + var/obj/item/bodypart/BP = B + BP.update_disabled() + +/mob/living/carbon/vv_get_dropdown() + . = ..() + . += "---" + .["Make AI"] = "?_src_=vars;[HrefToken()];makeai=[REF(src)]" + .["Modify bodypart"] = "?_src_=vars;[HrefToken()];editbodypart=[REF(src)]" + .["Modify organs"] = "?_src_=vars;[HrefToken()];editorgans=[REF(src)]" + .["Hallucinate"] = "?_src_=vars;[HrefToken()];hallucinate=[REF(src)]" + .["Give martial arts"] = "?_src_=vars;[HrefToken()];givemartialart=[REF(src)]" + .["Give brain trauma"] = "?_src_=vars;[HrefToken()];givetrauma=[REF(src)]" + .["Cure brain traumas"] = "?_src_=vars;[HrefToken()];curetraumas=[REF(src)]" + +/mob/living/carbon/can_resist() + return bodyparts.len > 2 && ..() + +/mob/living/carbon/proc/hypnosis_vulnerable()//unused atm, but added in case + if(HAS_TRAIT(src, TRAIT_MINDSHIELD)) + return FALSE + if(hallucinating()) + return TRUE + if(IsSleeping()) + return TRUE + if(HAS_TRAIT(src, TRAIT_DUMB)) + return TRUE + var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) + if(mood) + if(mood.sanity < SANITY_UNSTABLE) + return TRUE + +/mob/living/carbon/transfer_ckey(mob/new_mob, send_signal = TRUE) + 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 9dcc5276e5..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) - 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) @@ -279,6 +282,12 @@ M.visible_message("[M] shakes [src] trying to get [p_them()] up!", \ "You shake [src] trying to get [p_them()] up!") + else if(check_zone(M.zone_selected) == "mouth") // I ADDED BOOP-EH-DEH-NOSEH - Jon + M.visible_message( \ + "[M] boops [src]'s nose.", \ + "You boop [src] on the nose.", ) + playsound(src, 'sound/items/Nose_boop.ogg', 50, 0) + else if(check_zone(M.zone_selected) == "head") var/mob/living/carbon/human/H = src var/datum/species/pref_species = H.dna.species @@ -316,18 +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 if(check_zone(M.zone_selected) == "mouth") // I ADDED BOOP-EH-DEH-NOSEH - Jon - M.visible_message( \ - "[M] boops [src]'s nose.", \ - "You boop [src] on the nose.", ) - playsound(src, 'sound/items/Nose_boop.ogg', 50, 0) - + 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 042b4af4fe..2b1d6afc4f 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) - 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 92ad87f6b5..56ef4fe24a 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 722c984309..3c5c5e3518 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) - 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 0444458841..ac67d16d35 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 724abea214..109c7b4636 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 c0a9a2082f..ee770fc2ca 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 3cbf036270..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) @@ -286,11 +286,13 @@ if(health < maxHealth) adjustBruteLoss(-8) //Fast life regen for(var/obj/item/reagent_containers/food/snacks/donut/D in range(1, src)) //Frosts nearby donuts! - if(!D.is_frosted) - D.frost_donut() + if(!D.is_decorated) + 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/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index b2971e8d01..2679c68b52 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -197,7 +197,7 @@ density = FALSE speak_chance = 2 turns_per_move = 2 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 1) response_help = "pets" response_disarm = "gently pushes aside" response_harm = "kicks" @@ -246,7 +246,7 @@ density = FALSE speak_chance = 2 turns_per_move = 3 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 2) var/egg_type = /obj/item/reagent_containers/food/snacks/egg var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat response_help = "pets" 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 49514d0d12..914d38022f 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(A)) //if the summoner matches don't hurt them blocked = TRUE - if(ishuman(A)) - var/mob/living/carbon/human/H = A - 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 8c2fbef15e..c6386540f7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -25,7 +25,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 05dec578bd..03d2365016 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/mining_mobs/necropolis_tendril.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm index e3c81b2639..27ebb71c0e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm @@ -91,5 +91,5 @@ visible_message("The tendril falls inward, the ground around it widening into a yawning chasm!") for(var/turf/T in range(2,src)) if(!T.density) - T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland) + T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland, flags = CHANGETURF_INHERIT_AIR) qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 514edf896b..a5e3cd8120 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 d1e10ea693..439ea5b2bf 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 2d5424e845..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) @@ -566,9 +567,9 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/proc/is_muzzled() return 0 -/mob/Stat() - ..() - +/mob/Stat(delayoverride) + . = ..() + var/statdelay = delayoverride || 10 if(statpanel("Status")) if (client) stat(null, "Ping: [round(client.lastping, 1)]ms (Average: [round(client.avgping, 1)]ms)") @@ -576,7 +577,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) var/datum/map_config/cached = SSmapping.next_map_config if(cached) stat(null, "Next Map: [cached.map_name]") - stat(null, "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]") + stat(null, "Round ID: [GLOB.round_id || "NULL"]") stat(null, "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]") stat(null, "Round Time: [WORLDTIME2TEXT("hh:mm:ss")]") stat(null, "Station Time: [STATION_TIME_TIMESTAMP("hh:mm:ss")]") @@ -586,8 +587,9 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) if(ETA) stat(null, "[ETA] [SSshuttle.emergency.getTimerStr()]") - if(client && client.holder) + if(client?.holder) if(statpanel("MC")) + statdelay = 0 //It's assumed that if you're doing this you are doing debug stuff, don't do ioditic things. var/turf/T = get_turf(client.eye) stat("Location:", COORD(T)) stat("CPU:", "[world.cpu]") @@ -613,6 +615,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) GLOB.ahelp_tickets.stat_entry() if(length(GLOB.sdql2_queries)) if(statpanel("SDQL2")) + statdelay = 0 //It's assumed that if you're doing this you are doing debug stuff, don't do ioditic things. stat("Access Global SDQL2 List", GLOB.sdql2_vv_statobj) for(var/i in GLOB.sdql2_queries) var/datum/SDQL2_query/Q = i @@ -636,14 +639,13 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) if(A.IsObscured()) continue statpanel(listed_turf.name, null, A) - - if(mind) add_spells_to_statpanel(mind.spell_list) var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) add_stings_to_statpanel(changeling.purchasedpowers) add_spells_to_statpanel(mob_spell_list) + sleep(statdelay) /mob/proc/add_spells_to_statpanel(list/spells) for(var/obj/effect/proc_holder/spell/S in spells) @@ -810,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 @@ -976,4 +958,4 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/setMovetype(newval) . = ..() - update_movespeed(FALSE) \ No newline at end of file + update_movespeed(FALSE) diff --git a/code/modules/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 1a836c06cf..04d47da56e 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -372,7 +372,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 2ca6ce2611..f3f7e45378 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) 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 f130294b88..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" @@ -515,7 +532,7 @@ name = "Buzz Fuzz" description = "~A Hive of Flavour!~ NOTICE: Addicting." id = "buzz_fuzz" - addiction_threshold = 14 + addiction_threshold = 26 //A can and a sip color = "#8CFF00" // rgb: 135, 255, 0 taste_description = "carbonated honey and pollen" glass_icon_state = "buzz_fuzz" @@ -523,8 +540,8 @@ glass_desc = "Stinging with flavour." /datum/reagent/consumable/buzz_fuzz/on_mob_life(mob/living/carbon/M) - M.reagents.add_reagent("sugar",2) - if(prob(25)) + M.reagents.add_reagent("sugar",1) + if(prob(5)) M.reagents.add_reagent("honey",1) ..() @@ -951,3 +968,21 @@ to_chat(M, "[pick("Headpats feel nice.", "Backrubs would be nice.", "Mew")]") M.adjustArousalLoss(5) ..() + +/datum/reagent/consumable/monkey_energy + name = "Monkey Energy" + id = "monkey_energy" + description = "The only drink that will make you unleash the ape." + color = "#f39b03" // rgb: 243, 155, 3 + taste_description = "barbecue and nostalgia" + glass_icon_state = "monkey_energy_glass" + glass_name = "glass of Monkey Energy" + glass_desc = "You can unleash the ape, but without the pop of the can?" + +/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M) + M.Jitter(20) + M.dizziness +=1 + M.drowsyness = 0 + M.AdjustSleeping(-40, FALSE) + M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) + ..() 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 4d02706a3c..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) @@ -767,7 +767,7 @@ /* //We don't have ethereals here, so I'll just comment it out. /datum/reagent/consumable/liquidelectricity/reaction_mob(mob/living/M, method=TOUCH, reac_volume) //can't be on life because of the way blood works. if((method == INGEST || method == INJECT || method == PATCH) && iscarbon(M)) - + var/mob/living/carbon/C = M var/obj/item/organ/stomach/ethereal/stomach = C.getorganslot(ORGAN_SLOT_STOMACH) if(istype(stomach)) @@ -799,6 +799,16 @@ ..() . = TRUE +/datum/reagent/consumable/caramel + name = "Caramel" + id = "caramel" + description = "Who would have guessed that heated sugar could be so delicious?" + nutriment_factor = 10 * REAGENTS_METABOLISM + color = "#D98736" + taste_mult = 2 + taste_description = "caramel" + reagent_state = SOLID + /datum/reagent/consumable/secretsauce name = "secret sauce" id = "secret_sauce" @@ -810,3 +820,27 @@ taste_mult = 100 can_synth = FALSE pH = 6.1 + +/datum/reagent/consumable/char + name = "Char" + id = "char" + description = "Essence of the grill. Has strange properties when overdosed." + reagent_state = LIQUID + nutriment_factor = 5 * REAGENTS_METABOLISM + color = "#C8C8C8" + taste_mult = 6 + taste_description = "smoke" + overdose_threshold = 25 + +/datum/reagent/consumable/char/overdose_process(mob/living/carbon/M) + if(prob(10)) + M.say(pick("I hate my grill.", "I just want to grill something right for once...", "I wish I could just go on my lawnmower and cut the grass.", "Yep, Tetris. That was a good game...")) + +/datum/reagent/consumable/bbqsauce + name = "BBQ Sauce" + id = "bbqsauce" + description = "Sweet, Smokey, Savory, and gets everywhere. Perfect for Grilling." + nutriment_factor = 5 * REAGENTS_METABOLISM + color = "#78280A" // rgb: 120 40, 10 + taste_mult = 2.5 //sugar's 1.5, capsacin's 1.5, so a good middle ground. + taste_description = "smokey sweetness" 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 0c41205c22..8a58424a7a 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -107,11 +107,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() @@ -205,22 +207,22 @@ /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 @@ -234,14 +236,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 . = ..() @@ -271,7 +273,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/shuttle/supply.dm b/code/modules/shuttle/supply.dm index c38cef5ea8..2ac6df7668 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -28,6 +28,11 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/item/hilbertshotel ))) +GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list( + /mob/living/simple_animal/revenant, + /mob/living/simple_animal/slaughter + ))) + /obj/docking_port/mobile/supply name = "supply shuttle" id = "supply" @@ -50,16 +55,27 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/docking_port/mobile/supply/canMove() if(is_station_level(z)) - return check_blacklist(shuttle_areas) + return check_blacklist(shuttle_areas, GLOB.blacklisted_cargo_types - GLOB.cargo_shuttle_leave_behind_typecache) return ..() -/obj/docking_port/mobile/supply/proc/check_blacklist(areaInstances) +/obj/docking_port/mobile/supply/enterTransit() + var/list/leave_behind = list() + for(var/i in check_blacklist(shuttle_areas, GLOB.cargo_shuttle_leave_behind_typecache)) + var/atom/movable/AM = i + leave_behind[AM] = AM.loc + . = ..() + for(var/kicked in leave_behind) + var/atom/movable/victim = kicked + var/atom/oldloc = leave_behind[victim] + victim.forceMove(oldloc) + +/obj/docking_port/mobile/supply/proc/check_blacklist(areaInstances, list/typecache) for(var/place in areaInstances) var/area/shuttle/shuttle_area = place for(var/trf in shuttle_area) var/turf/T = trf for(var/a in T.GetAllContents()) - if(is_type_in_typecache(a, GLOB.blacklisted_cargo_types)) + if(is_type_in_typecache(a, typecache)) return FALSE if(istype(a, /obj/structure/closet))//Prevents eigenlockers from ending up at CC var/obj/structure/closet/c = a diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index 3ebded7487..38a2d5bddd 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/cola.dm b/code/modules/vending/cola.dm index 1c141dae25..502a25ba4e 100644 --- a/code/modules/vending/cola.dm +++ b/code/modules/vending/cola.dm @@ -17,7 +17,8 @@ /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6) premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1, /obj/item/reagent_containers/food/drinks/soda_cans/air = 1, - /obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1) + /obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1, + /obj/item/reagent_containers/food/drinks/soda_cans/monkey_energy = 1) refill_canister = /obj/item/vending_refill/cola /obj/item/vending_refill/cola diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index 5c092c3659..03241c4a86 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -14,6 +14,7 @@ /obj/item/seeds/chanter = 3, /obj/item/seeds/chili = 3, /obj/item/seeds/cocoapod = 3, + /obj/item/seeds/coconut = 3, /obj/item/seeds/coffee = 3, /obj/item/seeds/cotton = 3, /obj/item/seeds/corn = 3, diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index d65a507f96..894aecc600 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -135,7 +135,6 @@ /obj/item/clothing/gloves/fingerless = 3, /obj/item/clothing/head/soft/black = 3, /obj/item/clothing/mask/bandana/skull = 2) - premium = list(/obj/item/radio/headset/headset_rob = 2) //Cit change contraband = list(/obj/item/clothing/suit/hooded/techpriest = 2) refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe diff --git a/config/dynamic_config.txt b/config/dynamic_config.txt index 18c0d7827d..2ddebdf37a 100644 --- a/config/dynamic_config.txt +++ b/config/dynamic_config.txt @@ -40,6 +40,7 @@ DYNAMIC_WEIGHT WIZARD 1 DYNAMIC_WEIGHT CULT 3 DYNAMIC_WEIGHT NUCLEAR 3 DYNAMIC_WEIGHT REVOLUTION 2 +DYNAMIC_WEIGHT BLOODSUCKER 4 # All below are impossible-by-default DYNAMIC_WEIGHT EXTENDED 3 DYNAMIC_WEIGHT CLOCKWORK_CULT 3 @@ -49,18 +50,20 @@ DYNAMIC_WEIGHT MONKEY 3 DYNAMIC_WEIGHT METEOR 3 ## Midround antags -DYNAMIC_WEIGHT MIDROUND_TRAITOR 7 -DYNAMIC_WEIGHT MIDROUND_MALF_AI 8 -DYNAMIC_WEIGHT MIDROUND_WIZARD 9 -DYNAMIC_WEIGHT MIDROUND_NUCLEAR 9 -DYNAMIC_WEIGHT BLOB 8 -DYNAMIC_WEIGHT XENOS 8 -DYNAMIC_WEIGHT NIGHTMARE 8 -DYNAMIC_WEIGHT SENTIENT_DISEASE 6 -DYNAMIC_WEIGHT REVENANT 6 -DYNAMIC_WEIGHT SLAUGHTER_DEMON 4 -DYNAMIC_WEIGHT ABDUCTORS 8 -DYNAMIC_WEIGHT SPACE_NINJA 8 +DYNAMIC_WEIGHT MIDROUND_TRAITOR 9 +DYNAMIC_WEIGHT MIDROUND_MALF_AI 5 +DYNAMIC_WEIGHT MIDROUND_WIZARD 4 +DYNAMIC_WEIGHT MIDROUND_NUCLEAR 2 +DYNAMIC_WEIGHT BLOB 2 +DYNAMIC_WEIGHT XENOS 2 +DYNAMIC_WEIGHT NIGHTMARE 3 +DYNAMIC_WEIGHT SENTIENT_DISEASE 4 +DYNAMIC_WEIGHT REVENANT 2 +DYNAMIC_WEIGHT SLAUGHTER_DEMON 1 +DYNAMIC_WEIGHT ABDUCTORS 3 +DYNAMIC_WEIGHT SPACE_NINJA 3 + +## Events DYNAMIC_WEIGHT SPIDERS 5 DYNAMIC_WEIGHT VENTCLOG_NORMAL 3 DYNAMIC_WEIGHT VENTCLOG_THREATENING 3 @@ -88,6 +91,7 @@ DYNAMIC_WEIGHT RADIATION_STORM 1 ## Latejoin antags DYNAMIC_WEIGHT LATEJOIN_TRAITOR 7 DYNAMIC_WEIGHT LATEJOIN_REVOLUTION 2 +DYNAMIC_WEIGHT LATEJOIN_BLOODSUCKER 4 ## Threat cost. This is decreased from the mode's threat when the rule is executed. DYNAMIC_COST TRAITOR 10 @@ -98,7 +102,7 @@ DYNAMIC_COST WIZARD 30 DYNAMIC_COST CULT 35 DYNAMIC_COST NUCLEAR 45 DYNAMIC_COST REVOLUTION 40 -# All below are impossible-by-default +DYNAMIC_cOST BLOODSUCKER 15 DYNAMIC_COST EXTENDED 0 DYNAMIC_COST CLOCKWORK_CULT 35 DYNAMIC_COST CLOWNOPS 40 @@ -112,13 +116,15 @@ DYNAMIC_COST MIDROUND_MALF_AI 35 DYNAMIC_COST MIDROUND_WIZARD 20 DYNAMIC_COST MIDROUND_NUCLEAR 35 DYNAMIC_COST BLOB 10 -DYNAMIC_COST XENOS 10 +DYNAMIC_COST XENOS 20 DYNAMIC_COST NIGHTMARE 10 DYNAMIC_COST SENTIENT_DISEASE 5 DYNAMIC_COST REVENANT 5 DYNAMIC_COST SLAUGHTER_DEMON 15 DYNAMIC_COST ABDUCTORS 10 DYNAMIC_COST SPACE_NINJA 15 + +## Events DYNAMIC_COST SPIDERS 10 DYNAMIC_COST VENTCLOG_NORMAL 2 DYNAMIC_COST VENTCLOG_THREATENING 5 @@ -146,6 +152,7 @@ DYNAMIC_COST RADIATION_STORM 3 ## Latejoin antags DYNAMIC_COST LATEJOIN_TRAITOR 5 DYNAMIC_COST LATEJOIN_REVOLUTION 20 +DYNAMIC_COST LATEJOIN_BLOODSUCKER 10 ## Rule will not be generated with threat levels below requirement at a pop value. Pop values are determined by dynamic's pop-per-requirement. ## By default it's 0-8, 9-17, 18-26, 27-35, 36-44, 45-53, 54-60, 61-69, 70-78, 79+. @@ -153,13 +160,12 @@ DYNAMIC_COST LATEJOIN_REVOLUTION 20 DYNAMIC_REQUIREMENTS TRAITOR 50 50 50 50 50 50 50 50 50 50 DYNAMIC_REQUIREMENTS TRAITORBRO 101 101 101 101 101 101 101 101 101 101 DYNAMIC_REQUIREMENTS CHANGELING 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS WIZARD 101 101 101 60 50 50 50 50 50 50 +DYNAMIC_REQUIREMENTS WIZARD 101 101 60 60 50 50 50 50 50 50 DYNAMIC_REQUIREMENTS CULT 101 101 101 60 50 50 50 50 50 50 DYNAMIC_REQUIREMENTS NUCLEAR 101 101 101 60 50 50 50 50 50 50 DYNAMIC_REQUIREMENTS REVOLUTION 101 101 101 60 50 50 50 50 50 50 -# All below are impossible-by-default DYNAMIC_REQUIREMENTS EXTENDED 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS CLOCKWORK_CULT 101 101 101 80 70 60 50 50 50 50 +DYNAMIC_REQUIREMENTS CLOCKWORK_CULT 101 101 101 70 60 60 50 50 50 50 DYNAMIC_REQUIREMENTS CLOWNOPS 101 101 101 101 101 101 101 101 101 101 DYNAMIC_REQUIREMENTS DEVIL 101 101 101 101 101 101 101 101 101 101 DYNAMIC_REQUIREMENTS MONKEY 101 101 101 101 101 101 101 101 101 101 @@ -168,24 +174,22 @@ DYNAMIC_REQUIREMENTS METEOR 101 101 101 101 101 101 101 101 101 101 ## Midround antags DYNAMIC_REQUIREMENTS MIDROUND_TRAITOR 30 25 20 15 15 15 15 15 15 15 DYNAMIC_REQUIREMENTS MIDROUND_MALF_AI 101 101 70 50 50 50 40 30 30 30 -DYNAMIC_REQUIREMENTS MIDROUND_WIZARD 90 90 70 50 50 50 50 40 30 30 +DYNAMIC_REQUIREMENTS MIDROUND_WIZARD 90 90 60 40 30 30 30 30 30 30 DYNAMIC_REQUIREMENTS MIDROUND_NUCLEAR 90 90 90 80 70 60 50 40 40 40 DYNAMIC_REQUIREMENTS BLOB 101 101 101 80 60 50 50 50 50 50 DYNAMIC_REQUIREMENTS XENOS 101 101 101 70 50 50 50 50 50 50 DYNAMIC_REQUIREMENTS NIGHTMARE 101 101 101 70 50 40 20 15 15 15 DYNAMIC_REQUIREMENTS SENTIENT_DISEASE 30 30 20 20 15 10 10 10 10 5 DYNAMIC_REQUIREMENTS REVENANT 30 30 30 30 20 15 15 15 15 15 -DYNAMIC_REQUIREMENTS SLAUGHTER_DEMON 101 101 101 90 80 70 60 50 40 30 +DYNAMIC_REQUIREMENTS SLAUGHTER_DEMON 101 101 101 90 80 70 60 50 50 50 DYNAMIC_REQUIREMENTS ABDUCTORS 80 80 70 50 40 30 30 20 15 15 DYNAMIC_REQUIREMENTS SPACE_NINJA 101 101 101 90 80 70 60 50 40 30 + +## Events DYNAMIC_REQUIREMENTS SPIDERS 70 60 50 50 40 40 40 30 20 15 -DYNAMIC_REQUIREMENTS VENTCLOG_NORMAL 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS VENTCLOG_THREATENING 15 15 15 15 15 15 15 15 15 15 -DYNAMIC_REQUIREMENTS VENTCLOG_CATASTROPHIC 30 30 30 30 30 30 30 30 30 30 +DYNAMIC_REQUIREMENTS VENTCLOG 5 5 5 5 5 5 5 5 5 5 DYNAMIC_REQUIREMENTS ION_STORM 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS METEOR_WAVE_NORMAL 60 50 40 30 30 30 30 30 30 30 -DYNAMIC_REQUIREMENTS METEOR_WAVE_THREATENING 80 70 60 50 40 40 40 40 40 40 -DYNAMIC_REQUIREMENTS METEOR_WAVE_CATASTROPHIC 101 100 90 80 70 60 50 50 50 50 +DYNAMIC_REQUIREMENTS METEOR_WAVE 60 50 40 30 30 30 30 30 30 30 DYNAMIC_REQUIREMENTS PIRATES 70 60 50 50 40 40 40 30 20 15 DYNAMIC_REQUIREMENTS ANOMALY_BLUESPACE 5 5 5 5 5 5 5 5 5 5 DYNAMIC_REQUIREMENTS ANOMALY_FLUX 5 5 5 5 5 5 5 5 5 5 @@ -205,6 +209,7 @@ DYNAMIC_REQUIREMENTS RADIATION_STORM 5 5 5 5 5 5 5 5 5 5 ## Latejoin antags DYNAMIC_REQUIREMENTS LATEJOIN_TRAITOR 40 30 20 15 15 15 15 15 15 15 DYNAMIC_REQUIREMENTS LATEJOIN_REVOLUTION 101 101 70 40 40 40 40 40 40 40 +DYNAMIC_REQUIREMENTS LATEJOIN_BLOODSUCKER 40 30 20 15 15 15 15 15 15 15 ## An alternative, static requirement used instead when pop is over mode's high_pop_limit. DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITOR 50 @@ -236,14 +241,12 @@ DYNAMIC_HIGH_POPULATION_REQUIREMENT REVENANT 15 DYNAMIC_HIGH_POPULATION_REQUIREMENT SLAUGHTER_DEMON 30 DYNAMIC_HIGH_POPULATION_REQUIREMENT ABDUCTORS 15 DYNAMIC_HIGH_POPULATION_REQUIREMENT SPACE_NINJA 30 + +## Events DYNAMIC_HIGH_POPULATION_REQUIREMENT SPIDERS 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG_NORMAL 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG_THREATENING 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG_CATASTROPHIC 30 +DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG 5 DYNAMIC_HIGH_POPULATION_REQUIREMENT ION_STORM 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE_NORMAL 30 -DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE_THREATENING 40 -DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE_CATASTROPHIC 50 +DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE 30 DYNAMIC_HIGH_POPULATION_REQUIREMENT PIRATES 15 DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_BLUESPACE 5 DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_FLUX 5 @@ -263,6 +266,7 @@ DYNAMIC_HIGH_POPULATION_REQUIREMENT RADIATION_STORM 5 ## Latejoin antags DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_TRAITOR 15 DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_REVOLUTION 50 +DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_BLOODSUCKER 15 ## Dynamic traitor stuff diff --git a/config/game_options.txt b/config/game_options.txt index 3b031bb5b9..34c8ca48fd 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -574,3 +574,8 @@ MONKEYCAP 64 #Replaces standard extended/secret dichotomy with extended and calm/chaotic votes for dynamic. DYNAMIC_VOTING + +## Choose which Engine to start the round with, comment to remove an Engine from the rotation +BOX_RANDOM_ENGINE Engine SM +BOX_RANDOM_ENGINE Engine Tesla +BOX_RANDOM_ENGINE Engine Singulo \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index 8eabba83df..21cade10d2 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,328 @@ -->
    +

    30 December 2019

    +

    AnturK updated:

    +
      +
    • Fixed ranged syndicate mobs stormtrooper training.
    • +
    +

    Arturlang updated:

    +
      +
    • Adds Bloodsuckers, beware.
    • +
    +

    BlueWildrose updated:

    +
      +
    • Fixed stargazers being unable to link to themselves if mindshielded or if holding psionic shielding devices (tinfoil hats) when the species is set.
    • +
    • Fixes non-roundstart slimes being unable to wag their tail.
    • +
    +

    Commandersand updated:

    +
      +
    • added two words to clown filter
    • +
    • Added new things to loadouts, check em
    • +
    +

    DeltaFire15 updated:

    +
      +
    • Clock cult kindle no longer cares about oxygen damage
    • +
    • changed mecha internals access for some special mechs.
    • +
    • no more mech maintenance access for engineers.
    • +
    • All heads of staff can now message CC
    • +
    • Removes a magicnumber
    • +
    • Rebalanced cult vs cult stun effects to debuff instead of stun
    • +
    +

    Detective-Google updated:

    +
      +
    • short hair 80's is no longer jank
    • +
    +

    Fermis updated:

    +
      +
    • tweaked how super bases/acids work but limiting them
    • +
    +

    Fikou updated:

    +
      +
    • the windup toolbox now has some more "realistic" sounds
    • +
    • the windup toolbox now rumbles again
    • +
    +

    Ghommie updated:

    +
      +
    • Fixed hulks, sleeping carp users, pacifists and people with chunky fingers being able to unrestrictly use gun and pneumatic cannon circuit assemblies.
    • +
    • Fixed gun circuit assemblies being only usable by human mobs.
    • +
    • Doubled the locomotion circuit external cooldown, thus halving the movable assemblies' movespeed.
    • +
    • Made wooden cabinet/closets... actually made of wood.
    • +
    • Wooden cabinets are now deconstructable with a screwdriver.
    • +
    • Deconstruction of large crates and other closet subtypes deconstructable with tools other than the welder is no longer instant.
    • +
    • You shouldn't be able to target objects you can't see (excluding darkness) with the ARCD and RLD
    • +
    • The admin RCD is ranged too, just like the ARCD.
    • +
    • Fixed welding, thirteen loko, welding and wraith spectacles not blinding people as expected. Thank you all whomst reported this issue in the suggestions box channel instead of the github repository's issues section, very smart!
    • +
    • Fixed on_mob eyes overlays not updating properly in certain cases.
    • +
    • Fixed deconversion from bloodshot eyes blood cult resetting your eyes' color to pitch black instead of their previous color, more or less.
    • +
    • Spinfusor nerf: Upped the casing and ammo box size by one step, removed the projectile's dismemberment value (explosions can still rip a limb or two off), halved the ammo box capacity, reduced the spinfusor ammo supply pack contents from 32 to 8, removed the casing's ability to explode when thrown.
    • +
    • Fixes bubblegum's death not unlocking the arena shuttle buyment.
    • +
    • Fixed alien tech node not being unlockable with subtypes of the accepted items.
    • +
    • Fixed reactive armor onmob overlays not updating when toggled and reactive teleport armor still using forceMove() instead of do_teleport()
    • +
    • Fixed space hermit asteroid rocks unintendedly spawning airless asteroid turf when mined, save for the perimeter.
    • +
    • Fixes reviver implant having been a crapshot ever since soft-crit was introduced years ago.
    • +
    • Added a "convalescence" time (about 15 seconds) after the user is out of unconsciousbess/crit to ensure they are properly stabilized.
    • +
    • Added a 15 minutes hardcap for accumulated revive cooldown (equivalent to 150 points of brute or burn healed) above which the implant starts cooling down regardless of user's conditions.
    • +
    • Fixed AI core displays I may have broken with my coding extravaganza.
    • +
    • Blue, Amber and Red security alert sounds should be half as loud now.
    • +
    • Buffed clown ops by removing their clumsiness and adding a new trait to be used in place of several clown role checks.
    • +
    • Clown ops too also suffer from not holding or wearing clown shoes now.
    • +
    • Fixed a few holo barriers lacking transparency.
    • +
    • Fixed character setup preview bodyparts not displaying correctly most of times.
    • +
    • Fixed character appearance preview displaying the mannequin in job attire instead of undergarments.
    • +
    • Fixed raven's shuttle computer not being of the emergency shuttle type.
    • +
    • Blood bank generators can now be anchored and unanchored now.
    • +
    • Ghost mentors can now orbit around the target instead of setting their view to theirs'.
    • +
    • Fixes a ghostchat eavesdropping exploit concerning VR.
    • +
    • Fixes VR deaths being broadcasted in deadchat.
    • +
    • Fixed a few pill bottle issues with the ChemMaster.
    • +
    • Fixes a few negative quirks not being properly removed when deleted.
    • +
    • Phobia and mute quirks are no longer cheesed by brain surgery grade healing or medicines.
    • +
    • Fixed double-flavour (and bland custom) ice creams.
    • +
    • Fixed Pubbystation's wall Nanomeds being inconsistent with other stations'.
    • +
    • dextrous simplemobs can now swap action intent with 1, 2, 3, 4 now. Just like humies, ayys and monkys.
    • +
    • Stops humanoids whose skin_tone variable is set to "albino" from showing up as pale when examined should their species not use skintones anyway.
    • +
    • Removed the old (almost) unused roboticist encryption key and headset.
    • +
    • Fixed goose meat.
    • +
    • Fixed a little door assembly glass dupe exploit
    • +
    • Fixed AI holopad speech text being small and whispers that in multiple exclamation marks echo through multiple areas.
    • +
    • Removed literally atrocious polka dotted accessories. They were even more atrocious than the yellow horrible tie.
    • +
    +

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

    +
      +
    • Fixed light eaters not burning out borg lamplights and flashes. fix Fixed light eater not affecting open turfs emitting lights such as light tiles and fairy grass.
    • +
    • Fixed an empty reference about light eater armblade disintegration after Heart of Darkness removal.
    • +
    +

    Ghommie, Skogol updated:

    +
      +
    • refactored altclick interaction to allow alt-click interactable objects to parent call without forcing the turf contents stat menu open.
    • +
    • Alt clicking will no longer show turf contents for items inside bags etc.
    • +
    • Alt clicking the source of your turf contents stat menu will now close said menu.
    • +
    +

    GrayRachnid updated:

    +
      +
    • fixes consistency
    • +
    +

    Hatterhat updated:

    +
      +
    • Regenerative nanites, a "chemical" used in the combat stimulant injector. Actually quite stimulating, and not bad in a pinch for a nuclear operative. Check the Combat Medic Kit!
    • +
    • The Combat Medic Kit now has an advanced health analyzer and medisprays instead of patches and a chloral syringe.
    • +
    • The Advanced Syndicate Surgery Duffelbag or whatever it was doesn't get the better injector, because nobody uses it and so nobody's bothered to update it.
    • +
    • .357 speedloaders can now be printed with the Advanced Illegal Ballistics node on the tech tree!
    • +
    • okay so i may have given the .357 an extra speedloader at the same cost but it comes in a box now
    • +
    +

    ItzGabby updated:

    +
      +
    • Fixed AltClick on polychromic collars so they actually work now.
    • +
    +

    KeRSedChaplain updated:

    +
      +
    • Extends the file "deltakalaxon.ogg" to a 38 second .ogg.
    • +
    +

    Linzolle updated:

    +
      +
    • neck slice. harm intent someone's head while they are unconscious or in a neck grab to make them bleed uncontrollably.
    • +
    • officer's sabre now properly makes the unsheating and resheating noise
    • +
    • fireman failure has a different message depending on the circumstance
    • +
    • Abductor chem dispenser, and added it to the abductor console.
    • +
    • "Superlingual matrix" to the abductor console. It's the abductor's tongue. Can be used to link it to your abductor communication channel and then implanted into a test subject.
    • +
    • Shrink ray and added it to the abductor console.
    • +
    • Shrink ray sound effect (its the fucking mega man death sound)
    • +
    • special jumpsuit for abductors
    • +
    • abductor jumpsuit, including digi version if a digitigrade person somehow manages to get their hands on it. sprites for the shrink ray and chem dispenser.
    • +
    • new glands to play with, including the all-access gland, the quantum gland, and the blood type randomiser.
    • +
    • split every gland into its own file instead of all being in one file
    • +
    • cosmic coat crafting recipe changed to coat + cosmic bedsheet
    • +
    +

    Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac updated:

    +
      +
    • Certain incompatible quirks can no longer be taken together.
    • +
    • If an admin sends a ghost back to the lobby, they can now choose a different set of quirks.
    • +
    • the quirk menu went through some minor formatting changes.
    • +
    • Podcloning now lets you keep your quirks.
    • +
    • Quirks have flavor text in medical records.
    • +
    • All quirk medical records refer to "Patient", removing a few instances of "Subject".
    • +
    • Quirks no longer apply to off-station roundstart antagonists.
    • +
    • Mood quirks are now only processed by the quirk holders
    • +
    +

    Narcissisko (ported by Hatterhat) updated:

    +
      +
    • Luxury Bar Capsule, at 10,000 points. Comes with no medical supplies, a bar, and a bunch of cigars. Ported from tgstation/tgstation#45547.
    • +
    +

    Nervere and subject217, Militaires, py01, nemvar updated:

    +
      +
    • The cook's CQC now only works when in the kitchen or the kitchen backroom.
    • +
    • corrected CQC help instructions
    • +
    • CQC and Sleeping Carp are properly logged.
    • +
    • CQC can passively grab targets when not on grab intent. Passive grabs do not count towards combos for CQC or Sleeping carp.
    • +
    • Martial Art and NOGUN cleanup.
    • +
    +

    PersianXerxes updated:

    +
      +
    • Removed night vision quirk
    • +
    +

    Putnam updated:

    +
      +
    • acute hepatic pharmacokinesis now works if you already have relevant genitals
    • +
    • Contamination is no longer an infinitely spreading deadly contagion causing mass panic
    • +
    • Dynamic rulesets have lower weight if a round recently featured them (except traitor).
    • +
    +

    Putnam3145 updated:

    +
      +
    • Buffed HE pipes by making them realistically radiate away heat.
    • +
    • Dynamic has a (totally unused for any relevant purpose) roundstart report now.
    • +
    • A whole bunch of dynamic data is now available for statbus
    • +
    • Dynamic from-ghost antags no longer double dip on threat refunds when the mode fails due to not enough applications.
    • +
    • whoops broke quirks
    • +
    • quirks work
    • +
    • New tab in preferences screen: "ERP preferences"
    • +
    • New opt-outs for individual effects of incubus draught, succubus milk
    • +
    • Acute hepatic pharmacokinesis has been removed, replaced with above
    • +
    • Renamed "Toggle Lewdchem" to "Toggle Lewd MKUltra", since that's what it actually means, and made it toggle the "hypno" setting (rename it again if more hypno mechanics are added).
    • +
    • Made MKUltra's lewd messages require both people involved to have hypno opted-in.
    • +
    • Buncha dynamic config tweaks
    • +
    • Ghost cafe spawns are actual ghost roles by the game's reckoning now
    • +
    • a runtime in radioactive contamination
    • +
    • Bomb armor now acts like other armor types.
    • +
    • Devastation-level explosions on armorless people no longer destroys everything in their bags.
    • +
    +

    Seris02 updated:

    +
      +
    • the clowns headset
    • +
    • distance checks
    • +
    • the sprites
    • +
    • added the runed and brass winter coats (cosmetic ratvarian/narsian)
    • +
    • how the narsian/ratvarian coats can be made
    • +
    • fixes some ghost roles from dying of stupid shit
    • +
    • pandoras attacking their owners
    • +
    • Added Rising Bass and the shifting scroll.
    • +
    • Changes the martial arts scroll in the uplink to "Sleeping Carp Scroll"
    • +
    +

    ShizCalev updated:

    +
      +
    • Fixed floodlights not turning off properly when they're underpowered.
    • +
    • Fixed emitters not changing icons properly when they're underpowered.
    • +
    +

    Sishen1542 updated:

    +
      +
    • Clicking a pack of seeds with a pen allows you to set the plant's name, description and the pack of seeds' description. Useful for differentiating genetically modified plants. These changes will persist through different generations of the plant.
    • +
    • Hydroponics trays update their name and description to reflect the plant inside them. They revert to default when emptied.
    • +
    +

    Toriate updated:

    +
      +
    • Polychromic shorts now have a digitigrade state
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • ports all the new donuts, burgars, and chicken stuff from RG
    • +
    • ports new snowcone
    • +
    • ports grill
    • +
    • ports beakfeast tag/mood lit as TG has it
    • +
    • ports all the amazing new sprites
    • +
    • ports crafting for many things like snowcones needing water
    • +
    • ports of many craftings
    • +
    • lowers fryers sound
    • +
    • ported icons for new food/grill
    • +
    • ports the deletion of some icons and images
    • +
    • ports a spell check for the snowcones
    • +
    • ports fixes for stuff I didnt know were even broken with snowcones
    • +
    • coder cat failers to push the last commit from year(s) ago
    • +
    • Updates the changlogs
    • +
    • meat hook from HUGE to bulky
    • +
    • CE hardsuit is now more rad-proof
    • +
    • Wrong icon names, missing dog fashion with telegram hat
    • +
    • New softdrink that comes in its own vender!
    • +
    • Honey now has a reaction with plants
    • +
    • Buzz fuzz now only has a 5% to give honey and will now give 1u of sugar not 2
    • +
    • Blaster shotguns back into armory
    • +
    • Removed Lighters in thunderdomes
    • +
    • Silicons now know what a slime is saying!
    • +
    • honey now will not kill slimes. Honey slimepeople can be a thing now, go sci.
    • +
    • Added insulin into many of the borg hypo's
    • +
    +

    Useroth updated:

    +
      +
    • bamboo which can be used to build punji sticks/ blowguns available as a sugarcane mutation or in exotic seed crate
    • +
    • changed the sugar cane growth stages because fuck if I know why, but it was in the PR
    • +
    • New lavaland ruin: Pulsating tumor
    • +
    • New class of lavaland mobs, a bit weaker than megafauna but still stronger than most of what you normally see
    • +
    • Ghost cafe spawner. For letting people spawn as their own character in the ninja holding facility. It bypasses the usual check, so people who have suicided/ghosted/cryod may use it.
    • +
    • Dorms in the ninja holding facility.
    • +
    +

    Xantholne updated:

    +
      +
    • Santa Hats to Loadout and Clothesmate
    • +
    • Christmas Wintercoats to Loadout and Clothesmate
    • +
    • Christmas male and female uniforms to loadout and Clothesmate
    • +
    • Red, Green, and Traditional Santa boots to loadout and Clothesmate
    • +
    • Christmas Socks, Red candycane socks, Green candycane socks to sock selection
    • +
    +

    kappa-sama updated:

    +
      +
    • legion drops more crates now
    • +
    • .357 speedloaders in autolathes are now individual bullets instead, speedloaders are now illegal tech, costs less total metal to make 7 bullets than a previous speedloader. 7.62mm bullets in autolathe when hacked and costs more metal to make 5 7.62mm bullets than getting a clip from the seclathe.
    • +
    • mentions that you can refill speedloaders on .357 uplink description
    • +
    • you can now strip people while aggrograbbing or higher
    • +
    • plasmafist to wizard
    • +
    • modular is gone
    • +
    • martial apprentices for the local Chinese wizard
    • +
    • broodmother baby lag
    • +
    • you can no longer get 100k credits by spending 4k roundstart
    • +
    • cooking oil in sunflowers instead of corn oil
    • +
    • throats are no longer slit happy
    • +
    +

    keronshb updated:

    +
      +
    • Adds reflector blobs to shield blob upgrades
    • +
    +

    kevinz000 updated:

    +
      +
    • Launchpads can now take number inputs for offsets rather than just buttons.
    • +
    • nanites no longer spread through air blocking objects
    • +
    • Night vision readded as a darkness dampening effect rather than darksight.
    • +
    • conveyors can only stack items on tiles to 150 now.
    • +
    • added 8 character save slots
    • +
    • Cargo shuttle now silently ignores slaughter demons/revenants instead of being blocked even while they are jaunted. A drawback is that manifested ones can't block it either, any more.
    • +
    • flashbangs process light/sound separately and uses viewers(), so xray users beware.
    • +
    • Stat() slowed down for anti-lag measures.
    • +
    • sprint/stamina huds now work again
    • +
    • Combat defibs now instant stun on disarm rather than 1 second again
    • +
    • Defibs are now always emagged when emagged with an emag rather than EMP.
    • +
    • aooc toggling now only broadcasts to antagonists
    • +
    • Antag rep proc is now easier to read and supports returning a list.
    • +
    • Clockwork marauders are now on a configured summon cooldown if being summoned on station. They also rapidly bleed health while in or next to space. And they glow brighter.
    • +
    +

    lolman360 updated:

    +
      +
    • Added ability to pick up certain simplemobs.
    • +
    +

    nemvar updated:

    +
      +
    • The brains of roundstart borgs no longer decay.
    • +
    • Refactored the visibility of reagents for mobs.
    • +
    +

    nicbn, Kevinz000, ShizCalev updated:

    +
      +
    • Fire alarm is now simpler. Touch it to activate, touch it to deactivate. When activated, it will blink inconsistently if it is emagged.
    • +
    • You can no longer spam fire alarms. Also, they're logged again.
    • +
    • Fixed fire alarms not updating icons properly after being emagged and hacked by Malf AI's.
    • +
    +

    r4d6 updated:

    +
      +
    • Added a N2O pressure tank
    • +
    • Removed a AM Shielding from the crate
    • +
    • Added Handshakes
    • +
    • Added Nose booping
    • +
    • Added submaps for the SM, Tesla and Singulo
    • +
    • Added a placeholder on Boxstation for the Engines
    • +
    • fixed Nose boops not triggering
    • +
    +

    shellspeed1 updated:

    +
      +
    • Adds Insect markings
    • +
    • Adds three new moth wings.
    • +
    +

    07 December 2019

    AffectedArc07 updated: