diff --git a/_maps/RandomRuins/SpaceRuins/meatderelict.dmm b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm new file mode 100644 index 00000000000..0c4e9cd740b --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm @@ -0,0 +1,4338 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/door/airlock/engineering, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"af" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle/indestructible, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"aj" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/table, +/obj/item/paper_bin, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"at" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"au" = ( +/obj/lightning_thrower, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"ay" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/sign/poster/contraband/lusty_xenomorph/directional/north, +/obj/item/flashlight/flare/candle{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/flashlight/flare/candle{ + pixel_x = -7; + pixel_y = 4 + }, +/obj/item/flashlight/flare/candle{ + pixel_y = 8 + }, +/obj/item/toy/toy_xeno, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"aE" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"aF" = ( +/obj/machinery/light/small/dim/directional/north, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"aV" = ( +/obj/effect/gibspawner/generic, +/obj/item/mop, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"aW" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"bh" = ( +/obj/structure/sign/directions/science/directional/west, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"bi" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"bR" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/structure/table, +/obj/structure/microscope, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ch" = ( +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"cp" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"cQ" = ( +/obj/structure/holosign/barrier, +/turf/open/floor/plating/airless, +/area/ruin/space) +"dv" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/effect/gibspawner/generic, +/mob/living/basic/living_limb_flesh, +/mob/living/basic/living_limb_flesh, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/circuit{ + baseturfs = /turf/open/indestructible/plating + }, +/area/ruin/space/has_grav/powered/biooutpost) +"dD" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/computer/old, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"dQ" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"dR" = ( +/turf/open/floor/iron/white, +/area/ruin/space/has_grav/powered/biooutpost) +"dW" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ea" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/mob_spawn/corpse/human/scientist, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"eo" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/space) +"eq" = ( +/mob/living/basic/living_floor/white, +/obj/effect/gibspawner/generic, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"ex" = ( +/obj/machinery/door/airlock/grunge{ + id_tag = "md_morgue" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock_note_placer{ + note_info = "Reminder for medbay staff to not stick failed and active experiments in the morgue." + }, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"eA" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/turf_decal/siding/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"eD" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + normaldoorcontrol = 1; + specialfunctions = 4; + id = "md_morgue" + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"eF" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/cold/dim/directional/west, +/obj/machinery/computer/old{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"eP" = ( +/obj/structure/meateor_fluff/eyeball, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"eT" = ( +/obj/item/fakeartefact, +/obj/structure/table/wood/fancy/orange, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"fc" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/obj/structure/table, +/obj/effect/spawner/random/medical/supplies, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"fm" = ( +/obj/effect/turf_decal/tile/red/half/contrasted, +/obj/machinery/computer/old{ + dir = 8 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"fo" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"fB" = ( +/obj/machinery/computer/operating, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"fH" = ( +/turf/closed/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"fW" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"go" = ( +/obj/effect/turf_decal/siding/purple/corner, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"gK" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/end, +/obj/structure/rack, +/obj/item/climbing_hook, +/obj/item/extinguisher, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"gN" = ( +/obj/structure/table, +/obj/item/storage/box/petridish, +/obj/item/healthanalyzer, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"gO" = ( +/obj/structure/toiletbong, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"gP" = ( +/obj/structure/broken_flooring/pile/always_floorplane{ + dir = 8 + }, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"gQ" = ( +/obj/item/ammo_casing/spent, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"gX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"hd" = ( +/turf/closed/indestructible/riveted/plastinum/nodiagonal, +/area/ruin/space) +"hf" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/storage/medkit/toxin, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"hk" = ( +/obj/structure/aquarium/prefilled, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"hN" = ( +/obj/structure/puzzle_blockade{ + id = "md_toeng" + }, +/obj/effect/turf_decal/stripes/full, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"hQ" = ( +/obj/structure/broken_flooring/plating/directional/west, +/obj/item/crowbar, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"hR" = ( +/obj/structure/sign/warning, +/turf/closed/indestructible/reinforced, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"hW" = ( +/obj/effect/turf_decal/siding/purple, +/obj/effect/decal/cleanable/blood/splatter, +/obj/item/scalpel{ + pixel_y = 16; + pixel_x = 4 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"hY" = ( +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/science/glass{ + name = "Janitorial Closet" + }, +/obj/effect/mapping_helpers/airlock_note_placer{ + note_info = "DO NOT ENTER!!!" + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"id" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"ih" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ij" = ( +/turf/closed/indestructible/reinforced, +/area/ruin/space/has_grav/powered/biooutpost) +"il" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"io" = ( +/mob/living/basic/living_floor, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"iA" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"iB" = ( +/obj/structure/broken_flooring/plating/directional/east, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"iI" = ( +/obj/structure/chair/sofa/bench/left, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"iO" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 4 + }, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"iQ" = ( +/obj/machinery/computer/old, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"iX" = ( +/obj/structure/broken_flooring/pile/always_floorplane{ + dir = 8 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"ja" = ( +/obj/item/food/muffin/moffin{ + preserved_food = 1 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"jf" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/structure/table, +/obj/structure/window/spawner/directional/north, +/obj/effect/spawner/random/medical/supplies, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"jj" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 8 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"jo" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock_note_placer{ + note_name = "notice"; + note_info = "This area is condemned by Nanotrasen. Employees seen near or in this area will be fined or punished otherwise." + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"jr" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"jt" = ( +/obj/item/crowbar, +/obj/structure/broken_flooring/plating/directional/north, +/obj/item/reagent_containers/cup/bucket, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"jA" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"jE" = ( +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"jO" = ( +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"jU" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/ammo_box/magazine/wt550m9, +/obj/item/ammo_box/magazine/wt550m9{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"jV" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, +/obj/item/surgery_tray/full/deployed, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"kh" = ( +/obj/machinery/computer/terminal/meatderelict{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ki" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"kl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"kn" = ( +/obj/effect/turf_decal/siding/purple, +/obj/machinery/light/cold/directional/south, +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/cup/glass/coffee_cup{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/glass/coffee_cup{ + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ku" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/bottle/flash_powder, +/obj/item/reagent_containers/cup/bottle/lithium, +/obj/item/reagent_containers/cup/bottle/nitrogen, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"kB" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"kX" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/space) +"la" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/light/cold/directional/west, +/obj/effect/spawner/random/medical/supplies, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"lf" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/syringe{ + pixel_y = -4 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 4 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"lh" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/computer/old{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"lm" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/obj/item/ammo_casing/c45/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"lJ" = ( +/obj/machinery/door/airlock/science/glass, +/obj/effect/mapping_helpers/airlock/welded, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"lT" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"mc" = ( +/obj/machinery/door/airlock/engineering, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"mx" = ( +/obj/structure/broken_flooring/side/always_floorplane, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"mA" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/blood/innards, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"mM" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"mO" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/table, +/obj/item/storage/medkit/brute, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"mU" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/siding/purple, +/obj/machinery/light/cold/dim/directional/south, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ne" = ( +/obj/structure/table/wood/fancy/purple, +/obj/item/reagent_containers/hypospray/medipen/methamphetamine{ + pixel_x = -3 + }, +/obj/item/book/manual/wiki/research_and_development{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"ni" = ( +/mob/living/basic/living_floor/white, +/obj/machinery/light/small/dim/directional/east, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"nr" = ( +/turf/open/misc/asteroid/airless, +/area/ruin/space) +"nx" = ( +/obj/structure/table, +/obj/item/pen/fourcolor, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ny" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"nM" = ( +/obj/structure/broken_flooring/side/directional/north, +/obj/machinery/door/puzzle{ + puzzle_id = "md_42069"; + desc = "This door only opens from the other side. It looks virtually indestructible." + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"nP" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/grenade/flashbang, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"nR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_machine, +/obj/machinery/vending/snack/orange, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"nY" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/siding/purple, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"oh" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker, +/obj/machinery/light/directional/east, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"oj" = ( +/obj/machinery/door/airlock/security, +/obj/effect/turf_decal/siding/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"op" = ( +/turf/closed/mineral/random/stationside/asteroid{ + baseturfs = /turf/open/indestructible/white + }, +/area/ruin/space/has_grav/powered/biooutpost) +"os" = ( +/obj/structure/grille/indestructible, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"oI" = ( +/mob/living/basic/living_floor, +/obj/structure/sign/poster/random/directional/west, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"oO" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/item/ammo_casing/a357/spent, +/obj/item/ammo_casing/a357/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"oQ" = ( +/obj/machinery/puzzle_button/meatderelict{ + pixel_y = 32; + queue_size = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"oX" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"pe" = ( +/obj/structure/chair/office, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"ph" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/welded, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"pj" = ( +/obj/machinery/door/airlock/research/glass{ + id_tag = "md_scis" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"pk" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"pl" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/effect/turf_decal/trimline/yellow/filled/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"po" = ( +/obj/structure/broken_flooring/corner/always_floorplane, +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"pp" = ( +/obj/item/pressure_plate/puzzle{ + puzzle_id = "md_42069" + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"pC" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"pK" = ( +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/siding/purple{ + dir = 6 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"pQ" = ( +/obj/machinery/computer/old{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/south, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"pY" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"qg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/obj/structure/chair{ + dir = 1 + }, +/obj/item/restraints/handcuffs, +/obj/machinery/light/warm/directional/south, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"qh" = ( +/obj/structure/table, +/obj/effect/spawner/random/bureaucracy/folder, +/obj/effect/spawner/random/bureaucracy/stamp, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"qi" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, +/obj/effect/mob_spawn/corpse/human/damaged, +/obj/machinery/light/cold/dim/directional/north, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"qs" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"qw" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"qx" = ( +/mob/living/basic/living_floor/white, +/obj/effect/spawner/random/structure/chair_flipped, +/obj/effect/gibspawner/generic, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"qV" = ( +/obj/machinery/power/rtg/old_station, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"qY" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"qZ" = ( +/obj/structure/table, +/obj/effect/spawner/random/bureaucracy/paper, +/obj/effect/spawner/random/bureaucracy/pen, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"ra" = ( +/obj/structure/closet/emcloset/anchored, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"re" = ( +/turf/closed/mineral/random/low_chance, +/area/ruin/space) +"rh" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/item/ammo_casing/a357/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"rl" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/closet/secure_closet/chemical, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"rm" = ( +/obj/effect/spawner/random/engineering/flashlight, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"rw" = ( +/obj/effect/turf_decal/siding/blue/corner, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"rK" = ( +/obj/structure/showcase/horrific_experiment, +/obj/machinery/light/small/dim/directional/east, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"sd" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"se" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/bottle/mutagen, +/obj/item/reagent_containers/cup/bottle/mutagen, +/obj/item/reagent_containers/cup/bottle/mutagen, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"sk" = ( +/obj/structure/chair/sofa/bench/right, +/obj/effect/mob_spawn/corpse/human/scientist{ + brute_damage = 100; + corpse_description = "They were shot in the head, and heart." + }, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"sl" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle/indestructible, +/obj/effect/decal/cleanable/blood/splatter/over_window, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"sp" = ( +/obj/machinery/button/door/directional/south{ + normaldoorcontrol = 1; + specialfunctions = 4; + id = "md_scis"; + name = "safety lock control" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"sJ" = ( +/obj/structure/broken_flooring/corner/always_floorplane{ + dir = 4 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"sL" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/space) +"sM" = ( +/obj/item/ammo_casing/spent, +/obj/item/ammo_casing/spent, +/obj/item/ammo_casing/c45/spent, +/obj/item/ammo_casing/c45/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"sR" = ( +/obj/effect/turf_decal/trimline/yellow/filled/end, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"tg" = ( +/obj/structure/table/wood/fancy/orange, +/obj/effect/spawner/random/exotic/technology, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"tq" = ( +/mob/living/basic/living_floor, +/obj/effect/mob_spawn/corpse/human/engineer, +/obj/machinery/light/small/dim/directional/west, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"tt" = ( +/obj/effect/spawner/structure/window/hollow/middle{ + dir = 4 + }, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"tv" = ( +/obj/effect/decal/cleanable/blood/tracks, +/mob/living/simple_animal/hostile/zombie, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"tF" = ( +/obj/structure/broken_flooring/plating/directional/east, +/obj/effect/spawner/random/structure/chair_flipped, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"tN" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"tS" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/ruin/space) +"uc" = ( +/obj/effect/turf_decal/siding/purple/corner, +/obj/item/ammo_casing/shotgun/buckshot/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"uf" = ( +/obj/machinery/light/small/dim/directional/west, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"uh" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"ui" = ( +/obj/structure/closet/wardrobe/science_white, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"uq" = ( +/obj/machinery/door/airlock/external, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"us" = ( +/obj/machinery/suit_storage_unit/spaceruin, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"uC" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"uH" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/holosign/barrier, +/turf/open/floor/plating/airless, +/area/ruin/space) +"uS" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/spawner/random/food_or_drink/snack, +/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ + pixel_x = 16 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"uU" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"uZ" = ( +/obj/machinery/door/airlock/security, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible{ + icon_state = "whitehall"; + dir = 8 + }, +/area/ruin/space/has_grav/powered/biooutpost) +"vd" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/obj/machinery/vending/medical{ + shut_up = 1 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"vl" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/item/crowbar, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"vt" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"vF" = ( +/obj/structure/fluff/empty_cryostasis_sleeper{ + name = "broken genetics device"; + desc = "Depowered and broken, this machine no longer serves its purpose." + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"vY" = ( +/obj/machinery/door/puzzle/keycard{ + puzzle_id = "md_director"; + name = "Directors Office" + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"vZ" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/effect/gibspawner/generic, +/turf/open/floor/circuit{ + baseturfs = /turf/open/indestructible/plating + }, +/area/ruin/space/has_grav/powered/biooutpost) +"wf" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, +/obj/structure/bed/medical/anchored{ + dir = 1 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"wj" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"wn" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, +/obj/item/knife/combat/survival, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"wy" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"wH" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/wt550{ + pin = /obj/item/firing_pin/explorer + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"wJ" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/obj/structure/window/spawner/directional/east, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"wM" = ( +/obj/structure/sign/warning/biohazard/directional/east, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"wR" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/computer/old{ + dir = 4 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"wU" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"wX" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/north, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"xk" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/effect/gibspawner/generic, +/mob/living/basic/living_limb_flesh, +/turf/open/floor/circuit{ + baseturfs = /turf/open/indestructible/plating + }, +/area/ruin/space/has_grav/powered/biooutpost) +"xm" = ( +/obj/item/kirbyplants/random/dead, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"xr" = ( +/obj/machinery/door/puzzle/meatderelict, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"xA" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"xE" = ( +/obj/lightning_thrower, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"xU" = ( +/mob/living/basic/living_floor/white, +/obj/item/flashlight, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"yf" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/broken_flooring/corner/always_floorplane{ + dir = 8 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"yl" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"yp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"yr" = ( +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"yu" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small/dim/directional/north, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"yw" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"yU" = ( +/obj/structure/fluff/empty_cryostasis_sleeper{ + name = "broken genetics device"; + desc = "Depowered and broken, this machine no longer serves its purpose." + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/siding/purple{ + dir = 5 + }, +/obj/structure/sign/warning/chem_diamond/directional/west, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"za" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/sign/poster/contraband/missing_gloves/directional/west, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"zg" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/storage/box/handcuffs, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"zs" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"zF" = ( +/obj/effect/mob_spawn/corpse/human/scientist{ + brute_damage = 100; + corpse_description = "They were shot in the head, and heart." + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"zL" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"zP" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"zS" = ( +/obj/structure/table/wood/fancy/purple, +/obj/effect/spawner/random/entertainment/money_large, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"An" = ( +/obj/item/storage/toolbox/mechanical, +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"AD" = ( +/obj/machinery/computer/old{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/ruin/space/has_grav/powered/biooutpost) +"AG" = ( +/obj/structure/table/wood/fancy/purple, +/obj/effect/spawner/random/clothing/kittyears_or_rabbitears, +/obj/item/seeds/cannabis/white, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"AP" = ( +/obj/structure/fluff/empty_cryostasis_sleeper{ + name = "broken genetics device"; + desc = "Depowered and broken, this machine no longer serves its purpose." + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/siding/purple{ + dir = 6 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"AT" = ( +/obj/structure/sign/warning, +/turf/closed/indestructible/riveted/plastinum/nodiagonal, +/area/ruin/space/has_grav/powered/biooutpost) +"AV" = ( +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/plating/airless, +/area/ruin/space) +"AX" = ( +/obj/machinery/light/directional/north, +/mob/living/basic/mothroach{ + name = "Moff" + }, +/obj/machinery/door/window/right/directional/south{ + req_access = list("science") + }, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"AY" = ( +/obj/effect/turf_decal/tile/red/diagonal_centre, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Be" = ( +/obj/effect/turf_decal/siding/purple, +/obj/structure/table/reinforced/rglass, +/obj/item/storage/fancy/coffee_cart_rack, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Bl" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/glass, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"Bp" = ( +/obj/structure/broken_flooring/pile/always_floorplane, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Br" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Bt" = ( +/obj/machinery/door/puzzle/meatderelict, +/obj/effect/turf_decal/stripes/corner, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Bu" = ( +/obj/item/ammo_casing/spent, +/obj/item/ammo_casing/spent, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Bx" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker/meta, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"By" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"BA" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating/airless, +/area/ruin/space) +"Ca" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Cf" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 5 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Cl" = ( +/obj/machinery/door/airlock/science, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"CD" = ( +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"CF" = ( +/obj/machinery/computer/old{ + dir = 4 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"CI" = ( +/mob/living/basic/living_limb_flesh, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"CN" = ( +/obj/structure/table, +/obj/item/toy/figure/secofficer, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"CS" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"CW" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Df" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/purple{ + dir = 9 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Dg" = ( +/obj/structure/mecha_wreckage/ripley, +/obj/structure/window/spawner/directional/east, +/turf/open/indestructible{ + icon_state = "recharge_floor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"Dh" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/chem_dispenser, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Dk" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Du" = ( +/obj/structure/table, +/obj/effect/spawner/random/engineering/tool, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"DB" = ( +/mob/living/basic/living_floor, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"DC" = ( +/obj/item/ammo_casing/a357/spent, +/obj/item/ammo_casing/a357/spent, +/obj/item/ammo_casing/a357/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"DJ" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"DR" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper/crumpled/fluff/meatderelict/fridge, +/obj/item/pen{ + pixel_x = 12 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"DU" = ( +/obj/structure/chair/sofa/bench, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/light/cold/directional/north, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Ec" = ( +/mob/living/basic/living_floor/white, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Ei" = ( +/obj/machinery/door/airlock/science, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Ew" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 5 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Ex" = ( +/obj/structure/table/optable, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"EC" = ( +/turf/closed/indestructible/reinforced, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"EE" = ( +/obj/structure/broken_flooring/pile/always_floorplane, +/obj/structure/table, +/obj/machinery/microwave, +/obj/machinery/light/broken/directional/west, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"EN" = ( +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"EQ" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 1 + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/item/keycard/meatderelict/engpost, +/obj/item/food/candy, +/obj/item/food/candy, +/obj/item/food/candy_corn, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"ES" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 8 + }, +/obj/structure/table, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"EY" = ( +/obj/structure/sign/poster/random/directional/east, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Fc" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/box/beakers, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Fv" = ( +/obj/item/food/muffin/moffin{ + preserved_food = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"FE" = ( +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"FI" = ( +/obj/item/instrument/piano_synth/headphones, +/obj/structure/table, +/obj/machinery/puzzle_button/directional/north{ + used = 1 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Gb" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Gd" = ( +/obj/machinery/light/cold/dim/directional/east, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Gj" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/space) +"Gn" = ( +/obj/structure/table, +/obj/item/plate, +/obj/item/food/burger/cheese, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/light/small/broken/directional/south, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"GA" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/item/ammo_casing/c45/spent, +/obj/item/ammo_casing/c45/spent, +/obj/item/ammo_casing/c45/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"GC" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 6 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/table/reinforced/rglass, +/obj/machinery/coffeemaker, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"GE" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"GF" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/grille/indestructible, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"GO" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/machinery/iv_drip, +/obj/machinery/light/cold/directional/east, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Hb" = ( +/obj/item/kirbyplants/organic/plant12, +/obj/effect/turf_decal/siding/purple{ + dir = 5 + }, +/obj/structure/sign/directions/engineering/directional/east, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Hh" = ( +/obj/effect/mob_spawn/corpse/human/scientist, +/obj/item/keycard/meatderelict/director, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Hm" = ( +/obj/structure/grille/indestructible, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/effect/turf_decal/trimline/yellow/filled/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Hx" = ( +/obj/item/ammo_casing/spent, +/obj/item/ammo_casing/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"HA" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/siding/purple, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"HC" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"HF" = ( +/mob/living/basic/living_floor/white, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"HV" = ( +/obj/structure/broken_flooring/side/always_floorplane, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Ip" = ( +/obj/structure/table, +/obj/effect/spawner/random/engineering/flashlight, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"IK" = ( +/obj/structure/puzzle_blockade{ + id = "md_armory" + }, +/obj/effect/turf_decal/stripes/full, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Jb" = ( +/obj/item/ammo_casing/c45/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Jf" = ( +/obj/effect/turf_decal/tile/purple/anticorner/contrasted, +/obj/structure/sign/departments/security/directional/east, +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Jh" = ( +/turf/closed/indestructible/riveted/plastinum/nodiagonal, +/area/ruin/space/has_grav/powered/biooutpost) +"Jo" = ( +/obj/structure/table/wood/fancy/purple, +/obj/item/mod/module/recycler/donk, +/obj/item/mod/module/recycler, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Jt" = ( +/obj/machinery/puzzle_button/directional/north{ + id = "md_tosci"; + name = "shield power panel" + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Ju" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Jx" = ( +/obj/machinery/door/airlock/vault, +/obj/item/grown/bananapeel, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"JF" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/item/food/grown/carrot{ + preserved_food = 1 + }, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/biooutpost) +"Ka" = ( +/mob/living/basic/living_floor/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Kc" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/mob/living/basic/rabbit, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/biooutpost) +"Ki" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 5 + }, +/obj/structure/bed/medical/anchored{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Kl" = ( +/obj/structure/chair/sofa/bench, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Kx" = ( +/obj/effect/turf_decal/siding/purple/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"KC" = ( +/obj/machinery/puzzle_button/directional/north{ + id = "md_toeng"; + queue_size = 4 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/light/small/broken/directional/east, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"KH" = ( +/obj/structure/broken_flooring/pile/always_floorplane{ + dir = 1 + }, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"KP" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron/white, +/area/ruin/space/has_grav/powered/biooutpost) +"KU" = ( +/obj/machinery/door/airlock/engineering, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Lc" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/storage/fancy/rollingpapers, +/obj/item/paper/pamphlet/cybernetics, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"Lj" = ( +/obj/effect/mob_spawn/corpse/human/scientist, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Ll" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"LR" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/space) +"Mb" = ( +/obj/effect/turf_decal/siding/red, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/sign/poster/random/directional/west, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Mo" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/plasma/end{ + dir = 4 + }, +/obj/structure/sign/warning/electric_shock/directional/west, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Mp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"MF" = ( +/obj/structure/grille/indestructible, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"MH" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"ML" = ( +/turf/open/floor/plating/airless, +/area/ruin/space) +"MO" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron/white, +/area/ruin/space/has_grav/powered/biooutpost) +"MS" = ( +/obj/structure/table, +/obj/item/paper/crumpled/fluff/meatderelict, +/obj/item/pen, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Nn" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/structure/table, +/obj/item/petri_dish/random, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Nr" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"Nz" = ( +/obj/structure/mecha_wreckage/ripley, +/turf/open/indestructible{ + icon_state = "recharge_floor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"NE" = ( +/obj/structure/sign/warning/biohazard/directional/west, +/obj/structure/broken_flooring/corner/always_floorplane{ + dir = 1 + }, +/obj/item/kirbyplants/random/dead, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"NI" = ( +/obj/lightning_thrower, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"NK" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"NL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"NU" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/effect/gibspawner/generic, +/turf/open/floor/circuit{ + baseturfs = /turf/open/indestructible/plating + }, +/area/ruin/space/has_grav/powered/biooutpost) +"Oh" = ( +/obj/effect/spawner/structure/window/hollow/end{ + dir = 1 + }, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Oi" = ( +/obj/structure/sign/warning/biohazard/directional/north, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Oo" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"OC" = ( +/obj/structure/table, +/obj/item/plate/large, +/obj/effect/spawner/random/food_or_drink/donkpockets, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"OM" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"OP" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 1 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"OQ" = ( +/obj/machinery/door/airlock/vault{ + name = "Teleportation Research" + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"OW" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Pa" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/siding/purple, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Pj" = ( +/obj/structure/broken_flooring/corner/always_floorplane, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Pt" = ( +/obj/structure/broken_flooring/pile/always_floorplane{ + dir = 8 + }, +/obj/structure/broken_flooring/plating/directional/east, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"PF" = ( +/obj/structure/puzzle_blockade{ + id = "md_tosci" + }, +/obj/effect/turf_decal/stripes/full, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"PJ" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/computer/old{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"PQ" = ( +/obj/structure/puzzle_blockade{ + id = "md_armory" + }, +/obj/effect/turf_decal/stripes/full, +/obj/machinery/puzzle_keycardpad/directional/south{ + id = "md_armory"; + name = "armory authentication pad"; + queue_size = 5 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"PT" = ( +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"PU" = ( +/turf/template_noop, +/area/template_noop) +"Qa" = ( +/obj/effect/turf_decal/siding/blue, +/obj/machinery/modular_computer/preset/civilian{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Qc" = ( +/obj/machinery/light/small/dim/directional/east, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Qd" = ( +/obj/structure/table/wood/fancy/purple, +/obj/effect/spawner/random/engineering/tool_advanced, +/obj/effect/spawner/random/engineering/tool_advanced, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Qh" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/plasma/end{ + dir = 8 + }, +/obj/structure/sign/warning/electric_shock/directional/east, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Qj" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/welded, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Qw" = ( +/obj/structure/chair/office/light, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"QM" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 6 + }, +/obj/structure/sign/directions/engineering/directional/east, +/obj/effect/spawner/random/bureaucracy/pen, +/obj/item/paper/crumpled/fluff/meatderelict/shieldgens, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"QP" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/chair/office/light, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Ra" = ( +/obj/effect/spawner/structure/window/hollow/end, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Rb" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Rf" = ( +/obj/machinery/light/dim/directional/north, +/obj/lightning_thrower, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"RD" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/space) +"RH" = ( +/mob/living/basic/living_floor/white, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"RN" = ( +/obj/item/flashlight/flare{ + icon_state = "flare-on" + }, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"RQ" = ( +/obj/effect/decal/cleanable/glass, +/mob/living/basic/living_limb_flesh, +/obj/item/kirbyplants/random/dead, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"RS" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Se" = ( +/obj/effect/turf_decal/tile/red/half/contrasted, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Sj" = ( +/obj/machinery/power/rtg/old_station, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/light/small/directional/south, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Sz" = ( +/mob/living/basic/meteor_heart/opens_puzzle_door{ + id = "md_heart"; + name = "tumor heart" + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"SX" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"SZ" = ( +/obj/machinery/door/airlock/engineering, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Tc" = ( +/obj/structure/table, +/obj/effect/spawner/random/engineering/toolbox, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Tl" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Tw" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/food/pancakes/chocolatechip, +/obj/item/toy/figure/cargotech{ + pixel_y = 12 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"TP" = ( +/obj/effect/turf_decal/siding/purple/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"TU" = ( +/obj/structure/showcase/horrific_experiment, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Ue" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Ui" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/spawner/random/vending/colavend, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Uj" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/west, +/obj/effect/gibspawner/generic, +/mob/living/basic/living_limb_flesh, +/turf/open/floor/circuit{ + baseturfs = /turf/open/indestructible/plating + }, +/area/ruin/space/has_grav/powered/biooutpost) +"Ut" = ( +/mob/living/basic/living_limb_flesh, +/obj/machinery/light/small/dim/directional/east, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Uv" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"UD" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"UG" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"UN" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 10 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"UX" = ( +/turf/closed/indestructible/riveted/plastinum/nodiagonal, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Vc" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Vj" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Vn" = ( +/obj/structure/table/wood/fancy/purple, +/obj/item/raw_anomaly_core/bluespace, +/turf/open/floor/iron/dark/textured_large, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Vu" = ( +/obj/structure/broken_flooring/side/always_floorplane{ + dir = 4 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"VB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"VJ" = ( +/obj/machinery/door/airlock/medical, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"VN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/c45/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"VT" = ( +/obj/structure/broken_flooring/singular{ + dir = 1 + }, +/obj/structure/table, +/obj/item/food/strawberryicecreamsandwich, +/obj/item/food/strawberryicecreamsandwich, +/obj/item/food/strawberryicecreamsandwich, +/obj/item/food/strawberryicecreamsandwich, +/obj/structure/closet/mini_fridge, +/obj/structure/broken_flooring/singular/always_floorplane{ + dir = 1 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"VW" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/light/floor, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"We" = ( +/obj/machinery/door/airlock/engineering, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Wj" = ( +/mob/living/basic/living_floor, +/obj/item/chair, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Wx" = ( +/obj/structure/broken_flooring/pile/always_floorplane{ + dir = 1 + }, +/obj/structure/broken_flooring/plating/directional/north, +/obj/machinery/light/cold/dim/directional/east, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"WJ" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Xe" = ( +/obj/effect/turf_decal/siding/red, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/light/cold/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Xh" = ( +/obj/machinery/door/airlock/engineering, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Xl" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Xm" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/ai_module/core/full/ten_commandments, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/powered/biooutpost) +"Xo" = ( +/obj/structure/showcase/horrific_experiment, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Xp" = ( +/obj/structure/puzzle_blockade/meat{ + id = "md_heart" + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Xz" = ( +/obj/machinery/door/puzzle/keycard{ + puzzle_id = "md_engpost" + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"XA" = ( +/turf/closed/mineral/random, +/area/ruin/space) +"XD" = ( +/obj/structure/broken_flooring/pile/always_floorplane, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"XO" = ( +/obj/structure/sign/directions/security/directional/south{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/structure/sign/poster/official/random/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"XP" = ( +/turf/closed/mineral/bananium, +/area/ruin/space) +"XQ" = ( +/obj/effect/mob_spawn/corpse/human/scientist, +/obj/effect/decal/cleanable/glass, +/obj/machinery/light/small/dim/directional/west, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Yc" = ( +/turf/closed/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost/vault) +"Yd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/indestructible/plating, +/area/ruin/space/has_grav/powered/biooutpost) +"Yr" = ( +/obj/structure/window/spawner/directional/east, +/mob/living/basic/living_limb_flesh, +/mob/living/basic/living_limb_flesh, +/obj/item/keycard/meatderelict/armory, +/obj/machinery/light/small/dim/directional/west, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"Ys" = ( +/obj/effect/turf_decal/trimline/yellow/filled/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"YD" = ( +/obj/item/ammo_casing/spent, +/obj/item/ammo_casing/spent, +/obj/effect/decal/cleanable/blood/tracks, +/obj/item/ammo_casing/c45/spent, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"YI" = ( +/obj/structure/broken_flooring/corner/always_floorplane{ + dir = 8 + }, +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"YW" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line, +/obj/structure/rack, +/obj/structure/sign/warning/chem_diamond/directional/south, +/obj/machinery/door/window/left/directional/north, +/obj/item/grenade/chem_grenade/large, +/obj/item/grenade/chem_grenade/adv_release{ + pixel_x = 8 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"YY" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/indestructible/white{ + icon_state = "showroomfloor" + }, +/area/ruin/space/has_grav/powered/biooutpost) +"Zd" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/indestructible, +/area/ruin/space/has_grav/powered/biooutpost) +"Zp" = ( +/obj/effect/turf_decal/siding/blue/corner, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Zr" = ( +/obj/item/gps/spaceruin, +/turf/open/floor/plating/airless, +/area/ruin/space) +"Zs" = ( +/obj/structure/door_assembly/door_assembly_science, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"Zv" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"Zx" = ( +/turf/open/indestructible/meat, +/area/ruin/space/has_grav/powered/biooutpost) +"ZG" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/medkit/brute, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/biooutpost) +"ZT" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/machinery/light/cold/dim/directional/east, +/turf/open/indestructible/white, +/area/ruin/space/has_grav/powered/biooutpost) +"ZZ" = ( +/obj/structure/fluff/oldturret, +/turf/open/floor/plating/airless, +/area/ruin/space) + +(1,1,1) = {" +PU +PU +PU +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +PU +re +re +re +re +re +re +re +PU +PU +PU +re +re +re +re +re +PU +PU +PU +PU +PU +PU +"} +(2,1,1) = {" +PU +PU +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +PU +"} +(3,1,1) = {" +PU +PU +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +Jh +Jh +Jh +Jh +Jh +re +re +re +re +re +re +re +re +re +re +re +re +re +re +"} +(4,1,1) = {" +PU +PU +re +re +XA +XA +XA +XA +XA +XA +XA +XA +re +Jh +Jh +Jh +Jh +Jh +Jh +Jh +Jh +Jh +lh +eF +PJ +Jh +hd +re +re +re +Jh +Jh +Jh +Jh +re +re +re +re +re +re +"} +(5,1,1) = {" +PU +PU +re +re +XA +XA +XA +XA +XA +XA +XA +XA +re +Jh +fH +fH +fH +fH +fH +fH +Jh +Dh +vt +vt +oX +dQ +hd +re +re +Jh +Jh +se +ku +Jh +Jh +re +re +re +re +re +"} +(6,1,1) = {" +PU +PU +re +re +XA +XA +XA +XA +XA +XA +XA +XA +re +Jh +fH +xU +Ec +eq +tF +fH +Jh +Fc +fo +oX +oX +YW +hd +re +re +Jh +ny +Gb +Gb +ny +Jh +Jh +Jh +re +re +re +"} +(7,1,1) = {" +PU +PU +re +re +XA +XA +XA +XA +XA +XA +XA +XA +re +Jh +fH +Ec +Hh +Ec +aV +fH +Jh +Bx +CS +RS +HC +rl +hd +re +re +Jh +Jh +Ei +Jh +Jh +Jh +Yr +Jh +Jh +re +re +"} +(8,1,1) = {" +PU +XA +XA +XA +XA +XA +XA +XA +XA +XA +XA +XA +re +Jh +fH +qx +ni +Ec +jt +fH +Jh +Jh +Ra +Zs +Oh +fH +Jh +re +Jh +Jh +AP +DJ +yU +AT +vF +ih +hf +Jh +Jh +re +"} +(9,1,1) = {" +PU +XA +XA +XA +XA +XA +XA +XA +XA +XA +XA +XA +re +Jh +Jh +Jh +Jh +Jh +hY +Jh +fH +EE +Ec +at +Ec +Pt +Jh +Jh +Jh +pK +DJ +DJ +qs +pj +kl +kl +QP +kh +Jh +re +"} +(10,1,1) = {" +XA +XA +XP +XP +XA +XA +XA +re +re +re +re +re +re +re +re +Jh +dv +cp +DJ +NU +fH +OC +Ec +yl +Ec +Ec +Jh +Kc +JF +DJ +kl +qs +sp +Jh +RQ +jA +lf +Jh +Jh +re +"} +(11,1,1) = {" +XA +XA +XP +re +re +re +re +re +re +re +re +re +re +re +re +Jh +iQ +cp +DJ +CI +lJ +Ka +RH +uC +Mp +uC +Cl +DJ +DJ +DJ +DJ +dW +DJ +Jh +Jh +Ut +Jh +Jh +re +re +"} +(12,1,1) = {" +XA +XA +XA +re +re +re +re +re +Jh +Jh +Jh +Jh +Jh +Jh +Jh +Jh +Uj +DJ +Gb +xk +Jh +hQ +iX +Zx +Zx +iB +Jh +Nn +DJ +ZT +DJ +dW +kl +ui +Jh +Jh +Jh +re +re +re +"} +(13,1,1) = {" +XA +XA +re +re +re +re +Jh +Jh +Jh +eT +Xm +Tw +tg +Jh +gN +Ue +cp +Ju +fW +pQ +Jh +Bp +Lj +wy +Zx +Wx +Jh +bR +DJ +Jh +Jh +oj +Jh +Jh +Jh +re +re +re +re +re +"} +(14,1,1) = {" +XA +re +re +re +re +re +Jh +Zv +il +id +MH +HF +KP +vY +Ju +DJ +ea +mA +Gb +vZ +Jh +Jh +tt +wJ +tt +Jh +Jh +Jh +Cl +Jh +oX +gQ +zL +Jh +re +re +re +re +re +re +"} +(15,1,1) = {" +re +re +re +re +re +re +Jh +oQ +SX +Lc +Bl +dR +MO +Jh +wX +wM +DJ +cp +XO +Ju +op +op +at +HF +CW +Jh +Br +Mb +at +eA +vt +zs +Gn +Jh +re +re +re +re +re +re +"} +(16,1,1) = {" +re +re +re +re +re +re +Jh +NK +il +oh +Nr +kB +Jh +UX +UX +EC +xr +hR +UX +UX +UX +op +Gd +WJ +Jf +Jh +Br +Xe +jE +Jh +FI +CN +Xl +Jh +re +re +nr +nr +re +nr +"} +(17,1,1) = {" +re +re +re +re +re +re +Jh +Jh +Jh +Jh +Jh +Jh +Jh +Yc +Yc +EC +OQ +EC +Yc +Yc +UX +UX +Jh +uZ +Jh +Jh +Jh +Jh +PF +Jh +af +sl +Jh +Jh +re +ZZ +ML +ML +ML +ML +"} +(18,1,1) = {" +re +re +re +EC +EC +EC +EC +EC +EC +re +re +re +Yc +Yc +TU +EN +EN +eP +TU +Yc +Yc +UX +wR +yw +nP +zg +Jh +Df +GA +bh +bi +UN +Jh +ij +ij +ML +BA +LR +LR +eo +"} +(19,1,1) = {" +re +re +EC +EC +Jo +Qd +zS +hk +EC +Yc +EC +Yc +Yc +TU +EN +eP +EN +EN +EN +TU +Yc +UX +uh +AY +AY +Se +Jh +sk +at +sM +Jb +Pa +Jh +Uv +ij +ML +tS +AV +AV +kX +"} +(20,1,1) = {" +re +re +EC +Fv +PT +aW +OW +PT +EC +Xo +XQ +TU +Yc +EN +EN +EN +EN +EN +eP +EN +EC +EC +Oi +AY +AY +fm +Jh +Kl +zF +Bu +VN +HA +ph +FE +jo +cQ +tS +AV +AV +kX +"} +(21,1,1) = {" +re +re +EC +AX +PT +qw +sd +PT +Jx +CD +EN +CD +Xp +EN +eP +EN +Sz +eP +EN +EN +OQ +Bt +gX +VB +VB +qg +Jh +DU +mM +YD +lm +mU +Jh +us +ij +cQ +tS +AV +AV +kX +"} +(22,1,1) = {" +re +re +EC +ja +PT +NL +uU +PT +EC +TU +rK +Xo +Yc +EN +EN +EN +EN +EN +EN +eP +EC +hR +IK +IK +IK +PQ +Jh +iI +jE +Hx +Ew +nY +Qj +Oo +uq +uH +tS +AV +AV +kX +"} +(23,1,1) = {" +re +re +EC +EC +ne +AG +Vn +GE +EC +Yc +EC +Yc +Yc +TU +EN +eP +EN +eP +EN +TU +Yc +UX +wH +jU +ZG +gK +Jh +Hb +Kx +nR +uc +QM +Jh +Qc +ij +ML +tS +AV +AV +kX +"} +(24,1,1) = {" +re +re +re +EC +EC +EC +EC +EC +EC +EC +EC +EC +Yc +Yc +TU +EN +EN +EN +TU +Yc +Yc +Jh +Jh +Jh +Jh +Jh +Jh +Jh +oO +zF +hW +Jh +Jh +ij +ij +Zr +sL +Gj +Gj +RD +"} +(25,1,1) = {" +re +re +re +re +re +ij +xE +MF +Mo +dD +Zd +EC +EC +Yc +Yc +EC +OQ +EC +Yc +Yc +UX +Jh +Jh +vd +jf +la +fc +Jh +rh +DC +Be +Jh +re +re +re +ZZ +ML +ML +ML +ML +"} +(26,1,1) = {" +re +re +re +re +re +ij +Jt +pl +We +Vc +Rb +Sj +EC +Yc +hR +EC +xr +EC +EC +UX +Jh +YY +Jh +Tl +jE +jE +Zp +VJ +TP +jE +kn +Jh +re +re +re +re +nr +re +re +nr +"} +(27,1,1) = {" +re +re +re +re +re +ij +NI +Hm +Qh +ki +UD +qV +ij +Nz +sJ +OM +Vu +NE +fH +Jh +fB +ch +Jh +Ll +jE +nx +aj +Jh +Cf +go +GC +Jh +re +re +re +re +re +re +re +re +"} +(28,1,1) = {" +re +re +re +re +re +ij +ij +ij +ij +ab +ij +ij +ij +Dg +jj +mx +Zx +EQ +fH +Jh +Ex +tv +ex +Tl +jE +Qw +Qa +Jh +Jh +KU +Jh +Jh +ij +ij +ij +ij +re +re +re +re +"} +(29,1,1) = {" +re +re +re +re +re +re +re +ij +GF +zP +iA +iA +hN +sJ +OP +io +jj +uS +ij +Jh +qi +ch +Jh +eD +jE +at +mO +Jh +ra +rm +iA +An +ij +yu +za +ij +re +re +nr +nr +"} +(30,1,1) = {" +PU +re +re +re +re +re +re +ij +Rf +Ys +sR +iA +hN +jj +Zx +Vu +pe +DR +ij +Jh +aE +pk +Jh +Tl +jE +rw +jV +Jh +pY +Vj +pY +By +nM +pp +jr +ij +re +re +nr +nr +"} +(31,1,1) = {" +PU +re +re +re +re +re +re +ij +GF +xA +iA +qY +hN +jj +Zx +Zx +VT +po +ij +Jh +wn +ch +Jh +Ki +GO +wf +Jh +Jh +Yd +yp +Yd +ij +ij +DB +Zx +fH +re +re +nr +PU +"} +(32,1,1) = {" +PU +re +re +re +re +re +re +ij +ij +ij +wj +wj +ij +Ui +Zx +Zx +OP +fH +fH +Jh +Jh +Jh +Jh +Jh +Jh +Jh +Jh +ij +KH +au +yr +ij +CF +sJ +ij +ij +re +re +re +PU +"} +(33,1,1) = {" +PU +re +re +re +re +re +re +re +re +ij +MS +pC +wj +ES +Zx +Zx +OP +ij +fH +ij +fH +fH +fH +ij +ij +ij +re +ij +RN +os +yr +wj +lT +Ca +ij +re +re +re +re +PU +"} +(34,1,1) = {" +PU +PU +re +re +re +re +re +re +re +ij +KC +qY +Xz +YI +mx +mx +Pj +ij +tq +Wj +DB +DB +DB +oI +uf +ij +ij +ij +yr +au +yr +wj +jO +yf +ij +re +re +re +re +PU +"} +(35,1,1) = {" +PU +PU +re +nr +nr +nr +re +re +re +ij +ij +ij +ij +ij +vl +tN +UD +ij +DB +DB +qh +qZ +Ip +Du +mx +ij +aF +yr +yr +os +yr +ij +gO +jO +ij +re +re +re +re +nr +"} +(36,1,1) = {" +PU +PU +nr +nr +nr +nr +nr +re +re +re +re +re +re +ij +ay +VW +iA +SZ +jO +Tc +Dk +DB +DB +Du +jO +mc +yr +au +os +au +XD +ij +ij +iO +ij +re +re +re +re +nr +"} +(37,1,1) = {" +PU +PU +re +re +re +nr +nr +nr +re +re +re +re +re +ij +UG +iA +xm +ij +DB +DB +DB +DB +Wj +DB +Vu +ij +aF +gP +EY +yr +wU +Xh +jO +HV +ij +re +re +re +re +re +"} +(38,1,1) = {" +PU +PU +PU +re +re +nr +re +re +re +re +re +re +re +ij +ij +ij +ij +ij +ij +fH +AD +AD +AD +AD +fH +ij +ij +ij +ij +ij +ij +ij +ij +ij +ij +re +re +re +re +re +"} +(39,1,1) = {" +PU +PU +PU +re +re +nr +nr +nr +re +re +re +re +re +re +re +re +re +re +re +fH +fH +ij +fH +ij +ij +re +re +re +re +re +re +re +re +re +re +re +re +re +re +nr +"} +(40,1,1) = {" +PU +PU +PU +PU +PU +PU +PU +PU +PU +PU +PU +PU +PU +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +re +nr +nr +"} diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm index cd123e2e0b1..f51e59f93d3 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -127,3 +127,5 @@ #define COMSIG_ATOM_GERM_UNEXPOSED "atom_germ_unexposed" /// when atom is washed #define COMSIG_ATOM_WASHED "atom_washed" +/// signal sent to puzzle pieces by activator +#define COMSIG_PUZZLE_COMPLETED "puzzle_completed" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 53475ad8109..92ec68d463e 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -141,6 +141,7 @@ #define BODYPART_ID_DIGITIGRADE "digitigrade" #define BODYPART_ID_LARVA "larva" #define BODYPART_ID_PSYKER "psyker" +#define BODYPART_ID_MEAT "meat" //See: datum/species/var/digitigrade_customization ///The species does not have digitigrade legs in generation. diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index e6be1b5fe19..a25dfc7d884 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -167,6 +167,7 @@ #define INIT_ORDER_LANGUAGE 25 #define INIT_ORDER_MACHINES 20 #define INIT_ORDER_SKILLS 15 +#define INIT_ORDER_QUEUELINKS 10 #define INIT_ORDER_TIMER 1 #define INIT_ORDER_DEFAULT 0 #define INIT_ORDER_AIR -1 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index f795f2f8f1b..7b73165f46e 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -1336,6 +1336,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given by /datum/element/relay_attacker #define TRAIT_RELAYING_ATTACKER "relaying_attacker" +///Trait given to limb by /mob/living/basic/living_limb_flesh +#define TRAIT_IGNORED_BY_LIVING_FLESH "livingflesh_ignored" + /// Trait given while using /datum/action/cooldown/mob_cooldown/wing_buffet #define TRAIT_WING_BUFFET "wing_buffet" /// Trait given while tired after using /datum/action/cooldown/mob_cooldown/wing_buffet diff --git a/code/controllers/subsystem/queuelinks.dm b/code/controllers/subsystem/queuelinks.dm new file mode 100644 index 00000000000..6a3b8288821 --- /dev/null +++ b/code/controllers/subsystem/queuelinks.dm @@ -0,0 +1,68 @@ +/atom/proc/MatchedLinks(id, list/partners) + +SUBSYSTEM_DEF(queuelinks) + name = "Queue Links" + flags = SS_NO_FIRE + init_order = INIT_ORDER_QUEUELINKS + ///assoc list of pending queues, id = /datum/queue_link + var/list/queues = list() + +/datum/controller/subsystem/queuelinks/Initialize() + return SS_INIT_SUCCESS + +///Creates or adds to a queue with the id supplied, if the queue is now or above the size of the queue, calls MatchedLinks and clears queue. +/// queues with a size of 0 wait never pop until something is added with an actual queue_max +/datum/controller/subsystem/queuelinks/proc/add_to_queue(atom/what, id, queue_max = 0) + if(!isatom(what)) + CRASH("Attempted to add a non-atom to queue; [what]!") + if(isnull(id)) + CRASH("Attempted to add to queue with no ID; [what]") + + var/datum/queue_link/link + if(isnull(queues[id])) + link = new /datum/queue_link(id) + queues[id] = link + else + link = queues[id] + + if(link.add(what, queue_max)) + queues -= id + +/datum/queue_link + /// atoms in our queue + var/list/partners = list() + /// how much length until we pop, only incrementable, 0 means the queue will not pop until a maximum is set + var/queue_max = 0 + /// id + var/id + +/datum/queue_link/New(new_id) + id = new_id + return ..() + +///adds an atom to the queue, if we are popping this returns TRUE +/datum/queue_link/proc/add(atom/what, max = 0) + . = FALSE + if(what in partners) + return + partners += what + + if(queue_max != 0 && max != 0 && max != queue_max) + CRASH("Tried to change queue size to [max] from [queue_max]!") + else if(!queue_max) + queue_max = max + + if(!queue_max || length(partners) < queue_max) + return + + pop() + return TRUE + +/datum/queue_link/proc/pop() + for(var/atom/item as anything in partners) + item.MatchedLinks(id, partners) + qdel(src) + +/datum/queue_link/Destroy() + . = ..() + partners = null diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index a371b248b25..726b42431a1 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -382,6 +382,12 @@ name = "The Faceoff" description = "What do you get when a meeting of the enemy corporations get crashed?" +/datum/map_template/ruin/space/meatstation + id = "meatderelict" + suffix = "meatderelict.dmm" + name = "Bioresearch Outpost" + description = "A bioresearch experiment gone wrong." + /datum/map_template/ruin/space/ghost_restaurant id = "space_ghost_restaurant.dmm" suffix = "space_ghost_restaurant.dmm" diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index b193ef68035..df72a1e0fe4 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -598,6 +598,13 @@ /area/ruin/space/has_grav/derelictsulaco name = "\improper Derelict Sulaco" +/area/ruin/space/has_grav/powered/biooutpost + name = "\improper Bioresearch Outpost" + area_flags = UNIQUE_AREA | NOTELEPORT + +/area/ruin/space/has_grav/powered/biooutpost/vault + name = "\improper Bioresearch Outpost Secure Testing" + // Space Ghost Kitchen /area/ruin/space/space_ghost_restaurant name = "\improper Space Ghost Restaurant" diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index e8c894d0112..1b6a5ee6db7 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -91,3 +91,21 @@ active = underfloor_accessibility < UNDERFLOOR_VISIBLE +/obj/item/pressure_plate/puzzle + protected = TRUE + anchored = TRUE //this prevents us from being picked up + active = TRUE + removable_signaller = FALSE + /// puzzle id we send if stepped on + var/puzzle_id + /// queue size must match + var/queue_size = 2 + +/obj/item/pressure_plate/puzzle/Initialize(mapload) + . = ..() + if(!isnull(puzzle_id)) + SSqueuelinks.add_to_queue(src, puzzle_id, queue_size) + +/obj/item/pressure_plate/puzzle/trigger() + can_trigger = FALSE + SEND_SIGNAL(src, COMSIG_PUZZLE_COMPLETED) diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm index 9bf33e36f2f..8eba5081d22 100644 --- a/code/game/objects/items/puzzle_pieces.dm +++ b/code/game/objects/items/puzzle_pieces.dm @@ -1,7 +1,8 @@ -//Every time you got lost looking for keycards, incriment: 1 +//Every time you got lost looking for keycards, increment: 2 + +//************** +//*****Keys***** //************** -//*****Keys******************* -//************** ** ** /obj/item/keycard name = "security keycard" desc = "This feels like it belongs to a door." @@ -45,8 +46,10 @@ move_resist = MOVE_FORCE_OVERPOWERING damage_deflection = 70 can_open_with_hands = FALSE - /// Make sure that the puzzle has the same puzzle_id as the keycard door! + /// Make sure that the puzzle has the same puzzle_id as the keycard door! (If this is null, queuelinks dont happen!) var/puzzle_id = null + /// do we use queue_links? + var/uses_queuelinks = TRUE /// Message that occurs when the door is opened var/open_message = "The door beeps, and slides opens." @@ -63,16 +66,18 @@ /obj/machinery/door/puzzle/Initialize(mapload) . = ..() - RegisterSignal(SSdcs, COMSIG_GLOB_PUZZLE_COMPLETED, PROC_REF(try_signal)) + if(!isnull(puzzle_id) && uses_queuelinks) + SSqueuelinks.add_to_queue(src, puzzle_id) -/obj/machinery/door/puzzle/Destroy(force) - . = ..() - UnregisterSignal(SSdcs, COMSIG_GLOB_PUZZLE_COMPLETED) +/obj/machinery/door/puzzle/MatchedLinks(id, list/partners) + for(var/partner in partners) + RegisterSignal(partner, COMSIG_PUZZLE_COMPLETED, PROC_REF(try_signal)) /obj/machinery/door/puzzle/proc/try_signal(datum/source, try_id) SIGNAL_HANDLER - INVOKE_ASYNC(src, PROC_REF(try_puzzle_open), try_id) + puzzle_id = null //honestly these cant be closed anyway and im not fucking around with door code anymore + INVOKE_ASYNC(src, PROC_REF(try_puzzle_open), null) /obj/machinery/door/puzzle/Bumped(atom/movable/AM) return !density && ..() @@ -101,6 +106,7 @@ /obj/machinery/door/puzzle/keycard desc = "This door only opens when a keycard is swiped. It looks virtually indestructible." + uses_queuelinks = FALSE /obj/machinery/door/puzzle/keycard/attackby(obj/item/attacking_item, mob/user, params) . = ..() @@ -203,6 +209,8 @@ ) /// Banned combinations of the list in decimal var/static/list/banned_combinations = list(-1, 47, 95, 203, 311, 325, 422, 473, 488, 500, 511) + /// queue size, must match count of objects this activates! + var/queue_size = 2 /datum/armor/structure_light_puzzle melee = 100 @@ -224,6 +232,8 @@ var/position = !!(generated_board & (1<screws. The rods look like they could be cut through.") - if(!anchored) + else . += span_notice("The anchoring screws are unscrewed. The rods look like they could be cut through.") /obj/structure/grille/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) @@ -186,6 +189,8 @@ add_fingerprint(user) if(shock(user, 100)) return + if(flags_1 & NODECONSTRUCT_1) + return FALSE tool.play_tool_sound(src, 100) deconstruct() return TOOL_ACT_TOOLTYPE_SUCCESS @@ -196,6 +201,8 @@ add_fingerprint(user) if(shock(user, 90)) return FALSE + if(flags_1 & NODECONSTRUCT_1) + return FALSE if(!tool.use_tool(src, user, 0, volume=100)) return FALSE set_anchored(!anchored) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 65dff70d9a0..67d3b7a2b18 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -79,6 +79,9 @@ /obj/structure/window/examine(mob/user) . = ..() + if(flags_1 & NODECONSTRUCT_1) + return + switch(state) if(WINDOW_SCREWED_TO_FRAME) . += span_notice("The window is screwed to the frame.") @@ -480,6 +483,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0) return FALSE /obj/structure/window/reinforced/attackby_secondary(obj/item/tool, mob/user, params) + if(flags_1 & NODECONSTRUCT_1) + return ..() + switch(state) if(RWINDOW_SECURE) if(tool.tool_behaviour == TOOL_WELDER) @@ -558,6 +564,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0) /obj/structure/window/reinforced/examine(mob/user) . = ..() + if(flags_1 & NODECONSTRUCT_1) + return switch(state) if(RWINDOW_SECURE) . += span_notice("It's been screwed in with one way screws, you'd need to heat them to have any chance of backing them out.") diff --git a/code/game/turfs/closed/indestructible.dm b/code/game/turfs/closed/indestructible.dm index a1320946a45..e8b89c78ece 100644 --- a/code/game/turfs/closed/indestructible.dm +++ b/code/game/turfs/closed/indestructible.dm @@ -359,3 +359,13 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) /turf/closed/indestructible/grille/Initialize(mapload) . = ..() underlays += mutable_appearance('icons/turf/floors.dmi', "plating") + +/turf/closed/indestructible/meat + name = "dense meat wall" + desc = "A huge chunk of dense, packed meat. Effectively impervious to conventional methods of destruction." + icon = 'icons/turf/walls/meat.dmi' + icon_state = "meatwall-0" + base_icon_state = "meatwall" + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_WALLS + canSmoothWith = SMOOTH_GROUP_WALLS diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 6a62f7e0227..f9013363ff1 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -124,9 +124,6 @@ /turf/open/indestructible/light icon_state = "light_on-1" -/turf/open/indestructible/plating - icon_state = "plating" - /turf/open/indestructible/permalube icon_state = "darkfull" @@ -223,6 +220,29 @@ init_air = FALSE baseturfs = /turf/open/indestructible/airblock +/turf/open/indestructible/meat + icon_state = "meat" + footstep = FOOTSTEP_MEAT + barefootstep = FOOTSTEP_MEAT + clawfootstep = FOOTSTEP_MEAT + heavyfootstep = FOOTSTEP_MEAT + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + baseturfs = /turf/open/indestructible/meat + +/turf/open/indestructible/meat/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/indestructible/plating + name = "plating" + icon_state = "plating" + desc = "The attachment points are all bent to uselessness, looks nigh-impervious to damage." + overfloor_placed = FALSE + underfloor_accessibility = UNDERFLOOR_INTERACTABLE + footstep = FOOTSTEP_PLATING + +/turf/open/indestructible/plating/airless + initial_gas_mix = AIRLESS_ATMOS + /turf/open/Initalize_Atmos(time) excited = FALSE update_visuals() diff --git a/code/modules/mapfluff/ruins/spaceruin_code/meatderelict.dm b/code/modules/mapfluff/ruins/spaceruin_code/meatderelict.dm new file mode 100644 index 00000000000..5647b5aca23 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/meatderelict.dm @@ -0,0 +1,156 @@ +/obj/item/keycard/meatderelict/director + name = "directors keycard" + desc = "A fancy keycard. Likely unlocks the directors office. The name tag is all smudged." + color = "#990000" + puzzle_id = "md_director" + +/obj/item/keycard/meatderelict/engpost + name = "post keycard" + desc = "A fancy keycard. Has the engineering insignia on it." + color = "#f0da12" + puzzle_id = "md_engpost" + +/obj/item/keycard/meatderelict/armory + name = "armory keycard" + desc = "A red keycard. Has a really cool image of a gun on it. Fancy." + color = "#FF7276" + puzzle_id = "md_armory" + +/obj/item/paper/crumpled/bloody/fluff/meatderelict/directoroffice + name = "directors note" + default_raw_text = "The research was going smooth... but the experiment did not go as planned. He convulsed and screamed as he slowly mutated into... that thing. It started to spread everywhere, outside the lab too. There is no way we can cover up that we are not a teleport research outpost, so I locked down the lab, but they already know. They sent a squad to rescue us, but..." + +/obj/item/paper/crumpled/fluff/meatderelict/shieldgens + name = "shield gate marketing sketch" + default_raw_text = "The QR-109 Shield Gate is a robust hardlight machine capable of producing a strong shield to bar entry. With control panel integration, it can be enabled or disabled from anywhere, such as ship's Bridge, Engineering Bay, or wherever else! The rest is faded..." + +/obj/item/paper/crumpled/fluff/meatderelict + name = "engineer note" + default_raw_text = "I've overclocked the power generators to add that needed juice to the experiment, though they're a bit unstable." + +/obj/item/paper/crumpled/fluff/meatderelict/fridge + name = "engineer complaint" + default_raw_text = "Whoever keeps stealing my fucking ice cream from my fridge, I swear I will actually fuck you up. It is not cheap to get this delicious ice cream here, nor is it for you. And don't touch my snacks in the drawer!" + +/obj/machinery/computer/terminal/meatderelict + upperinfo = "COPYRIGHT 2500 NANOSOFT-TM - DO NOT REDISTRIBUTE - Now with audio!" //not that old + content = list( + "Experimental Test Satellite 37B
Nanotrasen™️ approved deep space experimentation lab

Entry 1:

Subject - \[Species 501-C-12\]
Date - \[REDACTED\]
We have acquired a biological sample of unknown origins \[Species 501-C-12\] from an NT outpost on the far reaches. Initial experiments have determined the sample to be a creature never previously recorded. It weighs approximately 7 grams and seems to be docile. Initial examinations determine that it is an extremely fast replicating organism which can alter its physiology to take multiple differing shapes. \[Recording Terminated\]
- Dr. Phil Cornelius", + "Entry 2:

Subject - \[Species 501-C-12\]
Date - \[REDACTED\]
The creature responds to electrical stimuli. It has failed to respond to Light, Heat, Cold, Oxygen, Plasma, CO2, Nitrogen. It, within moments, seemed to have generated muscle tissue within its otherwise shapeless form and moved away from the source of electricity. Feeding the creature has been a simple matter, it consumed just about any form of protein. It appears to rapidly digest and convert forms of protein into more of itself. Any undigestible products are simply left alone. Will continue to monitor creature and provide reports to Nanotrasen Central Command. \[Recording Terminated\]
- Dr. Phil Cornelius", + "Entry 3:

Subject - \[Species 501-C-12\]
Date - \[REDACTED\]
Any attempts at contacting Nanotrasen has failed. I've never seen anything like it. I... I don't think I'm going to survive much longer, I can hear it pushing on my room door. If anyone reads this, let my family know that I- \[Loud crash\]
GET BACK \[Gunshots\]
AHHHHHHHHHHHH \[Recording Terminated\]
- Dr. Phil Cornelius" + ) + +/obj/machinery/door/puzzle/meatderelict + name = "lockdown door" + desc = "A beaten door, still sturdy. Impervious to conventional methods of destruction, must be a way to open it nearby." + icon = 'icons/obj/doors/puzzledoor/danger.dmi' + puzzle_id = "md_prevault" + +/mob/living/basic/meteor_heart/opens_puzzle_door + ///the puzzle id we send on death + var/id + ///queue size, must match + var/queue_size = 2 + +/mob/living/basic/meteor_heart/opens_puzzle_door/Initialize(mapload) + . = ..() + new /obj/effect/puzzle_death_signal_holder(loc, src, id, queue_size) + +/obj/effect/puzzle_death_signal_holder // ok apparently registering signals on qdeling stuff is not very functional + ///delay + var/delay = 2.5 SECONDS + invisibility = INVISIBILITY_ABSTRACT + +/obj/effect/puzzle_death_signal_holder/Initialize(mapload, mob/listened, id, queue_size = 2) + . = ..() + if(isnull(id)) + return INITIALIZE_HINT_QDEL + RegisterSignal(listened, COMSIG_LIVING_DEATH, PROC_REF(on_death)) + SSqueuelinks.add_to_queue(src, id, queue_size) + +/obj/effect/puzzle_death_signal_holder/proc/on_death(datum/source) + SIGNAL_HANDLER + addtimer(CALLBACK(src, PROC_REF(send_sig)), delay) + +/obj/effect/puzzle_death_signal_holder/proc/send_sig() + SEND_SIGNAL(src, COMSIG_PUZZLE_COMPLETED) + qdel(src) + +/obj/machinery/puzzle_button/meatderelict + name = "lockdown panel" + desc = "A panel that controls the lockdown of this outpost." + id = "md_prevault" + +/obj/machinery/puzzle_button/meatderelict/open_doors() + . = ..() + playsound(src, 'sound/effects/alert.ogg', 100, TRUE) + visible_message(span_warning("[src] lets out an alarm as the lockdown is lifted!")) + +/obj/structure/puzzle_blockade/meat + name = "mass of meat and teeth" + desc = "A horrible mass of meat and teeth. Can it see you? You hope not. Virtually indestructible, must be a way around." + icon = 'icons/obj/structures.dmi' + icon_state = "meatblockade" + opacity = TRUE + +/obj/structure/puzzle_blockade/meat/try_signal(datum/source) + Shake(duration = 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(open_up)), 0.5 SECONDS) + +/obj/structure/puzzle_blockade/meat/proc/open_up() + new /obj/effect/gibspawner/generic(drop_location()) + qdel(src) + +/obj/lightning_thrower + name = "overcharged SMES" + desc = "An overclocked SMES, bursting with power." + anchored = TRUE + density = TRUE + icon = 'icons/obj/machines/engine/other.dmi' + icon_state = "smes" + /// do we currently want to shock diagonal tiles? if not, we shock cardinals + var/throw_diagonals = FALSE + /// flags we apply to the shock + var/shock_flags = SHOCK_KNOCKDOWN | SHOCK_NOGLOVES + /// damage of the shock + var/shock_damage = 20 + /// list of turfs that are currently shocked so we can unregister the signal + var/list/signal_turfs = list() + /// how long do we shock + var/shock_duration = 0.5 SECONDS + +/obj/lightning_thrower/Initialize(mapload) + . = ..() + START_PROCESSING(SSprocessing, src) + +/obj/lightning_thrower/Destroy() + . = ..() + signal_turfs = null + STOP_PROCESSING(SSprocessing, src) + +/obj/lightning_thrower/process(seconds_per_tick) + var/list/dirs = throw_diagonals ? GLOB.diagonals : GLOB.cardinals + throw_diagonals = !throw_diagonals + playsound(src, 'sound/magic/lightningbolt.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) + for(var/direction in dirs) + var/victim_turf = get_step(src, direction) + if(isclosedturf(victim_turf)) + continue + Beam(victim_turf, icon_state="lightning[rand(1,12)]", time = shock_duration) + RegisterSignal(victim_turf, COMSIG_ATOM_ENTERED, PROC_REF(shock_victim)) //we cant move anyway + signal_turfs += victim_turf + for(var/mob/living/victim in victim_turf) + shock_victim(null, victim) + addtimer(CALLBACK(src, PROC_REF(clear_signals)), shock_duration) + +/obj/lightning_thrower/proc/clear_signals(datum/source) + SIGNAL_HANDLER + for(var/turf in signal_turfs) + UnregisterSignal(turf, COMSIG_ATOM_ENTERED) + signal_turfs -= turf + +/obj/lightning_thrower/proc/shock_victim(datum/source, mob/living/victim) + SIGNAL_HANDLER + if(!istype(victim)) + return + victim.electrocute_act(shock_damage, src, flags = shock_flags) diff --git a/code/modules/mob/living/basic/ruin_defender/flesh.dm b/code/modules/mob/living/basic/ruin_defender/flesh.dm new file mode 100644 index 00000000000..7d13c7e6621 --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/flesh.dm @@ -0,0 +1,168 @@ +/datum/ai_controller/basic_controller/living_limb_flesh + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, + BB_TARGET_MINIMUM_STAT = HARD_CRIT, + ) + + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/basic_melee_attack_subtree + ) + +/mob/living/basic/living_limb_flesh + name = "living flesh" + desc = "A vaguely leg or arm shaped flesh abomination. It pulses, like a heart." + icon = 'icons/mob/simple/animal.dmi' + icon_state = "limb" + icon_living = "limb" + mob_size = MOB_SIZE_SMALL + basic_mob_flags = DEL_ON_DEATH + faction = list(FACTION_HOSTILE) + melee_damage_lower = 10 + melee_damage_upper = 10 + health = 20 + maxHealth = 20 + attack_sound = 'sound/weapons/bite.ogg' + attack_vis_effect = ATTACK_EFFECT_BITE + attack_verb_continuous = "tries desperately to attach to" + attack_verb_simple = "try to attach to" + mob_biotypes = MOB_ORGANIC | MOB_SPECIAL + ai_controller = /datum/ai_controller/basic_controller/living_limb_flesh + /// the meat bodypart we are currently inside, used to like drain nutrition and dismember and shit + var/obj/item/bodypart/current_bodypart + +/mob/living/basic/living_limb_flesh/Initialize(mapload, obj/item/bodypart/limb) + . = ..() + AddComponent(/datum/component/swarming, max_x = 8, max_y = 8) + AddElement(/datum/element/death_drops, string_list(list(/obj/effect/gibspawner/generic))) + if(!isnull(limb)) + register_to_limb(limb) + +/mob/living/basic/living_limb_flesh/Destroy(force) + . = ..() + QDEL_NULL(current_bodypart) + +/mob/living/basic/living_limb_flesh/Life(seconds_per_tick = SSMOBS_DT, times_fired) + . = ..() + if(stat == DEAD) + return + if(isnull(current_bodypart) || isnull(current_bodypart.owner)) + return + var/mob/living/carbon/human/victim = current_bodypart.owner + if(prob(SPT_PROB(3, SSMOBS_DT))) + to_chat(victim, span_warning("The thing posing as your limb makes you feel funny...")) //warn em + //firstly as a sideeffect we drain nutrition from our host + victim.adjust_nutrition(-1.5) + + if(!prob(SPT_PROB(1.5, SSMOBS_DT))) + return + + if(istype(current_bodypart, /obj/item/bodypart/arm)) + var/list/candidates = list() + for(var/atom/movable/movable in orange(victim, 1)) + if(movable.anchored) + continue + if(movable == victim) + continue + if(!victim.CanReach(movable)) + continue + candidates += movable + var/atom/movable/candidate = pick(candidates) + if(isnull(candidate)) + return + victim.start_pulling(candidate, supress_message = TRUE) + victim.visible_message(span_warning("[victim][victim.p_s()] [current_bodypart] instinctually starts feeling [candidate]!")) + return + + if(HAS_TRAIT(victim, TRAIT_IMMOBILIZED)) + return + step(victim, pick(GLOB.cardinals)) + to_chat(victim, span_warning("Your [current_bodypart] moves on its own!")) + + +/mob/living/basic/living_limb_flesh/melee_attack(mob/living/carbon/human/target, list/modifiers, ignore_cooldown) + . = ..() + if (!ishuman(target) || target.stat == DEAD || HAS_TRAIT(target, TRAIT_NODISMEMBER)) + return + + var/list/zone_candidates = target.get_missing_limbs() + for(var/obj/item/bodypart/bodypart in target.bodyparts) + if(bodypart.body_zone == BODY_ZONE_HEAD || bodypart.body_zone == BODY_ZONE_CHEST) + continue + if(HAS_TRAIT(bodypart, TRAIT_IGNORED_BY_LIVING_FLESH)) + continue + if(bodypart.bodypart_flags & BODYPART_UNREMOVABLE) + continue + if(bodypart.brute_dam < 20) + continue + zone_candidates += bodypart.body_zone + + if(!length(zone_candidates)) + return + + var/target_zone = pick(zone_candidates) + var/obj/item/bodypart/target_part = target.get_bodypart(target_zone) + if(isnull(target_part)) + target.emote("scream") // dismember already makes them scream so only do this if we aren't doing that + else + target_part.dismember() + + var/part_type + switch(target_zone) + if(BODY_ZONE_L_ARM) + part_type = /obj/item/bodypart/arm/left/flesh + if(BODY_ZONE_R_ARM) + part_type = /obj/item/bodypart/arm/right/flesh + if(BODY_ZONE_L_LEG) + part_type = /obj/item/bodypart/leg/left/flesh + if(BODY_ZONE_R_LEG) + part_type = /obj/item/bodypart/leg/right/flesh + + target.visible_message(span_danger("[src] [target_part ? "tears off and attaches itself" : "attaches itself"] to where [target][target.p_s()] limb used to be!")) + current_bodypart = new part_type(TRUE) //dont_spawn_flesh, we cant use named arguments here + current_bodypart.replace_limb(target, TRUE) + forceMove(current_bodypart) + register_to_limb(current_bodypart) + +/mob/living/basic/living_limb_flesh/proc/register_to_limb(obj/item/bodypart/part) + ai_controller.set_ai_status(AI_STATUS_OFF) + RegisterSignal(part, COMSIG_BODYPART_REMOVED, PROC_REF(on_limb_lost)) + RegisterSignal(part.owner, COMSIG_LIVING_DEATH, PROC_REF(owner_died)) + RegisterSignal(part.owner, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(owner_shocked)) //detach if we are shocked, not beneficial for the host but hey its a sideeffect + +/mob/living/basic/living_limb_flesh/proc/owner_shocked(datum/source, shock_damage, source, siemens_coeff, flags) + SIGNAL_HANDLER + if(shock_damage < 10) + return + var/mob/living/carbon/human/part_owner = current_bodypart.owner + if(!detach_self()) + return + var/turf/our_location = get_turf(src) + our_location.visible_message(span_warning("[part_owner][part_owner.p_s()] [current_bodypart] begins to convulse wildly!")) + +/mob/living/basic/living_limb_flesh/proc/owner_died(datum/source, gibbed) + SIGNAL_HANDLER + if(gibbed) + return + addtimer(CALLBACK(src, PROC_REF(detach_self)), 1 SECONDS) //we need new hosts, dead people suck! + +/mob/living/basic/living_limb_flesh/proc/detach_self() + if(isnull(current_bodypart)) + return FALSE + current_bodypart.dismember() + return TRUE//on_limb_lost should be called after that + +/mob/living/basic/living_limb_flesh/proc/on_limb_lost(atom/movable/source, mob/living/carbon/old_owner, dismembered) + SIGNAL_HANDLER + UnregisterSignal(source, COMSIG_BODYPART_REMOVED) + UnregisterSignal(old_owner, COMSIG_LIVING_ELECTROCUTE_ACT) + UnregisterSignal(old_owner, COMSIG_LIVING_DEATH) + addtimer(CALLBACK(src, PROC_REF(wake_up), source), 2 SECONDS) + +/mob/living/basic/living_limb_flesh/proc/wake_up(atom/limb) + ai_controller.set_ai_status(AI_STATUS_ON) + forceMove(limb.drop_location()) + current_bodypart = null + qdel(limb) + visible_message(span_warning("[src] begins flailing around!")) + Shake(6, 6, 0.5 SECONDS) diff --git a/code/modules/mob/living/basic/ruin_defender/living_floor.dm b/code/modules/mob/living/basic/ruin_defender/living_floor.dm new file mode 100644 index 00000000000..f7e8cefa12e --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/living_floor.dm @@ -0,0 +1,96 @@ +/datum/ai_planning_subtree/basic_melee_attack_subtree/opportunistic/on_top/SelectBehaviors(datum/ai_controller/controller, delta_time) + var/mob/target = controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET] + if(!target || QDELETED(target)) + return + if(target.loc != controller.pawn.loc) + return + return ..() + +/datum/ai_controller/basic_controller/living_floor + max_target_distance = 2 + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, + BB_TARGET_MINIMUM_STAT = HARD_CRIT, + ) + + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/basic_melee_attack_subtree/opportunistic/on_top + ) + +/mob/living/basic/living_floor + name = "floor" + desc = "The floor you walk on. It looks near-impervious to damage." + icon = 'icons/turf/floors.dmi' + icon_state = "floor" + icon_living = "floor" + mob_size = MOB_SIZE_HUGE + mob_biotypes = MOB_SPECIAL + status_flags = GODMODE //nothing but crowbars may kill us + death_message = "" + unsuitable_atmos_damage = 0 + minimum_survivable_temperature = 0 + maximum_survivable_temperature = INFINITY + basic_mob_flags = DEL_ON_DEATH + move_resist = INFINITY + density = FALSE + combat_mode = TRUE + layer = TURF_LAYER + plane = FLOOR_PLANE + faction = list(FACTION_HOSTILE) + melee_damage_lower = 20 + melee_damage_upper = 40 //pranked..... + attack_sound = 'sound/weapons/bite.ogg' + attack_vis_effect = ATTACK_EFFECT_BITE + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + ai_controller = /datum/ai_controller/basic_controller/living_floor + melee_attack_cooldown = 0.5 SECONDS // get real + + var/icon_aggro = "floor-hostile" + var/desc_aggro = "This flooring is alive and filled with teeth, better not step on that. Being covered in plating, it is immune to damage. Seems vulnerable to prying though." + +/mob/living/basic/living_floor/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_IMMOBILIZED, INNATE_TRAIT) + var/static/list/connections = list(COMSIG_ATOM_ENTERED = PROC_REF(look_aggro), COMSIG_ATOM_EXITED = PROC_REF(look_deaggro)) + AddComponent(/datum/component/connect_range, tracked = src, connections = connections, range = 1, works_in_containers = FALSE) + +/mob/living/basic/living_floor/proc/look_aggro(datum/source, mob/living/victim) + SIGNAL_HANDLER + if(!istype(victim) || istype(victim, /mob/living/basic/living_floor) || victim.stat == DEAD) + return + if(victim.loc == loc) //guaranteed bite + var/datum/targetting_datum/basic/targetting = ai_controller.blackboard[BB_TARGETTING_DATUM] + if(targetting.can_attack(src, victim)) + melee_attack(victim) + icon_state = icon_aggro + desc = desc_aggro + +/mob/living/basic/living_floor/proc/look_deaggro(datum/source, mob/living/victim) + SIGNAL_HANDLER + if(!istype(victim) && !istype(victim, /mob/living/basic/living_floor)) + return + icon_state = initial(icon_state) + desc = initial(desc_aggro) + +/mob/living/basic/living_floor/med_hud_set_health() + return + +/mob/living/basic/living_floor/med_hud_set_status() + return + +/mob/living/basic/living_floor/attackby(obj/item/weapon, mob/user, params) + if(weapon.tool_behaviour != TOOL_CROWBAR) + return ..() + balloon_alert(user, "prying...") + playsound(src, 'sound/items/crowbar.ogg', 45, TRUE) + if(!do_after(user, 5 SECONDS, src)) + return + new /obj/effect/gibspawner/generic(loc) + qdel(src) + +/mob/living/basic/living_floor/white + icon_state = "white" + icon_living = "white" + icon_aggro = "whitefloor-hostile" diff --git a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm index b8b7d427b67..9b596dd2483 100644 --- a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm @@ -558,3 +558,45 @@ unarmed_damage_low = 7 unarmed_damage_high = 21 unarmed_stun_threshold = 11 + +///flesh + +/obj/item/bodypart/arm/left/flesh + limb_id = BODYPART_ID_MEAT + should_draw_greyscale = FALSE + +/obj/item/bodypart/arm/left/flesh/Initialize(mapload, dont_spawn_flesh = FALSE) + . = ..() + if(!dont_spawn_flesh) + new /mob/living/basic/living_limb_flesh(src, src) + ADD_TRAIT(src, TRAIT_IGNORED_BY_LIVING_FLESH, BODYPART_TRAIT) + +/obj/item/bodypart/arm/right/flesh + limb_id = BODYPART_ID_MEAT + should_draw_greyscale = FALSE + +/obj/item/bodypart/arm/right/flesh/Initialize(mapload, dont_spawn_flesh = FALSE) + . = ..() + if(!dont_spawn_flesh) + new /mob/living/basic/living_limb_flesh(src, src) + ADD_TRAIT(src, TRAIT_IGNORED_BY_LIVING_FLESH, BODYPART_TRAIT) + +/obj/item/bodypart/leg/left/flesh + limb_id = BODYPART_ID_MEAT + should_draw_greyscale = FALSE + +/obj/item/bodypart/leg/left/flesh/Initialize(mapload, dont_spawn_flesh = FALSE) + . = ..() + if(!dont_spawn_flesh) + new /mob/living/basic/living_limb_flesh(src, src) + ADD_TRAIT(src, TRAIT_IGNORED_BY_LIVING_FLESH, BODYPART_TRAIT) + +/obj/item/bodypart/leg/right/flesh + limb_id = BODYPART_ID_MEAT + should_draw_greyscale = FALSE + +/obj/item/bodypart/leg/right/flesh/Initialize(mapload, dont_spawn_flesh = FALSE) + . = ..() + if(!dont_spawn_flesh) + new /mob/living/basic/living_limb_flesh(src, src) + ADD_TRAIT(src, TRAIT_IGNORED_BY_LIVING_FLESH, BODYPART_TRAIT) diff --git a/icons/mob/human/bodyparts.dmi b/icons/mob/human/bodyparts.dmi index 7e804e894d2..2150b3c2c81 100644 Binary files a/icons/mob/human/bodyparts.dmi and b/icons/mob/human/bodyparts.dmi differ diff --git a/icons/mob/simple/animal.dmi b/icons/mob/simple/animal.dmi index 01670b07d93..3bd3438bc62 100644 Binary files a/icons/mob/simple/animal.dmi and b/icons/mob/simple/animal.dmi differ diff --git a/icons/obj/doors/puzzledoor/danger.dmi b/icons/obj/doors/puzzledoor/danger.dmi new file mode 100644 index 00000000000..89d19131cc1 Binary files /dev/null and b/icons/obj/doors/puzzledoor/danger.dmi differ diff --git a/icons/obj/doors/puzzledoor/default.dmi b/icons/obj/doors/puzzledoor/default.dmi index ec4fbed514b..49a92061395 100644 Binary files a/icons/obj/doors/puzzledoor/default.dmi and b/icons/obj/doors/puzzledoor/default.dmi differ diff --git a/icons/obj/machines/wallmounts.dmi b/icons/obj/machines/wallmounts.dmi index c14f750b25c..c5f2254c4bb 100644 Binary files a/icons/obj/machines/wallmounts.dmi and b/icons/obj/machines/wallmounts.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index 5d6e1eb8a24..a41aa161d0f 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 682809fbf43..9dca06d4153 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/walls/meat.dmi b/icons/turf/walls/meat.dmi new file mode 100644 index 00000000000..fbbeb8a9c3c Binary files /dev/null and b/icons/turf/walls/meat.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 45c5dee569d..5b46203c027 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -642,6 +642,7 @@ #include "code\controllers\subsystem\ping.dm" #include "code\controllers\subsystem\points_of_interest.dm" #include "code\controllers\subsystem\profiler.dm" +#include "code\controllers\subsystem\queuelinks.dm" #include "code\controllers\subsystem\radiation.dm" #include "code\controllers\subsystem\radio.dm" #include "code\controllers\subsystem\radioactive_nebula.dm" @@ -4250,6 +4251,7 @@ #include "code\modules\mapfluff\ruins\spaceruin_code\hilbertshotel.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\interdyne.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\listeningstation.dm" +#include "code\modules\mapfluff\ruins\spaceruin_code\meatderelict.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\meateor.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\originalcontent.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\spacehotel.dm" @@ -4494,6 +4496,8 @@ #include "code\modules\mob\living\basic\pets\dog\corgi.dm" #include "code\modules\mob\living\basic\pets\dog\dog_subtypes.dm" #include "code\modules\mob\living\basic\pets\dog\strippable_items.dm" +#include "code\modules\mob\living\basic\ruin_defender\flesh.dm" +#include "code\modules\mob\living\basic\ruin_defender\living_floor.dm" #include "code\modules\mob\living\basic\ruin_defender\skeleton.dm" #include "code\modules\mob\living\basic\ruin_defender\stickman.dm" #include "code\modules\mob\living\basic\space_fauna\ant.dm"